[Home] [Help]
PACKAGE BODY: APPS.XLA_00200_AAD_S_000010_PKG
Source
1 PACKAGE BODY XLA_00200_AAD_S_000010_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_000010_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Encumbrance Cash |
14 | Code : AP_ENC_CASH |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 05:03:57 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_000010_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_000010_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_000010_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_000010_PKG.GetMeaning');
228 END GetMeaning;
229 --
230
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 -- AcctDerRule_1
235 --
236 ---------------------------------------
237 FUNCTION AcctDerRule_1 (
238 p_application_id IN NUMBER
239 , p_ae_header_id IN NUMBER
240 , p_side IN VARCHAR2
241 , p_override_seg_flag IN VARCHAR2
242 --Bank Cash Account
243 , p_source_1 IN NUMBER
244 , x_transaction_coa_id OUT NOCOPY NUMBER
245 , x_accounting_coa_id OUT NOCOPY NUMBER
246 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
247 , x_flex_value_set_id OUT NOCOPY NUMBER
248 , x_value_type_code OUT NOCOPY VARCHAR2
249 , x_value_combination_id OUT NOCOPY NUMBER
250 , x_value_segment_code OUT NOCOPY VARCHAR2
251 )
252 RETURN VARCHAR2
253 IS
254 l_component_type VARCHAR2(80) ;
255 l_component_code VARCHAR2(30) ;
256 l_component_type_code VARCHAR2(1) ;
257 l_component_appl_id INTEGER ;
258 l_amb_context_code VARCHAR2(30) ;
259 l_log_module VARCHAR2(240) ;
260 l_output_value VARCHAR2(30) ;
261 BEGIN
262 IF g_log_enabled THEN
263 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_1';
264 END IF;
265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
266
267 trace
268 (p_msg => 'BEGIN of AcctDerRule_1'
269 ,p_level => C_LEVEL_PROCEDURE
270 ,p_module => l_log_module);
271
272 END IF;
273
274 l_component_type := 'AMB_ADR';
275 l_component_code := 'AP_CASH_NATURAL_ACCT_SEG';
276 l_component_type_code := 'S';
277 l_component_appl_id := 200;
278 l_amb_context_code := 'DEFAULT';
279 x_transaction_coa_id := null;
280 x_accounting_coa_id := null;
281 x_flexfield_segment_code := 'GL_ACCOUNT';
282 x_flex_value_set_id := null ;
283
284
285 --
286 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
287
288 trace
289 (p_msg => 'END of AcctDerRule_1'
290 ,p_level => C_LEVEL_PROCEDURE
291 ,p_module => l_log_module);
292
293 END IF;
294 x_value_combination_id := TO_NUMBER(p_source_1) ;
295 x_value_segment_code := 'GL_ACCOUNT' ;
296 x_value_type_code := 'S';
297 l_output_value := null;
298 RETURN l_output_value;
299
300
301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
302
303 trace
304 (p_msg => 'END of AcctDerRule_1(invalid)'
305 ,p_level => C_LEVEL_PROCEDURE
306 ,p_module => l_log_module);
307
308 END IF;
309
310 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
311 x_value_combination_id := null;
312 x_value_segment_code := null;
313 x_value_type_code := null;
314 l_output_value := null;
315 xla_accounting_err_pkg.build_message
316 (p_appli_s_name => 'XLA'
317 ,p_msg_name => 'XLA_AP_INVALID_ADR'
318 ,p_token_1 => 'COMPONENT_NAME'
319 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
320 l_component_type
321 , l_component_code
322 , l_component_type_code
323 , l_component_appl_id
324 , l_amb_context_code
325 )
326 ,p_token_2 => 'OWNER'
327 ,p_value_2 => xla_lookups_pkg.get_meaning(
328 'XLA_OWNER_TYPE'
329 ,l_component_type_code
330 )
331 ,p_token_3 => 'PAD_NAME'
332 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
333 ,p_token_4 => 'PAD_OWNER'
334 ,p_value_4 => xla_lookups_pkg.get_meaning(
335 'XLA_OWNER_TYPE'
336 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
337 )
338 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
339 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
340 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
341 ,p_ae_header_id => NULL
342 );
343 RETURN l_output_value;
344 EXCEPTION
345 WHEN xla_exceptions_pkg.application_exception THEN
349 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_1');
346 RAISE;
347 WHEN OTHERS THEN
348 xla_exceptions_pkg.raise_message
350 END AcctDerRule_1;
351 --
352
353 ---------------------------------------
354 --
355 -- PRIVATE FUNCTION
356 -- AcctDerRule_2
357 --
358 ---------------------------------------
359 FUNCTION AcctDerRule_2 (
360 p_application_id IN NUMBER
361 , p_ae_header_id IN NUMBER
362 , p_side IN VARCHAR2
363 , p_override_seg_flag IN VARCHAR2
364 --System Discount Account
365 , p_source_2 IN NUMBER
366 --Discount Distribution Method
367 , p_source_3 IN VARCHAR2
368 , p_source_3_meaning IN VARCHAR2
369 --Automatic Offsets Value
370 , p_source_4 IN VARCHAR2
371 , p_source_4_meaning IN VARCHAR2
372 , x_transaction_coa_id OUT NOCOPY NUMBER
373 , x_accounting_coa_id OUT NOCOPY NUMBER
374 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
375 , x_flex_value_set_id OUT NOCOPY NUMBER
376 , x_value_type_code OUT NOCOPY VARCHAR2
377 , x_value_combination_id OUT NOCOPY NUMBER
378 , x_value_segment_code OUT NOCOPY VARCHAR2
379 )
380 RETURN VARCHAR2
381 IS
382 l_component_type VARCHAR2(80) ;
383 l_component_code VARCHAR2(30) ;
384 l_component_type_code VARCHAR2(1) ;
385 l_component_appl_id INTEGER ;
386 l_amb_context_code VARCHAR2(30) ;
387 l_log_module VARCHAR2(240) ;
388 l_output_value VARCHAR2(30) ;
389 BEGIN
390 IF g_log_enabled THEN
391 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_2';
392 END IF;
393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
394
395 trace
396 (p_msg => 'BEGIN of AcctDerRule_2'
397 ,p_level => C_LEVEL_PROCEDURE
398 ,p_module => l_log_module);
399
400 END IF;
401
402 l_component_type := 'AMB_ADR';
403 l_component_code := 'AP_DISCOUNT_NAT_ACCT_SEG';
404 l_component_type_code := 'S';
405 l_component_appl_id := 200;
406 l_amb_context_code := 'DEFAULT';
407 x_transaction_coa_id := null;
408 x_accounting_coa_id := null;
409 x_flexfield_segment_code := 'GL_ACCOUNT';
410 x_flex_value_set_id := null ;
411
412
413 IF NVL(p_source_3,'
414 ') = 'SYSTEM' AND
415 NVL(p_source_4,'
416 ') = 'ACCOUNT_SEGMENT_VALUE'
417 THEN
418 --
419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
420
421 trace
422 (p_msg => 'END of AcctDerRule_2'
423 ,p_level => C_LEVEL_PROCEDURE
424 ,p_module => l_log_module);
425
426 END IF;
427 x_value_combination_id := TO_NUMBER(p_source_2) ;
428 x_value_segment_code := 'GL_ACCOUNT' ;
429 x_value_type_code := 'S';
430 l_output_value := null;
431 RETURN l_output_value;
432
433 ELSE
434 IF p_override_seg_flag = 'Y' THEN
435 RETURN '#$NO_OVERRIDE#$';
436 END IF;
437 END IF;
438
439 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
440
441 trace
442 (p_msg => 'END of AcctDerRule_2(invalid)'
443 ,p_level => C_LEVEL_PROCEDURE
444 ,p_module => l_log_module);
445
446 END IF;
447
448 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
449 x_value_combination_id := null;
450 x_value_segment_code := null;
451 x_value_type_code := null;
452 l_output_value := null;
453 xla_accounting_err_pkg.build_message
454 (p_appli_s_name => 'XLA'
455 ,p_msg_name => 'XLA_AP_INVALID_ADR'
456 ,p_token_1 => 'COMPONENT_NAME'
457 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
458 l_component_type
459 , l_component_code
460 , l_component_type_code
461 , l_component_appl_id
462 , l_amb_context_code
463 )
464 ,p_token_2 => 'OWNER'
465 ,p_value_2 => xla_lookups_pkg.get_meaning(
466 'XLA_OWNER_TYPE'
467 ,l_component_type_code
468 )
469 ,p_token_3 => 'PAD_NAME'
470 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
471 ,p_token_4 => 'PAD_OWNER'
472 ,p_value_4 => xla_lookups_pkg.get_meaning(
473 'XLA_OWNER_TYPE'
474 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
475 )
479 ,p_ae_header_id => NULL
476 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
477 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
478 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
480 );
481 RETURN l_output_value;
482 EXCEPTION
483 WHEN xla_exceptions_pkg.application_exception THEN
484 RAISE;
485 WHEN OTHERS THEN
486 xla_exceptions_pkg.raise_message
487 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_2');
488 END AcctDerRule_2;
489 --
490
491 ---------------------------------------
492 --
493 -- PRIVATE FUNCTION
494 -- AcctDerRule_3
495 --
496 ---------------------------------------
497 FUNCTION AcctDerRule_3 (
498 p_application_id IN NUMBER
499 , p_ae_header_id IN NUMBER
500 , p_side IN VARCHAR2
501 , p_override_seg_flag IN VARCHAR2
502 --Automatic Offsets Value
503 , p_source_4 IN VARCHAR2
504 , p_source_4_meaning IN VARCHAR2
505 --Purchase Order Rate Variance Gain Account
506 , p_source_5 IN NUMBER
507 --Invoice Distribution Ledger Amount
508 , p_source_6 IN NUMBER
509 --Destination Type of the PO Distribution
510 , p_source_7 IN VARCHAR2
511 , p_source_7_meaning IN VARCHAR2
512 --Purchase Order Rate Variance Loss Account
513 , p_source_8 IN NUMBER
514 , x_transaction_coa_id OUT NOCOPY NUMBER
515 , x_accounting_coa_id OUT NOCOPY NUMBER
516 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
517 , x_flex_value_set_id OUT NOCOPY NUMBER
518 , x_value_type_code OUT NOCOPY VARCHAR2
519 , x_value_combination_id OUT NOCOPY NUMBER
520 , x_value_segment_code OUT NOCOPY VARCHAR2
521 )
522 RETURN VARCHAR2
523 IS
524 l_component_type VARCHAR2(80) ;
525 l_component_code VARCHAR2(30) ;
526 l_component_type_code VARCHAR2(1) ;
527 l_component_appl_id INTEGER ;
528 l_amb_context_code VARCHAR2(30) ;
529 l_log_module VARCHAR2(240) ;
530 l_output_value VARCHAR2(30) ;
531 BEGIN
532 IF g_log_enabled THEN
533 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
534 END IF;
535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
536
537 trace
538 (p_msg => 'BEGIN of AcctDerRule_3'
539 ,p_level => C_LEVEL_PROCEDURE
540 ,p_module => l_log_module);
541
542 END IF;
543
544 l_component_type := 'AMB_ADR';
545 l_component_code := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
546 l_component_type_code := 'S';
547 l_component_appl_id := 200;
548 l_amb_context_code := 'DEFAULT';
549 x_transaction_coa_id := null;
550 x_accounting_coa_id := null;
551 x_flexfield_segment_code := 'GL_ACCOUNT';
552 x_flex_value_set_id := null ;
553
554
555 IF NVL(p_source_4,'
556 ') = 'ACCOUNT_SEGMENT_VALUE' AND
557 p_source_6 < 0 AND
558 NVL(p_source_7,'
559 ') = 'INVENTORY'
560 THEN
561 --
562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
563
564 trace
565 (p_msg => 'END of AcctDerRule_3'
566 ,p_level => C_LEVEL_PROCEDURE
567 ,p_module => l_log_module);
568
569 END IF;
570 x_value_combination_id := TO_NUMBER(p_source_5) ;
571 x_value_segment_code := 'GL_ACCOUNT' ;
572 x_value_type_code := 'S';
573 l_output_value := null;
574 RETURN l_output_value;
575
576 ELSIF NVL(p_source_4,'
577 ') = 'ACCOUNT_SEGMENT_VALUE' AND
578 p_source_6 > 0 AND
579 NVL(p_source_7,'
580 ') = 'INVENTORY'
581 THEN
582 --
583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
584
585 trace
586 (p_msg => 'END of AcctDerRule_3'
587 ,p_level => C_LEVEL_PROCEDURE
588 ,p_module => l_log_module);
589
590 END IF;
591 x_value_combination_id := TO_NUMBER(p_source_8) ;
592 x_value_segment_code := 'GL_ACCOUNT' ;
593 x_value_type_code := 'S';
594 l_output_value := null;
595 RETURN l_output_value;
596
597 ELSE
598 IF p_override_seg_flag = 'Y' THEN
599 RETURN '#$NO_OVERRIDE#$';
600 END IF;
601 END IF;
602
603 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
604
605 trace
606 (p_msg => 'END of AcctDerRule_3(invalid)'
607 ,p_level => C_LEVEL_PROCEDURE
608 ,p_module => l_log_module);
609
610 END IF;
611
612 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
613 x_value_combination_id := null;
614 x_value_segment_code := null;
615 x_value_type_code := null;
616 l_output_value := null;
617 xla_accounting_err_pkg.build_message
618 (p_appli_s_name => 'XLA'
619 ,p_msg_name => 'XLA_AP_INVALID_ADR'
620 ,p_token_1 => 'COMPONENT_NAME'
624 , l_component_type_code
621 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
622 l_component_type
623 , l_component_code
625 , l_component_appl_id
626 , l_amb_context_code
627 )
628 ,p_token_2 => 'OWNER'
629 ,p_value_2 => xla_lookups_pkg.get_meaning(
630 'XLA_OWNER_TYPE'
631 ,l_component_type_code
632 )
633 ,p_token_3 => 'PAD_NAME'
634 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
635 ,p_token_4 => 'PAD_OWNER'
636 ,p_value_4 => xla_lookups_pkg.get_meaning(
637 'XLA_OWNER_TYPE'
638 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
639 )
640 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
641 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
642 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
643 ,p_ae_header_id => NULL
644 );
645 RETURN l_output_value;
646 EXCEPTION
647 WHEN xla_exceptions_pkg.application_exception THEN
648 RAISE;
649 WHEN OTHERS THEN
650 xla_exceptions_pkg.raise_message
651 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_3');
652 END AcctDerRule_3;
653 --
654
655 ---------------------------------------
656 --
657 -- PRIVATE FUNCTION
658 -- AcctDerRule_4
659 --
660 ---------------------------------------
661 FUNCTION AcctDerRule_4 (
662 p_application_id IN NUMBER
663 , p_ae_header_id IN NUMBER
664 , p_side IN VARCHAR2
665 , p_override_seg_flag IN VARCHAR2
666 --Automatic Offsets Value
667 , p_source_4 IN VARCHAR2
668 , p_source_4_meaning IN VARCHAR2
669 --Purchase Order Rate Variance Gain Account
670 , p_source_5 IN NUMBER
671 --Destination Type of the PO Distribution
672 , p_source_7 IN VARCHAR2
673 , p_source_7_meaning IN VARCHAR2
674 --Purchase Order Rate Variance Loss Account
675 , p_source_8 IN NUMBER
676 --Payment Distribution (Payment Rate) Ledger Amount
677 , p_source_9 IN NUMBER
678 --Payment Distribution (Cleared Rate) Ledger Amount
679 , p_source_10 IN NUMBER
680 , x_transaction_coa_id OUT NOCOPY NUMBER
681 , x_accounting_coa_id OUT NOCOPY NUMBER
682 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
683 , x_flex_value_set_id OUT NOCOPY NUMBER
684 , x_value_type_code OUT NOCOPY VARCHAR2
685 , x_value_combination_id OUT NOCOPY NUMBER
686 , x_value_segment_code OUT NOCOPY VARCHAR2
687 )
688 RETURN VARCHAR2
689 IS
690 l_component_type VARCHAR2(80) ;
691 l_component_code VARCHAR2(30) ;
692 l_component_type_code VARCHAR2(1) ;
693 l_component_appl_id INTEGER ;
694 l_amb_context_code VARCHAR2(30) ;
695 l_log_module VARCHAR2(240) ;
696 l_output_value VARCHAR2(30) ;
697 BEGIN
698 IF g_log_enabled THEN
699 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
700 END IF;
701 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
702
703 trace
704 (p_msg => 'BEGIN of AcctDerRule_4'
705 ,p_level => C_LEVEL_PROCEDURE
706 ,p_module => l_log_module);
707
708 END IF;
709
710 l_component_type := 'AMB_ADR';
711 l_component_code := 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH';
712 l_component_type_code := 'S';
713 l_component_appl_id := 200;
714 l_amb_context_code := 'DEFAULT';
715 x_transaction_coa_id := null;
716 x_accounting_coa_id := null;
717 x_flexfield_segment_code := 'GL_ACCOUNT';
718 x_flex_value_set_id := null ;
719
720
721 IF NVL(p_source_4,'
722 ') = 'ACCOUNT_SEGMENT_VALUE' AND
723 NVL(p_source_7,'
724 ') = 'INVENTORY' AND
725 (p_source_9 < 0 OR
726 p_source_10 < 0)
727 THEN
728 --
729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
730
731 trace
732 (p_msg => 'END of AcctDerRule_4'
733 ,p_level => C_LEVEL_PROCEDURE
734 ,p_module => l_log_module);
735
736 END IF;
737 x_value_combination_id := TO_NUMBER(p_source_5) ;
738 x_value_segment_code := 'GL_ACCOUNT' ;
739 x_value_type_code := 'S';
740 l_output_value := null;
741 RETURN l_output_value;
742
743 ELSIF NVL(p_source_4,'
744 ') = 'ACCOUNT_SEGMENT_VALUE' AND
745 NVL(p_source_7,'
746 ') = 'INVENTORY' AND
747 (p_source_9 > 0 OR
748 p_source_10 > 0)
749 THEN
753 trace
750 --
751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
752
754 (p_msg => 'END of AcctDerRule_4'
755 ,p_level => C_LEVEL_PROCEDURE
756 ,p_module => l_log_module);
757
758 END IF;
759 x_value_combination_id := TO_NUMBER(p_source_8) ;
760 x_value_segment_code := 'GL_ACCOUNT' ;
761 x_value_type_code := 'S';
762 l_output_value := null;
763 RETURN l_output_value;
764
765 ELSE
766 IF p_override_seg_flag = 'Y' THEN
767 RETURN '#$NO_OVERRIDE#$';
768 END IF;
769 END IF;
770
771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
772
773 trace
774 (p_msg => 'END of AcctDerRule_4(invalid)'
775 ,p_level => C_LEVEL_PROCEDURE
776 ,p_module => l_log_module);
777
778 END IF;
779
780 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
781 x_value_combination_id := null;
782 x_value_segment_code := null;
783 x_value_type_code := null;
784 l_output_value := null;
785 xla_accounting_err_pkg.build_message
786 (p_appli_s_name => 'XLA'
787 ,p_msg_name => 'XLA_AP_INVALID_ADR'
788 ,p_token_1 => 'COMPONENT_NAME'
789 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
790 l_component_type
791 , l_component_code
792 , l_component_type_code
793 , l_component_appl_id
794 , l_amb_context_code
795 )
796 ,p_token_2 => 'OWNER'
797 ,p_value_2 => xla_lookups_pkg.get_meaning(
798 'XLA_OWNER_TYPE'
799 ,l_component_type_code
800 )
801 ,p_token_3 => 'PAD_NAME'
802 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
803 ,p_token_4 => 'PAD_OWNER'
804 ,p_value_4 => xla_lookups_pkg.get_meaning(
805 'XLA_OWNER_TYPE'
806 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
807 )
808 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
809 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
810 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
811 ,p_ae_header_id => NULL
812 );
813 RETURN l_output_value;
814 EXCEPTION
815 WHEN xla_exceptions_pkg.application_exception THEN
816 RAISE;
817 WHEN OTHERS THEN
818 xla_exceptions_pkg.raise_message
819 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_4');
820 END AcctDerRule_4;
821 --
822
823 ---------------------------------------
824 --
825 -- PRIVATE FUNCTION
826 -- AcctDerRule_5
827 --
828 ---------------------------------------
829 FUNCTION AcctDerRule_5 (
830 p_application_id IN NUMBER
831 , p_ae_header_id IN NUMBER
832 , p_side IN VARCHAR2
833 , p_override_seg_flag IN VARCHAR2
834 --Automatic Offsets Value
835 , p_source_4 IN VARCHAR2
836 , p_source_4_meaning IN VARCHAR2
837 --Purchase Order Rate Variance Gain Account
838 , p_source_5 IN NUMBER
839 --Destination Type of the PO Distribution
840 , p_source_7 IN VARCHAR2
841 , p_source_7_meaning IN VARCHAR2
842 , x_transaction_coa_id OUT NOCOPY NUMBER
843 , x_accounting_coa_id OUT NOCOPY NUMBER
844 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
845 , x_flex_value_set_id OUT NOCOPY NUMBER
846 , x_value_type_code OUT NOCOPY VARCHAR2
847 , x_value_combination_id OUT NOCOPY NUMBER
848 , x_value_segment_code OUT NOCOPY VARCHAR2
849 )
850 RETURN VARCHAR2
851 IS
852 l_component_type VARCHAR2(80) ;
853 l_component_code VARCHAR2(30) ;
854 l_component_type_code VARCHAR2(1) ;
855 l_component_appl_id INTEGER ;
856 l_amb_context_code VARCHAR2(30) ;
857 l_log_module VARCHAR2(240) ;
858 l_output_value VARCHAR2(30) ;
859 BEGIN
860 IF g_log_enabled THEN
861 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
862 END IF;
863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
864
865 trace
866 (p_msg => 'BEGIN of AcctDerRule_5'
867 ,p_level => C_LEVEL_PROCEDURE
868 ,p_module => l_log_module);
869
870 END IF;
871
872 l_component_type := 'AMB_ADR';
873 l_component_code := 'AP_ERV_GAIN_NAT_ACCT_SEG';
874 l_component_type_code := 'S';
875 l_component_appl_id := 200;
879 x_flexfield_segment_code := 'GL_ACCOUNT';
876 l_amb_context_code := 'DEFAULT';
877 x_transaction_coa_id := null;
878 x_accounting_coa_id := null;
880 x_flex_value_set_id := null ;
881
882
883 IF NVL(p_source_4,'
884 ') = 'ACCOUNT_SEGMENT_VALUE' AND
885 NVL(p_source_7,'
886 ') = 'INVENTORY'
887 THEN
888 --
889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
890
891 trace
892 (p_msg => 'END of AcctDerRule_5'
893 ,p_level => C_LEVEL_PROCEDURE
894 ,p_module => l_log_module);
895
896 END IF;
897 x_value_combination_id := TO_NUMBER(p_source_5) ;
898 x_value_segment_code := 'GL_ACCOUNT' ;
899 x_value_type_code := 'S';
900 l_output_value := null;
901 RETURN l_output_value;
902
903 ELSE
904 IF p_override_seg_flag = 'Y' THEN
905 RETURN '#$NO_OVERRIDE#$';
906 END IF;
907 END IF;
908
909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
910
911 trace
912 (p_msg => 'END of AcctDerRule_5(invalid)'
913 ,p_level => C_LEVEL_PROCEDURE
914 ,p_module => l_log_module);
915
916 END IF;
917
918 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
919 x_value_combination_id := null;
920 x_value_segment_code := null;
921 x_value_type_code := null;
922 l_output_value := null;
923 xla_accounting_err_pkg.build_message
924 (p_appli_s_name => 'XLA'
925 ,p_msg_name => 'XLA_AP_INVALID_ADR'
926 ,p_token_1 => 'COMPONENT_NAME'
927 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
928 l_component_type
929 , l_component_code
930 , l_component_type_code
931 , l_component_appl_id
932 , l_amb_context_code
933 )
934 ,p_token_2 => 'OWNER'
935 ,p_value_2 => xla_lookups_pkg.get_meaning(
936 'XLA_OWNER_TYPE'
937 ,l_component_type_code
938 )
939 ,p_token_3 => 'PAD_NAME'
940 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
941 ,p_token_4 => 'PAD_OWNER'
942 ,p_value_4 => xla_lookups_pkg.get_meaning(
943 'XLA_OWNER_TYPE'
944 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
945 )
946 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
947 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
948 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
949 ,p_ae_header_id => NULL
950 );
951 RETURN l_output_value;
952 EXCEPTION
953 WHEN xla_exceptions_pkg.application_exception THEN
954 RAISE;
955 WHEN OTHERS THEN
956 xla_exceptions_pkg.raise_message
957 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_5');
958 END AcctDerRule_5;
959 --
960
961 ---------------------------------------
962 --
963 -- PRIVATE FUNCTION
964 -- AcctDerRule_6
965 --
966 ---------------------------------------
967 FUNCTION AcctDerRule_6 (
968 p_application_id IN NUMBER
969 , p_ae_header_id IN NUMBER
970 , p_side IN VARCHAR2
971 , p_override_seg_flag IN VARCHAR2
972 --Automatic Offsets Value
973 , p_source_4 IN VARCHAR2
974 , p_source_4_meaning IN VARCHAR2
975 --Destination Type of the PO Distribution
976 , p_source_7 IN VARCHAR2
977 , p_source_7_meaning IN VARCHAR2
978 --Purchase Order Rate Variance Loss Account
979 , p_source_8 IN NUMBER
980 , x_transaction_coa_id OUT NOCOPY NUMBER
981 , x_accounting_coa_id OUT NOCOPY NUMBER
982 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
983 , x_flex_value_set_id OUT NOCOPY NUMBER
984 , x_value_type_code OUT NOCOPY VARCHAR2
985 , x_value_combination_id OUT NOCOPY NUMBER
986 , x_value_segment_code OUT NOCOPY VARCHAR2
987 )
988 RETURN VARCHAR2
989 IS
990 l_component_type VARCHAR2(80) ;
991 l_component_code VARCHAR2(30) ;
992 l_component_type_code VARCHAR2(1) ;
993 l_component_appl_id INTEGER ;
994 l_amb_context_code VARCHAR2(30) ;
995 l_log_module VARCHAR2(240) ;
996 l_output_value VARCHAR2(30) ;
997 BEGIN
998 IF g_log_enabled THEN
999 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1000 END IF;
1001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1002
1003 trace
1007
1004 (p_msg => 'BEGIN of AcctDerRule_6'
1005 ,p_level => C_LEVEL_PROCEDURE
1006 ,p_module => l_log_module);
1008 END IF;
1009
1010 l_component_type := 'AMB_ADR';
1011 l_component_code := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1012 l_component_type_code := 'S';
1013 l_component_appl_id := 200;
1014 l_amb_context_code := 'DEFAULT';
1015 x_transaction_coa_id := null;
1016 x_accounting_coa_id := null;
1017 x_flexfield_segment_code := 'GL_ACCOUNT';
1018 x_flex_value_set_id := null ;
1019
1020
1021 IF NVL(p_source_4,'
1022 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1023 NVL(p_source_7,'
1024 ') = 'INVENTORY'
1025 THEN
1026 --
1027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1028
1029 trace
1030 (p_msg => 'END of AcctDerRule_6'
1031 ,p_level => C_LEVEL_PROCEDURE
1032 ,p_module => l_log_module);
1033
1034 END IF;
1035 x_value_combination_id := TO_NUMBER(p_source_8) ;
1036 x_value_segment_code := 'GL_ACCOUNT' ;
1037 x_value_type_code := 'S';
1038 l_output_value := null;
1039 RETURN l_output_value;
1040
1041 ELSE
1042 IF p_override_seg_flag = 'Y' THEN
1043 RETURN '#$NO_OVERRIDE#$';
1044 END IF;
1045 END IF;
1046
1047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1048
1049 trace
1050 (p_msg => 'END of AcctDerRule_6(invalid)'
1051 ,p_level => C_LEVEL_PROCEDURE
1052 ,p_module => l_log_module);
1053
1054 END IF;
1055
1056 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1057 x_value_combination_id := null;
1058 x_value_segment_code := null;
1059 x_value_type_code := null;
1060 l_output_value := null;
1061 xla_accounting_err_pkg.build_message
1062 (p_appli_s_name => 'XLA'
1063 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1064 ,p_token_1 => 'COMPONENT_NAME'
1065 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1066 l_component_type
1067 , l_component_code
1068 , l_component_type_code
1069 , l_component_appl_id
1070 , l_amb_context_code
1071 )
1072 ,p_token_2 => 'OWNER'
1073 ,p_value_2 => xla_lookups_pkg.get_meaning(
1074 'XLA_OWNER_TYPE'
1075 ,l_component_type_code
1076 )
1077 ,p_token_3 => 'PAD_NAME'
1078 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1079 ,p_token_4 => 'PAD_OWNER'
1080 ,p_value_4 => xla_lookups_pkg.get_meaning(
1081 'XLA_OWNER_TYPE'
1082 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1083 )
1084 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1085 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1086 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1087 ,p_ae_header_id => NULL
1088 );
1089 RETURN l_output_value;
1090 EXCEPTION
1091 WHEN xla_exceptions_pkg.application_exception THEN
1092 RAISE;
1093 WHEN OTHERS THEN
1094 xla_exceptions_pkg.raise_message
1095 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_6');
1096 END AcctDerRule_6;
1097 --
1098
1099 ---------------------------------------
1100 --
1101 -- PRIVATE FUNCTION
1102 -- AcctDerRule_7
1103 --
1104 ---------------------------------------
1105 FUNCTION AcctDerRule_7 (
1106 p_application_id IN NUMBER
1107 , p_ae_header_id IN NUMBER
1108 , p_side IN VARCHAR2
1109 , p_override_seg_flag IN VARCHAR2
1110 --Automatic Offsets Value
1111 , p_source_4 IN VARCHAR2
1112 , p_source_4_meaning IN VARCHAR2
1113 --Bank Future Dated Payment Account
1114 , p_source_11 IN NUMBER
1115 --Future Dated Payment Account Source Option
1116 , p_source_12 IN VARCHAR2
1117 , p_source_12_meaning IN VARCHAR2
1118 --Financials Options Future Dated Payment Account
1119 , p_source_13 IN NUMBER
1120 --Supplier Site Future Dated Payment Account
1121 , p_source_14 IN NUMBER
1122 , x_transaction_coa_id OUT NOCOPY NUMBER
1123 , x_accounting_coa_id OUT NOCOPY NUMBER
1124 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1125 , x_flex_value_set_id OUT NOCOPY NUMBER
1126 , x_value_type_code OUT NOCOPY VARCHAR2
1127 , x_value_combination_id OUT NOCOPY NUMBER
1128 , x_value_segment_code OUT NOCOPY VARCHAR2
1129 )
1133 l_component_code VARCHAR2(30) ;
1130 RETURN VARCHAR2
1131 IS
1132 l_component_type VARCHAR2(80) ;
1134 l_component_type_code VARCHAR2(1) ;
1135 l_component_appl_id INTEGER ;
1136 l_amb_context_code VARCHAR2(30) ;
1137 l_log_module VARCHAR2(240) ;
1138 l_output_value VARCHAR2(30) ;
1139 BEGIN
1140 IF g_log_enabled THEN
1141 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1142 END IF;
1143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1144
1145 trace
1146 (p_msg => 'BEGIN of AcctDerRule_7'
1147 ,p_level => C_LEVEL_PROCEDURE
1148 ,p_module => l_log_module);
1149
1150 END IF;
1151
1152 l_component_type := 'AMB_ADR';
1153 l_component_code := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1154 l_component_type_code := 'S';
1155 l_component_appl_id := 200;
1156 l_amb_context_code := 'DEFAULT';
1157 x_transaction_coa_id := null;
1158 x_accounting_coa_id := null;
1159 x_flexfield_segment_code := 'GL_ACCOUNT';
1160 x_flex_value_set_id := null ;
1161
1162
1163 IF (NVL(p_source_4,'
1164 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1165 NVL(p_source_12,'
1166 ') = 'BANK ACCOUNT') AND
1167 TO_NUMBER(p_source_11) IS NOT NULL
1168 THEN
1169 --
1170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1171
1172 trace
1173 (p_msg => 'END of AcctDerRule_7'
1174 ,p_level => C_LEVEL_PROCEDURE
1175 ,p_module => l_log_module);
1176
1177 END IF;
1178 x_value_combination_id := TO_NUMBER(p_source_11) ;
1179 x_value_segment_code := 'GL_ACCOUNT' ;
1180 x_value_type_code := 'S';
1181 l_output_value := null;
1182 RETURN l_output_value;
1183
1184 ELSIF NVL(p_source_4,'
1185 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1186 NVL(p_source_12,'
1187 ') = 'BANK ACCOUNT'
1188 THEN
1189 --
1190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1191
1192 trace
1193 (p_msg => 'END of AcctDerRule_7'
1194 ,p_level => C_LEVEL_PROCEDURE
1195 ,p_module => l_log_module);
1196
1197 END IF;
1198 x_value_combination_id := TO_NUMBER(p_source_13) ;
1199 x_value_segment_code := 'GL_ACCOUNT' ;
1200 x_value_type_code := 'S';
1201 l_output_value := null;
1202 RETURN l_output_value;
1203
1204 ELSIF NVL(p_source_4,'
1205 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1206 NVL(p_source_12,'
1207 ') = 'SUPPLIER SITE' AND
1208 TO_NUMBER(p_source_14) IS NOT NULL
1209 THEN
1210 --
1211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1212
1213 trace
1214 (p_msg => 'END of AcctDerRule_7'
1215 ,p_level => C_LEVEL_PROCEDURE
1216 ,p_module => l_log_module);
1217
1218 END IF;
1219 x_value_combination_id := TO_NUMBER(p_source_14) ;
1220 x_value_segment_code := 'GL_ACCOUNT' ;
1221 x_value_type_code := 'S';
1222 l_output_value := null;
1223 RETURN l_output_value;
1224
1225 ELSIF NVL(p_source_4,'
1226 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1227 NVL(p_source_12,'
1228 ') = 'SUPPLIER SITE'
1229 THEN
1230 --
1231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1232
1233 trace
1234 (p_msg => 'END of AcctDerRule_7'
1235 ,p_level => C_LEVEL_PROCEDURE
1236 ,p_module => l_log_module);
1237
1238 END IF;
1239 x_value_combination_id := TO_NUMBER(p_source_13) ;
1240 x_value_segment_code := 'GL_ACCOUNT' ;
1241 x_value_type_code := 'S';
1242 l_output_value := null;
1243 RETURN l_output_value;
1244
1245 ELSE
1246 IF p_override_seg_flag = 'Y' THEN
1247 RETURN '#$NO_OVERRIDE#$';
1248 END IF;
1249 END IF;
1250
1251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1252
1253 trace
1254 (p_msg => 'END of AcctDerRule_7(invalid)'
1255 ,p_level => C_LEVEL_PROCEDURE
1256 ,p_module => l_log_module);
1257
1258 END IF;
1259
1260 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1261 x_value_combination_id := null;
1262 x_value_segment_code := null;
1263 x_value_type_code := null;
1264 l_output_value := null;
1265 xla_accounting_err_pkg.build_message
1266 (p_appli_s_name => 'XLA'
1267 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1268 ,p_token_1 => 'COMPONENT_NAME'
1269 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1270 l_component_type
1271 , l_component_code
1272 , l_component_type_code
1273 , l_component_appl_id
1274 , l_amb_context_code
1275 )
1276 ,p_token_2 => 'OWNER'
1277 ,p_value_2 => xla_lookups_pkg.get_meaning(
1278 'XLA_OWNER_TYPE'
1282 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1279 ,l_component_type_code
1280 )
1281 ,p_token_3 => 'PAD_NAME'
1283 ,p_token_4 => 'PAD_OWNER'
1284 ,p_value_4 => xla_lookups_pkg.get_meaning(
1285 'XLA_OWNER_TYPE'
1286 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1287 )
1288 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1289 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1290 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1291 ,p_ae_header_id => NULL
1292 );
1293 RETURN l_output_value;
1294 EXCEPTION
1295 WHEN xla_exceptions_pkg.application_exception THEN
1296 RAISE;
1297 WHEN OTHERS THEN
1298 xla_exceptions_pkg.raise_message
1299 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_7');
1300 END AcctDerRule_7;
1301 --
1302
1303 ---------------------------------------
1304 --
1305 -- PRIVATE FUNCTION
1306 -- AcctDerRule_8
1307 --
1308 ---------------------------------------
1309 FUNCTION AcctDerRule_8 (
1310 p_application_id IN NUMBER
1311 , p_ae_header_id IN NUMBER
1312 , p_side IN VARCHAR2
1313 , p_override_seg_flag IN VARCHAR2
1314 --Interest Account
1315 , p_source_15 IN NUMBER
1316 --Prorate Interest Invoice Across Distributions Option
1317 , p_source_16 IN VARCHAR2
1318 , x_transaction_coa_id OUT NOCOPY NUMBER
1319 , x_accounting_coa_id OUT NOCOPY NUMBER
1320 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1321 , x_flex_value_set_id OUT NOCOPY NUMBER
1322 , x_value_type_code OUT NOCOPY VARCHAR2
1323 , x_value_combination_id OUT NOCOPY NUMBER
1324 , x_value_segment_code OUT NOCOPY VARCHAR2
1325 )
1326 RETURN VARCHAR2
1327 IS
1328 l_component_type VARCHAR2(80) ;
1329 l_component_code VARCHAR2(30) ;
1330 l_component_type_code VARCHAR2(1) ;
1331 l_component_appl_id INTEGER ;
1332 l_amb_context_code VARCHAR2(30) ;
1333 l_log_module VARCHAR2(240) ;
1334 l_output_value VARCHAR2(30) ;
1335 BEGIN
1336 IF g_log_enabled THEN
1337 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1338 END IF;
1339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1340
1341 trace
1342 (p_msg => 'BEGIN of AcctDerRule_8'
1343 ,p_level => C_LEVEL_PROCEDURE
1344 ,p_module => l_log_module);
1345
1346 END IF;
1347
1348 l_component_type := 'AMB_ADR';
1349 l_component_code := 'AP_INTEREST_NAT_ACCT_SEG';
1350 l_component_type_code := 'S';
1351 l_component_appl_id := 200;
1352 l_amb_context_code := 'DEFAULT';
1353 x_transaction_coa_id := null;
1354 x_accounting_coa_id := null;
1355 x_flexfield_segment_code := 'GL_ACCOUNT';
1356 x_flex_value_set_id := null ;
1357
1358
1359 IF NVL(p_source_16,'
1360 ') = 'Y'
1361 THEN
1362 --
1363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1364
1365 trace
1366 (p_msg => 'END of AcctDerRule_8'
1367 ,p_level => C_LEVEL_PROCEDURE
1368 ,p_module => l_log_module);
1369
1370 END IF;
1371 x_value_combination_id := TO_NUMBER(p_source_15) ;
1372 x_value_segment_code := 'GL_ACCOUNT' ;
1373 x_value_type_code := 'S';
1374 l_output_value := null;
1375 RETURN l_output_value;
1376
1377 ELSE
1378 IF p_override_seg_flag = 'Y' THEN
1379 RETURN '#$NO_OVERRIDE#$';
1380 END IF;
1381 END IF;
1382
1383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1384
1385 trace
1386 (p_msg => 'END of AcctDerRule_8(invalid)'
1387 ,p_level => C_LEVEL_PROCEDURE
1388 ,p_module => l_log_module);
1389
1390 END IF;
1391
1392 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1393 x_value_combination_id := null;
1394 x_value_segment_code := null;
1395 x_value_type_code := null;
1396 l_output_value := null;
1397 xla_accounting_err_pkg.build_message
1398 (p_appli_s_name => 'XLA'
1399 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1400 ,p_token_1 => 'COMPONENT_NAME'
1401 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1402 l_component_type
1403 , l_component_code
1404 , l_component_type_code
1405 , l_component_appl_id
1406 , l_amb_context_code
1407 )
1408 ,p_token_2 => 'OWNER'
1412 )
1409 ,p_value_2 => xla_lookups_pkg.get_meaning(
1410 'XLA_OWNER_TYPE'
1411 ,l_component_type_code
1413 ,p_token_3 => 'PAD_NAME'
1414 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1415 ,p_token_4 => 'PAD_OWNER'
1416 ,p_value_4 => xla_lookups_pkg.get_meaning(
1417 'XLA_OWNER_TYPE'
1418 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1419 )
1420 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1421 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1422 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1423 ,p_ae_header_id => NULL
1424 );
1425 RETURN l_output_value;
1426 EXCEPTION
1427 WHEN xla_exceptions_pkg.application_exception THEN
1428 RAISE;
1429 WHEN OTHERS THEN
1430 xla_exceptions_pkg.raise_message
1431 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_8');
1432 END AcctDerRule_8;
1433 --
1434
1435 ---------------------------------------
1436 --
1437 -- PRIVATE FUNCTION
1438 -- AcctDerRule_9
1439 --
1440 ---------------------------------------
1441 FUNCTION AcctDerRule_9 (
1442 p_application_id IN NUMBER
1443 , p_ae_header_id IN NUMBER
1444 , p_side IN VARCHAR2
1445 , p_override_seg_flag IN VARCHAR2
1446 --Invoice Distribution Account
1447 , p_source_17 IN NUMBER
1448 --Prepaid Expense Account Source Option
1449 , p_source_18 IN VARCHAR2
1450 , p_source_18_meaning IN VARCHAR2
1451 --Purchase Order Number
1452 , p_source_19 IN VARCHAR2
1453 --Invoice Distribution Type
1454 , p_source_20 IN VARCHAR2
1455 , p_source_20_meaning IN VARCHAR2
1456 , x_transaction_coa_id OUT NOCOPY NUMBER
1457 , x_accounting_coa_id OUT NOCOPY NUMBER
1458 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1459 , x_flex_value_set_id OUT NOCOPY NUMBER
1460 , x_value_type_code OUT NOCOPY VARCHAR2
1461 , x_value_combination_id OUT NOCOPY NUMBER
1462 , x_value_segment_code OUT NOCOPY VARCHAR2
1463 )
1464 RETURN VARCHAR2
1465 IS
1466 l_component_type VARCHAR2(80) ;
1467 l_component_code VARCHAR2(30) ;
1468 l_component_type_code VARCHAR2(1) ;
1469 l_component_appl_id INTEGER ;
1470 l_amb_context_code VARCHAR2(30) ;
1471 l_log_module VARCHAR2(240) ;
1472 l_output_value VARCHAR2(30) ;
1473 BEGIN
1474 IF g_log_enabled THEN
1475 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1476 END IF;
1477 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1478
1479 trace
1480 (p_msg => 'BEGIN of AcctDerRule_9'
1481 ,p_level => C_LEVEL_PROCEDURE
1482 ,p_module => l_log_module);
1483
1484 END IF;
1485
1486 l_component_type := 'AMB_ADR';
1487 l_component_code := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
1488 l_component_type_code := 'S';
1489 l_component_appl_id := 200;
1490 l_amb_context_code := 'DEFAULT';
1491 x_transaction_coa_id := null;
1492 x_accounting_coa_id := null;
1493 x_flexfield_segment_code := 'GL_ACCOUNT';
1494 x_flex_value_set_id := null ;
1495
1496
1497 IF NVL(p_source_18,'
1498 ') = 'Y' AND
1499 p_source_19 IS NOT NULL AND
1500 NVL(p_source_20,'
1501 ') = 'ITEM'
1502 THEN
1503 --
1504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1505
1506 trace
1507 (p_msg => 'END of AcctDerRule_9'
1508 ,p_level => C_LEVEL_PROCEDURE
1509 ,p_module => l_log_module);
1510
1511 END IF;
1512 x_value_combination_id := TO_NUMBER(p_source_17) ;
1513 x_value_segment_code := 'GL_ACCOUNT' ;
1514 x_value_type_code := 'S';
1515 l_output_value := null;
1516 RETURN l_output_value;
1517
1518 ELSE
1519 IF p_override_seg_flag = 'Y' THEN
1520 RETURN '#$NO_OVERRIDE#$';
1521 END IF;
1522 END IF;
1523
1524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1525
1526 trace
1527 (p_msg => 'END of AcctDerRule_9(invalid)'
1528 ,p_level => C_LEVEL_PROCEDURE
1529 ,p_module => l_log_module);
1530
1531 END IF;
1532
1533 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1534 x_value_combination_id := null;
1535 x_value_segment_code := null;
1536 x_value_type_code := null;
1537 l_output_value := null;
1538 xla_accounting_err_pkg.build_message
1539 (p_appli_s_name => 'XLA'
1540 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1541 ,p_token_1 => 'COMPONENT_NAME'
1542 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1546 , l_component_appl_id
1543 l_component_type
1544 , l_component_code
1545 , l_component_type_code
1547 , l_amb_context_code
1548 )
1549 ,p_token_2 => 'OWNER'
1550 ,p_value_2 => xla_lookups_pkg.get_meaning(
1551 'XLA_OWNER_TYPE'
1552 ,l_component_type_code
1553 )
1554 ,p_token_3 => 'PAD_NAME'
1555 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1556 ,p_token_4 => 'PAD_OWNER'
1557 ,p_value_4 => xla_lookups_pkg.get_meaning(
1558 'XLA_OWNER_TYPE'
1559 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1560 )
1561 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1562 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1563 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1564 ,p_ae_header_id => NULL
1565 );
1566 RETURN l_output_value;
1567 EXCEPTION
1568 WHEN xla_exceptions_pkg.application_exception THEN
1569 RAISE;
1570 WHEN OTHERS THEN
1571 xla_exceptions_pkg.raise_message
1572 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_9');
1573 END AcctDerRule_9;
1574 --
1575
1576 ---------------------------------------
1577 --
1578 -- PRIVATE FUNCTION
1579 -- AcctDerRule_10
1580 --
1581 ---------------------------------------
1582 FUNCTION AcctDerRule_10 (
1583 p_application_id IN NUMBER
1584 , p_ae_header_id IN NUMBER
1585 , p_side IN VARCHAR2
1586 , p_override_seg_flag IN VARCHAR2
1587 --Automatic Offsets Value
1588 , p_source_4 IN VARCHAR2
1589 , p_source_4_meaning IN VARCHAR2
1590 --Invoice Distribution Account
1591 , p_source_17 IN NUMBER
1592 , x_transaction_coa_id OUT NOCOPY NUMBER
1593 , x_accounting_coa_id OUT NOCOPY NUMBER
1594 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1595 , x_flex_value_set_id OUT NOCOPY NUMBER
1596 , x_value_type_code OUT NOCOPY VARCHAR2
1597 , x_value_combination_id OUT NOCOPY NUMBER
1598 , x_value_segment_code OUT NOCOPY VARCHAR2
1599 )
1600 RETURN VARCHAR2
1601 IS
1602 l_component_type VARCHAR2(80) ;
1603 l_component_code VARCHAR2(30) ;
1604 l_component_type_code VARCHAR2(1) ;
1605 l_component_appl_id INTEGER ;
1606 l_amb_context_code VARCHAR2(30) ;
1607 l_log_module VARCHAR2(240) ;
1608 l_output_value VARCHAR2(30) ;
1609 BEGIN
1610 IF g_log_enabled THEN
1611 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1612 END IF;
1613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1614
1615 trace
1616 (p_msg => 'BEGIN of AcctDerRule_10'
1617 ,p_level => C_LEVEL_PROCEDURE
1618 ,p_module => l_log_module);
1619
1620 END IF;
1621
1622 l_component_type := 'AMB_ADR';
1623 l_component_code := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
1624 l_component_type_code := 'S';
1625 l_component_appl_id := 200;
1626 l_amb_context_code := 'DEFAULT';
1627 x_transaction_coa_id := null;
1628 x_accounting_coa_id := null;
1629 x_flexfield_segment_code := 'GL_ACCOUNT';
1630 x_flex_value_set_id := null ;
1631
1632
1633 IF NVL(p_source_4,'
1634 ') = 'ACCOUNT_SEGMENT_VALUE'
1635 THEN
1636 --
1637 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1638
1639 trace
1640 (p_msg => 'END of AcctDerRule_10'
1641 ,p_level => C_LEVEL_PROCEDURE
1642 ,p_module => l_log_module);
1643
1644 END IF;
1645 x_value_combination_id := TO_NUMBER(p_source_17) ;
1646 x_value_segment_code := 'GL_ACCOUNT' ;
1647 x_value_type_code := 'S';
1648 l_output_value := null;
1649 RETURN l_output_value;
1650
1651 ELSE
1652 IF p_override_seg_flag = 'Y' THEN
1653 RETURN '#$NO_OVERRIDE#$';
1654 END IF;
1655 END IF;
1656
1657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1658
1659 trace
1660 (p_msg => 'END of AcctDerRule_10(invalid)'
1661 ,p_level => C_LEVEL_PROCEDURE
1662 ,p_module => l_log_module);
1663
1664 END IF;
1665
1666 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1667 x_value_combination_id := null;
1668 x_value_segment_code := null;
1669 x_value_type_code := null;
1670 l_output_value := null;
1671 xla_accounting_err_pkg.build_message
1672 (p_appli_s_name => 'XLA'
1676 l_component_type
1673 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1674 ,p_token_1 => 'COMPONENT_NAME'
1675 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1677 , l_component_code
1678 , l_component_type_code
1679 , l_component_appl_id
1680 , l_amb_context_code
1681 )
1682 ,p_token_2 => 'OWNER'
1683 ,p_value_2 => xla_lookups_pkg.get_meaning(
1684 'XLA_OWNER_TYPE'
1685 ,l_component_type_code
1686 )
1687 ,p_token_3 => 'PAD_NAME'
1688 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1689 ,p_token_4 => 'PAD_OWNER'
1690 ,p_value_4 => xla_lookups_pkg.get_meaning(
1691 'XLA_OWNER_TYPE'
1692 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1693 )
1694 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1695 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1696 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1697 ,p_ae_header_id => NULL
1698 );
1699 RETURN l_output_value;
1700 EXCEPTION
1701 WHEN xla_exceptions_pkg.application_exception THEN
1702 RAISE;
1703 WHEN OTHERS THEN
1704 xla_exceptions_pkg.raise_message
1705 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_10');
1706 END AcctDerRule_10;
1707 --
1708
1709 ---------------------------------------
1710 --
1711 -- PRIVATE FUNCTION
1712 -- AcctDerRule_11
1713 --
1714 ---------------------------------------
1715 FUNCTION AcctDerRule_11 (
1716 p_application_id IN NUMBER
1717 , p_ae_header_id IN NUMBER
1718 , p_side IN VARCHAR2
1719 , p_override_seg_flag IN VARCHAR2
1720 --Bank Cash Clearing Account
1721 , p_source_21 IN NUMBER
1722 , x_transaction_coa_id OUT NOCOPY NUMBER
1723 , x_accounting_coa_id OUT NOCOPY NUMBER
1724 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1725 , x_flex_value_set_id OUT NOCOPY NUMBER
1726 , x_value_type_code OUT NOCOPY VARCHAR2
1727 , x_value_combination_id OUT NOCOPY NUMBER
1728 , x_value_segment_code OUT NOCOPY VARCHAR2
1729 )
1730 RETURN VARCHAR2
1731 IS
1732 l_component_type VARCHAR2(80) ;
1733 l_component_code VARCHAR2(30) ;
1734 l_component_type_code VARCHAR2(1) ;
1735 l_component_appl_id INTEGER ;
1736 l_amb_context_code VARCHAR2(30) ;
1737 l_log_module VARCHAR2(240) ;
1738 l_output_value VARCHAR2(30) ;
1739 BEGIN
1740 IF g_log_enabled THEN
1741 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1742 END IF;
1743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1744
1745 trace
1746 (p_msg => 'BEGIN of AcctDerRule_11'
1747 ,p_level => C_LEVEL_PROCEDURE
1748 ,p_module => l_log_module);
1749
1750 END IF;
1751
1752 l_component_type := 'AMB_ADR';
1753 l_component_code := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
1754 l_component_type_code := 'S';
1755 l_component_appl_id := 200;
1756 l_amb_context_code := 'DEFAULT';
1757 x_transaction_coa_id := null;
1758 x_accounting_coa_id := null;
1759 x_flexfield_segment_code := 'GL_ACCOUNT';
1760 x_flex_value_set_id := null ;
1761
1762
1763 --
1764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1765
1766 trace
1767 (p_msg => 'END of AcctDerRule_11'
1768 ,p_level => C_LEVEL_PROCEDURE
1769 ,p_module => l_log_module);
1770
1771 END IF;
1772 x_value_combination_id := TO_NUMBER(p_source_21) ;
1773 x_value_segment_code := 'GL_ACCOUNT' ;
1774 x_value_type_code := 'S';
1775 l_output_value := null;
1776 RETURN l_output_value;
1777
1778
1779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1780
1781 trace
1782 (p_msg => 'END of AcctDerRule_11(invalid)'
1783 ,p_level => C_LEVEL_PROCEDURE
1784 ,p_module => l_log_module);
1785
1786 END IF;
1787
1788 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1789 x_value_combination_id := null;
1790 x_value_segment_code := null;
1791 x_value_type_code := null;
1792 l_output_value := null;
1793 xla_accounting_err_pkg.build_message
1794 (p_appli_s_name => 'XLA'
1795 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1796 ,p_token_1 => 'COMPONENT_NAME'
1800 , l_component_type_code
1797 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1798 l_component_type
1799 , l_component_code
1801 , l_component_appl_id
1802 , l_amb_context_code
1803 )
1804 ,p_token_2 => 'OWNER'
1805 ,p_value_2 => xla_lookups_pkg.get_meaning(
1806 'XLA_OWNER_TYPE'
1807 ,l_component_type_code
1808 )
1809 ,p_token_3 => 'PAD_NAME'
1810 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1811 ,p_token_4 => 'PAD_OWNER'
1812 ,p_value_4 => xla_lookups_pkg.get_meaning(
1813 'XLA_OWNER_TYPE'
1814 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1815 )
1816 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1817 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1818 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1819 ,p_ae_header_id => NULL
1820 );
1821 RETURN l_output_value;
1822 EXCEPTION
1823 WHEN xla_exceptions_pkg.application_exception THEN
1824 RAISE;
1825 WHEN OTHERS THEN
1826 xla_exceptions_pkg.raise_message
1827 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_11');
1828 END AcctDerRule_11;
1829 --
1830
1831 ---------------------------------------
1832 --
1833 -- PRIVATE FUNCTION
1834 -- AcctDerRule_12
1835 --
1836 ---------------------------------------
1837 FUNCTION AcctDerRule_12 (
1838 p_application_id IN NUMBER
1839 , p_ae_header_id IN NUMBER
1840 , p_side IN VARCHAR2
1841 , p_override_seg_flag IN VARCHAR2
1842 --Retainage Account
1843 , p_source_22 IN NUMBER
1844 , x_transaction_coa_id OUT NOCOPY NUMBER
1845 , x_accounting_coa_id OUT NOCOPY NUMBER
1846 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1847 , x_flex_value_set_id OUT NOCOPY NUMBER
1848 , x_value_type_code OUT NOCOPY VARCHAR2
1849 , x_value_combination_id OUT NOCOPY NUMBER
1850 , x_value_segment_code OUT NOCOPY VARCHAR2
1851 )
1852 RETURN VARCHAR2
1853 IS
1854 l_component_type VARCHAR2(80) ;
1855 l_component_code VARCHAR2(30) ;
1856 l_component_type_code VARCHAR2(1) ;
1857 l_component_appl_id INTEGER ;
1858 l_amb_context_code VARCHAR2(30) ;
1859 l_log_module VARCHAR2(240) ;
1860 l_output_value VARCHAR2(30) ;
1861 BEGIN
1862 IF g_log_enabled THEN
1863 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1864 END IF;
1865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1866
1867 trace
1868 (p_msg => 'BEGIN of AcctDerRule_12'
1869 ,p_level => C_LEVEL_PROCEDURE
1870 ,p_module => l_log_module);
1871
1872 END IF;
1873
1874 l_component_type := 'AMB_ADR';
1875 l_component_code := 'AP_RETAIN_NAT_ACCT_SEG';
1876 l_component_type_code := 'S';
1877 l_component_appl_id := 200;
1878 l_amb_context_code := 'DEFAULT';
1879 x_transaction_coa_id := null;
1880 x_accounting_coa_id := null;
1881 x_flexfield_segment_code := 'GL_ACCOUNT';
1882 x_flex_value_set_id := null ;
1883
1884
1885 --
1886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1887
1888 trace
1889 (p_msg => 'END of AcctDerRule_12'
1890 ,p_level => C_LEVEL_PROCEDURE
1891 ,p_module => l_log_module);
1892
1893 END IF;
1894 x_value_combination_id := TO_NUMBER(p_source_22) ;
1895 x_value_segment_code := 'GL_ACCOUNT' ;
1896 x_value_type_code := 'S';
1897 l_output_value := null;
1898 RETURN l_output_value;
1899
1900
1901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1902
1903 trace
1904 (p_msg => 'END of AcctDerRule_12(invalid)'
1905 ,p_level => C_LEVEL_PROCEDURE
1906 ,p_module => l_log_module);
1907
1908 END IF;
1909
1910 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1911 x_value_combination_id := null;
1912 x_value_segment_code := null;
1913 x_value_type_code := null;
1914 l_output_value := null;
1915 xla_accounting_err_pkg.build_message
1916 (p_appli_s_name => 'XLA'
1917 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1918 ,p_token_1 => 'COMPONENT_NAME'
1919 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1920 l_component_type
1924 , l_amb_context_code
1921 , l_component_code
1922 , l_component_type_code
1923 , l_component_appl_id
1925 )
1926 ,p_token_2 => 'OWNER'
1927 ,p_value_2 => xla_lookups_pkg.get_meaning(
1928 'XLA_OWNER_TYPE'
1929 ,l_component_type_code
1930 )
1931 ,p_token_3 => 'PAD_NAME'
1932 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1933 ,p_token_4 => 'PAD_OWNER'
1934 ,p_value_4 => xla_lookups_pkg.get_meaning(
1935 'XLA_OWNER_TYPE'
1936 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1937 )
1938 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1939 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1940 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1941 ,p_ae_header_id => NULL
1942 );
1943 RETURN l_output_value;
1944 EXCEPTION
1945 WHEN xla_exceptions_pkg.application_exception THEN
1946 RAISE;
1947 WHEN OTHERS THEN
1948 xla_exceptions_pkg.raise_message
1949 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_12');
1950 END AcctDerRule_12;
1951 --
1952
1953 ---------------------------------------
1954 --
1955 -- PRIVATE FUNCTION
1956 -- AcctDerRule_13
1957 --
1958 ---------------------------------------
1959 FUNCTION AcctDerRule_13 (
1960 p_application_id IN NUMBER
1961 , p_ae_header_id IN NUMBER
1962 , p_side IN VARCHAR2
1963 , p_override_seg_flag IN VARCHAR2
1964 --Discount Distribution Method
1965 , p_source_3 IN VARCHAR2
1966 , p_source_3_meaning IN VARCHAR2
1967 --Automatic Offsets Value
1968 , p_source_4 IN VARCHAR2
1969 , p_source_4_meaning IN VARCHAR2
1970 --Invoice Distribution Account
1971 , p_source_17 IN NUMBER
1972 , x_transaction_coa_id OUT NOCOPY NUMBER
1973 , x_accounting_coa_id OUT NOCOPY NUMBER
1974 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1975 , x_flex_value_set_id OUT NOCOPY NUMBER
1976 , x_value_type_code OUT NOCOPY VARCHAR2
1977 , x_value_combination_id OUT NOCOPY NUMBER
1978 , x_value_segment_code OUT NOCOPY VARCHAR2
1979 )
1980 RETURN VARCHAR2
1981 IS
1982 l_component_type VARCHAR2(80) ;
1983 l_component_code VARCHAR2(30) ;
1984 l_component_type_code VARCHAR2(1) ;
1985 l_component_appl_id INTEGER ;
1986 l_amb_context_code VARCHAR2(30) ;
1987 l_log_module VARCHAR2(240) ;
1988 l_output_value VARCHAR2(30) ;
1989 BEGIN
1990 IF g_log_enabled THEN
1991 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1992 END IF;
1993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1994
1995 trace
1996 (p_msg => 'BEGIN of AcctDerRule_13'
1997 ,p_level => C_LEVEL_PROCEDURE
1998 ,p_module => l_log_module);
1999
2000 END IF;
2001
2002 l_component_type := 'AMB_ADR';
2003 l_component_code := 'AP_DISCOUNT_BAL_ACCT_SEG';
2004 l_component_type_code := 'S';
2005 l_component_appl_id := 200;
2006 l_amb_context_code := 'DEFAULT';
2007 x_transaction_coa_id := null;
2008 x_accounting_coa_id := null;
2009 x_flexfield_segment_code := 'GL_BALANCING';
2010 x_flex_value_set_id := null ;
2011
2012
2013 IF NVL(p_source_3,'
2014 ') = 'SYSTEM' AND
2015 NVL(p_source_4,'
2016 ') = 'BALANCING_SEGMENT'
2017 THEN
2018 --
2019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2020
2021 trace
2022 (p_msg => 'END of AcctDerRule_13'
2023 ,p_level => C_LEVEL_PROCEDURE
2024 ,p_module => l_log_module);
2025
2026 END IF;
2027 x_value_combination_id := TO_NUMBER(p_source_17) ;
2028 x_value_segment_code := 'GL_BALANCING' ;
2029 x_value_type_code := 'S';
2030 l_output_value := null;
2031 RETURN l_output_value;
2032
2033 ELSE
2034 IF p_override_seg_flag = 'Y' THEN
2035 RETURN '#$NO_OVERRIDE#$';
2036 END IF;
2037 END IF;
2038
2039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2040
2041 trace
2042 (p_msg => 'END of AcctDerRule_13(invalid)'
2043 ,p_level => C_LEVEL_PROCEDURE
2044 ,p_module => l_log_module);
2045
2046 END IF;
2047
2048 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2049 x_value_combination_id := null;
2050 x_value_segment_code := null;
2051 x_value_type_code := null;
2052 l_output_value := null;
2053 xla_accounting_err_pkg.build_message
2057 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2054 (p_appli_s_name => 'XLA'
2055 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2056 ,p_token_1 => 'COMPONENT_NAME'
2058 l_component_type
2059 , l_component_code
2060 , l_component_type_code
2061 , l_component_appl_id
2062 , l_amb_context_code
2063 )
2064 ,p_token_2 => 'OWNER'
2065 ,p_value_2 => xla_lookups_pkg.get_meaning(
2066 'XLA_OWNER_TYPE'
2067 ,l_component_type_code
2068 )
2069 ,p_token_3 => 'PAD_NAME'
2070 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2071 ,p_token_4 => 'PAD_OWNER'
2072 ,p_value_4 => xla_lookups_pkg.get_meaning(
2073 'XLA_OWNER_TYPE'
2074 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2075 )
2076 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2077 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2078 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2079 ,p_ae_header_id => NULL
2080 );
2081 RETURN l_output_value;
2082 EXCEPTION
2083 WHEN xla_exceptions_pkg.application_exception THEN
2084 RAISE;
2085 WHEN OTHERS THEN
2086 xla_exceptions_pkg.raise_message
2087 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_13');
2088 END AcctDerRule_13;
2089 --
2090
2091 ---------------------------------------
2092 --
2093 -- PRIVATE FUNCTION
2094 -- AcctDerRule_14
2095 --
2096 ---------------------------------------
2097 FUNCTION AcctDerRule_14 (
2098 p_application_id IN NUMBER
2099 , p_ae_header_id IN NUMBER
2100 , p_side IN VARCHAR2
2101 , p_override_seg_flag IN VARCHAR2
2102 --Automatic Offsets Value
2103 , p_source_4 IN VARCHAR2
2104 , p_source_4_meaning IN VARCHAR2
2105 --Invoice Distribution Account
2106 , p_source_17 IN NUMBER
2107 , x_transaction_coa_id OUT NOCOPY NUMBER
2108 , x_accounting_coa_id OUT NOCOPY NUMBER
2109 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2110 , x_flex_value_set_id OUT NOCOPY NUMBER
2111 , x_value_type_code OUT NOCOPY VARCHAR2
2112 , x_value_combination_id OUT NOCOPY NUMBER
2113 , x_value_segment_code OUT NOCOPY VARCHAR2
2114 )
2115 RETURN VARCHAR2
2116 IS
2117 l_component_type VARCHAR2(80) ;
2118 l_component_code VARCHAR2(30) ;
2119 l_component_type_code VARCHAR2(1) ;
2120 l_component_appl_id INTEGER ;
2121 l_amb_context_code VARCHAR2(30) ;
2122 l_log_module VARCHAR2(240) ;
2123 l_output_value VARCHAR2(30) ;
2124 BEGIN
2125 IF g_log_enabled THEN
2126 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2127 END IF;
2128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2129
2130 trace
2131 (p_msg => 'BEGIN of AcctDerRule_14'
2132 ,p_level => C_LEVEL_PROCEDURE
2133 ,p_module => l_log_module);
2134
2135 END IF;
2136
2137 l_component_type := 'AMB_ADR';
2138 l_component_code := 'AP_INV_DIST_BAL_SEG';
2139 l_component_type_code := 'S';
2140 l_component_appl_id := 200;
2141 l_amb_context_code := 'DEFAULT';
2142 x_transaction_coa_id := null;
2143 x_accounting_coa_id := null;
2144 x_flexfield_segment_code := 'GL_BALANCING';
2145 x_flex_value_set_id := null ;
2146
2147
2148 IF NVL(p_source_4,'
2149 ') = 'BALANCING_SEGMENT'
2150 THEN
2151 --
2152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2153
2154 trace
2155 (p_msg => 'END of AcctDerRule_14'
2156 ,p_level => C_LEVEL_PROCEDURE
2157 ,p_module => l_log_module);
2158
2159 END IF;
2160 x_value_combination_id := TO_NUMBER(p_source_17) ;
2161 x_value_segment_code := 'GL_BALANCING' ;
2162 x_value_type_code := 'S';
2163 l_output_value := null;
2164 RETURN l_output_value;
2165
2166 ELSE
2167 IF p_override_seg_flag = 'Y' THEN
2168 RETURN '#$NO_OVERRIDE#$';
2169 END IF;
2170 END IF;
2171
2172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2173
2174 trace
2175 (p_msg => 'END of AcctDerRule_14(invalid)'
2176 ,p_level => C_LEVEL_PROCEDURE
2177 ,p_module => l_log_module);
2178
2179 END IF;
2180
2181 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2182 x_value_combination_id := null;
2186 xla_accounting_err_pkg.build_message
2183 x_value_segment_code := null;
2184 x_value_type_code := null;
2185 l_output_value := null;
2187 (p_appli_s_name => 'XLA'
2188 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2189 ,p_token_1 => 'COMPONENT_NAME'
2190 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2191 l_component_type
2192 , l_component_code
2193 , l_component_type_code
2194 , l_component_appl_id
2195 , l_amb_context_code
2196 )
2197 ,p_token_2 => 'OWNER'
2198 ,p_value_2 => xla_lookups_pkg.get_meaning(
2199 'XLA_OWNER_TYPE'
2200 ,l_component_type_code
2201 )
2202 ,p_token_3 => 'PAD_NAME'
2203 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2204 ,p_token_4 => 'PAD_OWNER'
2205 ,p_value_4 => xla_lookups_pkg.get_meaning(
2206 'XLA_OWNER_TYPE'
2207 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2208 )
2209 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2210 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2211 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2212 ,p_ae_header_id => NULL
2213 );
2214 RETURN l_output_value;
2215 EXCEPTION
2216 WHEN xla_exceptions_pkg.application_exception THEN
2217 RAISE;
2218 WHEN OTHERS THEN
2219 xla_exceptions_pkg.raise_message
2220 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_14');
2221 END AcctDerRule_14;
2222 --
2223
2224 ---------------------------------------
2225 --
2226 -- PRIVATE FUNCTION
2227 -- AcctDerRule_15
2228 --
2229 ---------------------------------------
2230 FUNCTION AcctDerRule_15 (
2231 p_application_id IN NUMBER
2232 , p_ae_header_id IN NUMBER
2233 , p_side IN VARCHAR2
2234 , p_override_seg_flag IN VARCHAR2
2235 --Automatic Offsets Value
2236 , p_source_4 IN VARCHAR2
2237 , p_source_4_meaning IN VARCHAR2
2238 --Destination Type of the PO Distribution
2239 , p_source_7 IN VARCHAR2
2240 , p_source_7_meaning IN VARCHAR2
2241 --Invoice Distribution Account
2242 , p_source_17 IN NUMBER
2243 , x_transaction_coa_id OUT NOCOPY NUMBER
2244 , x_accounting_coa_id OUT NOCOPY NUMBER
2245 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2246 , x_flex_value_set_id OUT NOCOPY NUMBER
2247 , x_value_type_code OUT NOCOPY VARCHAR2
2248 , x_value_combination_id OUT NOCOPY NUMBER
2249 , x_value_segment_code OUT NOCOPY VARCHAR2
2250 )
2251 RETURN VARCHAR2
2252 IS
2253 l_component_type VARCHAR2(80) ;
2254 l_component_code VARCHAR2(30) ;
2255 l_component_type_code VARCHAR2(1) ;
2256 l_component_appl_id INTEGER ;
2257 l_amb_context_code VARCHAR2(30) ;
2258 l_log_module VARCHAR2(240) ;
2259 l_output_value VARCHAR2(30) ;
2260 BEGIN
2261 IF g_log_enabled THEN
2262 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2263 END IF;
2264 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2265
2266 trace
2267 (p_msg => 'BEGIN of AcctDerRule_15'
2268 ,p_level => C_LEVEL_PROCEDURE
2269 ,p_module => l_log_module);
2270
2271 END IF;
2272
2273 l_component_type := 'AMB_ADR';
2274 l_component_code := 'AP_RELATED_DIST_BAL_SEG';
2275 l_component_type_code := 'S';
2276 l_component_appl_id := 200;
2277 l_amb_context_code := 'DEFAULT';
2278 x_transaction_coa_id := null;
2279 x_accounting_coa_id := null;
2280 x_flexfield_segment_code := 'GL_BALANCING';
2281 x_flex_value_set_id := null ;
2282
2283
2284 IF NVL(p_source_4,'
2285 ') = 'BALANCING_SEGMENT' AND
2286 NVL(p_source_7,'
2287 ') = 'INVENTORY'
2288 THEN
2289 --
2290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2291
2292 trace
2293 (p_msg => 'END of AcctDerRule_15'
2294 ,p_level => C_LEVEL_PROCEDURE
2295 ,p_module => l_log_module);
2296
2297 END IF;
2298 x_value_combination_id := TO_NUMBER(p_source_17) ;
2299 x_value_segment_code := 'GL_BALANCING' ;
2300 x_value_type_code := 'S';
2301 l_output_value := null;
2302 RETURN l_output_value;
2303
2304 ELSE
2305 IF p_override_seg_flag = 'Y' THEN
2306 RETURN '#$NO_OVERRIDE#$';
2307 END IF;
2308 END IF;
2309
2310 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2311
2315 ,p_module => l_log_module);
2312 trace
2313 (p_msg => 'END of AcctDerRule_15(invalid)'
2314 ,p_level => C_LEVEL_PROCEDURE
2316
2317 END IF;
2318
2319 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2320 x_value_combination_id := null;
2321 x_value_segment_code := null;
2322 x_value_type_code := null;
2323 l_output_value := null;
2324 xla_accounting_err_pkg.build_message
2325 (p_appli_s_name => 'XLA'
2326 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2327 ,p_token_1 => 'COMPONENT_NAME'
2328 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2329 l_component_type
2330 , l_component_code
2331 , l_component_type_code
2332 , l_component_appl_id
2333 , l_amb_context_code
2334 )
2335 ,p_token_2 => 'OWNER'
2336 ,p_value_2 => xla_lookups_pkg.get_meaning(
2337 'XLA_OWNER_TYPE'
2338 ,l_component_type_code
2339 )
2340 ,p_token_3 => 'PAD_NAME'
2341 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2342 ,p_token_4 => 'PAD_OWNER'
2343 ,p_value_4 => xla_lookups_pkg.get_meaning(
2344 'XLA_OWNER_TYPE'
2345 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2346 )
2347 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2348 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2349 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2350 ,p_ae_header_id => NULL
2351 );
2352 RETURN l_output_value;
2353 EXCEPTION
2354 WHEN xla_exceptions_pkg.application_exception THEN
2355 RAISE;
2356 WHEN OTHERS THEN
2357 xla_exceptions_pkg.raise_message
2358 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_15');
2359 END AcctDerRule_15;
2360 --
2361
2362 ---------------------------------------
2363 --
2364 -- PRIVATE FUNCTION
2365 -- AcctDerRule_16
2366 --
2367 ---------------------------------------
2368 FUNCTION AcctDerRule_16 (
2369 p_application_id IN NUMBER
2370 , p_ae_header_id IN NUMBER
2371 , p_side IN VARCHAR2
2372 , p_override_seg_flag IN VARCHAR2
2373 --Automatic Offsets Value
2374 , p_source_4 IN VARCHAR2
2375 , p_source_4_meaning IN VARCHAR2
2376 --Retainage Related Item Distribution Account
2377 , p_source_23 IN NUMBER
2378 , x_transaction_coa_id OUT NOCOPY NUMBER
2379 , x_accounting_coa_id OUT NOCOPY NUMBER
2380 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2381 , x_flex_value_set_id OUT NOCOPY NUMBER
2382 , x_value_type_code OUT NOCOPY VARCHAR2
2383 , x_value_combination_id OUT NOCOPY NUMBER
2384 , x_value_segment_code OUT NOCOPY VARCHAR2
2385 )
2386 RETURN VARCHAR2
2387 IS
2388 l_component_type VARCHAR2(80) ;
2389 l_component_code VARCHAR2(30) ;
2390 l_component_type_code VARCHAR2(1) ;
2391 l_component_appl_id INTEGER ;
2392 l_amb_context_code VARCHAR2(30) ;
2393 l_log_module VARCHAR2(240) ;
2394 l_output_value VARCHAR2(30) ;
2395 BEGIN
2396 IF g_log_enabled THEN
2397 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2398 END IF;
2399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2400
2401 trace
2402 (p_msg => 'BEGIN of AcctDerRule_16'
2403 ,p_level => C_LEVEL_PROCEDURE
2404 ,p_module => l_log_module);
2405
2406 END IF;
2407
2408 l_component_type := 'AMB_ADR';
2409 l_component_code := 'AP_RETAIN_RELATED_BAL_SEG';
2410 l_component_type_code := 'S';
2411 l_component_appl_id := 200;
2412 l_amb_context_code := 'DEFAULT';
2413 x_transaction_coa_id := null;
2414 x_accounting_coa_id := null;
2415 x_flexfield_segment_code := 'GL_BALANCING';
2416 x_flex_value_set_id := null ;
2417
2418
2419 IF NVL(p_source_4,'
2420 ') = 'BALANCING_SEGMENT'
2421 THEN
2422 --
2423 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2424
2425 trace
2426 (p_msg => 'END of AcctDerRule_16'
2427 ,p_level => C_LEVEL_PROCEDURE
2428 ,p_module => l_log_module);
2429
2430 END IF;
2431 x_value_combination_id := TO_NUMBER(p_source_23) ;
2432 x_value_segment_code := 'GL_BALANCING' ;
2433 x_value_type_code := 'S';
2434 l_output_value := null;
2435 RETURN l_output_value;
2436
2437 ELSE
2438 IF p_override_seg_flag = 'Y' THEN
2442
2439 RETURN '#$NO_OVERRIDE#$';
2440 END IF;
2441 END IF;
2443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2444
2445 trace
2446 (p_msg => 'END of AcctDerRule_16(invalid)'
2447 ,p_level => C_LEVEL_PROCEDURE
2448 ,p_module => l_log_module);
2449
2450 END IF;
2451
2452 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2453 x_value_combination_id := null;
2454 x_value_segment_code := null;
2455 x_value_type_code := null;
2456 l_output_value := null;
2457 xla_accounting_err_pkg.build_message
2458 (p_appli_s_name => 'XLA'
2459 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2460 ,p_token_1 => 'COMPONENT_NAME'
2461 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2462 l_component_type
2463 , l_component_code
2464 , l_component_type_code
2465 , l_component_appl_id
2466 , l_amb_context_code
2467 )
2468 ,p_token_2 => 'OWNER'
2469 ,p_value_2 => xla_lookups_pkg.get_meaning(
2470 'XLA_OWNER_TYPE'
2471 ,l_component_type_code
2472 )
2473 ,p_token_3 => 'PAD_NAME'
2474 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2475 ,p_token_4 => 'PAD_OWNER'
2476 ,p_value_4 => xla_lookups_pkg.get_meaning(
2477 'XLA_OWNER_TYPE'
2478 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2479 )
2480 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2481 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2482 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2483 ,p_ae_header_id => NULL
2484 );
2485 RETURN l_output_value;
2486 EXCEPTION
2487 WHEN xla_exceptions_pkg.application_exception THEN
2488 RAISE;
2489 WHEN OTHERS THEN
2490 xla_exceptions_pkg.raise_message
2491 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_16');
2492 END AcctDerRule_16;
2493 --
2494
2495 ---------------------------------------
2496 --
2497 -- PRIVATE FUNCTION
2498 -- AcctDerRule_17
2499 --
2500 ---------------------------------------
2501 FUNCTION AcctDerRule_17 (
2502 p_application_id IN NUMBER
2503 , p_ae_header_id IN NUMBER
2504 , p_side IN VARCHAR2
2505 , p_override_seg_flag IN VARCHAR2
2506 --Automatic Offsets Value
2507 , p_source_4 IN VARCHAR2
2508 , p_source_4_meaning IN VARCHAR2
2509 --Withholding Related Distribution Account
2510 , p_source_24 IN NUMBER
2511 , x_transaction_coa_id OUT NOCOPY NUMBER
2512 , x_accounting_coa_id OUT NOCOPY NUMBER
2513 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2514 , x_flex_value_set_id OUT NOCOPY NUMBER
2515 , x_value_type_code OUT NOCOPY VARCHAR2
2516 , x_value_combination_id OUT NOCOPY NUMBER
2517 , x_value_segment_code OUT NOCOPY VARCHAR2
2518 )
2519 RETURN VARCHAR2
2520 IS
2521 l_component_type VARCHAR2(80) ;
2522 l_component_code VARCHAR2(30) ;
2523 l_component_type_code VARCHAR2(1) ;
2524 l_component_appl_id INTEGER ;
2525 l_amb_context_code VARCHAR2(30) ;
2526 l_log_module VARCHAR2(240) ;
2527 l_output_value VARCHAR2(30) ;
2528 BEGIN
2529 IF g_log_enabled THEN
2530 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2531 END IF;
2532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2533
2534 trace
2535 (p_msg => 'BEGIN of AcctDerRule_17'
2536 ,p_level => C_LEVEL_PROCEDURE
2537 ,p_module => l_log_module);
2538
2539 END IF;
2540
2541 l_component_type := 'AMB_ADR';
2542 l_component_code := 'AP_WH_RELATED_DIST_BAL_SEG';
2543 l_component_type_code := 'S';
2544 l_component_appl_id := 200;
2545 l_amb_context_code := 'DEFAULT';
2546 x_transaction_coa_id := null;
2547 x_accounting_coa_id := null;
2548 x_flexfield_segment_code := 'GL_BALANCING';
2549 x_flex_value_set_id := null ;
2550
2551
2552 IF NVL(p_source_4,'
2553 ') = 'BALANCING_SEGMENT'
2554 THEN
2555 --
2556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2557
2558 trace
2559 (p_msg => 'END of AcctDerRule_17'
2560 ,p_level => C_LEVEL_PROCEDURE
2561 ,p_module => l_log_module);
2562
2563 END IF;
2564 x_value_combination_id := TO_NUMBER(p_source_24) ;
2568 RETURN l_output_value;
2565 x_value_segment_code := 'GL_BALANCING' ;
2566 x_value_type_code := 'S';
2567 l_output_value := null;
2569
2570 ELSE
2571 IF p_override_seg_flag = 'Y' THEN
2572 RETURN '#$NO_OVERRIDE#$';
2573 END IF;
2574 END IF;
2575
2576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2577
2578 trace
2579 (p_msg => 'END of AcctDerRule_17(invalid)'
2580 ,p_level => C_LEVEL_PROCEDURE
2581 ,p_module => l_log_module);
2582
2583 END IF;
2584
2585 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2586 x_value_combination_id := null;
2587 x_value_segment_code := null;
2588 x_value_type_code := null;
2589 l_output_value := null;
2590 xla_accounting_err_pkg.build_message
2591 (p_appli_s_name => 'XLA'
2592 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2593 ,p_token_1 => 'COMPONENT_NAME'
2594 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2595 l_component_type
2596 , l_component_code
2597 , l_component_type_code
2598 , l_component_appl_id
2599 , l_amb_context_code
2600 )
2601 ,p_token_2 => 'OWNER'
2602 ,p_value_2 => xla_lookups_pkg.get_meaning(
2603 'XLA_OWNER_TYPE'
2604 ,l_component_type_code
2605 )
2606 ,p_token_3 => 'PAD_NAME'
2607 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2608 ,p_token_4 => 'PAD_OWNER'
2609 ,p_value_4 => xla_lookups_pkg.get_meaning(
2610 'XLA_OWNER_TYPE'
2611 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2612 )
2613 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2614 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2615 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2616 ,p_ae_header_id => NULL
2617 );
2618 RETURN l_output_value;
2619 EXCEPTION
2620 WHEN xla_exceptions_pkg.application_exception THEN
2621 RAISE;
2622 WHEN OTHERS THEN
2623 xla_exceptions_pkg.raise_message
2624 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_17');
2625 END AcctDerRule_17;
2626 --
2627
2628 ---------------------------------------
2629 --
2630 -- PRIVATE FUNCTION
2631 -- AcctDerRule_18
2632 --
2633 ---------------------------------------
2634 FUNCTION AcctDerRule_18 (
2635 p_application_id IN NUMBER
2636 , p_ae_header_id IN NUMBER
2637 , p_side IN VARCHAR2
2638 --Automatic Offsets Value
2639 , p_source_4 IN VARCHAR2
2640 , p_source_4_meaning IN VARCHAR2
2641 --Invoice Distribution Account
2642 , p_source_17 IN NUMBER
2643 --Bank Charges Account
2644 , p_source_25 IN NUMBER
2645 , x_transaction_coa_id OUT NOCOPY NUMBER
2646 , x_accounting_coa_id OUT NOCOPY NUMBER
2647 , x_value_type_code OUT NOCOPY VARCHAR2
2648 )
2649 RETURN NUMBER
2650 IS
2651 l_component_type VARCHAR2(80) ;
2652 l_component_code VARCHAR2(30) ;
2653 l_component_type_code VARCHAR2(1) ;
2654 l_component_appl_id INTEGER ;
2655 l_amb_context_code VARCHAR2(30) ;
2656 l_log_module VARCHAR2(240) ;
2657 l_output_value NUMBER ;
2658 BEGIN
2659 IF g_log_enabled THEN
2660 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2661 END IF;
2662 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2663 trace
2664 (p_msg => 'BEGIN of AcctDerRule_18'
2665 ,p_level => C_LEVEL_PROCEDURE
2666 ,p_module => l_log_module);
2667 END IF;
2668 --
2669 l_component_type := 'AMB_ADR';
2670 l_component_code := 'AP_BANK_CHARGES';
2671 l_component_type_code := 'S';
2672 l_component_appl_id := 200;
2673 l_amb_context_code := 'DEFAULT';
2674 x_transaction_coa_id := null;
2675 x_accounting_coa_id := null;
2676 --
2677
2678 IF NVL(p_source_4,'
2679 ') <> 'ACCOUNT_SEGMENT_VALUE'
2680 THEN
2681 --
2682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2683 trace
2684 (p_msg => 'END of AcctDerRule_18'
2685 ,p_level => C_LEVEL_PROCEDURE
2686 ,p_module => l_log_module);
2687 END IF;
2688 x_value_type_code := 'S';
2689 l_output_value := TO_NUMBER(TO_NUMBER(p_source_25));
2690 RETURN l_output_value;
2691
2695 --
2692 ELSIF NVL(p_source_4,'
2693 ') = 'ACCOUNT_SEGMENT_VALUE'
2694 THEN
2696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2697 trace
2698 (p_msg => 'END of AcctDerRule_18'
2699 ,p_level => C_LEVEL_PROCEDURE
2700 ,p_module => l_log_module);
2701 END IF;
2702 x_value_type_code := 'S';
2703 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
2704 RETURN l_output_value;
2705
2706 END IF;
2707 --
2708 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2709 trace
2710 (p_msg => 'END of AcctDerRule_18(invalid)'
2711 ,p_level => C_LEVEL_PROCEDURE
2712 ,p_module => l_log_module);
2713 END IF;
2714 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2715 x_value_type_code := null;
2716 l_output_value := null;
2717 xla_accounting_err_pkg.build_message
2718 (p_appli_s_name => 'XLA'
2719 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2720 ,p_token_1 => 'COMPONENT_NAME'
2721 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2722 l_component_type
2723 , l_component_code
2724 , l_component_type_code
2725 , l_component_appl_id
2726 , l_amb_context_code
2727 )
2728 ,p_token_2 => 'OWNER'
2729 ,p_value_2 => xla_lookups_pkg.get_meaning(
2730 'XLA_OWNER_TYPE'
2731 ,l_component_type_code
2732 )
2733 ,p_token_3 => 'PAD_NAME'
2734 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2735 ,p_token_4 => 'PAD_OWNER'
2736 ,p_value_4 => xla_lookups_pkg.get_meaning(
2737 'XLA_OWNER_TYPE'
2738 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2739 )
2740 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2741 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2742 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2743 ,p_ae_header_id => NULL
2744 );
2745 RETURN l_output_value;
2746 EXCEPTION
2747 WHEN xla_exceptions_pkg.application_exception THEN
2748 RAISE;
2749 WHEN OTHERS THEN
2750 xla_exceptions_pkg.raise_message
2751 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_18');
2752 END AcctDerRule_18;
2753 --
2754
2755 ---------------------------------------
2756 --
2757 -- PRIVATE FUNCTION
2758 -- AcctDerRule_19
2759 --
2760 ---------------------------------------
2761 FUNCTION AcctDerRule_19 (
2762 p_application_id IN NUMBER
2763 , p_ae_header_id IN NUMBER
2764 , p_side IN VARCHAR2
2765 --Automatic Offsets Value
2766 , p_source_4 IN VARCHAR2
2767 , p_source_4_meaning IN VARCHAR2
2768 --Invoice Distribution Account
2769 , p_source_17 IN NUMBER
2770 --Bank Errors Account
2771 , p_source_26 IN NUMBER
2772 , x_transaction_coa_id OUT NOCOPY NUMBER
2773 , x_accounting_coa_id OUT NOCOPY NUMBER
2774 , x_value_type_code OUT NOCOPY VARCHAR2
2775 )
2776 RETURN NUMBER
2777 IS
2778 l_component_type VARCHAR2(80) ;
2779 l_component_code VARCHAR2(30) ;
2780 l_component_type_code VARCHAR2(1) ;
2781 l_component_appl_id INTEGER ;
2782 l_amb_context_code VARCHAR2(30) ;
2783 l_log_module VARCHAR2(240) ;
2784 l_output_value NUMBER ;
2785 BEGIN
2786 IF g_log_enabled THEN
2787 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2788 END IF;
2789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2790 trace
2791 (p_msg => 'BEGIN of AcctDerRule_19'
2792 ,p_level => C_LEVEL_PROCEDURE
2793 ,p_module => l_log_module);
2794 END IF;
2795 --
2796 l_component_type := 'AMB_ADR';
2797 l_component_code := 'AP_BANK_ERRORS';
2798 l_component_type_code := 'S';
2799 l_component_appl_id := 200;
2800 l_amb_context_code := 'DEFAULT';
2801 x_transaction_coa_id := null;
2802 x_accounting_coa_id := null;
2803 --
2804
2805 IF NVL(p_source_4,'
2806 ') <> 'ACCOUNT_SEGMENT_VALUE'
2807 THEN
2808 --
2809 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2810 trace
2811 (p_msg => 'END of AcctDerRule_19'
2812 ,p_level => C_LEVEL_PROCEDURE
2813 ,p_module => l_log_module);
2814 END IF;
2815 x_value_type_code := 'S';
2816 l_output_value := TO_NUMBER(TO_NUMBER(p_source_26));
2817 RETURN l_output_value;
2818
2819 ELSIF NVL(p_source_4,'
2820 ') = 'ACCOUNT_SEGMENT_VALUE'
2821 THEN
2822 --
2826 ,p_level => C_LEVEL_PROCEDURE
2823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2824 trace
2825 (p_msg => 'END of AcctDerRule_19'
2827 ,p_module => l_log_module);
2828 END IF;
2829 x_value_type_code := 'S';
2830 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
2831 RETURN l_output_value;
2832
2833 END IF;
2834 --
2835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2836 trace
2837 (p_msg => 'END of AcctDerRule_19(invalid)'
2838 ,p_level => C_LEVEL_PROCEDURE
2839 ,p_module => l_log_module);
2840 END IF;
2841 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2842 x_value_type_code := null;
2843 l_output_value := null;
2844 xla_accounting_err_pkg.build_message
2845 (p_appli_s_name => 'XLA'
2846 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2847 ,p_token_1 => 'COMPONENT_NAME'
2848 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2849 l_component_type
2850 , l_component_code
2851 , l_component_type_code
2852 , l_component_appl_id
2853 , l_amb_context_code
2854 )
2855 ,p_token_2 => 'OWNER'
2856 ,p_value_2 => xla_lookups_pkg.get_meaning(
2857 'XLA_OWNER_TYPE'
2858 ,l_component_type_code
2859 )
2860 ,p_token_3 => 'PAD_NAME'
2861 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2862 ,p_token_4 => 'PAD_OWNER'
2863 ,p_value_4 => xla_lookups_pkg.get_meaning(
2864 'XLA_OWNER_TYPE'
2865 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2866 )
2867 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2868 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2869 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2870 ,p_ae_header_id => NULL
2871 );
2872 RETURN l_output_value;
2873 EXCEPTION
2874 WHEN xla_exceptions_pkg.application_exception THEN
2875 RAISE;
2876 WHEN OTHERS THEN
2877 xla_exceptions_pkg.raise_message
2878 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_19');
2879 END AcctDerRule_19;
2880 --
2881
2882 ---------------------------------------
2883 --
2884 -- PRIVATE FUNCTION
2885 -- AcctDerRule_20
2886 --
2887 ---------------------------------------
2888 FUNCTION AcctDerRule_20 (
2889 p_application_id IN NUMBER
2890 , p_ae_header_id IN NUMBER
2891 , p_side IN VARCHAR2
2892 --Bank Cash Account
2893 , p_source_1 IN NUMBER
2894 , x_transaction_coa_id OUT NOCOPY NUMBER
2895 , x_accounting_coa_id OUT NOCOPY NUMBER
2896 , x_value_type_code OUT NOCOPY VARCHAR2
2897 )
2898 RETURN NUMBER
2899 IS
2900 l_component_type VARCHAR2(80) ;
2901 l_component_code VARCHAR2(30) ;
2902 l_component_type_code VARCHAR2(1) ;
2903 l_component_appl_id INTEGER ;
2904 l_amb_context_code VARCHAR2(30) ;
2905 l_log_module VARCHAR2(240) ;
2906 l_output_value NUMBER ;
2907 BEGIN
2908 IF g_log_enabled THEN
2909 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
2910 END IF;
2911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2912 trace
2913 (p_msg => 'BEGIN of AcctDerRule_20'
2914 ,p_level => C_LEVEL_PROCEDURE
2915 ,p_module => l_log_module);
2916 END IF;
2917 --
2918 l_component_type := 'AMB_ADR';
2919 l_component_code := 'AP_CASH';
2920 l_component_type_code := 'S';
2921 l_component_appl_id := 200;
2922 l_amb_context_code := 'DEFAULT';
2923 x_transaction_coa_id := null;
2924 x_accounting_coa_id := null;
2925 --
2926
2927 --
2928 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2929 trace
2930 (p_msg => 'END of AcctDerRule_20'
2931 ,p_level => C_LEVEL_PROCEDURE
2932 ,p_module => l_log_module);
2933 END IF;
2934 x_value_type_code := 'S';
2935 l_output_value := TO_NUMBER(TO_NUMBER(p_source_1));
2936 RETURN l_output_value;
2937
2938 --
2939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2940 trace
2941 (p_msg => 'END of AcctDerRule_20(invalid)'
2942 ,p_level => C_LEVEL_PROCEDURE
2943 ,p_module => l_log_module);
2944 END IF;
2945 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2949 (p_appli_s_name => 'XLA'
2946 x_value_type_code := null;
2947 l_output_value := null;
2948 xla_accounting_err_pkg.build_message
2950 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2951 ,p_token_1 => 'COMPONENT_NAME'
2952 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2953 l_component_type
2954 , l_component_code
2955 , l_component_type_code
2956 , l_component_appl_id
2957 , l_amb_context_code
2958 )
2959 ,p_token_2 => 'OWNER'
2960 ,p_value_2 => xla_lookups_pkg.get_meaning(
2961 'XLA_OWNER_TYPE'
2962 ,l_component_type_code
2963 )
2964 ,p_token_3 => 'PAD_NAME'
2965 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2966 ,p_token_4 => 'PAD_OWNER'
2967 ,p_value_4 => xla_lookups_pkg.get_meaning(
2968 'XLA_OWNER_TYPE'
2969 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2970 )
2971 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2972 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2973 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2974 ,p_ae_header_id => NULL
2975 );
2976 RETURN l_output_value;
2977 EXCEPTION
2978 WHEN xla_exceptions_pkg.application_exception THEN
2979 RAISE;
2980 WHEN OTHERS THEN
2981 xla_exceptions_pkg.raise_message
2982 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_20');
2983 END AcctDerRule_20;
2984 --
2985
2986 ---------------------------------------
2987 --
2988 -- PRIVATE FUNCTION
2989 -- AcctDerRule_21
2990 --
2991 ---------------------------------------
2992 FUNCTION AcctDerRule_21 (
2993 p_application_id IN NUMBER
2994 , p_ae_header_id IN NUMBER
2995 , p_side IN VARCHAR2
2996 --System Discount Account
2997 , p_source_2 IN NUMBER
2998 --Discount Distribution Method
2999 , p_source_3 IN VARCHAR2
3000 , p_source_3_meaning IN VARCHAR2
3001 --Automatic Offsets Value
3002 , p_source_4 IN VARCHAR2
3003 , p_source_4_meaning IN VARCHAR2
3004 --Invoice Distribution Account
3005 , p_source_17 IN NUMBER
3006 --Invoice Distribution Type
3007 , p_source_20 IN VARCHAR2
3008 , p_source_20_meaning IN VARCHAR2
3009 --Discount Account
3010 , p_source_27 IN NUMBER
3011 --Purchase Order Charge Account
3012 , p_source_28 IN NUMBER
3013 --Purchase Order Variance Account
3014 , p_source_29 IN NUMBER
3015 , x_transaction_coa_id OUT NOCOPY NUMBER
3016 , x_accounting_coa_id OUT NOCOPY NUMBER
3017 , x_value_type_code OUT NOCOPY VARCHAR2
3018 )
3019 RETURN NUMBER
3020 IS
3021 l_component_type VARCHAR2(80) ;
3022 l_component_code VARCHAR2(30) ;
3023 l_component_type_code VARCHAR2(1) ;
3024 l_component_appl_id INTEGER ;
3025 l_amb_context_code VARCHAR2(30) ;
3026 l_log_module VARCHAR2(240) ;
3027 l_output_value NUMBER ;
3028 BEGIN
3029 IF g_log_enabled THEN
3030 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
3031 END IF;
3032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3033 trace
3034 (p_msg => 'BEGIN of AcctDerRule_21'
3035 ,p_level => C_LEVEL_PROCEDURE
3036 ,p_module => l_log_module);
3037 END IF;
3038 --
3039 l_component_type := 'AMB_ADR';
3040 l_component_code := 'AP_DISCOUNT';
3041 l_component_type_code := 'S';
3042 l_component_appl_id := 200;
3043 l_amb_context_code := 'DEFAULT';
3044 x_transaction_coa_id := null;
3045 x_accounting_coa_id := null;
3046 --
3047
3048 IF NVL(p_source_3,'
3049 ') = 'SYSTEM' AND
3050 NVL(p_source_4,'
3051 ') <> 'ACCOUNT_SEGMENT_VALUE'
3052 THEN
3053 --
3054 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3055 trace
3056 (p_msg => 'END of AcctDerRule_21'
3057 ,p_level => C_LEVEL_PROCEDURE
3058 ,p_module => l_log_module);
3059 END IF;
3060 x_value_type_code := 'S';
3061 l_output_value := TO_NUMBER(TO_NUMBER(p_source_27));
3062 RETURN l_output_value;
3063
3064 ELSIF NVL(p_source_3,'
3065 ') = 'SYSTEM' AND
3066 NVL(p_source_4,'
3067 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3068 NVL(p_source_20,'
3069 ') <> 'ACCRUAL'
3070 THEN
3071 --
3072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3073 trace
3077 END IF;
3074 (p_msg => 'END of AcctDerRule_21'
3075 ,p_level => C_LEVEL_PROCEDURE
3076 ,p_module => l_log_module);
3078 x_value_type_code := 'S';
3079 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3080 RETURN l_output_value;
3081
3082 ELSIF NVL(p_source_3,'
3083 ') = 'SYSTEM' AND
3084 NVL(p_source_4,'
3085 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3086 NVL(p_source_20,'
3087 ') = 'ACCRUAL'
3088 THEN
3089 --
3090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3091 trace
3092 (p_msg => 'END of AcctDerRule_21'
3093 ,p_level => C_LEVEL_PROCEDURE
3094 ,p_module => l_log_module);
3095 END IF;
3096 x_value_type_code := 'S';
3097 l_output_value := TO_NUMBER(TO_NUMBER(p_source_28));
3098 RETURN l_output_value;
3099
3100 ELSIF NVL(p_source_3,'
3101 ') = 'EXPENSE' AND
3102 NVL(p_source_20,'
3103 ') <> 'ACCRUAL'
3104 THEN
3105 --
3106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3107 trace
3108 (p_msg => 'END of AcctDerRule_21'
3109 ,p_level => C_LEVEL_PROCEDURE
3110 ,p_module => l_log_module);
3111 END IF;
3112 x_value_type_code := 'S';
3113 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3114 RETURN l_output_value;
3115
3116 ELSIF NVL(p_source_3,'
3117 ') = 'EXPENSE' AND
3118 NVL(p_source_20,'
3119 ') = 'ACCRUAL'
3120 THEN
3121 --
3122 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3123 trace
3124 (p_msg => 'END of AcctDerRule_21'
3125 ,p_level => C_LEVEL_PROCEDURE
3126 ,p_module => l_log_module);
3127 END IF;
3128 x_value_type_code := 'S';
3129 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3130 RETURN l_output_value;
3131
3132 ELSIF NVL(p_source_3,'
3133 ') = 'TAX' AND
3134 NVL(p_source_4,'
3135 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3136 (NVL(p_source_20,'
3137 ') = 'REC_TAX' OR
3138 NVL(p_source_20,'
3139 ') = 'NONREC_TAX' OR
3140 NVL(p_source_20,'
3141 ') = 'TIPV' OR
3142 NVL(p_source_20,'
3143 ') = 'TRV')
3144 THEN
3145 --
3146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3147 trace
3148 (p_msg => 'END of AcctDerRule_21'
3149 ,p_level => C_LEVEL_PROCEDURE
3150 ,p_module => l_log_module);
3151 END IF;
3152 x_value_type_code := 'S';
3153 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3154 RETURN l_output_value;
3155
3156 ELSIF NVL(p_source_3,'
3157 ') = 'TAX' AND
3158 NVL(p_source_4,'
3159 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3160 (NVL(p_source_20,'
3161 ') <> 'REC_TAX' OR
3162 NVL(p_source_20,'
3163 ') <> 'NONREC_TAX' OR
3164 NVL(p_source_20,'
3165 ') <> 'TIPV' OR
3166 NVL(p_source_20,'
3167 ') <> 'TRV')
3168 THEN
3169 --
3170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3171 trace
3172 (p_msg => 'END of AcctDerRule_21'
3173 ,p_level => C_LEVEL_PROCEDURE
3174 ,p_module => l_log_module);
3175 END IF;
3176 x_value_type_code := 'S';
3177 l_output_value := TO_NUMBER(TO_NUMBER(p_source_2));
3178 RETURN l_output_value;
3179
3180 ELSIF NVL(p_source_3,'
3181 ') = 'TAX' AND
3182 NVL(p_source_4,'
3183 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3184 NVL(p_source_20,'
3185 ') <> 'ACCRUAL'
3186 THEN
3187 --
3188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3189 trace
3190 (p_msg => 'END of AcctDerRule_21'
3191 ,p_level => C_LEVEL_PROCEDURE
3192 ,p_module => l_log_module);
3193 END IF;
3194 x_value_type_code := 'S';
3195 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3196 RETURN l_output_value;
3197
3198 ELSIF NVL(p_source_3,'
3199 ') = 'TAX' AND
3200 NVL(p_source_4,'
3201 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3202 NVL(p_source_20,'
3203 ') = 'ACCRUAL'
3204 THEN
3205 --
3206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3207 trace
3208 (p_msg => 'END of AcctDerRule_21'
3209 ,p_level => C_LEVEL_PROCEDURE
3210 ,p_module => l_log_module);
3211 END IF;
3212 x_value_type_code := 'S';
3213 l_output_value := TO_NUMBER(TO_NUMBER(p_source_28));
3214 RETURN l_output_value;
3215
3216 END IF;
3217 --
3218 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3219 trace
3220 (p_msg => 'END of AcctDerRule_21(invalid)'
3221 ,p_level => C_LEVEL_PROCEDURE
3222 ,p_module => l_log_module);
3223 END IF;
3224 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3225 x_value_type_code := null;
3226 l_output_value := null;
3227 xla_accounting_err_pkg.build_message
3228 (p_appli_s_name => 'XLA'
3229 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3230 ,p_token_1 => 'COMPONENT_NAME'
3231 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3232 l_component_type
3233 , l_component_code
3237 )
3234 , l_component_type_code
3235 , l_component_appl_id
3236 , l_amb_context_code
3238 ,p_token_2 => 'OWNER'
3239 ,p_value_2 => xla_lookups_pkg.get_meaning(
3240 'XLA_OWNER_TYPE'
3241 ,l_component_type_code
3242 )
3243 ,p_token_3 => 'PAD_NAME'
3244 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3245 ,p_token_4 => 'PAD_OWNER'
3246 ,p_value_4 => xla_lookups_pkg.get_meaning(
3247 'XLA_OWNER_TYPE'
3248 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3249 )
3250 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3251 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3252 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3253 ,p_ae_header_id => NULL
3254 );
3255 RETURN l_output_value;
3256 EXCEPTION
3257 WHEN xla_exceptions_pkg.application_exception THEN
3258 RAISE;
3259 WHEN OTHERS THEN
3260 xla_exceptions_pkg.raise_message
3261 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_21');
3262 END AcctDerRule_21;
3263 --
3264
3265 ---------------------------------------
3266 --
3267 -- PRIVATE FUNCTION
3268 -- AcctDerRule_22
3269 --
3270 ---------------------------------------
3271 FUNCTION AcctDerRule_22 (
3272 p_application_id IN NUMBER
3273 , p_ae_header_id IN NUMBER
3274 , p_side IN VARCHAR2
3275 --Automatic Offsets Value
3276 , p_source_4 IN VARCHAR2
3277 , p_source_4_meaning IN VARCHAR2
3278 --Purchase Order Rate Variance Gain Account
3279 , p_source_5 IN NUMBER
3280 --Destination Type of the PO Distribution
3281 , p_source_7 IN VARCHAR2
3282 , p_source_7_meaning IN VARCHAR2
3283 --Purchase Order Rate Variance Loss Account
3284 , p_source_8 IN NUMBER
3285 --Payment Distribution (Payment Rate) Ledger Amount
3286 , p_source_9 IN NUMBER
3287 --Payment Distribution (Cleared Rate) Ledger Amount
3288 , p_source_10 IN NUMBER
3289 --Invoice Distribution Account
3290 , p_source_17 IN NUMBER
3291 --Automatic Offsets Flag
3292 , p_source_30 IN VARCHAR2
3293 , p_source_30_meaning IN VARCHAR2
3294 , x_transaction_coa_id OUT NOCOPY NUMBER
3295 , x_accounting_coa_id OUT NOCOPY NUMBER
3296 , x_value_type_code OUT NOCOPY VARCHAR2
3297 )
3298 RETURN NUMBER
3299 IS
3300 l_component_type VARCHAR2(80) ;
3301 l_component_code VARCHAR2(30) ;
3302 l_component_type_code VARCHAR2(1) ;
3303 l_component_appl_id INTEGER ;
3304 l_amb_context_code VARCHAR2(30) ;
3305 l_log_module VARCHAR2(240) ;
3306 l_output_value NUMBER ;
3307 BEGIN
3308 IF g_log_enabled THEN
3309 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3310 END IF;
3311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3312 trace
3313 (p_msg => 'BEGIN of AcctDerRule_22'
3314 ,p_level => C_LEVEL_PROCEDURE
3315 ,p_module => l_log_module);
3316 END IF;
3317 --
3318 l_component_type := 'AMB_ADR';
3319 l_component_code := 'AP_ERV_TAXERV_CASH';
3320 l_component_type_code := 'S';
3321 l_component_appl_id := 200;
3322 l_amb_context_code := 'DEFAULT';
3323 x_transaction_coa_id := null;
3324 x_accounting_coa_id := null;
3325 --
3326
3327 IF NVL(p_source_7,'
3328 ') = 'EXPENSE' OR
3329 (NVL(p_source_7,'
3330 ') = 'INVENTORY' AND
3331 NVL(p_source_4,'
3332 ') = 'ACCOUNT_SEGMENT_VALUE')
3333 THEN
3334 --
3335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3336 trace
3337 (p_msg => 'END of AcctDerRule_22'
3338 ,p_level => C_LEVEL_PROCEDURE
3339 ,p_module => l_log_module);
3340 END IF;
3341 x_value_type_code := 'S';
3342 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3343 RETURN l_output_value;
3344
3345 ELSIF NVL(p_source_7,'
3346 ') <> 'EXPENSE' AND
3347 (p_source_9 < 0 OR
3348 p_source_10 < 0) AND
3349 (NVL(p_source_30,'
3350 ') = 'N' OR
3351 NVL(p_source_4,'
3352 ') = 'BALANCING_SEGMENT')
3353 THEN
3354 --
3355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3356 trace
3357 (p_msg => 'END of AcctDerRule_22'
3358 ,p_level => C_LEVEL_PROCEDURE
3359 ,p_module => l_log_module);
3360 END IF;
3361 x_value_type_code := 'S';
3362 l_output_value := TO_NUMBER(TO_NUMBER(p_source_5));
3363 RETURN l_output_value;
3364
3365 ELSIF NVL(p_source_7,'
3366 ') <> 'EXPENSE' AND
3367 (p_source_9 > 0 OR
3368 p_source_10 > 0) AND
3369 (NVL(p_source_30,'
3370 ') = 'N' OR
3371 NVL(p_source_4,'
3372 ') = 'BALANCING_SEGMENT')
3373 THEN
3377 (p_msg => 'END of AcctDerRule_22'
3374 --
3375 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3376 trace
3378 ,p_level => C_LEVEL_PROCEDURE
3379 ,p_module => l_log_module);
3380 END IF;
3381 x_value_type_code := 'S';
3382 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
3383 RETURN l_output_value;
3384
3385 END IF;
3386 --
3387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3388 trace
3389 (p_msg => 'END of AcctDerRule_22(invalid)'
3390 ,p_level => C_LEVEL_PROCEDURE
3391 ,p_module => l_log_module);
3392 END IF;
3393 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3394 x_value_type_code := null;
3395 l_output_value := null;
3396 xla_accounting_err_pkg.build_message
3397 (p_appli_s_name => 'XLA'
3398 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3399 ,p_token_1 => 'COMPONENT_NAME'
3400 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3401 l_component_type
3402 , l_component_code
3403 , l_component_type_code
3404 , l_component_appl_id
3405 , l_amb_context_code
3406 )
3407 ,p_token_2 => 'OWNER'
3408 ,p_value_2 => xla_lookups_pkg.get_meaning(
3409 'XLA_OWNER_TYPE'
3410 ,l_component_type_code
3411 )
3412 ,p_token_3 => 'PAD_NAME'
3413 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3414 ,p_token_4 => 'PAD_OWNER'
3415 ,p_value_4 => xla_lookups_pkg.get_meaning(
3416 'XLA_OWNER_TYPE'
3417 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3418 )
3419 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3420 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3421 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3422 ,p_ae_header_id => NULL
3423 );
3424 RETURN l_output_value;
3425 EXCEPTION
3426 WHEN xla_exceptions_pkg.application_exception THEN
3427 RAISE;
3428 WHEN OTHERS THEN
3429 xla_exceptions_pkg.raise_message
3430 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_22');
3431 END AcctDerRule_22;
3432 --
3433
3434 ---------------------------------------
3435 --
3436 -- PRIVATE FUNCTION
3437 -- AcctDerRule_23
3438 --
3439 ---------------------------------------
3440 FUNCTION AcctDerRule_23 (
3441 p_application_id IN NUMBER
3442 , p_ae_header_id IN NUMBER
3443 , p_side IN VARCHAR2
3444 --Automatic Offsets Value
3445 , p_source_4 IN VARCHAR2
3446 , p_source_4_meaning IN VARCHAR2
3447 --Purchase Order Rate Variance Gain Account
3448 , p_source_5 IN NUMBER
3449 --Invoice Distribution Ledger Amount
3450 , p_source_6 IN NUMBER
3451 --Destination Type of the PO Distribution
3452 , p_source_7 IN VARCHAR2
3453 , p_source_7_meaning IN VARCHAR2
3454 --Purchase Order Rate Variance Loss Account
3455 , p_source_8 IN NUMBER
3456 --Invoice Distribution Account
3457 , p_source_17 IN NUMBER
3458 --Automatic Offsets Flag
3459 , p_source_30 IN VARCHAR2
3460 , p_source_30_meaning IN VARCHAR2
3461 , x_transaction_coa_id OUT NOCOPY NUMBER
3462 , x_accounting_coa_id OUT NOCOPY NUMBER
3463 , x_value_type_code OUT NOCOPY VARCHAR2
3464 )
3465 RETURN NUMBER
3466 IS
3467 l_component_type VARCHAR2(80) ;
3468 l_component_code VARCHAR2(30) ;
3469 l_component_type_code VARCHAR2(1) ;
3470 l_component_appl_id INTEGER ;
3471 l_amb_context_code VARCHAR2(30) ;
3472 l_log_module VARCHAR2(240) ;
3473 l_output_value NUMBER ;
3474 BEGIN
3475 IF g_log_enabled THEN
3476 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3477 END IF;
3478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3479 trace
3480 (p_msg => 'BEGIN of AcctDerRule_23'
3481 ,p_level => C_LEVEL_PROCEDURE
3482 ,p_module => l_log_module);
3483 END IF;
3484 --
3485 l_component_type := 'AMB_ADR';
3486 l_component_code := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
3487 l_component_type_code := 'S';
3488 l_component_appl_id := 200;
3489 l_amb_context_code := 'DEFAULT';
3490 x_transaction_coa_id := null;
3491 x_accounting_coa_id := null;
3492 --
3493
3494 IF NVL(p_source_7,'
3495 ') = 'EXPENSE' OR
3496 (NVL(p_source_7,'
3497 ') = 'INVENTORY' AND
3498 NVL(p_source_4,'
3499 ') = 'ACCOUNT_SEGMENT_VALUE')
3500 THEN
3504 (p_msg => 'END of AcctDerRule_23'
3501 --
3502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3503 trace
3505 ,p_level => C_LEVEL_PROCEDURE
3506 ,p_module => l_log_module);
3507 END IF;
3508 x_value_type_code := 'S';
3509 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3510 RETURN l_output_value;
3511
3512 ELSIF NVL(p_source_7,'
3513 ') <> 'EXPENSE' AND
3514 p_source_6 <= 0 AND
3515 (NVL(p_source_30,'
3516 ') = 'N' OR
3517 NVL(p_source_4,'
3518 ') = 'BALANCING_SEGMENT')
3519 THEN
3520 --
3521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3522 trace
3523 (p_msg => 'END of AcctDerRule_23'
3524 ,p_level => C_LEVEL_PROCEDURE
3525 ,p_module => l_log_module);
3526 END IF;
3527 x_value_type_code := 'S';
3528 l_output_value := TO_NUMBER(TO_NUMBER(p_source_5));
3529 RETURN l_output_value;
3530
3531 ELSIF NVL(p_source_7,'
3532 ') <> 'EXPENSE' AND
3533 p_source_6 > 0 AND
3534 (NVL(p_source_30,'
3535 ') = 'N' OR
3536 NVL(p_source_4,'
3537 ') = 'BALANCING_SEGMENT')
3538 THEN
3539 --
3540 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3541 trace
3542 (p_msg => 'END of AcctDerRule_23'
3543 ,p_level => C_LEVEL_PROCEDURE
3544 ,p_module => l_log_module);
3545 END IF;
3546 x_value_type_code := 'S';
3547 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
3548 RETURN l_output_value;
3549
3550 END IF;
3551 --
3552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3553 trace
3554 (p_msg => 'END of AcctDerRule_23(invalid)'
3555 ,p_level => C_LEVEL_PROCEDURE
3556 ,p_module => l_log_module);
3557 END IF;
3558 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3559 x_value_type_code := null;
3560 l_output_value := null;
3561 xla_accounting_err_pkg.build_message
3562 (p_appli_s_name => 'XLA'
3563 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3564 ,p_token_1 => 'COMPONENT_NAME'
3565 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3566 l_component_type
3567 , l_component_code
3568 , l_component_type_code
3569 , l_component_appl_id
3570 , l_amb_context_code
3571 )
3572 ,p_token_2 => 'OWNER'
3573 ,p_value_2 => xla_lookups_pkg.get_meaning(
3574 'XLA_OWNER_TYPE'
3575 ,l_component_type_code
3576 )
3577 ,p_token_3 => 'PAD_NAME'
3578 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3579 ,p_token_4 => 'PAD_OWNER'
3580 ,p_value_4 => xla_lookups_pkg.get_meaning(
3581 'XLA_OWNER_TYPE'
3582 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3583 )
3584 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3585 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3586 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3587 ,p_ae_header_id => NULL
3588 );
3589 RETURN l_output_value;
3590 EXCEPTION
3591 WHEN xla_exceptions_pkg.application_exception THEN
3592 RAISE;
3593 WHEN OTHERS THEN
3594 xla_exceptions_pkg.raise_message
3595 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_23');
3596 END AcctDerRule_23;
3597 --
3598
3599 ---------------------------------------
3600 --
3601 -- PRIVATE FUNCTION
3602 -- AcctDerRule_24
3603 --
3604 ---------------------------------------
3605 FUNCTION AcctDerRule_24 (
3606 p_application_id IN NUMBER
3607 , p_ae_header_id IN NUMBER
3608 , p_side IN VARCHAR2
3609 --Automatic Offsets Value
3610 , p_source_4 IN VARCHAR2
3611 , p_source_4_meaning IN VARCHAR2
3612 --Bank Future Dated Payment Account
3613 , p_source_11 IN NUMBER
3614 --Future Dated Payment Account Source Option
3615 , p_source_12 IN VARCHAR2
3616 , p_source_12_meaning IN VARCHAR2
3617 --Financials Options Future Dated Payment Account
3618 , p_source_13 IN NUMBER
3619 --Supplier Site Future Dated Payment Account
3620 , p_source_14 IN NUMBER
3621 --Invoice Distribution Account
3622 , p_source_17 IN NUMBER
3623 , x_transaction_coa_id OUT NOCOPY NUMBER
3624 , x_accounting_coa_id OUT NOCOPY NUMBER
3625 , x_value_type_code OUT NOCOPY VARCHAR2
3626 )
3627 RETURN NUMBER
3628 IS
3629 l_component_type VARCHAR2(80) ;
3633 l_amb_context_code VARCHAR2(30) ;
3630 l_component_code VARCHAR2(30) ;
3631 l_component_type_code VARCHAR2(1) ;
3632 l_component_appl_id INTEGER ;
3634 l_log_module VARCHAR2(240) ;
3635 l_output_value NUMBER ;
3636 BEGIN
3637 IF g_log_enabled THEN
3638 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3639 END IF;
3640 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3641 trace
3642 (p_msg => 'BEGIN of AcctDerRule_24'
3643 ,p_level => C_LEVEL_PROCEDURE
3644 ,p_module => l_log_module);
3645 END IF;
3646 --
3647 l_component_type := 'AMB_ADR';
3648 l_component_code := 'AP_FUTURE_DATED_PMT';
3649 l_component_type_code := 'S';
3650 l_component_appl_id := 200;
3651 l_amb_context_code := 'DEFAULT';
3652 x_transaction_coa_id := null;
3653 x_accounting_coa_id := null;
3654 --
3655
3656 IF NVL(p_source_4,'
3657 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3658 NVL(p_source_12,'
3659 ') = 'BANK ACCOUNT' AND
3660 TO_NUMBER(p_source_11) IS NOT NULL
3661 THEN
3662 --
3663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3664 trace
3665 (p_msg => 'END of AcctDerRule_24'
3666 ,p_level => C_LEVEL_PROCEDURE
3667 ,p_module => l_log_module);
3668 END IF;
3669 x_value_type_code := 'S';
3670 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
3671 RETURN l_output_value;
3672
3673 ELSIF NVL(p_source_4,'
3674 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3675 NVL(p_source_12,'
3676 ') = 'BANK ACCOUNT'
3677 THEN
3678 --
3679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3680 trace
3681 (p_msg => 'END of AcctDerRule_24'
3682 ,p_level => C_LEVEL_PROCEDURE
3683 ,p_module => l_log_module);
3684 END IF;
3685 x_value_type_code := 'S';
3686 l_output_value := TO_NUMBER(TO_NUMBER(p_source_13));
3687 RETURN l_output_value;
3688
3689 ELSIF NVL(p_source_4,'
3690 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3691 NVL(p_source_12,'
3692 ') = 'SUPPLIER SITE' AND
3693 TO_NUMBER(p_source_14) IS NOT NULL
3694 THEN
3695 --
3696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3697 trace
3698 (p_msg => 'END of AcctDerRule_24'
3699 ,p_level => C_LEVEL_PROCEDURE
3700 ,p_module => l_log_module);
3701 END IF;
3702 x_value_type_code := 'S';
3703 l_output_value := TO_NUMBER(TO_NUMBER(p_source_14));
3704 RETURN l_output_value;
3705
3706 ELSIF NVL(p_source_4,'
3707 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3708 NVL(p_source_12,'
3709 ') = 'SUPPLIER SITE'
3710 THEN
3711 --
3712 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3713 trace
3714 (p_msg => 'END of AcctDerRule_24'
3715 ,p_level => C_LEVEL_PROCEDURE
3716 ,p_module => l_log_module);
3717 END IF;
3718 x_value_type_code := 'S';
3719 l_output_value := TO_NUMBER(TO_NUMBER(p_source_13));
3720 RETURN l_output_value;
3721
3722 ELSIF NVL(p_source_4,'
3723 ') = 'ACCOUNT_SEGMENT_VALUE'
3724 THEN
3725 --
3726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3727 trace
3728 (p_msg => 'END of AcctDerRule_24'
3729 ,p_level => C_LEVEL_PROCEDURE
3730 ,p_module => l_log_module);
3731 END IF;
3732 x_value_type_code := 'S';
3733 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3734 RETURN l_output_value;
3735
3736 END IF;
3737 --
3738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3739 trace
3740 (p_msg => 'END of AcctDerRule_24(invalid)'
3741 ,p_level => C_LEVEL_PROCEDURE
3742 ,p_module => l_log_module);
3743 END IF;
3744 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3745 x_value_type_code := null;
3746 l_output_value := null;
3747 xla_accounting_err_pkg.build_message
3748 (p_appli_s_name => 'XLA'
3749 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3750 ,p_token_1 => 'COMPONENT_NAME'
3751 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3752 l_component_type
3753 , l_component_code
3754 , l_component_type_code
3755 , l_component_appl_id
3756 , l_amb_context_code
3757 )
3758 ,p_token_2 => 'OWNER'
3759 ,p_value_2 => xla_lookups_pkg.get_meaning(
3760 'XLA_OWNER_TYPE'
3761 ,l_component_type_code
3762 )
3763 ,p_token_3 => 'PAD_NAME'
3764 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3765 ,p_token_4 => 'PAD_OWNER'
3766 ,p_value_4 => xla_lookups_pkg.get_meaning(
3770 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3767 'XLA_OWNER_TYPE'
3768 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3769 )
3771 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3772 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3773 ,p_ae_header_id => NULL
3774 );
3775 RETURN l_output_value;
3776 EXCEPTION
3777 WHEN xla_exceptions_pkg.application_exception THEN
3778 RAISE;
3779 WHEN OTHERS THEN
3780 xla_exceptions_pkg.raise_message
3781 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_24');
3782 END AcctDerRule_24;
3783 --
3784
3785 ---------------------------------------
3786 --
3787 -- PRIVATE FUNCTION
3788 -- AcctDerRule_25
3789 --
3790 ---------------------------------------
3791 FUNCTION AcctDerRule_25 (
3792 p_application_id IN NUMBER
3793 , p_ae_header_id IN NUMBER
3794 , p_side IN VARCHAR2
3795 --Interest Account
3796 , p_source_15 IN NUMBER
3797 --Prorate Interest Invoice Across Distributions Option
3798 , p_source_16 IN VARCHAR2
3799 --Invoice Distribution Account
3800 , p_source_17 IN NUMBER
3801 , x_transaction_coa_id OUT NOCOPY NUMBER
3802 , x_accounting_coa_id OUT NOCOPY NUMBER
3803 , x_value_type_code OUT NOCOPY VARCHAR2
3804 )
3805 RETURN NUMBER
3806 IS
3807 l_component_type VARCHAR2(80) ;
3808 l_component_code VARCHAR2(30) ;
3809 l_component_type_code VARCHAR2(1) ;
3810 l_component_appl_id INTEGER ;
3811 l_amb_context_code VARCHAR2(30) ;
3812 l_log_module VARCHAR2(240) ;
3813 l_output_value NUMBER ;
3814 BEGIN
3815 IF g_log_enabled THEN
3816 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3817 END IF;
3818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3819 trace
3820 (p_msg => 'BEGIN of AcctDerRule_25'
3821 ,p_level => C_LEVEL_PROCEDURE
3822 ,p_module => l_log_module);
3823 END IF;
3824 --
3825 l_component_type := 'AMB_ADR';
3826 l_component_code := 'AP_INTEREST';
3827 l_component_type_code := 'S';
3828 l_component_appl_id := 200;
3829 l_amb_context_code := 'DEFAULT';
3830 x_transaction_coa_id := null;
3831 x_accounting_coa_id := null;
3832 --
3833
3834 IF NVL(p_source_16,'
3835 ') = 'N'
3836 THEN
3837 --
3838 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3839 trace
3840 (p_msg => 'END of AcctDerRule_25'
3841 ,p_level => C_LEVEL_PROCEDURE
3842 ,p_module => l_log_module);
3843 END IF;
3844 x_value_type_code := 'S';
3845 l_output_value := TO_NUMBER(TO_NUMBER(p_source_15));
3846 RETURN l_output_value;
3847
3848 ELSIF NVL(p_source_16,'
3849 ') = 'Y'
3850 THEN
3851 --
3852 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3853 trace
3854 (p_msg => 'END of AcctDerRule_25'
3855 ,p_level => C_LEVEL_PROCEDURE
3856 ,p_module => l_log_module);
3857 END IF;
3858 x_value_type_code := 'S';
3859 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3860 RETURN l_output_value;
3861
3862 END IF;
3863 --
3864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3865 trace
3866 (p_msg => 'END of AcctDerRule_25(invalid)'
3867 ,p_level => C_LEVEL_PROCEDURE
3868 ,p_module => l_log_module);
3869 END IF;
3870 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3871 x_value_type_code := null;
3872 l_output_value := null;
3873 xla_accounting_err_pkg.build_message
3874 (p_appli_s_name => 'XLA'
3875 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3876 ,p_token_1 => 'COMPONENT_NAME'
3877 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3878 l_component_type
3879 , l_component_code
3880 , l_component_type_code
3881 , l_component_appl_id
3882 , l_amb_context_code
3883 )
3884 ,p_token_2 => 'OWNER'
3885 ,p_value_2 => xla_lookups_pkg.get_meaning(
3886 'XLA_OWNER_TYPE'
3887 ,l_component_type_code
3888 )
3889 ,p_token_3 => 'PAD_NAME'
3890 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3891 ,p_token_4 => 'PAD_OWNER'
3892 ,p_value_4 => xla_lookups_pkg.get_meaning(
3896 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3893 'XLA_OWNER_TYPE'
3894 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3895 )
3897 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3898 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3899 ,p_ae_header_id => NULL
3900 );
3901 RETURN l_output_value;
3902 EXCEPTION
3903 WHEN xla_exceptions_pkg.application_exception THEN
3904 RAISE;
3905 WHEN OTHERS THEN
3906 xla_exceptions_pkg.raise_message
3907 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_25');
3908 END AcctDerRule_25;
3909 --
3910
3911 ---------------------------------------
3912 --
3913 -- PRIVATE FUNCTION
3914 -- AcctDerRule_26
3915 --
3916 ---------------------------------------
3917 FUNCTION AcctDerRule_26 (
3918 p_application_id IN NUMBER
3919 , p_ae_header_id IN NUMBER
3920 , p_side IN VARCHAR2
3921 --Invoice Distribution Account
3922 , p_source_17 IN NUMBER
3923 , x_transaction_coa_id OUT NOCOPY NUMBER
3924 , x_accounting_coa_id OUT NOCOPY NUMBER
3925 , x_value_type_code OUT NOCOPY VARCHAR2
3926 )
3927 RETURN NUMBER
3928 IS
3929 l_component_type VARCHAR2(80) ;
3930 l_component_code VARCHAR2(30) ;
3931 l_component_type_code VARCHAR2(1) ;
3932 l_component_appl_id INTEGER ;
3933 l_amb_context_code VARCHAR2(30) ;
3934 l_log_module VARCHAR2(240) ;
3935 l_output_value NUMBER ;
3936 BEGIN
3937 IF g_log_enabled THEN
3938 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3939 END IF;
3940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3941 trace
3942 (p_msg => 'BEGIN of AcctDerRule_26'
3943 ,p_level => C_LEVEL_PROCEDURE
3944 ,p_module => l_log_module);
3945 END IF;
3946 --
3947 l_component_type := 'AMB_ADR';
3948 l_component_code := 'AP_INVOICE_DIST';
3949 l_component_type_code := 'S';
3950 l_component_appl_id := 200;
3951 l_amb_context_code := 'DEFAULT';
3952 x_transaction_coa_id := null;
3953 x_accounting_coa_id := null;
3954 --
3955
3956 --
3957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3958 trace
3959 (p_msg => 'END of AcctDerRule_26'
3960 ,p_level => C_LEVEL_PROCEDURE
3961 ,p_module => l_log_module);
3962 END IF;
3963 x_value_type_code := 'S';
3964 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3965 RETURN l_output_value;
3966
3967 --
3968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3969 trace
3970 (p_msg => 'END of AcctDerRule_26(invalid)'
3971 ,p_level => C_LEVEL_PROCEDURE
3972 ,p_module => l_log_module);
3973 END IF;
3974 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3975 x_value_type_code := null;
3976 l_output_value := null;
3977 xla_accounting_err_pkg.build_message
3978 (p_appli_s_name => 'XLA'
3979 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3980 ,p_token_1 => 'COMPONENT_NAME'
3981 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3982 l_component_type
3983 , l_component_code
3984 , l_component_type_code
3985 , l_component_appl_id
3986 , l_amb_context_code
3987 )
3988 ,p_token_2 => 'OWNER'
3989 ,p_value_2 => xla_lookups_pkg.get_meaning(
3990 'XLA_OWNER_TYPE'
3991 ,l_component_type_code
3992 )
3993 ,p_token_3 => 'PAD_NAME'
3994 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3995 ,p_token_4 => 'PAD_OWNER'
3996 ,p_value_4 => xla_lookups_pkg.get_meaning(
3997 'XLA_OWNER_TYPE'
3998 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3999 )
4000 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4001 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4002 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4003 ,p_ae_header_id => NULL
4004 );
4005 RETURN l_output_value;
4006 EXCEPTION
4007 WHEN xla_exceptions_pkg.application_exception THEN
4008 RAISE;
4009 WHEN OTHERS THEN
4010 xla_exceptions_pkg.raise_message
4014
4011 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_26');
4012 END AcctDerRule_26;
4013 --
4015 ---------------------------------------
4016 --
4017 -- PRIVATE FUNCTION
4018 -- AcctDerRule_27
4019 --
4020 ---------------------------------------
4021 FUNCTION AcctDerRule_27 (
4022 p_application_id IN NUMBER
4023 , p_ae_header_id IN NUMBER
4024 , p_side IN VARCHAR2
4025 --Payment Card Accrued Account
4026 , p_source_31 IN NUMBER
4027 , x_transaction_coa_id OUT NOCOPY NUMBER
4028 , x_accounting_coa_id OUT NOCOPY NUMBER
4029 , x_value_type_code OUT NOCOPY VARCHAR2
4030 )
4031 RETURN NUMBER
4032 IS
4033 l_component_type VARCHAR2(80) ;
4034 l_component_code VARCHAR2(30) ;
4035 l_component_type_code VARCHAR2(1) ;
4036 l_component_appl_id INTEGER ;
4037 l_amb_context_code VARCHAR2(30) ;
4038 l_log_module VARCHAR2(240) ;
4039 l_output_value NUMBER ;
4040 BEGIN
4041 IF g_log_enabled THEN
4042 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
4043 END IF;
4044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4045 trace
4046 (p_msg => 'BEGIN of AcctDerRule_27'
4047 ,p_level => C_LEVEL_PROCEDURE
4048 ,p_module => l_log_module);
4049 END IF;
4050 --
4051 l_component_type := 'AMB_ADR';
4052 l_component_code := 'AP_PAYCARD_ACCRUED_ADR';
4053 l_component_type_code := 'S';
4054 l_component_appl_id := 200;
4055 l_amb_context_code := 'DEFAULT';
4056 x_transaction_coa_id := null;
4057 x_accounting_coa_id := null;
4058 --
4059
4060 --
4061 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4062 trace
4063 (p_msg => 'END of AcctDerRule_27'
4064 ,p_level => C_LEVEL_PROCEDURE
4065 ,p_module => l_log_module);
4066 END IF;
4067 x_value_type_code := 'S';
4068 l_output_value := TO_NUMBER(TO_NUMBER(p_source_31));
4069 RETURN l_output_value;
4070
4071 --
4072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4073 trace
4074 (p_msg => 'END of AcctDerRule_27(invalid)'
4075 ,p_level => C_LEVEL_PROCEDURE
4076 ,p_module => l_log_module);
4077 END IF;
4078 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4079 x_value_type_code := null;
4080 l_output_value := null;
4081 xla_accounting_err_pkg.build_message
4082 (p_appli_s_name => 'XLA'
4083 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4084 ,p_token_1 => 'COMPONENT_NAME'
4085 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4086 l_component_type
4087 , l_component_code
4088 , l_component_type_code
4089 , l_component_appl_id
4090 , l_amb_context_code
4091 )
4092 ,p_token_2 => 'OWNER'
4093 ,p_value_2 => xla_lookups_pkg.get_meaning(
4094 'XLA_OWNER_TYPE'
4095 ,l_component_type_code
4096 )
4097 ,p_token_3 => 'PAD_NAME'
4098 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4099 ,p_token_4 => 'PAD_OWNER'
4100 ,p_value_4 => xla_lookups_pkg.get_meaning(
4101 'XLA_OWNER_TYPE'
4102 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4103 )
4104 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4105 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4106 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4107 ,p_ae_header_id => NULL
4108 );
4109 RETURN l_output_value;
4110 EXCEPTION
4111 WHEN xla_exceptions_pkg.application_exception THEN
4112 RAISE;
4113 WHEN OTHERS THEN
4114 xla_exceptions_pkg.raise_message
4115 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_27');
4116 END AcctDerRule_27;
4117 --
4118
4119 ---------------------------------------
4120 --
4121 -- PRIVATE FUNCTION
4122 -- AcctDerRule_28
4123 --
4124 ---------------------------------------
4125 FUNCTION AcctDerRule_28 (
4126 p_application_id IN NUMBER
4127 , p_ae_header_id IN NUMBER
4128 , p_side IN VARCHAR2
4129 --Bank Cash Clearing Account
4130 , p_source_21 IN NUMBER
4131 , x_transaction_coa_id OUT NOCOPY NUMBER
4132 , x_accounting_coa_id OUT NOCOPY NUMBER
4136 IS
4133 , x_value_type_code OUT NOCOPY VARCHAR2
4134 )
4135 RETURN NUMBER
4137 l_component_type VARCHAR2(80) ;
4138 l_component_code VARCHAR2(30) ;
4139 l_component_type_code VARCHAR2(1) ;
4140 l_component_appl_id INTEGER ;
4141 l_amb_context_code VARCHAR2(30) ;
4142 l_log_module VARCHAR2(240) ;
4143 l_output_value NUMBER ;
4144 BEGIN
4145 IF g_log_enabled THEN
4146 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
4147 END IF;
4148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4149 trace
4150 (p_msg => 'BEGIN of AcctDerRule_28'
4151 ,p_level => C_LEVEL_PROCEDURE
4152 ,p_module => l_log_module);
4153 END IF;
4154 --
4155 l_component_type := 'AMB_ADR';
4156 l_component_code := 'AP_PMT_CASH_CLEAR';
4157 l_component_type_code := 'S';
4158 l_component_appl_id := 200;
4159 l_amb_context_code := 'DEFAULT';
4160 x_transaction_coa_id := null;
4161 x_accounting_coa_id := null;
4162 --
4163
4164 --
4165 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4166 trace
4167 (p_msg => 'END of AcctDerRule_28'
4168 ,p_level => C_LEVEL_PROCEDURE
4169 ,p_module => l_log_module);
4170 END IF;
4171 x_value_type_code := 'S';
4172 l_output_value := TO_NUMBER(TO_NUMBER(p_source_21));
4173 RETURN l_output_value;
4174
4175 --
4176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4177 trace
4178 (p_msg => 'END of AcctDerRule_28(invalid)'
4179 ,p_level => C_LEVEL_PROCEDURE
4180 ,p_module => l_log_module);
4181 END IF;
4182 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4183 x_value_type_code := null;
4184 l_output_value := null;
4185 xla_accounting_err_pkg.build_message
4186 (p_appli_s_name => 'XLA'
4187 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4188 ,p_token_1 => 'COMPONENT_NAME'
4189 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4190 l_component_type
4191 , l_component_code
4192 , l_component_type_code
4193 , l_component_appl_id
4194 , l_amb_context_code
4195 )
4196 ,p_token_2 => 'OWNER'
4197 ,p_value_2 => xla_lookups_pkg.get_meaning(
4198 'XLA_OWNER_TYPE'
4199 ,l_component_type_code
4200 )
4201 ,p_token_3 => 'PAD_NAME'
4202 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4203 ,p_token_4 => 'PAD_OWNER'
4204 ,p_value_4 => xla_lookups_pkg.get_meaning(
4205 'XLA_OWNER_TYPE'
4206 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4207 )
4208 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4209 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4210 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4211 ,p_ae_header_id => NULL
4212 );
4213 RETURN l_output_value;
4214 EXCEPTION
4215 WHEN xla_exceptions_pkg.application_exception THEN
4216 RAISE;
4217 WHEN OTHERS THEN
4218 xla_exceptions_pkg.raise_message
4219 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_28');
4220 END AcctDerRule_28;
4221 --
4222
4223 ---------------------------------------
4224 --
4225 -- PRIVATE FUNCTION
4226 -- AcctDerRule_29
4227 --
4228 ---------------------------------------
4229 FUNCTION AcctDerRule_29 (
4230 p_application_id IN NUMBER
4231 , p_ae_header_id IN NUMBER
4232 , p_side IN VARCHAR2
4233 --Purchase Order Charge Account
4234 , p_source_28 IN NUMBER
4235 , x_transaction_coa_id OUT NOCOPY NUMBER
4236 , x_accounting_coa_id OUT NOCOPY NUMBER
4237 , x_value_type_code OUT NOCOPY VARCHAR2
4238 )
4239 RETURN NUMBER
4240 IS
4241 l_component_type VARCHAR2(80) ;
4242 l_component_code VARCHAR2(30) ;
4243 l_component_type_code VARCHAR2(1) ;
4244 l_component_appl_id INTEGER ;
4245 l_amb_context_code VARCHAR2(30) ;
4246 l_log_module VARCHAR2(240) ;
4247 l_output_value NUMBER ;
4248 BEGIN
4249 IF g_log_enabled THEN
4250 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4251 END IF;
4252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4253 trace
4254 (p_msg => 'BEGIN of AcctDerRule_29'
4255 ,p_level => C_LEVEL_PROCEDURE
4256 ,p_module => l_log_module);
4260 l_component_code := 'AP_PO_CHARGE_ACCT';
4257 END IF;
4258 --
4259 l_component_type := 'AMB_ADR';
4261 l_component_type_code := 'S';
4262 l_component_appl_id := 200;
4263 l_amb_context_code := 'DEFAULT';
4264 x_transaction_coa_id := null;
4265 x_accounting_coa_id := null;
4266 --
4267
4268 --
4269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4270 trace
4271 (p_msg => 'END of AcctDerRule_29'
4272 ,p_level => C_LEVEL_PROCEDURE
4273 ,p_module => l_log_module);
4274 END IF;
4275 x_value_type_code := 'S';
4276 l_output_value := TO_NUMBER(TO_NUMBER(p_source_28));
4277 RETURN l_output_value;
4278
4279 --
4280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4281 trace
4282 (p_msg => 'END of AcctDerRule_29(invalid)'
4283 ,p_level => C_LEVEL_PROCEDURE
4284 ,p_module => l_log_module);
4285 END IF;
4286 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4287 x_value_type_code := null;
4288 l_output_value := null;
4289 xla_accounting_err_pkg.build_message
4290 (p_appli_s_name => 'XLA'
4291 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4292 ,p_token_1 => 'COMPONENT_NAME'
4293 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4294 l_component_type
4295 , l_component_code
4296 , l_component_type_code
4297 , l_component_appl_id
4298 , l_amb_context_code
4299 )
4300 ,p_token_2 => 'OWNER'
4301 ,p_value_2 => xla_lookups_pkg.get_meaning(
4302 'XLA_OWNER_TYPE'
4303 ,l_component_type_code
4304 )
4305 ,p_token_3 => 'PAD_NAME'
4306 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4307 ,p_token_4 => 'PAD_OWNER'
4308 ,p_value_4 => xla_lookups_pkg.get_meaning(
4309 'XLA_OWNER_TYPE'
4310 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4311 )
4312 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4313 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4314 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4315 ,p_ae_header_id => NULL
4316 );
4317 RETURN l_output_value;
4318 EXCEPTION
4319 WHEN xla_exceptions_pkg.application_exception THEN
4320 RAISE;
4321 WHEN OTHERS THEN
4322 xla_exceptions_pkg.raise_message
4323 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_29');
4324 END AcctDerRule_29;
4325 --
4326
4327 ---------------------------------------
4328 --
4329 -- PRIVATE FUNCTION
4330 -- AcctDerRule_30
4331 --
4332 ---------------------------------------
4333 FUNCTION AcctDerRule_30 (
4334 p_application_id IN NUMBER
4335 , p_ae_header_id IN NUMBER
4336 , p_side IN VARCHAR2
4337 --Invoice Distribution Account
4338 , p_source_17 IN NUMBER
4339 --Prepaid Expense Account Source Option
4340 , p_source_18 IN VARCHAR2
4341 , p_source_18_meaning IN VARCHAR2
4342 --Purchase Order Number
4343 , p_source_19 IN VARCHAR2
4344 --Invoice Distribution Type
4345 , p_source_20 IN VARCHAR2
4346 , p_source_20_meaning IN VARCHAR2
4347 --Purchase Order Charge Account
4348 , p_source_28 IN NUMBER
4349 , x_transaction_coa_id OUT NOCOPY NUMBER
4350 , x_accounting_coa_id OUT NOCOPY NUMBER
4351 , x_value_type_code OUT NOCOPY VARCHAR2
4352 )
4353 RETURN NUMBER
4354 IS
4355 l_component_type VARCHAR2(80) ;
4356 l_component_code VARCHAR2(30) ;
4357 l_component_type_code VARCHAR2(1) ;
4358 l_component_appl_id INTEGER ;
4359 l_amb_context_code VARCHAR2(30) ;
4360 l_log_module VARCHAR2(240) ;
4361 l_output_value NUMBER ;
4362 BEGIN
4363 IF g_log_enabled THEN
4364 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4365 END IF;
4366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4367 trace
4368 (p_msg => 'BEGIN of AcctDerRule_30'
4369 ,p_level => C_LEVEL_PROCEDURE
4370 ,p_module => l_log_module);
4371 END IF;
4372 --
4373 l_component_type := 'AMB_ADR';
4374 l_component_code := 'AP_PREPAY_INVOICE_DIST';
4375 l_component_type_code := 'S';
4376 l_component_appl_id := 200;
4377 l_amb_context_code := 'DEFAULT';
4378 x_transaction_coa_id := null;
4379 x_accounting_coa_id := null;
4380 --
4381
4385 ') = 'Y' AND
4382 IF NVL(p_source_18,'
4383 ') <> 'Y' OR
4384 (NVL(p_source_18,'
4386 p_source_19 IS NULL )
4387 THEN
4388 --
4389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4390 trace
4391 (p_msg => 'END of AcctDerRule_30'
4392 ,p_level => C_LEVEL_PROCEDURE
4393 ,p_module => l_log_module);
4394 END IF;
4395 x_value_type_code := 'S';
4396 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
4397 RETURN l_output_value;
4398
4399 ELSIF NVL(p_source_18,'
4400 ') = 'Y' AND
4401 p_source_19 IS NOT NULL AND
4402 NVL(p_source_20,'
4403 ') = 'ITEM'
4404 THEN
4405 --
4406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4407 trace
4408 (p_msg => 'END of AcctDerRule_30'
4409 ,p_level => C_LEVEL_PROCEDURE
4410 ,p_module => l_log_module);
4411 END IF;
4412 x_value_type_code := 'S';
4413 l_output_value := TO_NUMBER(TO_NUMBER(p_source_28));
4414 RETURN l_output_value;
4415
4416 END IF;
4417 --
4418 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4419 trace
4420 (p_msg => 'END of AcctDerRule_30(invalid)'
4421 ,p_level => C_LEVEL_PROCEDURE
4422 ,p_module => l_log_module);
4423 END IF;
4424 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4425 x_value_type_code := null;
4426 l_output_value := null;
4427 xla_accounting_err_pkg.build_message
4428 (p_appli_s_name => 'XLA'
4429 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4430 ,p_token_1 => 'COMPONENT_NAME'
4431 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4432 l_component_type
4433 , l_component_code
4434 , l_component_type_code
4435 , l_component_appl_id
4436 , l_amb_context_code
4437 )
4438 ,p_token_2 => 'OWNER'
4439 ,p_value_2 => xla_lookups_pkg.get_meaning(
4440 'XLA_OWNER_TYPE'
4441 ,l_component_type_code
4442 )
4443 ,p_token_3 => 'PAD_NAME'
4444 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4445 ,p_token_4 => 'PAD_OWNER'
4446 ,p_value_4 => xla_lookups_pkg.get_meaning(
4447 'XLA_OWNER_TYPE'
4448 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4449 )
4450 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4451 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4452 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4453 ,p_ae_header_id => NULL
4454 );
4455 RETURN l_output_value;
4456 EXCEPTION
4457 WHEN xla_exceptions_pkg.application_exception THEN
4458 RAISE;
4459 WHEN OTHERS THEN
4460 xla_exceptions_pkg.raise_message
4461 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_30');
4462 END AcctDerRule_30;
4463 --
4464
4465 ---------------------------------------
4466 --
4467 -- PRIVATE FUNCTION
4468 -- AcctDerRule_31
4469 --
4470 ---------------------------------------
4471 FUNCTION AcctDerRule_31 (
4472 p_application_id IN NUMBER
4473 , p_ae_header_id IN NUMBER
4474 , p_side IN VARCHAR2
4475 --Automatic Offsets Value
4476 , p_source_4 IN VARCHAR2
4477 , p_source_4_meaning IN VARCHAR2
4478 --Invoice Distribution Account
4479 , p_source_17 IN NUMBER
4480 --Internal Realized Gain Account
4481 , p_source_32 IN NUMBER
4482 --Bank Gain Account
4483 , p_source_33 IN NUMBER
4484 , x_transaction_coa_id OUT NOCOPY NUMBER
4485 , x_accounting_coa_id OUT NOCOPY NUMBER
4486 , x_value_type_code OUT NOCOPY VARCHAR2
4487 )
4488 RETURN NUMBER
4489 IS
4490 l_component_type VARCHAR2(80) ;
4491 l_component_code VARCHAR2(30) ;
4492 l_component_type_code VARCHAR2(1) ;
4493 l_component_appl_id INTEGER ;
4494 l_amb_context_code VARCHAR2(30) ;
4495 l_log_module VARCHAR2(240) ;
4496 l_output_value NUMBER ;
4497 BEGIN
4498 IF g_log_enabled THEN
4499 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4500 END IF;
4501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4502 trace
4503 (p_msg => 'BEGIN of AcctDerRule_31'
4504 ,p_level => C_LEVEL_PROCEDURE
4505 ,p_module => l_log_module);
4506 END IF;
4507 --
4508 l_component_type := 'AMB_ADR';
4509 l_component_code := 'AP_REAL_GAIN';
4510 l_component_type_code := 'S';
4514 x_accounting_coa_id := null;
4511 l_component_appl_id := 200;
4512 l_amb_context_code := 'DEFAULT';
4513 x_transaction_coa_id := null;
4515 --
4516
4517 IF NVL(p_source_4,'
4518 ') <> 'ACCOUNT_SEGMENT_VALUE'
4519 THEN
4520 --
4521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4522 trace
4523 (p_msg => 'END of AcctDerRule_31'
4524 ,p_level => C_LEVEL_PROCEDURE
4525 ,p_module => l_log_module);
4526 END IF;
4527 x_value_type_code := 'S';
4528 l_output_value := TO_NUMBER(TO_NUMBER(p_source_32));
4529 RETURN l_output_value;
4530
4531 ELSIF NVL(p_source_4,'
4532 ') <> 'ACCOUNT_SEGMENT_VALUE'
4533 THEN
4534 --
4535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4536 trace
4537 (p_msg => 'END of AcctDerRule_31'
4538 ,p_level => C_LEVEL_PROCEDURE
4539 ,p_module => l_log_module);
4540 END IF;
4541 x_value_type_code := 'S';
4542 l_output_value := TO_NUMBER(TO_NUMBER(p_source_33));
4543 RETURN l_output_value;
4544
4545 ELSIF NVL(p_source_4,'
4546 ') = 'ACCOUNT_SEGMENT_VALUE'
4547 THEN
4548 --
4549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4550 trace
4551 (p_msg => 'END of AcctDerRule_31'
4552 ,p_level => C_LEVEL_PROCEDURE
4553 ,p_module => l_log_module);
4554 END IF;
4555 x_value_type_code := 'S';
4556 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
4557 RETURN l_output_value;
4558
4559 END IF;
4560 --
4561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4562 trace
4563 (p_msg => 'END of AcctDerRule_31(invalid)'
4564 ,p_level => C_LEVEL_PROCEDURE
4565 ,p_module => l_log_module);
4566 END IF;
4567 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4568 x_value_type_code := null;
4569 l_output_value := null;
4570 xla_accounting_err_pkg.build_message
4571 (p_appli_s_name => 'XLA'
4572 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4573 ,p_token_1 => 'COMPONENT_NAME'
4574 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4575 l_component_type
4576 , l_component_code
4577 , l_component_type_code
4578 , l_component_appl_id
4579 , l_amb_context_code
4580 )
4581 ,p_token_2 => 'OWNER'
4582 ,p_value_2 => xla_lookups_pkg.get_meaning(
4583 'XLA_OWNER_TYPE'
4584 ,l_component_type_code
4585 )
4586 ,p_token_3 => 'PAD_NAME'
4587 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4588 ,p_token_4 => 'PAD_OWNER'
4589 ,p_value_4 => xla_lookups_pkg.get_meaning(
4590 'XLA_OWNER_TYPE'
4591 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4592 )
4593 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4594 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4595 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4596 ,p_ae_header_id => NULL
4597 );
4598 RETURN l_output_value;
4599 EXCEPTION
4600 WHEN xla_exceptions_pkg.application_exception THEN
4601 RAISE;
4602 WHEN OTHERS THEN
4603 xla_exceptions_pkg.raise_message
4604 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_31');
4605 END AcctDerRule_31;
4606 --
4607
4608 ---------------------------------------
4609 --
4610 -- PRIVATE FUNCTION
4611 -- AcctDerRule_32
4612 --
4613 ---------------------------------------
4614 FUNCTION AcctDerRule_32 (
4615 p_application_id IN NUMBER
4616 , p_ae_header_id IN NUMBER
4617 , p_side IN VARCHAR2
4618 --Automatic Offsets Value
4619 , p_source_4 IN VARCHAR2
4620 , p_source_4_meaning IN VARCHAR2
4621 --Invoice Distribution Account
4622 , p_source_17 IN NUMBER
4623 --Internal Realized Loss Account
4624 , p_source_34 IN NUMBER
4625 --Bank Loss Account
4626 , p_source_35 IN NUMBER
4627 , x_transaction_coa_id OUT NOCOPY NUMBER
4628 , x_accounting_coa_id OUT NOCOPY NUMBER
4629 , x_value_type_code OUT NOCOPY VARCHAR2
4630 )
4631 RETURN NUMBER
4632 IS
4633 l_component_type VARCHAR2(80) ;
4634 l_component_code VARCHAR2(30) ;
4635 l_component_type_code VARCHAR2(1) ;
4636 l_component_appl_id INTEGER ;
4637 l_amb_context_code VARCHAR2(30) ;
4638 l_log_module VARCHAR2(240) ;
4642 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4639 l_output_value NUMBER ;
4640 BEGIN
4641 IF g_log_enabled THEN
4643 END IF;
4644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4645 trace
4646 (p_msg => 'BEGIN of AcctDerRule_32'
4647 ,p_level => C_LEVEL_PROCEDURE
4648 ,p_module => l_log_module);
4649 END IF;
4650 --
4651 l_component_type := 'AMB_ADR';
4652 l_component_code := 'AP_REAL_LOSS';
4653 l_component_type_code := 'S';
4654 l_component_appl_id := 200;
4655 l_amb_context_code := 'DEFAULT';
4656 x_transaction_coa_id := null;
4657 x_accounting_coa_id := null;
4658 --
4659
4660 IF NVL(p_source_4,'
4661 ') <> 'ACCOUNT_SEGMENT_VALUE'
4662 THEN
4663 --
4664 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4665 trace
4666 (p_msg => 'END of AcctDerRule_32'
4667 ,p_level => C_LEVEL_PROCEDURE
4668 ,p_module => l_log_module);
4669 END IF;
4670 x_value_type_code := 'S';
4671 l_output_value := TO_NUMBER(TO_NUMBER(p_source_34));
4672 RETURN l_output_value;
4673
4674 ELSIF NVL(p_source_4,'
4675 ') <> 'ACCOUNT_SEGMENT_VALUE'
4676 THEN
4677 --
4678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4679 trace
4680 (p_msg => 'END of AcctDerRule_32'
4681 ,p_level => C_LEVEL_PROCEDURE
4682 ,p_module => l_log_module);
4683 END IF;
4684 x_value_type_code := 'S';
4685 l_output_value := TO_NUMBER(TO_NUMBER(p_source_35));
4686 RETURN l_output_value;
4687
4688 ELSIF NVL(p_source_4,'
4689 ') = 'ACCOUNT_SEGMENT_VALUE'
4690 THEN
4691 --
4692 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4693 trace
4694 (p_msg => 'END of AcctDerRule_32'
4695 ,p_level => C_LEVEL_PROCEDURE
4696 ,p_module => l_log_module);
4697 END IF;
4698 x_value_type_code := 'S';
4699 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
4700 RETURN l_output_value;
4701
4702 END IF;
4703 --
4704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4705 trace
4706 (p_msg => 'END of AcctDerRule_32(invalid)'
4707 ,p_level => C_LEVEL_PROCEDURE
4708 ,p_module => l_log_module);
4709 END IF;
4710 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4711 x_value_type_code := null;
4712 l_output_value := null;
4713 xla_accounting_err_pkg.build_message
4714 (p_appli_s_name => 'XLA'
4715 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4716 ,p_token_1 => 'COMPONENT_NAME'
4717 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4718 l_component_type
4719 , l_component_code
4720 , l_component_type_code
4721 , l_component_appl_id
4722 , l_amb_context_code
4723 )
4724 ,p_token_2 => 'OWNER'
4725 ,p_value_2 => xla_lookups_pkg.get_meaning(
4726 'XLA_OWNER_TYPE'
4727 ,l_component_type_code
4728 )
4729 ,p_token_3 => 'PAD_NAME'
4730 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4731 ,p_token_4 => 'PAD_OWNER'
4732 ,p_value_4 => xla_lookups_pkg.get_meaning(
4733 'XLA_OWNER_TYPE'
4734 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4735 )
4736 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4737 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4738 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4739 ,p_ae_header_id => NULL
4740 );
4741 RETURN l_output_value;
4742 EXCEPTION
4743 WHEN xla_exceptions_pkg.application_exception THEN
4744 RAISE;
4745 WHEN OTHERS THEN
4746 xla_exceptions_pkg.raise_message
4747 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_32');
4748 END AcctDerRule_32;
4749 --
4750
4751 ---------------------------------------
4752 --
4753 -- PRIVATE FUNCTION
4754 -- AcctDerRule_33
4755 --
4756 ---------------------------------------
4757 FUNCTION AcctDerRule_33 (
4758 p_application_id IN NUMBER
4759 , p_ae_header_id IN NUMBER
4760 , p_side IN VARCHAR2
4761 --Recipient Invoice Distribution Account
4762 , p_source_36 IN NUMBER
4763 , x_transaction_coa_id OUT NOCOPY NUMBER
4764 , x_accounting_coa_id OUT NOCOPY NUMBER
4765 , x_value_type_code OUT NOCOPY VARCHAR2
4766 )
4767 RETURN NUMBER
4771 l_component_type_code VARCHAR2(1) ;
4768 IS
4769 l_component_type VARCHAR2(80) ;
4770 l_component_code VARCHAR2(30) ;
4772 l_component_appl_id INTEGER ;
4773 l_amb_context_code VARCHAR2(30) ;
4774 l_log_module VARCHAR2(240) ;
4775 l_output_value NUMBER ;
4776 BEGIN
4777 IF g_log_enabled THEN
4778 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
4779 END IF;
4780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4781 trace
4782 (p_msg => 'BEGIN of AcctDerRule_33'
4783 ,p_level => C_LEVEL_PROCEDURE
4784 ,p_module => l_log_module);
4785 END IF;
4786 --
4787 l_component_type := 'AMB_ADR';
4788 l_component_code := 'AP_RECP_INV_DIST';
4789 l_component_type_code := 'S';
4790 l_component_appl_id := 200;
4791 l_amb_context_code := 'DEFAULT';
4792 x_transaction_coa_id := null;
4793 x_accounting_coa_id := null;
4794 --
4795
4796 --
4797 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4798 trace
4799 (p_msg => 'END of AcctDerRule_33'
4800 ,p_level => C_LEVEL_PROCEDURE
4801 ,p_module => l_log_module);
4802 END IF;
4803 x_value_type_code := 'S';
4804 l_output_value := TO_NUMBER(TO_NUMBER(p_source_36));
4805 RETURN l_output_value;
4806
4807 --
4808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4809 trace
4810 (p_msg => 'END of AcctDerRule_33(invalid)'
4811 ,p_level => C_LEVEL_PROCEDURE
4812 ,p_module => l_log_module);
4813 END IF;
4814 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4815 x_value_type_code := null;
4816 l_output_value := null;
4817 xla_accounting_err_pkg.build_message
4818 (p_appli_s_name => 'XLA'
4819 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4820 ,p_token_1 => 'COMPONENT_NAME'
4821 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4822 l_component_type
4823 , l_component_code
4824 , l_component_type_code
4825 , l_component_appl_id
4826 , l_amb_context_code
4827 )
4828 ,p_token_2 => 'OWNER'
4829 ,p_value_2 => xla_lookups_pkg.get_meaning(
4830 'XLA_OWNER_TYPE'
4831 ,l_component_type_code
4832 )
4833 ,p_token_3 => 'PAD_NAME'
4834 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4835 ,p_token_4 => 'PAD_OWNER'
4836 ,p_value_4 => xla_lookups_pkg.get_meaning(
4837 'XLA_OWNER_TYPE'
4838 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4839 )
4840 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4841 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4842 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4843 ,p_ae_header_id => NULL
4844 );
4845 RETURN l_output_value;
4846 EXCEPTION
4847 WHEN xla_exceptions_pkg.application_exception THEN
4848 RAISE;
4849 WHEN OTHERS THEN
4850 xla_exceptions_pkg.raise_message
4851 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_33');
4852 END AcctDerRule_33;
4853 --
4854
4855 ---------------------------------------
4856 --
4857 -- PRIVATE FUNCTION
4858 -- AcctDerRule_34
4859 --
4860 ---------------------------------------
4861 FUNCTION AcctDerRule_34 (
4862 p_application_id IN NUMBER
4863 , p_ae_header_id IN NUMBER
4864 , p_side IN VARCHAR2
4865 --Automatic Offsets Value
4866 , p_source_4 IN VARCHAR2
4867 , p_source_4_meaning IN VARCHAR2
4868 --Invoice Distribution Account
4869 , p_source_17 IN NUMBER
4870 --Retainage Related Item Distribution Account
4871 , p_source_23 IN NUMBER
4872 , x_transaction_coa_id OUT NOCOPY NUMBER
4873 , x_accounting_coa_id OUT NOCOPY NUMBER
4874 , x_value_type_code OUT NOCOPY VARCHAR2
4875 )
4876 RETURN NUMBER
4877 IS
4878 l_component_type VARCHAR2(80) ;
4879 l_component_code VARCHAR2(30) ;
4880 l_component_type_code VARCHAR2(1) ;
4881 l_component_appl_id INTEGER ;
4882 l_amb_context_code VARCHAR2(30) ;
4883 l_log_module VARCHAR2(240) ;
4884 l_output_value NUMBER ;
4885 BEGIN
4886 IF g_log_enabled THEN
4887 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
4888 END IF;
4889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4890 trace
4891 (p_msg => 'BEGIN of AcctDerRule_34'
4895 --
4892 ,p_level => C_LEVEL_PROCEDURE
4893 ,p_module => l_log_module);
4894 END IF;
4896 l_component_type := 'AMB_ADR';
4897 l_component_code := 'AP_RETAINAGE';
4898 l_component_type_code := 'S';
4899 l_component_appl_id := 200;
4900 l_amb_context_code := 'DEFAULT';
4901 x_transaction_coa_id := null;
4902 x_accounting_coa_id := null;
4903 --
4904
4905 IF NVL(p_source_4,'
4906 ') <> 'ACCOUNT_SEGMENT_VALUE'
4907 THEN
4908 --
4909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4910 trace
4911 (p_msg => 'END of AcctDerRule_34'
4912 ,p_level => C_LEVEL_PROCEDURE
4913 ,p_module => l_log_module);
4914 END IF;
4915 x_value_type_code := 'S';
4916 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
4917 RETURN l_output_value;
4918
4919 ELSIF NVL(p_source_4,'
4920 ') = 'ACCOUNT_SEGMENT_VALUE'
4921 THEN
4922 --
4923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4924 trace
4925 (p_msg => 'END of AcctDerRule_34'
4926 ,p_level => C_LEVEL_PROCEDURE
4927 ,p_module => l_log_module);
4928 END IF;
4929 x_value_type_code := 'S';
4930 l_output_value := TO_NUMBER(TO_NUMBER(p_source_23));
4931 RETURN l_output_value;
4932
4933 END IF;
4934 --
4935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4936 trace
4937 (p_msg => 'END of AcctDerRule_34(invalid)'
4938 ,p_level => C_LEVEL_PROCEDURE
4939 ,p_module => l_log_module);
4940 END IF;
4941 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4942 x_value_type_code := null;
4943 l_output_value := null;
4944 xla_accounting_err_pkg.build_message
4945 (p_appli_s_name => 'XLA'
4946 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4947 ,p_token_1 => 'COMPONENT_NAME'
4948 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4949 l_component_type
4950 , l_component_code
4951 , l_component_type_code
4952 , l_component_appl_id
4953 , l_amb_context_code
4954 )
4955 ,p_token_2 => 'OWNER'
4956 ,p_value_2 => xla_lookups_pkg.get_meaning(
4957 'XLA_OWNER_TYPE'
4958 ,l_component_type_code
4959 )
4960 ,p_token_3 => 'PAD_NAME'
4961 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4962 ,p_token_4 => 'PAD_OWNER'
4963 ,p_value_4 => xla_lookups_pkg.get_meaning(
4964 'XLA_OWNER_TYPE'
4965 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4966 )
4967 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4968 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4969 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4970 ,p_ae_header_id => NULL
4971 );
4972 RETURN l_output_value;
4973 EXCEPTION
4974 WHEN xla_exceptions_pkg.application_exception THEN
4975 RAISE;
4976 WHEN OTHERS THEN
4977 xla_exceptions_pkg.raise_message
4978 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_34');
4979 END AcctDerRule_34;
4980 --
4981
4982 ---------------------------------------
4983 --
4984 -- PRIVATE FUNCTION
4985 -- AcctDerRule_35
4986 --
4987 ---------------------------------------
4988 FUNCTION AcctDerRule_35 (
4989 p_application_id IN NUMBER
4990 , p_ae_header_id IN NUMBER
4991 , p_side IN VARCHAR2
4992 --Automatic Offsets Value
4993 , p_source_4 IN VARCHAR2
4994 , p_source_4_meaning IN VARCHAR2
4995 --Invoice Distribution Account
4996 , p_source_17 IN NUMBER
4997 --Payables Options Rounding Account
4998 , p_source_37 IN NUMBER
4999 , x_transaction_coa_id OUT NOCOPY NUMBER
5000 , x_accounting_coa_id OUT NOCOPY NUMBER
5001 , x_value_type_code OUT NOCOPY VARCHAR2
5002 )
5003 RETURN NUMBER
5004 IS
5005 l_component_type VARCHAR2(80) ;
5006 l_component_code VARCHAR2(30) ;
5007 l_component_type_code VARCHAR2(1) ;
5008 l_component_appl_id INTEGER ;
5009 l_amb_context_code VARCHAR2(30) ;
5010 l_log_module VARCHAR2(240) ;
5011 l_output_value NUMBER ;
5012 BEGIN
5013 IF g_log_enabled THEN
5014 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
5015 END IF;
5016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5017 trace
5018 (p_msg => 'BEGIN of AcctDerRule_35'
5022 --
5019 ,p_level => C_LEVEL_PROCEDURE
5020 ,p_module => l_log_module);
5021 END IF;
5023 l_component_type := 'AMB_ADR';
5024 l_component_code := 'AP_ROUNDING';
5025 l_component_type_code := 'S';
5026 l_component_appl_id := 200;
5027 l_amb_context_code := 'DEFAULT';
5028 x_transaction_coa_id := null;
5029 x_accounting_coa_id := null;
5030 --
5031
5032 IF NVL(p_source_4,'
5033 ') <> 'ACCOUNT_SEGMENT_VALUE'
5034 THEN
5035 --
5036 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5037 trace
5038 (p_msg => 'END of AcctDerRule_35'
5039 ,p_level => C_LEVEL_PROCEDURE
5040 ,p_module => l_log_module);
5041 END IF;
5042 x_value_type_code := 'S';
5043 l_output_value := TO_NUMBER(TO_NUMBER(p_source_37));
5044 RETURN l_output_value;
5045
5046 ELSIF NVL(p_source_4,'
5047 ') = 'ACCOUNT_SEGMENT_VALUE'
5048 THEN
5049 --
5050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5051 trace
5052 (p_msg => 'END of AcctDerRule_35'
5053 ,p_level => C_LEVEL_PROCEDURE
5054 ,p_module => l_log_module);
5055 END IF;
5056 x_value_type_code := 'S';
5057 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
5058 RETURN l_output_value;
5059
5060 END IF;
5061 --
5062 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5063 trace
5064 (p_msg => 'END of AcctDerRule_35(invalid)'
5065 ,p_level => C_LEVEL_PROCEDURE
5066 ,p_module => l_log_module);
5067 END IF;
5068 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5069 x_value_type_code := null;
5070 l_output_value := null;
5071 xla_accounting_err_pkg.build_message
5072 (p_appli_s_name => 'XLA'
5073 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5074 ,p_token_1 => 'COMPONENT_NAME'
5075 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5076 l_component_type
5077 , l_component_code
5078 , l_component_type_code
5079 , l_component_appl_id
5080 , l_amb_context_code
5081 )
5082 ,p_token_2 => 'OWNER'
5083 ,p_value_2 => xla_lookups_pkg.get_meaning(
5084 'XLA_OWNER_TYPE'
5085 ,l_component_type_code
5086 )
5087 ,p_token_3 => 'PAD_NAME'
5088 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5089 ,p_token_4 => 'PAD_OWNER'
5090 ,p_value_4 => xla_lookups_pkg.get_meaning(
5091 'XLA_OWNER_TYPE'
5092 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5093 )
5094 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5095 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5096 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5097 ,p_ae_header_id => NULL
5098 );
5099 RETURN l_output_value;
5100 EXCEPTION
5101 WHEN xla_exceptions_pkg.application_exception THEN
5102 RAISE;
5103 WHEN OTHERS THEN
5104 xla_exceptions_pkg.raise_message
5105 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_35');
5106 END AcctDerRule_35;
5107 --
5108
5109 ---------------------------------------
5110 --
5111 -- PRIVATE FUNCTION
5112 -- AcctDerRule_36
5113 --
5114 ---------------------------------------
5115 FUNCTION AcctDerRule_36 (
5116 p_application_id IN NUMBER
5117 , p_ae_header_id IN NUMBER
5118 , p_side IN VARCHAR2
5119 --Automatic Offsets Value
5120 , p_source_4 IN VARCHAR2
5121 , p_source_4_meaning IN VARCHAR2
5122 --Invoice Distribution Account
5123 , p_source_17 IN NUMBER
5124 --Withholding Related Distribution Account
5125 , p_source_24 IN NUMBER
5126 , x_transaction_coa_id OUT NOCOPY NUMBER
5127 , x_accounting_coa_id OUT NOCOPY NUMBER
5128 , x_value_type_code OUT NOCOPY VARCHAR2
5129 )
5130 RETURN NUMBER
5131 IS
5132 l_component_type VARCHAR2(80) ;
5133 l_component_code VARCHAR2(30) ;
5134 l_component_type_code VARCHAR2(1) ;
5135 l_component_appl_id INTEGER ;
5136 l_amb_context_code VARCHAR2(30) ;
5137 l_log_module VARCHAR2(240) ;
5138 l_output_value NUMBER ;
5139 BEGIN
5140 IF g_log_enabled THEN
5141 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5142 END IF;
5143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5144 trace
5148 END IF;
5145 (p_msg => 'BEGIN of AcctDerRule_36'
5146 ,p_level => C_LEVEL_PROCEDURE
5147 ,p_module => l_log_module);
5149 --
5150 l_component_type := 'AMB_ADR';
5151 l_component_code := 'AP_WH_DIST_ACCT';
5152 l_component_type_code := 'S';
5153 l_component_appl_id := 200;
5154 l_amb_context_code := 'DEFAULT';
5155 x_transaction_coa_id := null;
5156 x_accounting_coa_id := null;
5157 --
5158
5159 IF NVL(p_source_4,'
5160 ') <> 'ACCOUNT_SEGMENT_VALUE'
5161 THEN
5162 --
5163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5164 trace
5165 (p_msg => 'END of AcctDerRule_36'
5166 ,p_level => C_LEVEL_PROCEDURE
5167 ,p_module => l_log_module);
5168 END IF;
5169 x_value_type_code := 'S';
5170 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
5171 RETURN l_output_value;
5172
5173 ELSIF NVL(p_source_4,'
5174 ') = 'ACCOUNT_SEGMENT_VALUE'
5175 THEN
5176 --
5177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5178 trace
5179 (p_msg => 'END of AcctDerRule_36'
5180 ,p_level => C_LEVEL_PROCEDURE
5181 ,p_module => l_log_module);
5182 END IF;
5183 x_value_type_code := 'S';
5184 l_output_value := TO_NUMBER(TO_NUMBER(p_source_24));
5185 RETURN l_output_value;
5186
5187 END IF;
5188 --
5189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5190 trace
5191 (p_msg => 'END of AcctDerRule_36(invalid)'
5192 ,p_level => C_LEVEL_PROCEDURE
5193 ,p_module => l_log_module);
5194 END IF;
5195 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5196 x_value_type_code := null;
5197 l_output_value := null;
5198 xla_accounting_err_pkg.build_message
5199 (p_appli_s_name => 'XLA'
5200 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5201 ,p_token_1 => 'COMPONENT_NAME'
5202 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5203 l_component_type
5204 , l_component_code
5205 , l_component_type_code
5206 , l_component_appl_id
5207 , l_amb_context_code
5208 )
5209 ,p_token_2 => 'OWNER'
5210 ,p_value_2 => xla_lookups_pkg.get_meaning(
5211 'XLA_OWNER_TYPE'
5212 ,l_component_type_code
5213 )
5214 ,p_token_3 => 'PAD_NAME'
5215 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5216 ,p_token_4 => 'PAD_OWNER'
5217 ,p_value_4 => xla_lookups_pkg.get_meaning(
5218 'XLA_OWNER_TYPE'
5219 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5220 )
5221 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5222 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5223 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5224 ,p_ae_header_id => NULL
5225 );
5226 RETURN l_output_value;
5227 EXCEPTION
5228 WHEN xla_exceptions_pkg.application_exception THEN
5229 RAISE;
5230 WHEN OTHERS THEN
5231 xla_exceptions_pkg.raise_message
5232 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_36');
5233 END AcctDerRule_36;
5234 --
5235
5236 ---------------------------------------
5237 --
5238 -- PRIVATE FUNCTION
5239 -- AcctDerRule_37
5240 --
5241 ---------------------------------------
5242 FUNCTION AcctDerRule_37 (
5243 p_application_id IN NUMBER
5244 , p_ae_header_id IN NUMBER
5245 , p_side IN VARCHAR2
5246 --Invoice Distribution Account
5247 , p_source_17 IN NUMBER
5248 , x_transaction_coa_id OUT NOCOPY NUMBER
5249 , x_accounting_coa_id OUT NOCOPY NUMBER
5250 , x_value_type_code OUT NOCOPY VARCHAR2
5251 )
5252 RETURN NUMBER
5253 IS
5254 l_component_type VARCHAR2(80) ;
5255 l_component_code VARCHAR2(30) ;
5256 l_component_type_code VARCHAR2(1) ;
5257 l_component_appl_id INTEGER ;
5258 l_amb_context_code VARCHAR2(30) ;
5259 l_log_module VARCHAR2(240) ;
5260 l_output_value NUMBER ;
5261 BEGIN
5262 IF g_log_enabled THEN
5263 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5264 END IF;
5265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5266 trace
5267 (p_msg => 'BEGIN of AcctDerRule_37'
5268 ,p_level => C_LEVEL_PROCEDURE
5269 ,p_module => l_log_module);
5270 END IF;
5271 --
5275 l_component_appl_id := 200;
5272 l_component_type := 'AMB_ADR';
5273 l_component_code := 'FV_AP_INV_DISTRBUTION_CCID';
5274 l_component_type_code := 'S';
5276 l_amb_context_code := 'DEFAULT';
5277 x_transaction_coa_id := null;
5278 x_accounting_coa_id := null;
5279 --
5280
5281 --
5282 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5283 trace
5284 (p_msg => 'END of AcctDerRule_37'
5285 ,p_level => C_LEVEL_PROCEDURE
5286 ,p_module => l_log_module);
5287 END IF;
5288 x_value_type_code := 'S';
5289 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
5290 RETURN l_output_value;
5291
5292 --
5293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5294 trace
5295 (p_msg => 'END of AcctDerRule_37(invalid)'
5296 ,p_level => C_LEVEL_PROCEDURE
5297 ,p_module => l_log_module);
5298 END IF;
5299 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5300 x_value_type_code := null;
5301 l_output_value := null;
5302 xla_accounting_err_pkg.build_message
5303 (p_appli_s_name => 'XLA'
5304 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5305 ,p_token_1 => 'COMPONENT_NAME'
5306 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5307 l_component_type
5308 , l_component_code
5309 , l_component_type_code
5310 , l_component_appl_id
5311 , l_amb_context_code
5312 )
5313 ,p_token_2 => 'OWNER'
5314 ,p_value_2 => xla_lookups_pkg.get_meaning(
5315 'XLA_OWNER_TYPE'
5316 ,l_component_type_code
5317 )
5318 ,p_token_3 => 'PAD_NAME'
5319 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5320 ,p_token_4 => 'PAD_OWNER'
5321 ,p_value_4 => xla_lookups_pkg.get_meaning(
5322 'XLA_OWNER_TYPE'
5323 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5324 )
5325 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5326 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5327 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5328 ,p_ae_header_id => NULL
5329 );
5330 RETURN l_output_value;
5331 EXCEPTION
5332 WHEN xla_exceptions_pkg.application_exception THEN
5333 RAISE;
5334 WHEN OTHERS THEN
5335 xla_exceptions_pkg.raise_message
5336 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_37');
5337 END AcctDerRule_37;
5338 --
5339
5340 ---------------------------------------
5341 --
5342 -- PRIVATE FUNCTION
5343 -- AcctLineType_38
5344 --
5345 ---------------------------------------
5346 PROCEDURE AcctLineType_38 (
5347 p_application_id IN NUMBER
5348 ,p_event_id IN NUMBER
5349 ,p_calculate_acctd_flag IN VARCHAR2
5350 ,p_calculate_g_l_flag IN VARCHAR2
5351 ,p_actual_flag IN OUT VARCHAR2
5352 ,p_balance_type_code OUT VARCHAR2
5353 ,p_gain_or_loss_ref OUT VARCHAR2
5354
5355 --Payment Distribution (Cleared Rate) Ledger Amount
5356 , p_source_10 IN NUMBER
5357 --Invoice Distribution Type
5358 , p_source_20 IN VARCHAR2
5359 , p_source_20_meaning IN VARCHAR2
5360 --Purchase Order Charge Account
5361 , p_source_28 IN NUMBER
5362 --When to Account for Payment Option
5363 , p_source_38 IN VARCHAR2
5364 --Payment Distribution Type
5365 , p_source_39 IN VARCHAR2
5366 , p_source_39_meaning IN VARCHAR2
5367 --Accounting Reversal Indicator
5368 , p_source_40 IN VARCHAR2
5369 --Payment Distribution Amount
5370 , p_source_41 IN NUMBER
5371 --Business Flow Accounts Payable Application Identifier
5372 , p_source_42 IN NUMBER
5373 --Business Flow Payment Distribution Type
5374 , p_source_43 IN VARCHAR2
5375 --Business Flow Payment Entity Code
5376 , p_source_44 IN VARCHAR2
5377 --Business Flow Payment Distribution Identifier
5378 , p_source_45 IN NUMBER
5379 --Business Flow Payment Identifier
5380 , p_source_46 IN NUMBER
5381 --Payment Distribution Identifier
5382 , p_source_47 IN NUMBER
5383 --Distribution Link Type
5384 , p_source_48 IN VARCHAR2
5385 --Payment Currency Code
5386 , p_source_49 IN VARCHAR2
5387 --Purchase Order Exchange Rate Date
5388 , p_source_50 IN DATE
5389 --Purchase Order Exchange Rate
5390 , p_source_51 IN NUMBER
5391 --Purchase Order Exchange Rate Type
5395 , p_source_53_meaning IN VARCHAR2
5392 , p_source_52 IN VARCHAR2
5393 --Override Accounted Amount Indicator
5394 , p_source_53 IN VARCHAR2
5396 --Payment Supplier Identifier
5397 , p_source_54 IN NUMBER
5398 --Payment Supplier Site Identifier
5399 , p_source_55 IN NUMBER
5400 --Third Party Type
5401 , p_source_56 IN VARCHAR2
5402 --Payment Distribution Reversed Identifier
5403 , p_source_57 IN NUMBER
5404 --Invoice Distribution Tax Line Identifier
5405 , p_source_58 IN NUMBER
5406 --Invoice Distribution Summary Tax Line Identifier
5407 , p_source_59 IN NUMBER
5408 )
5409 IS
5410
5411 l_component_type VARCHAR2(80);
5412 l_component_code VARCHAR2(30);
5413 l_component_type_code VARCHAR2(1);
5414 l_component_appl_id INTEGER;
5415 l_amb_context_code VARCHAR2(30);
5416 l_entity_code VARCHAR2(30);
5417 l_event_class_code VARCHAR2(30);
5418 l_ae_header_id NUMBER;
5419 l_event_type_code VARCHAR2(30);
5420 l_line_definition_code VARCHAR2(30);
5421 l_line_definition_owner_code VARCHAR2(1);
5422 --
5423 -- adr variables
5424 l_segment VARCHAR2(30);
5425 l_ccid NUMBER;
5426 l_adr_transaction_coa_id NUMBER;
5427 l_adr_accounting_coa_id NUMBER;
5428 l_adr_flexfield_segment_code VARCHAR2(30);
5429 l_adr_flex_value_set_id NUMBER;
5430 l_adr_value_type_code VARCHAR2(30);
5431 l_adr_value_combination_id NUMBER;
5432 l_adr_value_segment_code VARCHAR2(30);
5433
5434 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5435 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5436 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5437 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5438
5439 -- 4262811 Variables ------------------------------------------------------------------------------------------
5440 l_entered_amt_idx NUMBER;
5441 l_accted_amt_idx NUMBER;
5442 l_acc_rev_flag VARCHAR2(1);
5443 l_accrual_line_num NUMBER;
5444 l_tmp_amt NUMBER;
5445 l_acc_rev_natural_side_code VARCHAR2(1);
5446
5447 l_num_entries NUMBER;
5448 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5449 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5450 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5451 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5452 l_recog_line_1 NUMBER;
5453 l_recog_line_2 NUMBER;
5454
5455 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5456 l_bflow_applied_to_amt NUMBER; -- 5132302
5457 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5458
5459 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5460
5461 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5462 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5463
5464 ---------------------------------------------------------------------------------------------------------------
5465
5466
5467 --
5468 -- bulk performance
5469 --
5470 l_balance_type_code VARCHAR2(1);
5471 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5472 l_log_module VARCHAR2(240);
5473
5474 --
5475 -- Upgrade strategy
5476 --
5477 l_actual_upg_option VARCHAR2(1);
5478 l_enc_upg_option VARCHAR2(1);
5479
5480 --
5481 BEGIN
5482 --
5483 IF g_log_enabled THEN
5484 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
5485 END IF;
5486 --
5487 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5488
5489 trace
5490 (p_msg => 'BEGIN of AcctLineType_38'
5491 ,p_level => C_LEVEL_PROCEDURE
5492 ,p_module => l_log_module);
5493
5494 END IF;
5495 --
5496 l_component_type := 'AMB_JLT';
5497 l_component_code := 'AP_ACCRUAL_CLEAR';
5498 l_component_type_code := 'S';
5499 l_component_appl_id := 200;
5500 l_amb_context_code := 'DEFAULT';
5501 l_entity_code := 'AP_PAYMENTS';
5502 l_event_class_code := 'RECONCILED PAYMENTS';
5503 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
5504 l_line_definition_owner_code := 'S';
5505 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
5506 --
5507 l_balance_type_code := 'A';
5508 l_segment := NULL;
5509 l_ccid := NULL;
5510 l_adr_transaction_coa_id := NULL;
5511 l_adr_accounting_coa_id := NULL;
5512 l_adr_flexfield_segment_code := NULL;
5513 l_adr_flex_value_set_id := NULL;
5514 l_adr_value_type_code := NULL;
5515 l_adr_value_combination_id := NULL;
5516 l_adr_value_segment_code := NULL;
5517
5518 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5519 l_bflow_class_code := ''; -- 4219869 Business Flow
5520 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5521 l_budgetary_control_flag := 'N';
5522
5526 l_accted_amt_idx := NULL; -- 4262811
5523 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5524 l_bflow_applied_to_amt := NULL; -- 5132302
5525 l_entered_amt_idx := NULL; -- 4262811
5527 l_acc_rev_flag := NULL; -- 4262811
5528 l_accrual_line_num := NULL; -- 4262811
5529 l_tmp_amt := NULL; -- 4262811
5530 --
5531
5532 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5533 l_balance_type_code <> 'B' THEN
5534 IF NVL(p_source_38,'
5535 ') = 'CLEAR_CLEAR' AND
5536 (NVL(p_source_20,'
5537 ') = 'ACCRUAL' OR
5538 NVL(p_source_20,'
5539 ') = 'RETROACCRUAL') AND
5540 (NVL(p_source_39,'
5541 ') = 'CASH' OR
5542 NVL(p_source_39,'
5543 ') = 'AWT' OR
5544 NVL(p_source_39,'
5545 ') = 'DISCOUNT')
5546 THEN
5547
5548 --
5549 XLA_AE_LINES_PKG.SetNewLine;
5550
5551 p_balance_type_code := l_balance_type_code;
5552 -- set the flag so later we will know whether the gain loss line needs to be created
5553
5554 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5555 p_actual_flag :='A';
5556 END IF;
5557
5558 --
5559 -- bulk performance
5560 --
5561 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5562 p_header_num => 0); -- 4262811
5563 --
5564 -- set accounting line options
5565 --
5566 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5567 p_natural_side_code => 'D'
5568 , p_gain_or_loss_flag => 'N'
5569 , p_gl_transfer_mode_code => 'S'
5570 , p_acct_entry_type_code => 'A'
5571 , p_switch_side_flag => 'Y'
5572 , p_merge_duplicate_code => 'A'
5573 );
5574 --
5575 l_acc_rev_natural_side_code := 'C'; -- 4262811
5576 --
5577 --
5578 -- set accounting line type info
5579 --
5580 xla_ae_lines_pkg.SetAcctLineType
5581 (p_component_type => l_component_type
5582 ,p_event_type_code => l_event_type_code
5583 ,p_line_definition_owner_code => l_line_definition_owner_code
5584 ,p_line_definition_code => l_line_definition_code
5585 ,p_accounting_line_code => l_component_code
5586 ,p_accounting_line_type_code => l_component_type_code
5587 ,p_accounting_line_appl_id => l_component_appl_id
5588 ,p_amb_context_code => l_amb_context_code
5589 ,p_entity_code => l_entity_code
5590 ,p_event_class_code => l_event_class_code);
5591 --
5592 -- set accounting class
5593 --
5594 xla_ae_lines_pkg.SetAcctClass(
5595 p_accounting_class_code => 'ACCRUAL'
5596 , p_ae_header_id => l_ae_header_id
5597 );
5598
5599 --
5600 -- set rounding class
5601 --
5602 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5603 'ACCRUAL';
5604
5605 --
5606 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5607 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5608 --
5609 -- bulk performance
5610 --
5611 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5612
5613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5614 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5615
5616 -- 4955764
5617 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5618 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5619
5620 -- 4458381 Public Sector Enh
5621
5622 --
5623 -- set accounting attributes for the line type
5624 --
5625 l_entered_amt_idx := 10;
5626 l_accted_amt_idx := 15;
5627 l_bflow_applied_to_amt_idx := 2; -- 5132302
5628 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5629 l_rec_acct_attrs.array_char_value(1) := p_source_40;
5630 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
5631 l_rec_acct_attrs.array_num_value(2) := p_source_41;
5632 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
5633 l_rec_acct_attrs.array_num_value(3) := p_source_42;
5634 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5635 l_rec_acct_attrs.array_char_value(4) := p_source_43;
5636 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
5637 l_rec_acct_attrs.array_char_value(5) := p_source_44;
5638 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
5639 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
5640 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5641 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
5642 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
5643 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
5644 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
5645 l_rec_acct_attrs.array_char_value(9) := p_source_48;
5649 l_rec_acct_attrs.array_char_value(11) := p_source_49;
5646 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
5647 l_rec_acct_attrs.array_num_value(10) := p_source_41;
5648 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
5650 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
5651 l_rec_acct_attrs.array_date_value(12) := p_source_50;
5652 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
5653 l_rec_acct_attrs.array_num_value(13) := p_source_51;
5654 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
5655 l_rec_acct_attrs.array_char_value(14) := p_source_52;
5656 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
5657 l_rec_acct_attrs.array_num_value(15) := p_source_10;
5658 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
5659 l_rec_acct_attrs.array_char_value(16) := p_source_53;
5660 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
5661 l_rec_acct_attrs.array_num_value(17) := p_source_54;
5662 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
5663 l_rec_acct_attrs.array_num_value(18) := p_source_55;
5664 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
5665 l_rec_acct_attrs.array_char_value(19) := p_source_56;
5666 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
5667 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
5668 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
5669 l_rec_acct_attrs.array_char_value(21) := p_source_48;
5670 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
5671 l_rec_acct_attrs.array_num_value(22) := p_source_58;
5672 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
5673 l_rec_acct_attrs.array_num_value(23) := p_source_58;
5674 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
5675 l_rec_acct_attrs.array_num_value(24) := p_source_59;
5676
5677 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5678 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5679
5680 ---------------------------------------------------------------------------------------------------------------
5681 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5682 ---------------------------------------------------------------------------------------------------------------
5683 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5684
5685 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5686 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5687
5688 IF xla_accounting_cache_pkg.GetValueChar
5689 (p_source_code => 'LEDGER_CATEGORY_CODE'
5690 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5691 AND l_bflow_method_code = 'PRIOR_ENTRY'
5692 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5693 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5694 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5695 )
5696 THEN
5697 xla_ae_lines_pkg.BflowUpgEntry
5698 (p_business_method_code => l_bflow_method_code
5699 ,p_business_class_code => l_bflow_class_code
5700 ,p_balance_type => l_balance_type_code);
5701 ELSE
5702 NULL;
5703 -- No business flow processing for business flow method of NONE.
5704 END IF;
5705
5706 --
5707 -- call analytical criteria
5708 --
5709
5710 --
5711 -- call description
5712 --
5713 -- No description or it is inherited.
5714 --
5715 -- call ADRs
5716 -- Bug 4922099
5717 --
5718 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5719 (NVL(l_actual_upg_option, 'N') = 'O') OR
5720 (NVL(l_enc_upg_option, 'N') = 'O')
5721 )
5722 THEN
5723 NULL;
5724 --
5725 --
5726
5727 l_ccid := AcctDerRule_29(
5728 p_application_id => p_application_id
5729 , p_ae_header_id => l_ae_header_id
5730 , p_source_28 => p_source_28
5731 , x_transaction_coa_id => l_adr_transaction_coa_id
5732 , x_accounting_coa_id => l_adr_accounting_coa_id
5733 , x_value_type_code => l_adr_value_type_code
5734 , p_side => 'NA'
5735 );
5736
5737 xla_ae_lines_pkg.set_ccid(
5738 p_code_combination_id => l_ccid
5739 , p_value_type_code => l_adr_value_type_code
5740 , p_transaction_coa_id => l_adr_transaction_coa_id
5741 , p_accounting_coa_id => l_adr_accounting_coa_id
5742 , p_adr_code => 'AP_PO_CHARGE_ACCT'
5743 , p_adr_type_code => 'S'
5744 , p_component_type => l_component_type
5745 , p_component_code => l_component_code
5746 , p_component_type_code => l_component_type_code
5747 , p_component_appl_id => l_component_appl_id
5748 , p_amb_context_code => l_amb_context_code
5749 , p_side => 'NA'
5750 );
5751
5752
5753 --
5754 --
5755 END IF;
5756 --
5757 -- Bug 4922099
5758 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5762 )
5759 (NVL(l_enc_upg_option, 'N') = 'O')
5760 ) AND
5761 (l_bflow_method_code = 'PRIOR_ENTRY')
5763 THEN
5764 IF
5765 --
5766 1 = 2
5767 --
5768 THEN
5769 xla_accounting_err_pkg.build_message
5770 (p_appli_s_name => 'XLA'
5771 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5772 ,p_token_1 => 'LINE_NUMBER'
5773 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5774 ,p_token_2 => 'LINE_TYPE_NAME'
5775 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5776 l_component_type
5777 ,l_component_code
5778 ,l_component_type_code
5779 ,l_component_appl_id
5780 ,l_amb_context_code
5781 ,l_entity_code
5782 ,l_event_class_code
5783 )
5784 ,p_token_3 => 'OWNER'
5785 ,p_value_3 => xla_lookups_pkg.get_meaning(
5786 p_lookup_type => 'XLA_OWNER_TYPE'
5787 ,p_lookup_code => l_component_type_code
5788 )
5789 ,p_token_4 => 'PRODUCT_NAME'
5790 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5791 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5792 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5793 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5794 ,p_ae_header_id => NULL
5795 );
5796
5797 IF (C_LEVEL_ERROR>= g_log_level) THEN
5798 trace
5799 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5800 ,p_level => C_LEVEL_ERROR
5801 ,p_module => l_log_module);
5802 END IF;
5803 END IF;
5804 END IF;
5805 --
5806 --
5807 ------------------------------------------------------------------------------------------------
5808 -- 4219869 Business Flow
5809 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5810 -- Prior Entry. Currently, the following code is always generated.
5811 ------------------------------------------------------------------------------------------------
5812 XLA_AE_LINES_PKG.ValidateCurrentLine;
5813
5814 ------------------------------------------------------------------------------------
5815 -- 4219869 Business Flow
5816 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5817 ------------------------------------------------------------------------------------
5818 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5819
5820 ----------------------------------------------------------------------------------
5821 -- 4219869 Business Flow
5822 -- Update journal entry status -- Need to generate this within IF <condition>
5823 ----------------------------------------------------------------------------------
5824 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5825 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5826 ,p_balance_type_code => l_balance_type_code
5827 );
5828
5829 -------------------------------------------------------------------------------------------
5830 -- 4262811 - Generate the Accrual Reversal lines
5831 -------------------------------------------------------------------------------------------
5832 BEGIN
5833 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5834 (g_array_event(p_event_id).array_value_num('header_index'));
5835 IF l_acc_rev_flag IS NULL THEN
5836 l_acc_rev_flag := 'N';
5837 END IF;
5838 EXCEPTION
5839 WHEN OTHERS THEN
5840 l_acc_rev_flag := 'N';
5841 END;
5842 --
5843 IF (l_acc_rev_flag = 'Y') THEN
5844
5845 -- 4645092 ------------------------------------------------------------------------------
5846 -- To allow MPA report to determine if it should generate report process
5847 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5848 ------------------------------------------------------------------------------------------
5849
5850 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5851 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5852 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5856 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5853 -- call ADRs
5854 -- Bug 4922099
5855 --
5857 (NVL(l_actual_upg_option, 'N') = 'O') OR
5858 (NVL(l_enc_upg_option, 'N') = 'O')
5859 )
5860 THEN
5861 NULL;
5862 --
5863 --
5864
5865 l_ccid := AcctDerRule_29(
5866 p_application_id => p_application_id
5867 , p_ae_header_id => l_ae_header_id
5868 , p_source_28 => p_source_28
5869 , x_transaction_coa_id => l_adr_transaction_coa_id
5870 , x_accounting_coa_id => l_adr_accounting_coa_id
5871 , x_value_type_code => l_adr_value_type_code
5872 , p_side => 'NA'
5873 );
5874
5875 xla_ae_lines_pkg.set_ccid(
5876 p_code_combination_id => l_ccid
5877 , p_value_type_code => l_adr_value_type_code
5878 , p_transaction_coa_id => l_adr_transaction_coa_id
5879 , p_accounting_coa_id => l_adr_accounting_coa_id
5880 , p_adr_code => 'AP_PO_CHARGE_ACCT'
5881 , p_adr_type_code => 'S'
5882 , p_component_type => l_component_type
5883 , p_component_code => l_component_code
5884 , p_component_type_code => l_component_type_code
5885 , p_component_appl_id => l_component_appl_id
5886 , p_amb_context_code => l_amb_context_code
5887 , p_side => 'NA'
5888 );
5889
5890
5891 --
5892 --
5893 END IF;
5894
5895 --
5896 -- Update the line information that should be overwritten
5897 --
5898 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5899 p_header_num => 1);
5900 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5901
5902 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5903
5904 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5905 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5906 END IF;
5907
5908 --
5909 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5910 --
5911 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5912 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5913 ELSE
5914 ---------------------------------------------------------------------------------------------------
5915 -- 4262811a Switch Sign
5916 ---------------------------------------------------------------------------------------------------
5917 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5918 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5919 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5920 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5921 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5922 -- 5132302
5923 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5924 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5925
5926 END IF;
5927
5928 -- 4955764
5929 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5930 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5931
5932
5933 XLA_AE_LINES_PKG.ValidateCurrentLine;
5934 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5935
5936 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5937 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5938 ,p_balance_type_code => l_balance_type_code);
5939
5940 END IF;
5941
5942 -----------------------------------------------------------------------------------------
5943 -- 4262811 Multiperiod Accounting
5944 -----------------------------------------------------------------------------------------
5945 -- No MPA option is assigned.
5946
5947
5948 END IF;
5949 END IF;
5950 --
5951
5952 --
5953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5954 trace
5955 (p_msg => 'END of AcctLineType_38'
5956 ,p_level => C_LEVEL_PROCEDURE
5957 ,p_module => l_log_module);
5958 END IF;
5959 --
5960 EXCEPTION
5961 WHEN xla_exceptions_pkg.application_exception THEN
5962 RAISE;
5963 WHEN OTHERS THEN
5964 xla_exceptions_pkg.raise_message
5965 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_38');
5966 END AcctLineType_38;
5967 --
5968
5969 ---------------------------------------
5970 --
5971 -- PRIVATE FUNCTION
5972 -- AcctLineType_39
5973 --
5974 ---------------------------------------
5975 PROCEDURE AcctLineType_39 (
5976 p_application_id IN NUMBER
5977 ,p_event_id IN NUMBER
5978 ,p_calculate_acctd_flag IN VARCHAR2
5982 ,p_gain_or_loss_ref OUT VARCHAR2
5979 ,p_calculate_g_l_flag IN VARCHAR2
5980 ,p_actual_flag IN OUT VARCHAR2
5981 ,p_balance_type_code OUT VARCHAR2
5983
5984 --Payment Distribution (Payment Rate) Ledger Amount
5985 , p_source_9 IN NUMBER
5986 --Invoice Distribution Type
5987 , p_source_20 IN VARCHAR2
5988 , p_source_20_meaning IN VARCHAR2
5989 --Purchase Order Charge Account
5990 , p_source_28 IN NUMBER
5991 --When to Account for Payment Option
5992 , p_source_38 IN VARCHAR2
5993 --Payment Distribution Type
5994 , p_source_39 IN VARCHAR2
5995 , p_source_39_meaning IN VARCHAR2
5996 --Accounting Reversal Indicator
5997 , p_source_40 IN VARCHAR2
5998 --Payment Distribution Amount
5999 , p_source_41 IN NUMBER
6000 --Business Flow Accounts Payable Application Identifier
6001 , p_source_42 IN NUMBER
6002 --Payment Distribution Identifier
6003 , p_source_47 IN NUMBER
6004 --Distribution Link Type
6005 , p_source_48 IN VARCHAR2
6006 --Payment Currency Code
6007 , p_source_49 IN VARCHAR2
6008 --Purchase Order Exchange Rate Date
6009 , p_source_50 IN DATE
6010 --Purchase Order Exchange Rate
6011 , p_source_51 IN NUMBER
6012 --Purchase Order Exchange Rate Type
6013 , p_source_52 IN VARCHAR2
6014 --Override Accounted Amount Indicator
6015 , p_source_53 IN VARCHAR2
6016 , p_source_53_meaning IN VARCHAR2
6017 --Payment Supplier Identifier
6018 , p_source_54 IN NUMBER
6019 --Payment Supplier Site Identifier
6020 , p_source_55 IN NUMBER
6021 --Third Party Type
6022 , p_source_56 IN VARCHAR2
6023 --Payment Distribution Reversed Identifier
6024 , p_source_57 IN NUMBER
6025 --Invoice Distribution Tax Line Identifier
6026 , p_source_58 IN NUMBER
6027 --Invoice Distribution Summary Tax Line Identifier
6028 , p_source_59 IN NUMBER
6029 --Payment Type
6030 , p_source_60 IN VARCHAR2
6031 , p_source_60_meaning IN VARCHAR2
6032 --Invoice Distribution Amount of the Payment Distribution
6033 , p_source_61 IN NUMBER
6034 --Business Flow Invoice Distribution Type
6035 , p_source_62 IN VARCHAR2
6036 --Business Flow Invoice Entity Code
6037 , p_source_63 IN VARCHAR2
6038 --Business Flow Invoice Distribution Identifier
6039 , p_source_64 IN NUMBER
6040 --Business Flow Invoice Identifier
6041 , p_source_65 IN NUMBER
6042 --Invoice Distribution Tax Distribution Identifier from Tax
6043 , p_source_66 IN NUMBER
6044 )
6045 IS
6046
6047 l_component_type VARCHAR2(80);
6048 l_component_code VARCHAR2(30);
6049 l_component_type_code VARCHAR2(1);
6050 l_component_appl_id INTEGER;
6051 l_amb_context_code VARCHAR2(30);
6052 l_entity_code VARCHAR2(30);
6053 l_event_class_code VARCHAR2(30);
6054 l_ae_header_id NUMBER;
6055 l_event_type_code VARCHAR2(30);
6056 l_line_definition_code VARCHAR2(30);
6057 l_line_definition_owner_code VARCHAR2(1);
6058 --
6059 -- adr variables
6060 l_segment VARCHAR2(30);
6061 l_ccid NUMBER;
6062 l_adr_transaction_coa_id NUMBER;
6063 l_adr_accounting_coa_id NUMBER;
6064 l_adr_flexfield_segment_code VARCHAR2(30);
6065 l_adr_flex_value_set_id NUMBER;
6066 l_adr_value_type_code VARCHAR2(30);
6067 l_adr_value_combination_id NUMBER;
6068 l_adr_value_segment_code VARCHAR2(30);
6069
6070 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6071 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6072 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6073 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6074
6075 -- 4262811 Variables ------------------------------------------------------------------------------------------
6076 l_entered_amt_idx NUMBER;
6077 l_accted_amt_idx NUMBER;
6078 l_acc_rev_flag VARCHAR2(1);
6079 l_accrual_line_num NUMBER;
6080 l_tmp_amt NUMBER;
6081 l_acc_rev_natural_side_code VARCHAR2(1);
6082
6083 l_num_entries NUMBER;
6084 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6085 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6086 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6087 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6088 l_recog_line_1 NUMBER;
6089 l_recog_line_2 NUMBER;
6090
6091 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6092 l_bflow_applied_to_amt NUMBER; -- 5132302
6093 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6094
6095 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6096
6097 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6098 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6099
6100 ---------------------------------------------------------------------------------------------------------------
6101
6102
6103 --
6107 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6104 -- bulk performance
6105 --
6106 l_balance_type_code VARCHAR2(1);
6108 l_log_module VARCHAR2(240);
6109
6110 --
6111 -- Upgrade strategy
6112 --
6113 l_actual_upg_option VARCHAR2(1);
6114 l_enc_upg_option VARCHAR2(1);
6115
6116 --
6117 BEGIN
6118 --
6119 IF g_log_enabled THEN
6120 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
6121 END IF;
6122 --
6123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6124
6125 trace
6126 (p_msg => 'BEGIN of AcctLineType_39'
6127 ,p_level => C_LEVEL_PROCEDURE
6128 ,p_module => l_log_module);
6129
6130 END IF;
6131 --
6132 l_component_type := 'AMB_JLT';
6133 l_component_code := 'AP_ACCRUAL_PMT';
6134 l_component_type_code := 'S';
6135 l_component_appl_id := 200;
6136 l_amb_context_code := 'DEFAULT';
6137 l_entity_code := 'AP_PAYMENTS';
6138 l_event_class_code := 'PAYMENTS';
6139 l_event_type_code := 'PAYMENTS_ALL';
6140 l_line_definition_owner_code := 'S';
6141 l_line_definition_code := 'CASH_PAYMENTS_ALL';
6142 --
6143 l_balance_type_code := 'A';
6144 l_segment := NULL;
6145 l_ccid := NULL;
6146 l_adr_transaction_coa_id := NULL;
6147 l_adr_accounting_coa_id := NULL;
6148 l_adr_flexfield_segment_code := NULL;
6149 l_adr_flex_value_set_id := NULL;
6150 l_adr_value_type_code := NULL;
6151 l_adr_value_combination_id := NULL;
6152 l_adr_value_segment_code := NULL;
6153
6154 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6155 l_bflow_class_code := ''; -- 4219869 Business Flow
6156 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6157 l_budgetary_control_flag := 'N';
6158
6159 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6160 l_bflow_applied_to_amt := NULL; -- 5132302
6161 l_entered_amt_idx := NULL; -- 4262811
6162 l_accted_amt_idx := NULL; -- 4262811
6163 l_acc_rev_flag := NULL; -- 4262811
6164 l_accrual_line_num := NULL; -- 4262811
6165 l_tmp_amt := NULL; -- 4262811
6166 --
6167
6168 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6169 l_balance_type_code <> 'B' THEN
6170 IF NVL(p_source_38,'
6171 ') <> 'CLEAR_CLEAR' AND
6172 (NVL(p_source_20,'
6173 ') = 'ACCRUAL' OR
6174 NVL(p_source_20,'
6175 ') = 'RETROACCRUAL') AND
6176 (NVL(p_source_39,'
6177 ') = 'CASH' OR
6178 NVL(p_source_39,'
6179 ') = 'AWT' OR
6180 NVL(p_source_39,'
6181 ') = 'DISCOUNT') AND
6182 NVL(p_source_60,'
6183 ') <> 'R'
6184 THEN
6185
6186 --
6187 XLA_AE_LINES_PKG.SetNewLine;
6188
6189 p_balance_type_code := l_balance_type_code;
6190 -- set the flag so later we will know whether the gain loss line needs to be created
6191
6192 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6193 p_actual_flag :='A';
6194 END IF;
6195
6196 --
6197 -- bulk performance
6198 --
6199 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6200 p_header_num => 0); -- 4262811
6201 --
6202 -- set accounting line options
6203 --
6204 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6205 p_natural_side_code => 'D'
6206 , p_gain_or_loss_flag => 'N'
6207 , p_gl_transfer_mode_code => 'S'
6208 , p_acct_entry_type_code => 'A'
6209 , p_switch_side_flag => 'Y'
6210 , p_merge_duplicate_code => 'A'
6211 );
6212 --
6213 l_acc_rev_natural_side_code := 'C'; -- 4262811
6214 --
6215 --
6216 -- set accounting line type info
6217 --
6218 xla_ae_lines_pkg.SetAcctLineType
6219 (p_component_type => l_component_type
6220 ,p_event_type_code => l_event_type_code
6221 ,p_line_definition_owner_code => l_line_definition_owner_code
6222 ,p_line_definition_code => l_line_definition_code
6223 ,p_accounting_line_code => l_component_code
6224 ,p_accounting_line_type_code => l_component_type_code
6225 ,p_accounting_line_appl_id => l_component_appl_id
6226 ,p_amb_context_code => l_amb_context_code
6227 ,p_entity_code => l_entity_code
6228 ,p_event_class_code => l_event_class_code);
6229 --
6230 -- set accounting class
6231 --
6232 xla_ae_lines_pkg.SetAcctClass(
6233 p_accounting_class_code => 'ACCRUAL'
6234 , p_ae_header_id => l_ae_header_id
6235 );
6236
6237 --
6238 -- set rounding class
6239 --
6240 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6241 'ACCRUAL';
6242
6243 --
6244 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6248 --
6245 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6246 --
6247 -- bulk performance
6249 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6250
6251 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6252 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6253
6254 -- 4955764
6255 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6256 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6257
6258 -- 4458381 Public Sector Enh
6259
6260 --
6261 -- set accounting attributes for the line type
6262 --
6263 l_entered_amt_idx := 10;
6264 l_accted_amt_idx := 15;
6265 l_bflow_applied_to_amt_idx := 2; -- 5132302
6266 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6267 l_rec_acct_attrs.array_char_value(1) := p_source_40;
6268 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
6269 l_rec_acct_attrs.array_num_value(2) := p_source_61;
6270 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
6271 l_rec_acct_attrs.array_num_value(3) := p_source_42;
6272 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6273 l_rec_acct_attrs.array_char_value(4) := p_source_62;
6274 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
6275 l_rec_acct_attrs.array_char_value(5) := p_source_63;
6276 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
6277 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
6278 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6279 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
6280 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
6281 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
6282 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
6283 l_rec_acct_attrs.array_char_value(9) := p_source_48;
6284 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6285 l_rec_acct_attrs.array_num_value(10) := p_source_41;
6286 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6287 l_rec_acct_attrs.array_char_value(11) := p_source_49;
6288 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6289 l_rec_acct_attrs.array_date_value(12) := p_source_50;
6290 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6291 l_rec_acct_attrs.array_num_value(13) := p_source_51;
6292 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6293 l_rec_acct_attrs.array_char_value(14) := p_source_52;
6294 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6295 l_rec_acct_attrs.array_num_value(15) := p_source_9;
6296 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
6297 l_rec_acct_attrs.array_char_value(16) := p_source_53;
6298 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
6299 l_rec_acct_attrs.array_num_value(17) := p_source_54;
6300 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
6301 l_rec_acct_attrs.array_num_value(18) := p_source_55;
6302 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
6303 l_rec_acct_attrs.array_char_value(19) := p_source_56;
6304 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
6305 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
6306 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
6307 l_rec_acct_attrs.array_char_value(21) := p_source_48;
6308 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
6309 l_rec_acct_attrs.array_num_value(22) := p_source_58;
6310 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
6311 l_rec_acct_attrs.array_num_value(23) := p_source_66;
6312 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
6313 l_rec_acct_attrs.array_num_value(24) := p_source_59;
6314
6315 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6316 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6317
6318 ---------------------------------------------------------------------------------------------------------------
6319 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6320 ---------------------------------------------------------------------------------------------------------------
6321 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6322
6323 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6324 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6325
6326 IF xla_accounting_cache_pkg.GetValueChar
6327 (p_source_code => 'LEDGER_CATEGORY_CODE'
6328 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6329 AND l_bflow_method_code = 'PRIOR_ENTRY'
6330 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6331 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6332 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6333 )
6334 THEN
6335 xla_ae_lines_pkg.BflowUpgEntry
6336 (p_business_method_code => l_bflow_method_code
6337 ,p_business_class_code => l_bflow_class_code
6341 -- No business flow processing for business flow method of NONE.
6338 ,p_balance_type => l_balance_type_code);
6339 ELSE
6340 NULL;
6342 END IF;
6343
6344 --
6345 -- call analytical criteria
6346 --
6347
6348 --
6349 -- call description
6350 --
6351 -- No description or it is inherited.
6352 --
6353 -- call ADRs
6354 -- Bug 4922099
6355 --
6356 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6357 (NVL(l_actual_upg_option, 'N') = 'O') OR
6358 (NVL(l_enc_upg_option, 'N') = 'O')
6359 )
6360 THEN
6361 NULL;
6362 --
6363 --
6364
6365 l_ccid := AcctDerRule_29(
6366 p_application_id => p_application_id
6367 , p_ae_header_id => l_ae_header_id
6368 , p_source_28 => p_source_28
6369 , x_transaction_coa_id => l_adr_transaction_coa_id
6370 , x_accounting_coa_id => l_adr_accounting_coa_id
6371 , x_value_type_code => l_adr_value_type_code
6372 , p_side => 'NA'
6373 );
6374
6375 xla_ae_lines_pkg.set_ccid(
6376 p_code_combination_id => l_ccid
6377 , p_value_type_code => l_adr_value_type_code
6378 , p_transaction_coa_id => l_adr_transaction_coa_id
6379 , p_accounting_coa_id => l_adr_accounting_coa_id
6380 , p_adr_code => 'AP_PO_CHARGE_ACCT'
6381 , p_adr_type_code => 'S'
6382 , p_component_type => l_component_type
6383 , p_component_code => l_component_code
6384 , p_component_type_code => l_component_type_code
6385 , p_component_appl_id => l_component_appl_id
6386 , p_amb_context_code => l_amb_context_code
6387 , p_side => 'NA'
6388 );
6389
6390
6391 --
6392 --
6393 END IF;
6394 --
6395 -- Bug 4922099
6396 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6397 (NVL(l_enc_upg_option, 'N') = 'O')
6398 ) AND
6399 (l_bflow_method_code = 'PRIOR_ENTRY')
6400 )
6401 THEN
6402 IF
6403 --
6404 1 = 2
6405 --
6406 THEN
6407 xla_accounting_err_pkg.build_message
6408 (p_appli_s_name => 'XLA'
6409 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6410 ,p_token_1 => 'LINE_NUMBER'
6411 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6412 ,p_token_2 => 'LINE_TYPE_NAME'
6413 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6414 l_component_type
6415 ,l_component_code
6416 ,l_component_type_code
6417 ,l_component_appl_id
6418 ,l_amb_context_code
6419 ,l_entity_code
6420 ,l_event_class_code
6421 )
6422 ,p_token_3 => 'OWNER'
6423 ,p_value_3 => xla_lookups_pkg.get_meaning(
6424 p_lookup_type => 'XLA_OWNER_TYPE'
6425 ,p_lookup_code => l_component_type_code
6426 )
6427 ,p_token_4 => 'PRODUCT_NAME'
6428 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6429 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6430 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6431 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6432 ,p_ae_header_id => NULL
6433 );
6434
6435 IF (C_LEVEL_ERROR>= g_log_level) THEN
6436 trace
6437 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6438 ,p_level => C_LEVEL_ERROR
6439 ,p_module => l_log_module);
6440 END IF;
6441 END IF;
6442 END IF;
6443 --
6444 --
6445 ------------------------------------------------------------------------------------------------
6446 -- 4219869 Business Flow
6447 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6448 -- Prior Entry. Currently, the following code is always generated.
6449 ------------------------------------------------------------------------------------------------
6453 -- 4219869 Business Flow
6450 XLA_AE_LINES_PKG.ValidateCurrentLine;
6451
6452 ------------------------------------------------------------------------------------
6454 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6455 ------------------------------------------------------------------------------------
6456 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6457
6458 ----------------------------------------------------------------------------------
6459 -- 4219869 Business Flow
6460 -- Update journal entry status -- Need to generate this within IF <condition>
6461 ----------------------------------------------------------------------------------
6462 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6463 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6464 ,p_balance_type_code => l_balance_type_code
6465 );
6466
6467 -------------------------------------------------------------------------------------------
6468 -- 4262811 - Generate the Accrual Reversal lines
6469 -------------------------------------------------------------------------------------------
6470 BEGIN
6471 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6472 (g_array_event(p_event_id).array_value_num('header_index'));
6473 IF l_acc_rev_flag IS NULL THEN
6474 l_acc_rev_flag := 'N';
6475 END IF;
6476 EXCEPTION
6477 WHEN OTHERS THEN
6478 l_acc_rev_flag := 'N';
6479 END;
6480 --
6481 IF (l_acc_rev_flag = 'Y') THEN
6482
6483 -- 4645092 ------------------------------------------------------------------------------
6484 -- To allow MPA report to determine if it should generate report process
6485 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6486 ------------------------------------------------------------------------------------------
6487
6488 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6489 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6490 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6491 -- call ADRs
6492 -- Bug 4922099
6493 --
6494 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6495 (NVL(l_actual_upg_option, 'N') = 'O') OR
6496 (NVL(l_enc_upg_option, 'N') = 'O')
6497 )
6498 THEN
6499 NULL;
6500 --
6501 --
6502
6503 l_ccid := AcctDerRule_29(
6504 p_application_id => p_application_id
6505 , p_ae_header_id => l_ae_header_id
6506 , p_source_28 => p_source_28
6507 , x_transaction_coa_id => l_adr_transaction_coa_id
6508 , x_accounting_coa_id => l_adr_accounting_coa_id
6509 , x_value_type_code => l_adr_value_type_code
6510 , p_side => 'NA'
6511 );
6512
6513 xla_ae_lines_pkg.set_ccid(
6514 p_code_combination_id => l_ccid
6515 , p_value_type_code => l_adr_value_type_code
6516 , p_transaction_coa_id => l_adr_transaction_coa_id
6517 , p_accounting_coa_id => l_adr_accounting_coa_id
6518 , p_adr_code => 'AP_PO_CHARGE_ACCT'
6519 , p_adr_type_code => 'S'
6520 , p_component_type => l_component_type
6521 , p_component_code => l_component_code
6522 , p_component_type_code => l_component_type_code
6523 , p_component_appl_id => l_component_appl_id
6524 , p_amb_context_code => l_amb_context_code
6525 , p_side => 'NA'
6526 );
6527
6528
6529 --
6530 --
6531 END IF;
6532
6533 --
6534 -- Update the line information that should be overwritten
6535 --
6536 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6537 p_header_num => 1);
6538 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6539
6540 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6541
6542 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6543 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6544 END IF;
6545
6546 --
6547 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6548 --
6549 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6550 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6551 ELSE
6552 ---------------------------------------------------------------------------------------------------
6553 -- 4262811a Switch Sign
6554 ---------------------------------------------------------------------------------------------------
6555 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6556 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6557 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6558 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6562 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6559 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6560 -- 5132302
6561 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6563
6564 END IF;
6565
6566 -- 4955764
6567 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6568 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6569
6570
6571 XLA_AE_LINES_PKG.ValidateCurrentLine;
6572 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6573
6574 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6575 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6576 ,p_balance_type_code => l_balance_type_code);
6577
6578 END IF;
6579
6580 -----------------------------------------------------------------------------------------
6581 -- 4262811 Multiperiod Accounting
6582 -----------------------------------------------------------------------------------------
6583 -- No MPA option is assigned.
6584
6585
6586 END IF;
6587 END IF;
6588 --
6589
6590 --
6591 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6592 trace
6593 (p_msg => 'END of AcctLineType_39'
6594 ,p_level => C_LEVEL_PROCEDURE
6595 ,p_module => l_log_module);
6596 END IF;
6597 --
6598 EXCEPTION
6599 WHEN xla_exceptions_pkg.application_exception THEN
6600 RAISE;
6601 WHEN OTHERS THEN
6602 xla_exceptions_pkg.raise_message
6603 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_39');
6604 END AcctLineType_39;
6605 --
6606
6607 ---------------------------------------
6608 --
6609 -- PRIVATE FUNCTION
6610 -- AcctLineType_40
6611 --
6612 ---------------------------------------
6613 PROCEDURE AcctLineType_40 (
6614 p_application_id IN NUMBER
6615 ,p_event_id IN NUMBER
6616 ,p_calculate_acctd_flag IN VARCHAR2
6617 ,p_calculate_g_l_flag IN VARCHAR2
6618 ,p_actual_flag IN OUT VARCHAR2
6619 ,p_balance_type_code OUT VARCHAR2
6620 ,p_gain_or_loss_ref OUT VARCHAR2
6621
6622 --Payment Distribution (Payment Rate) Ledger Amount
6623 , p_source_9 IN NUMBER
6624 --Invoice Distribution Type
6625 , p_source_20 IN VARCHAR2
6626 , p_source_20_meaning IN VARCHAR2
6627 --Purchase Order Charge Account
6628 , p_source_28 IN NUMBER
6629 --When to Account for Payment Option
6630 , p_source_38 IN VARCHAR2
6631 --Payment Distribution Type
6632 , p_source_39 IN VARCHAR2
6633 , p_source_39_meaning IN VARCHAR2
6634 --Accounting Reversal Indicator
6635 , p_source_40 IN VARCHAR2
6636 --Payment Distribution Amount
6637 , p_source_41 IN NUMBER
6638 --Business Flow Accounts Payable Application Identifier
6639 , p_source_42 IN NUMBER
6640 --Payment Distribution Identifier
6641 , p_source_47 IN NUMBER
6642 --Distribution Link Type
6643 , p_source_48 IN VARCHAR2
6644 --Payment Currency Code
6645 , p_source_49 IN VARCHAR2
6646 --Purchase Order Exchange Rate Date
6647 , p_source_50 IN DATE
6648 --Purchase Order Exchange Rate
6649 , p_source_51 IN NUMBER
6650 --Purchase Order Exchange Rate Type
6651 , p_source_52 IN VARCHAR2
6652 --Override Accounted Amount Indicator
6653 , p_source_53 IN VARCHAR2
6654 , p_source_53_meaning IN VARCHAR2
6655 --Payment Supplier Identifier
6656 , p_source_54 IN NUMBER
6657 --Payment Supplier Site Identifier
6658 , p_source_55 IN NUMBER
6659 --Third Party Type
6660 , p_source_56 IN VARCHAR2
6661 --Payment Distribution Reversed Identifier
6662 , p_source_57 IN NUMBER
6663 --Invoice Distribution Tax Line Identifier
6664 , p_source_58 IN NUMBER
6665 --Invoice Distribution Summary Tax Line Identifier
6666 , p_source_59 IN NUMBER
6667 --Payment Type
6668 , p_source_60 IN VARCHAR2
6669 , p_source_60_meaning IN VARCHAR2
6670 --Business Flow Invoice Distribution Type
6671 , p_source_62 IN VARCHAR2
6672 --Business Flow Invoice Entity Code
6673 , p_source_63 IN VARCHAR2
6674 --Business Flow Invoice Distribution Identifier
6675 , p_source_64 IN NUMBER
6676 --Business Flow Invoice Identifier
6677 , p_source_65 IN NUMBER
6678 --Invoice Distribution Tax Distribution Identifier from Tax
6679 , p_source_66 IN NUMBER
6680 )
6681 IS
6682
6683 l_component_type VARCHAR2(80);
6684 l_component_code VARCHAR2(30);
6685 l_component_type_code VARCHAR2(1);
6686 l_component_appl_id INTEGER;
6687 l_amb_context_code VARCHAR2(30);
6688 l_entity_code VARCHAR2(30);
6689 l_event_class_code VARCHAR2(30);
6690 l_ae_header_id NUMBER;
6691 l_event_type_code VARCHAR2(30);
6692 l_line_definition_code VARCHAR2(30);
6693 l_line_definition_owner_code VARCHAR2(1);
6694 --
6695 -- adr variables
6696 l_segment VARCHAR2(30);
6697 l_ccid NUMBER;
6698 l_adr_transaction_coa_id NUMBER;
6699 l_adr_accounting_coa_id NUMBER;
6703 l_adr_value_combination_id NUMBER;
6700 l_adr_flexfield_segment_code VARCHAR2(30);
6701 l_adr_flex_value_set_id NUMBER;
6702 l_adr_value_type_code VARCHAR2(30);
6704 l_adr_value_segment_code VARCHAR2(30);
6705
6706 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6707 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6708 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6709 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6710
6711 -- 4262811 Variables ------------------------------------------------------------------------------------------
6712 l_entered_amt_idx NUMBER;
6713 l_accted_amt_idx NUMBER;
6714 l_acc_rev_flag VARCHAR2(1);
6715 l_accrual_line_num NUMBER;
6716 l_tmp_amt NUMBER;
6717 l_acc_rev_natural_side_code VARCHAR2(1);
6718
6719 l_num_entries NUMBER;
6720 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6721 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6722 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6723 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6724 l_recog_line_1 NUMBER;
6725 l_recog_line_2 NUMBER;
6726
6727 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6728 l_bflow_applied_to_amt NUMBER; -- 5132302
6729 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6730
6731 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6732
6733 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6734 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6735
6736 ---------------------------------------------------------------------------------------------------------------
6737
6738
6739 --
6740 -- bulk performance
6741 --
6742 l_balance_type_code VARCHAR2(1);
6743 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6744 l_log_module VARCHAR2(240);
6745
6746 --
6747 -- Upgrade strategy
6748 --
6749 l_actual_upg_option VARCHAR2(1);
6750 l_enc_upg_option VARCHAR2(1);
6751
6752 --
6753 BEGIN
6754 --
6755 IF g_log_enabled THEN
6756 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
6757 END IF;
6758 --
6759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6760
6761 trace
6762 (p_msg => 'BEGIN of AcctLineType_40'
6763 ,p_level => C_LEVEL_PROCEDURE
6764 ,p_module => l_log_module);
6765
6766 END IF;
6767 --
6768 l_component_type := 'AMB_JLT';
6769 l_component_code := 'AP_ACCRUAL_REF';
6770 l_component_type_code := 'S';
6771 l_component_appl_id := 200;
6772 l_amb_context_code := 'DEFAULT';
6773 l_entity_code := 'AP_PAYMENTS';
6774 l_event_class_code := 'REFUNDS';
6775 l_event_type_code := 'REFUNDS_ALL';
6776 l_line_definition_owner_code := 'S';
6777 l_line_definition_code := 'CASH_REFUNDS_ALL';
6778 --
6779 l_balance_type_code := 'A';
6780 l_segment := NULL;
6781 l_ccid := NULL;
6782 l_adr_transaction_coa_id := NULL;
6783 l_adr_accounting_coa_id := NULL;
6784 l_adr_flexfield_segment_code := NULL;
6785 l_adr_flex_value_set_id := NULL;
6786 l_adr_value_type_code := NULL;
6787 l_adr_value_combination_id := NULL;
6788 l_adr_value_segment_code := NULL;
6789
6790 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6791 l_bflow_class_code := ''; -- 4219869 Business Flow
6792 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6793 l_budgetary_control_flag := 'N';
6794
6795 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6796 l_bflow_applied_to_amt := NULL; -- 5132302
6797 l_entered_amt_idx := NULL; -- 4262811
6798 l_accted_amt_idx := NULL; -- 4262811
6799 l_acc_rev_flag := NULL; -- 4262811
6800 l_accrual_line_num := NULL; -- 4262811
6801 l_tmp_amt := NULL; -- 4262811
6802 --
6803
6804 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6805 l_balance_type_code <> 'B' THEN
6806 IF NVL(p_source_38,'
6807 ') <> 'CLEAR_CLEAR' AND
6808 (NVL(p_source_20,'
6809 ') = 'ACCRUAL' OR
6810 NVL(p_source_20,'
6811 ') = 'RETROACCRUAL') AND
6812 (NVL(p_source_39,'
6813 ') = 'CASH' OR
6814 NVL(p_source_39,'
6815 ') = 'DISCOUNT') AND
6816 NVL(p_source_60,'
6817 ') = 'R'
6818 THEN
6819
6820 --
6821 XLA_AE_LINES_PKG.SetNewLine;
6822
6823 p_balance_type_code := l_balance_type_code;
6824 -- set the flag so later we will know whether the gain loss line needs to be created
6825
6826 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6827 p_actual_flag :='A';
6828 END IF;
6829
6830 --
6831 -- bulk performance
6832 --
6833 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6837 --
6834 p_header_num => 0); -- 4262811
6835 --
6836 -- set accounting line options
6838 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6839 p_natural_side_code => 'D'
6840 , p_gain_or_loss_flag => 'N'
6841 , p_gl_transfer_mode_code => 'S'
6842 , p_acct_entry_type_code => 'A'
6843 , p_switch_side_flag => 'Y'
6844 , p_merge_duplicate_code => 'A'
6845 );
6846 --
6847 l_acc_rev_natural_side_code := 'C'; -- 4262811
6848 --
6849 --
6850 -- set accounting line type info
6851 --
6852 xla_ae_lines_pkg.SetAcctLineType
6853 (p_component_type => l_component_type
6854 ,p_event_type_code => l_event_type_code
6855 ,p_line_definition_owner_code => l_line_definition_owner_code
6856 ,p_line_definition_code => l_line_definition_code
6857 ,p_accounting_line_code => l_component_code
6858 ,p_accounting_line_type_code => l_component_type_code
6859 ,p_accounting_line_appl_id => l_component_appl_id
6860 ,p_amb_context_code => l_amb_context_code
6861 ,p_entity_code => l_entity_code
6862 ,p_event_class_code => l_event_class_code);
6863 --
6864 -- set accounting class
6865 --
6866 xla_ae_lines_pkg.SetAcctClass(
6867 p_accounting_class_code => 'ACCRUAL'
6868 , p_ae_header_id => l_ae_header_id
6869 );
6870
6871 --
6872 -- set rounding class
6873 --
6874 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6875 'ACCRUAL';
6876
6877 --
6878 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6879 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6880 --
6881 -- bulk performance
6882 --
6883 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6884
6885 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6886 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6887
6888 -- 4955764
6889 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6890 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6891
6892 -- 4458381 Public Sector Enh
6893
6894 --
6895 -- set accounting attributes for the line type
6896 --
6897 l_entered_amt_idx := 9;
6898 l_accted_amt_idx := 14;
6899 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6900 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6901 l_rec_acct_attrs.array_char_value(1) := p_source_40;
6902 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
6903 l_rec_acct_attrs.array_num_value(2) := p_source_42;
6904 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6905 l_rec_acct_attrs.array_char_value(3) := p_source_62;
6906 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
6907 l_rec_acct_attrs.array_char_value(4) := p_source_63;
6908 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
6909 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
6910 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6911 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
6912 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
6913 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
6914 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
6915 l_rec_acct_attrs.array_char_value(8) := p_source_48;
6916 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
6917 l_rec_acct_attrs.array_num_value(9) := p_source_41;
6918 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
6919 l_rec_acct_attrs.array_char_value(10) := p_source_49;
6920 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
6921 l_rec_acct_attrs.array_date_value(11) := p_source_50;
6922 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
6923 l_rec_acct_attrs.array_num_value(12) := p_source_51;
6924 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
6925 l_rec_acct_attrs.array_char_value(13) := p_source_52;
6926 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
6927 l_rec_acct_attrs.array_num_value(14) := p_source_9;
6928 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
6929 l_rec_acct_attrs.array_char_value(15) := p_source_53;
6930 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
6931 l_rec_acct_attrs.array_num_value(16) := p_source_54;
6932 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
6933 l_rec_acct_attrs.array_num_value(17) := p_source_55;
6934 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
6935 l_rec_acct_attrs.array_char_value(18) := p_source_56;
6936 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
6937 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
6938 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
6939 l_rec_acct_attrs.array_char_value(20) := p_source_48;
6943 l_rec_acct_attrs.array_num_value(22) := p_source_66;
6940 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
6941 l_rec_acct_attrs.array_num_value(21) := p_source_58;
6942 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
6944 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
6945 l_rec_acct_attrs.array_num_value(23) := p_source_59;
6946
6947 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6948 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6949
6950 ---------------------------------------------------------------------------------------------------------------
6951 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6952 ---------------------------------------------------------------------------------------------------------------
6953 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6954
6955 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6956 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6957
6958 IF xla_accounting_cache_pkg.GetValueChar
6959 (p_source_code => 'LEDGER_CATEGORY_CODE'
6960 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6961 AND l_bflow_method_code = 'PRIOR_ENTRY'
6962 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6963 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6964 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6965 )
6966 THEN
6967 xla_ae_lines_pkg.BflowUpgEntry
6968 (p_business_method_code => l_bflow_method_code
6969 ,p_business_class_code => l_bflow_class_code
6970 ,p_balance_type => l_balance_type_code);
6971 ELSE
6972 NULL;
6973 -- No business flow processing for business flow method of NONE.
6974 END IF;
6975
6976 --
6977 -- call analytical criteria
6978 --
6979
6980 --
6981 -- call description
6982 --
6983 -- No description or it is inherited.
6984 --
6985 -- call ADRs
6986 -- Bug 4922099
6987 --
6988 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6989 (NVL(l_actual_upg_option, 'N') = 'O') OR
6990 (NVL(l_enc_upg_option, 'N') = 'O')
6991 )
6992 THEN
6993 NULL;
6994 --
6995 --
6996
6997 l_ccid := AcctDerRule_29(
6998 p_application_id => p_application_id
6999 , p_ae_header_id => l_ae_header_id
7000 , p_source_28 => p_source_28
7001 , x_transaction_coa_id => l_adr_transaction_coa_id
7002 , x_accounting_coa_id => l_adr_accounting_coa_id
7003 , x_value_type_code => l_adr_value_type_code
7004 , p_side => 'NA'
7005 );
7006
7007 xla_ae_lines_pkg.set_ccid(
7008 p_code_combination_id => l_ccid
7009 , p_value_type_code => l_adr_value_type_code
7010 , p_transaction_coa_id => l_adr_transaction_coa_id
7011 , p_accounting_coa_id => l_adr_accounting_coa_id
7012 , p_adr_code => 'AP_PO_CHARGE_ACCT'
7013 , p_adr_type_code => 'S'
7014 , p_component_type => l_component_type
7015 , p_component_code => l_component_code
7016 , p_component_type_code => l_component_type_code
7017 , p_component_appl_id => l_component_appl_id
7018 , p_amb_context_code => l_amb_context_code
7019 , p_side => 'NA'
7020 );
7021
7022
7023 --
7024 --
7025 END IF;
7026 --
7027 -- Bug 4922099
7028 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7029 (NVL(l_enc_upg_option, 'N') = 'O')
7030 ) AND
7031 (l_bflow_method_code = 'PRIOR_ENTRY')
7032 )
7033 THEN
7034 IF
7035 --
7036 1 = 2
7037 --
7038 THEN
7039 xla_accounting_err_pkg.build_message
7040 (p_appli_s_name => 'XLA'
7041 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7042 ,p_token_1 => 'LINE_NUMBER'
7043 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7044 ,p_token_2 => 'LINE_TYPE_NAME'
7045 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7046 l_component_type
7047 ,l_component_code
7048 ,l_component_type_code
7049 ,l_component_appl_id
7050 ,l_amb_context_code
7051 ,l_entity_code
7052 ,l_event_class_code
7056 p_lookup_type => 'XLA_OWNER_TYPE'
7053 )
7054 ,p_token_3 => 'OWNER'
7055 ,p_value_3 => xla_lookups_pkg.get_meaning(
7057 ,p_lookup_code => l_component_type_code
7058 )
7059 ,p_token_4 => 'PRODUCT_NAME'
7060 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7061 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7062 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7063 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7064 ,p_ae_header_id => NULL
7065 );
7066
7067 IF (C_LEVEL_ERROR>= g_log_level) THEN
7068 trace
7069 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7070 ,p_level => C_LEVEL_ERROR
7071 ,p_module => l_log_module);
7072 END IF;
7073 END IF;
7074 END IF;
7075 --
7076 --
7077 ------------------------------------------------------------------------------------------------
7078 -- 4219869 Business Flow
7079 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7080 -- Prior Entry. Currently, the following code is always generated.
7081 ------------------------------------------------------------------------------------------------
7082 XLA_AE_LINES_PKG.ValidateCurrentLine;
7083
7084 ------------------------------------------------------------------------------------
7085 -- 4219869 Business Flow
7086 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7087 ------------------------------------------------------------------------------------
7088 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7089
7090 ----------------------------------------------------------------------------------
7091 -- 4219869 Business Flow
7092 -- Update journal entry status -- Need to generate this within IF <condition>
7093 ----------------------------------------------------------------------------------
7094 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7095 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7096 ,p_balance_type_code => l_balance_type_code
7097 );
7098
7099 -------------------------------------------------------------------------------------------
7100 -- 4262811 - Generate the Accrual Reversal lines
7101 -------------------------------------------------------------------------------------------
7102 BEGIN
7103 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7104 (g_array_event(p_event_id).array_value_num('header_index'));
7105 IF l_acc_rev_flag IS NULL THEN
7106 l_acc_rev_flag := 'N';
7107 END IF;
7108 EXCEPTION
7109 WHEN OTHERS THEN
7110 l_acc_rev_flag := 'N';
7111 END;
7112 --
7113 IF (l_acc_rev_flag = 'Y') THEN
7114
7115 -- 4645092 ------------------------------------------------------------------------------
7116 -- To allow MPA report to determine if it should generate report process
7117 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7118 ------------------------------------------------------------------------------------------
7119
7120 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7121 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7122 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7123 -- call ADRs
7124 -- Bug 4922099
7125 --
7126 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7127 (NVL(l_actual_upg_option, 'N') = 'O') OR
7128 (NVL(l_enc_upg_option, 'N') = 'O')
7129 )
7130 THEN
7131 NULL;
7132 --
7133 --
7134
7135 l_ccid := AcctDerRule_29(
7136 p_application_id => p_application_id
7137 , p_ae_header_id => l_ae_header_id
7138 , p_source_28 => p_source_28
7139 , x_transaction_coa_id => l_adr_transaction_coa_id
7140 , x_accounting_coa_id => l_adr_accounting_coa_id
7141 , x_value_type_code => l_adr_value_type_code
7142 , p_side => 'NA'
7143 );
7144
7145 xla_ae_lines_pkg.set_ccid(
7146 p_code_combination_id => l_ccid
7147 , p_value_type_code => l_adr_value_type_code
7148 , p_transaction_coa_id => l_adr_transaction_coa_id
7149 , p_accounting_coa_id => l_adr_accounting_coa_id
7150 , p_adr_code => 'AP_PO_CHARGE_ACCT'
7151 , p_adr_type_code => 'S'
7152 , p_component_type => l_component_type
7153 , p_component_code => l_component_code
7154 , p_component_type_code => l_component_type_code
7155 , p_component_appl_id => l_component_appl_id
7159
7156 , p_amb_context_code => l_amb_context_code
7157 , p_side => 'NA'
7158 );
7160
7161 --
7162 --
7163 END IF;
7164
7165 --
7166 -- Update the line information that should be overwritten
7167 --
7168 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7169 p_header_num => 1);
7170 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7171
7172 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7173
7174 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7175 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7176 END IF;
7177
7178 --
7179 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7180 --
7181 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7182 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7183 ELSE
7184 ---------------------------------------------------------------------------------------------------
7185 -- 4262811a Switch Sign
7186 ---------------------------------------------------------------------------------------------------
7187 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7188 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7190 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7191 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7192 -- 5132302
7193 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7194 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7195
7196 END IF;
7197
7198 -- 4955764
7199 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7200 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7201
7202
7203 XLA_AE_LINES_PKG.ValidateCurrentLine;
7204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7205
7206 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7207 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7208 ,p_balance_type_code => l_balance_type_code);
7209
7210 END IF;
7211
7212 -----------------------------------------------------------------------------------------
7213 -- 4262811 Multiperiod Accounting
7214 -----------------------------------------------------------------------------------------
7215 -- No MPA option is assigned.
7216
7217
7218 END IF;
7219 END IF;
7220 --
7221
7222 --
7223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7224 trace
7225 (p_msg => 'END of AcctLineType_40'
7226 ,p_level => C_LEVEL_PROCEDURE
7227 ,p_module => l_log_module);
7228 END IF;
7229 --
7230 EXCEPTION
7231 WHEN xla_exceptions_pkg.application_exception THEN
7232 RAISE;
7233 WHEN OTHERS THEN
7234 xla_exceptions_pkg.raise_message
7235 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_40');
7236 END AcctLineType_40;
7237 --
7238
7239 ---------------------------------------
7240 --
7241 -- PRIVATE FUNCTION
7242 -- AcctLineType_41
7243 --
7244 ---------------------------------------
7245 PROCEDURE AcctLineType_41 (
7246 p_application_id IN NUMBER
7247 ,p_event_id IN NUMBER
7248 ,p_calculate_acctd_flag IN VARCHAR2
7249 ,p_calculate_g_l_flag IN VARCHAR2
7250 ,p_actual_flag IN OUT VARCHAR2
7251 ,p_balance_type_code OUT VARCHAR2
7252 ,p_gain_or_loss_ref OUT VARCHAR2
7253
7254 --Invoice Distribution Account
7255 , p_source_17 IN NUMBER
7256 --When to Account for Payment Option
7257 , p_source_38 IN VARCHAR2
7258 --Accounting Reversal Indicator
7259 , p_source_40 IN VARCHAR2
7260 --Business Flow Accounts Payable Application Identifier
7261 , p_source_42 IN NUMBER
7262 --Distribution Link Type
7263 , p_source_48 IN VARCHAR2
7264 --Purchase Order Exchange Rate Date
7265 , p_source_50 IN DATE
7266 --Purchase Order Exchange Rate
7267 , p_source_51 IN NUMBER
7268 --Purchase Order Exchange Rate Type
7269 , p_source_52 IN VARCHAR2
7270 --Override Accounted Amount Indicator
7271 , p_source_53 IN VARCHAR2
7272 , p_source_53_meaning IN VARCHAR2
7273 --Third Party Type
7274 , p_source_56 IN VARCHAR2
7275 --Invoice Distribution Tax Line Identifier
7276 , p_source_58 IN NUMBER
7277 --Invoice Distribution Summary Tax Line Identifier
7278 , p_source_59 IN NUMBER
7279 --Invoice Distribution Tax Distribution Identifier from Tax
7280 , p_source_66 IN NUMBER
7281 --Prepayment Distribution Type
7282 , p_source_67 IN VARCHAR2
7283 --Recipient Invoice Distribution Type
7284 , p_source_68 IN VARCHAR2
7285 , p_source_68_meaning IN VARCHAR2
7286 --Prepayment Application Distribution Identifier
7290 --Business Flow Prepayment Invoice Distribution Type
7287 , p_source_71 IN NUMBER
7288 --Invoice Identifier
7289 , p_source_72 IN NUMBER
7291 , p_source_73 IN VARCHAR2
7292 --Business Flow Prepayment Invoice Entity Code
7293 , p_source_74 IN VARCHAR2
7294 --Business Flow Prepayment Invoice Distribution Identifier
7295 , p_source_75 IN NUMBER
7296 --Business Flow Prepayment Invoice Identifier
7297 , p_source_76 IN NUMBER
7298 --Upgrade Encumbrance Credit Account Class
7299 , p_source_77 IN VARCHAR2
7300 --Payables Encumbrance Upgrade Credit Account
7301 , p_source_78 IN NUMBER
7302 --Payables Encumbrance Upgrade Credit Amount
7303 , p_source_79 IN NUMBER
7304 --Invoice Currency Code
7305 , p_source_80 IN VARCHAR2
7306 --Payables Encumbrance Upgrade Credit Base Amount
7307 , p_source_81 IN NUMBER
7308 --Upgrade Encumbrance Debit Account Class
7309 , p_source_82 IN VARCHAR2
7310 --Payables Encumbrance Upgrade Debit Account
7311 , p_source_83 IN NUMBER
7312 --Payables Encumbrance Upgrade Debit Amount
7313 , p_source_84 IN NUMBER
7314 --Payables Encumbrance Upgrade Debit Base Amount
7315 , p_source_85 IN NUMBER
7316 --Payables Encumbrance Upgrade Option
7317 , p_source_86 IN VARCHAR2
7318 --Prepayment Distribution Amount
7319 , p_source_87 IN NUMBER
7320 --Prepayment Clearing Currency Code
7321 , p_source_88 IN VARCHAR2
7322 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
7323 , p_source_89 IN NUMBER
7324 --Deferred Accounting End Date
7325 , p_source_90 IN DATE
7326 --Deferred Accounting Option
7327 , p_source_91 IN VARCHAR2
7328 --Deferred Accounting Start Date
7329 , p_source_92 IN DATE
7330 --Invoice Supplier Identifier
7331 , p_source_93 IN NUMBER
7332 --Invoice Supplier Site Identifier
7333 , p_source_94 IN NUMBER
7334 --Identifier of the Prepayment Application Reversed
7335 , p_source_95 IN NUMBER
7336 --Payables Upgrade Credit Encumbrance Type Identifier
7337 , p_source_96 IN NUMBER
7338 --Payables Upgrade Debit Encumbrance Type Identifier
7339 , p_source_97 IN NUMBER
7340 )
7341 IS
7342
7343 l_component_type VARCHAR2(80);
7344 l_component_code VARCHAR2(30);
7345 l_component_type_code VARCHAR2(1);
7346 l_component_appl_id INTEGER;
7347 l_amb_context_code VARCHAR2(30);
7348 l_entity_code VARCHAR2(30);
7349 l_event_class_code VARCHAR2(30);
7350 l_ae_header_id NUMBER;
7351 l_event_type_code VARCHAR2(30);
7352 l_line_definition_code VARCHAR2(30);
7353 l_line_definition_owner_code VARCHAR2(1);
7354 --
7355 -- adr variables
7356 l_segment VARCHAR2(30);
7357 l_ccid NUMBER;
7358 l_adr_transaction_coa_id NUMBER;
7359 l_adr_accounting_coa_id NUMBER;
7360 l_adr_flexfield_segment_code VARCHAR2(30);
7361 l_adr_flex_value_set_id NUMBER;
7362 l_adr_value_type_code VARCHAR2(30);
7363 l_adr_value_combination_id NUMBER;
7364 l_adr_value_segment_code VARCHAR2(30);
7365
7366 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7367 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7368 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7369 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7370
7371 -- 4262811 Variables ------------------------------------------------------------------------------------------
7372 l_entered_amt_idx NUMBER;
7373 l_accted_amt_idx NUMBER;
7374 l_acc_rev_flag VARCHAR2(1);
7375 l_accrual_line_num NUMBER;
7376 l_tmp_amt NUMBER;
7377 l_acc_rev_natural_side_code VARCHAR2(1);
7378
7379 l_num_entries NUMBER;
7380 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7381 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7382 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7383 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7384 l_recog_line_1 NUMBER;
7385 l_recog_line_2 NUMBER;
7386
7387 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7388 l_bflow_applied_to_amt NUMBER; -- 5132302
7389 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7390
7391 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7392
7393 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7394 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7395
7396 ---------------------------------------------------------------------------------------------------------------
7397
7398
7399 --
7400 -- bulk performance
7401 --
7402 l_balance_type_code VARCHAR2(1);
7403 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7404 l_log_module VARCHAR2(240);
7405
7406 --
7407 -- Upgrade strategy
7408 --
7409 l_actual_upg_option VARCHAR2(1);
7410 l_enc_upg_option VARCHAR2(1);
7411
7412 --
7413 BEGIN
7414 --
7415 IF g_log_enabled THEN
7416 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
7420
7417 END IF;
7418 --
7419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7421 trace
7422 (p_msg => 'BEGIN of AcctLineType_41'
7423 ,p_level => C_LEVEL_PROCEDURE
7424 ,p_module => l_log_module);
7425
7426 END IF;
7427 --
7428 l_component_type := 'AMB_JLT';
7429 l_component_code := 'AP_ACCR_PREPAY_CLR_RATE_APP';
7430 l_component_type_code := 'S';
7431 l_component_appl_id := 200;
7432 l_amb_context_code := 'DEFAULT';
7433 l_entity_code := 'AP_INVOICES';
7434 l_event_class_code := 'PREPAYMENT APPLICATIONS';
7435 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
7436 l_line_definition_owner_code := 'S';
7437 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
7438 --
7439 l_balance_type_code := 'A';
7440 l_segment := NULL;
7441 l_ccid := NULL;
7442 l_adr_transaction_coa_id := NULL;
7443 l_adr_accounting_coa_id := NULL;
7444 l_adr_flexfield_segment_code := NULL;
7445 l_adr_flex_value_set_id := NULL;
7446 l_adr_value_type_code := NULL;
7447 l_adr_value_combination_id := NULL;
7448 l_adr_value_segment_code := NULL;
7449
7450 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7451 l_bflow_class_code := ''; -- 4219869 Business Flow
7452 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7453 l_budgetary_control_flag := 'N';
7454
7455 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7456 l_bflow_applied_to_amt := NULL; -- 5132302
7457 l_entered_amt_idx := NULL; -- 4262811
7458 l_accted_amt_idx := NULL; -- 4262811
7459 l_acc_rev_flag := NULL; -- 4262811
7460 l_accrual_line_num := NULL; -- 4262811
7461 l_tmp_amt := NULL; -- 4262811
7462 --
7463
7464 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7465 l_balance_type_code <> 'B' THEN
7466 IF NVL(p_source_38,'
7467 ') = 'CLEAR_CLEAR' AND
7468 (NVL(p_source_67,'
7469 ') = 'PREPAY APPL' OR
7470 NVL(p_source_67,'
7471 ') = 'PREPAY APPL NONREC TAX' OR
7472 NVL(p_source_67,'
7473 ') = 'PREPAY APPL REC TAX') AND
7474 (NVL(p_source_68,'
7475 ') = 'ACCRUAL' OR
7476 NVL(p_source_68,'
7477 ') = 'RETROACCRUAL')
7478 THEN
7479
7480 --
7481 XLA_AE_LINES_PKG.SetNewLine;
7482
7483 p_balance_type_code := l_balance_type_code;
7484 -- set the flag so later we will know whether the gain loss line needs to be created
7485
7486 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7487 p_actual_flag :='A';
7488 END IF;
7489
7490 --
7491 -- bulk performance
7492 --
7493 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7494 p_header_num => 0); -- 4262811
7495 --
7496 -- set accounting line options
7497 --
7498 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7499 p_natural_side_code => 'C'
7500 , p_gain_or_loss_flag => 'N'
7501 , p_gl_transfer_mode_code => 'S'
7502 , p_acct_entry_type_code => 'A'
7503 , p_switch_side_flag => 'Y'
7504 , p_merge_duplicate_code => 'A'
7505 );
7506 --
7507 l_acc_rev_natural_side_code := 'D'; -- 4262811
7508 --
7509 --
7510 -- set accounting line type info
7511 --
7512 xla_ae_lines_pkg.SetAcctLineType
7513 (p_component_type => l_component_type
7514 ,p_event_type_code => l_event_type_code
7515 ,p_line_definition_owner_code => l_line_definition_owner_code
7516 ,p_line_definition_code => l_line_definition_code
7517 ,p_accounting_line_code => l_component_code
7518 ,p_accounting_line_type_code => l_component_type_code
7519 ,p_accounting_line_appl_id => l_component_appl_id
7520 ,p_amb_context_code => l_amb_context_code
7521 ,p_entity_code => l_entity_code
7522 ,p_event_class_code => l_event_class_code);
7523 --
7524 -- set accounting class
7525 --
7526 xla_ae_lines_pkg.SetAcctClass(
7527 p_accounting_class_code => 'ACCRUAL'
7528 , p_ae_header_id => l_ae_header_id
7529 );
7530
7531 --
7532 -- set rounding class
7533 --
7534 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7535 'ACCRUAL';
7536
7537 --
7538 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7539 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7540 --
7541 -- bulk performance
7542 --
7543 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7544
7545 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7546 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7547
7548 -- 4955764
7549 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7553
7550 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7551
7552 -- 4458381 Public Sector Enh
7554 --
7555 -- set accounting attributes for the line type
7556 --
7557 l_entered_amt_idx := 25;
7558 l_accted_amt_idx := 30;
7559 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7560 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7561 l_rec_acct_attrs.array_char_value(1) := p_source_40;
7562 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7563 l_rec_acct_attrs.array_num_value(2) :=
7564 xla_ae_sources_pkg.GetSystemSourceNum(
7565 p_source_code => 'XLA_EVENT_APPL_ID'
7566 , p_source_type_code => 'Y'
7567 , p_source_application_id => 602
7568 );
7569 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7570 l_rec_acct_attrs.array_char_value(3) := p_source_48;
7571 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7572 l_rec_acct_attrs.array_char_value(4) :=
7573 xla_ae_sources_pkg.GetSystemSourceChar(
7574 p_source_code => 'XLA_ENTITY_CODE'
7575 , p_source_type_code => 'Y'
7576 , p_source_application_id => 602
7577 );
7578 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7579 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
7580 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7581 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
7582 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7583 l_rec_acct_attrs.array_num_value(7) := p_source_42;
7584 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7585 l_rec_acct_attrs.array_char_value(8) := p_source_73;
7586 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7587 l_rec_acct_attrs.array_char_value(9) := p_source_74;
7588 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7589 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
7590 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7591 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
7592 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7593 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
7594 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7595 l_rec_acct_attrs.array_char_value(13) := p_source_48;
7596 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
7597 l_rec_acct_attrs.array_char_value(14) := p_source_77;
7598 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
7599 l_rec_acct_attrs.array_num_value(15) := p_source_78;
7600 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
7601 l_rec_acct_attrs.array_num_value(16) := p_source_79;
7602 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
7603 l_rec_acct_attrs.array_char_value(17) := p_source_80;
7604 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
7605 l_rec_acct_attrs.array_num_value(18) := p_source_81;
7606 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
7607 l_rec_acct_attrs.array_char_value(19) := p_source_82;
7608 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
7609 l_rec_acct_attrs.array_num_value(20) := p_source_83;
7610 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
7611 l_rec_acct_attrs.array_num_value(21) := p_source_84;
7612 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
7613 l_rec_acct_attrs.array_char_value(22) := p_source_80;
7614 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
7615 l_rec_acct_attrs.array_num_value(23) := p_source_85;
7616 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
7617 l_rec_acct_attrs.array_char_value(24) := p_source_86;
7618 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
7619 l_rec_acct_attrs.array_num_value(25) := p_source_87;
7620 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
7621 l_rec_acct_attrs.array_char_value(26) := p_source_88;
7622 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
7623 l_rec_acct_attrs.array_date_value(27) := p_source_50;
7624 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
7625 l_rec_acct_attrs.array_num_value(28) := p_source_51;
7626 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
7627 l_rec_acct_attrs.array_char_value(29) := p_source_52;
7628 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
7629 l_rec_acct_attrs.array_num_value(30) := p_source_89;
7630 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
7631 l_rec_acct_attrs.array_date_value(31) := p_source_90;
7632 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
7633 l_rec_acct_attrs.array_char_value(32) := p_source_91;
7634 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
7635 l_rec_acct_attrs.array_date_value(33) := p_source_92;
7636 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
7637 l_rec_acct_attrs.array_char_value(34) := p_source_53;
7638 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
7639 l_rec_acct_attrs.array_num_value(35) := p_source_93;
7640 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
7641 l_rec_acct_attrs.array_num_value(36) := p_source_94;
7642 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
7643 l_rec_acct_attrs.array_char_value(37) := p_source_56;
7647 l_rec_acct_attrs.array_char_value(39) := p_source_48;
7644 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
7645 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
7646 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
7648 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
7649 l_rec_acct_attrs.array_num_value(40) := p_source_58;
7650 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
7651 l_rec_acct_attrs.array_num_value(41) := p_source_66;
7652 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
7653 l_rec_acct_attrs.array_num_value(42) := p_source_59;
7654 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
7655 l_rec_acct_attrs.array_num_value(43) := p_source_96;
7656 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
7657 l_rec_acct_attrs.array_num_value(44) := p_source_97;
7658
7659 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7660 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7661
7662 ---------------------------------------------------------------------------------------------------------------
7663 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7664 ---------------------------------------------------------------------------------------------------------------
7665 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7666
7667 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7668 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7669
7670 IF xla_accounting_cache_pkg.GetValueChar
7671 (p_source_code => 'LEDGER_CATEGORY_CODE'
7672 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7673 AND l_bflow_method_code = 'PRIOR_ENTRY'
7674 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7675 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7676 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7677 )
7678 THEN
7679 xla_ae_lines_pkg.BflowUpgEntry
7680 (p_business_method_code => l_bflow_method_code
7681 ,p_business_class_code => l_bflow_class_code
7682 ,p_balance_type => l_balance_type_code);
7683 ELSE
7684 NULL;
7685 -- No business flow processing for business flow method of NONE.
7686 END IF;
7687
7688 --
7689 -- call analytical criteria
7690 --
7691
7692 --
7693 -- call description
7694 --
7695 -- No description or it is inherited.
7696 --
7697 -- call ADRs
7698 -- Bug 4922099
7699 --
7700 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7701 (NVL(l_actual_upg_option, 'N') = 'O') OR
7702 (NVL(l_enc_upg_option, 'N') = 'O')
7703 )
7704 THEN
7705 NULL;
7706 --
7707 --
7708
7709 l_ccid := AcctDerRule_26(
7710 p_application_id => p_application_id
7711 , p_ae_header_id => l_ae_header_id
7712 , p_source_17 => p_source_17
7713 , x_transaction_coa_id => l_adr_transaction_coa_id
7714 , x_accounting_coa_id => l_adr_accounting_coa_id
7715 , x_value_type_code => l_adr_value_type_code
7716 , p_side => 'NA'
7717 );
7718
7719 xla_ae_lines_pkg.set_ccid(
7720 p_code_combination_id => l_ccid
7721 , p_value_type_code => l_adr_value_type_code
7722 , p_transaction_coa_id => l_adr_transaction_coa_id
7723 , p_accounting_coa_id => l_adr_accounting_coa_id
7724 , p_adr_code => 'AP_INVOICE_DIST'
7725 , p_adr_type_code => 'S'
7726 , p_component_type => l_component_type
7727 , p_component_code => l_component_code
7728 , p_component_type_code => l_component_type_code
7729 , p_component_appl_id => l_component_appl_id
7730 , p_amb_context_code => l_amb_context_code
7731 , p_side => 'NA'
7732 );
7733
7734
7735 --
7736 --
7737 END IF;
7738 --
7739 -- Bug 4922099
7740 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7741 (NVL(l_enc_upg_option, 'N') = 'O')
7742 ) AND
7743 (l_bflow_method_code = 'PRIOR_ENTRY')
7744 )
7745 THEN
7746 IF
7747 --
7748 1 = 2
7749 --
7750 THEN
7751 xla_accounting_err_pkg.build_message
7752 (p_appli_s_name => 'XLA'
7753 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7754 ,p_token_1 => 'LINE_NUMBER'
7755 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7756 ,p_token_2 => 'LINE_TYPE_NAME'
7757 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7758 l_component_type
7759 ,l_component_code
7763 ,l_entity_code
7760 ,l_component_type_code
7761 ,l_component_appl_id
7762 ,l_amb_context_code
7764 ,l_event_class_code
7765 )
7766 ,p_token_3 => 'OWNER'
7767 ,p_value_3 => xla_lookups_pkg.get_meaning(
7768 p_lookup_type => 'XLA_OWNER_TYPE'
7769 ,p_lookup_code => l_component_type_code
7770 )
7771 ,p_token_4 => 'PRODUCT_NAME'
7772 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7773 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7774 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7775 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7776 ,p_ae_header_id => NULL
7777 );
7778
7779 IF (C_LEVEL_ERROR>= g_log_level) THEN
7780 trace
7781 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7782 ,p_level => C_LEVEL_ERROR
7783 ,p_module => l_log_module);
7784 END IF;
7785 END IF;
7786 END IF;
7787 --
7788 --
7789 ------------------------------------------------------------------------------------------------
7790 -- 4219869 Business Flow
7791 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7792 -- Prior Entry. Currently, the following code is always generated.
7793 ------------------------------------------------------------------------------------------------
7794 XLA_AE_LINES_PKG.ValidateCurrentLine;
7795
7796 ------------------------------------------------------------------------------------
7797 -- 4219869 Business Flow
7798 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7799 ------------------------------------------------------------------------------------
7800 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7801
7802 ----------------------------------------------------------------------------------
7803 -- 4219869 Business Flow
7804 -- Update journal entry status -- Need to generate this within IF <condition>
7805 ----------------------------------------------------------------------------------
7806 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7807 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7808 ,p_balance_type_code => l_balance_type_code
7809 );
7810
7811 -------------------------------------------------------------------------------------------
7812 -- 4262811 - Generate the Accrual Reversal lines
7813 -------------------------------------------------------------------------------------------
7814 BEGIN
7815 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7816 (g_array_event(p_event_id).array_value_num('header_index'));
7817 IF l_acc_rev_flag IS NULL THEN
7818 l_acc_rev_flag := 'N';
7819 END IF;
7820 EXCEPTION
7821 WHEN OTHERS THEN
7822 l_acc_rev_flag := 'N';
7823 END;
7824 --
7825 IF (l_acc_rev_flag = 'Y') THEN
7826
7827 -- 4645092 ------------------------------------------------------------------------------
7828 -- To allow MPA report to determine if it should generate report process
7829 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7830 ------------------------------------------------------------------------------------------
7831
7832 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7833 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7834 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7835 -- call ADRs
7836 -- Bug 4922099
7837 --
7838 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7839 (NVL(l_actual_upg_option, 'N') = 'O') OR
7840 (NVL(l_enc_upg_option, 'N') = 'O')
7841 )
7842 THEN
7843 NULL;
7844 --
7845 --
7846
7847 l_ccid := AcctDerRule_26(
7848 p_application_id => p_application_id
7849 , p_ae_header_id => l_ae_header_id
7850 , p_source_17 => p_source_17
7851 , x_transaction_coa_id => l_adr_transaction_coa_id
7852 , x_accounting_coa_id => l_adr_accounting_coa_id
7853 , x_value_type_code => l_adr_value_type_code
7854 , p_side => 'NA'
7855 );
7856
7857 xla_ae_lines_pkg.set_ccid(
7858 p_code_combination_id => l_ccid
7859 , p_value_type_code => l_adr_value_type_code
7863 , p_adr_type_code => 'S'
7860 , p_transaction_coa_id => l_adr_transaction_coa_id
7861 , p_accounting_coa_id => l_adr_accounting_coa_id
7862 , p_adr_code => 'AP_INVOICE_DIST'
7864 , p_component_type => l_component_type
7865 , p_component_code => l_component_code
7866 , p_component_type_code => l_component_type_code
7867 , p_component_appl_id => l_component_appl_id
7868 , p_amb_context_code => l_amb_context_code
7869 , p_side => 'NA'
7870 );
7871
7872
7873 --
7874 --
7875 END IF;
7876
7877 --
7878 -- Update the line information that should be overwritten
7879 --
7880 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7881 p_header_num => 1);
7882 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7883
7884 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7885
7886 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7887 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7888 END IF;
7889
7890 --
7891 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7892 --
7893 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7894 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7895 ELSE
7896 ---------------------------------------------------------------------------------------------------
7897 -- 4262811a Switch Sign
7898 ---------------------------------------------------------------------------------------------------
7899 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7900 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7901 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7902 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7903 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7904 -- 5132302
7905 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7906 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7907
7908 END IF;
7909
7910 -- 4955764
7911 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7912 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7913
7914
7915 XLA_AE_LINES_PKG.ValidateCurrentLine;
7916 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7917
7918 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7919 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7920 ,p_balance_type_code => l_balance_type_code);
7921
7922 END IF;
7923
7924 -----------------------------------------------------------------------------------------
7925 -- 4262811 Multiperiod Accounting
7926 -----------------------------------------------------------------------------------------
7927 -- No MPA option is assigned.
7928
7929
7930 END IF;
7931 END IF;
7932 --
7933
7934 --
7935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7936 trace
7937 (p_msg => 'END of AcctLineType_41'
7938 ,p_level => C_LEVEL_PROCEDURE
7939 ,p_module => l_log_module);
7940 END IF;
7941 --
7942 EXCEPTION
7943 WHEN xla_exceptions_pkg.application_exception THEN
7944 RAISE;
7945 WHEN OTHERS THEN
7946 xla_exceptions_pkg.raise_message
7947 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_41');
7948 END AcctLineType_41;
7949 --
7950
7951 ---------------------------------------
7952 --
7953 -- PRIVATE FUNCTION
7954 -- AcctLineType_42
7955 --
7956 ---------------------------------------
7957 PROCEDURE AcctLineType_42 (
7958 p_application_id IN NUMBER
7959 ,p_event_id IN NUMBER
7960 ,p_calculate_acctd_flag IN VARCHAR2
7961 ,p_calculate_g_l_flag IN VARCHAR2
7962 ,p_actual_flag IN OUT VARCHAR2
7963 ,p_balance_type_code OUT VARCHAR2
7964 ,p_gain_or_loss_ref OUT VARCHAR2
7965
7966 --Invoice Distribution Account
7967 , p_source_17 IN NUMBER
7968 --When to Account for Payment Option
7969 , p_source_38 IN VARCHAR2
7970 --Accounting Reversal Indicator
7971 , p_source_40 IN VARCHAR2
7972 --Business Flow Accounts Payable Application Identifier
7973 , p_source_42 IN NUMBER
7974 --Distribution Link Type
7975 , p_source_48 IN VARCHAR2
7976 --Purchase Order Exchange Rate Date
7977 , p_source_50 IN DATE
7978 --Purchase Order Exchange Rate
7979 , p_source_51 IN NUMBER
7980 --Purchase Order Exchange Rate Type
7981 , p_source_52 IN VARCHAR2
7982 --Override Accounted Amount Indicator
7983 , p_source_53 IN VARCHAR2
7984 , p_source_53_meaning IN VARCHAR2
7988 , p_source_58 IN NUMBER
7985 --Third Party Type
7986 , p_source_56 IN VARCHAR2
7987 --Invoice Distribution Tax Line Identifier
7989 --Invoice Distribution Summary Tax Line Identifier
7990 , p_source_59 IN NUMBER
7991 --Invoice Distribution Tax Distribution Identifier from Tax
7992 , p_source_66 IN NUMBER
7993 --Prepayment Distribution Type
7994 , p_source_67 IN VARCHAR2
7995 --Recipient Invoice Distribution Type
7996 , p_source_68 IN VARCHAR2
7997 , p_source_68_meaning IN VARCHAR2
7998 --Prepayment Application Distribution Identifier
7999 , p_source_71 IN NUMBER
8000 --Invoice Identifier
8001 , p_source_72 IN NUMBER
8002 --Business Flow Prepayment Invoice Distribution Type
8003 , p_source_73 IN VARCHAR2
8004 --Business Flow Prepayment Invoice Entity Code
8005 , p_source_74 IN VARCHAR2
8006 --Business Flow Prepayment Invoice Distribution Identifier
8007 , p_source_75 IN NUMBER
8008 --Business Flow Prepayment Invoice Identifier
8009 , p_source_76 IN NUMBER
8010 --Upgrade Encumbrance Credit Account Class
8011 , p_source_77 IN VARCHAR2
8012 --Payables Encumbrance Upgrade Credit Account
8013 , p_source_78 IN NUMBER
8014 --Payables Encumbrance Upgrade Credit Amount
8015 , p_source_79 IN NUMBER
8016 --Invoice Currency Code
8017 , p_source_80 IN VARCHAR2
8018 --Payables Encumbrance Upgrade Credit Base Amount
8019 , p_source_81 IN NUMBER
8020 --Upgrade Encumbrance Debit Account Class
8021 , p_source_82 IN VARCHAR2
8022 --Payables Encumbrance Upgrade Debit Account
8023 , p_source_83 IN NUMBER
8024 --Payables Encumbrance Upgrade Debit Amount
8025 , p_source_84 IN NUMBER
8026 --Payables Encumbrance Upgrade Debit Base Amount
8027 , p_source_85 IN NUMBER
8028 --Payables Encumbrance Upgrade Option
8029 , p_source_86 IN VARCHAR2
8030 --Prepayment Distribution Amount
8031 , p_source_87 IN NUMBER
8032 --Deferred Accounting End Date
8033 , p_source_90 IN DATE
8034 --Deferred Accounting Option
8035 , p_source_91 IN VARCHAR2
8036 --Deferred Accounting Start Date
8037 , p_source_92 IN DATE
8038 --Invoice Supplier Identifier
8039 , p_source_93 IN NUMBER
8040 --Invoice Supplier Site Identifier
8041 , p_source_94 IN NUMBER
8042 --Identifier of the Prepayment Application Reversed
8043 , p_source_95 IN NUMBER
8044 --Payables Upgrade Credit Encumbrance Type Identifier
8045 , p_source_96 IN NUMBER
8046 --Payables Upgrade Debit Encumbrance Type Identifier
8047 , p_source_97 IN NUMBER
8048 --Prepayment Payment Currency Code
8049 , p_source_98 IN VARCHAR2
8050 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
8051 , p_source_99 IN NUMBER
8052 )
8053 IS
8054
8055 l_component_type VARCHAR2(80);
8056 l_component_code VARCHAR2(30);
8057 l_component_type_code VARCHAR2(1);
8058 l_component_appl_id INTEGER;
8059 l_amb_context_code VARCHAR2(30);
8060 l_entity_code VARCHAR2(30);
8061 l_event_class_code VARCHAR2(30);
8062 l_ae_header_id NUMBER;
8063 l_event_type_code VARCHAR2(30);
8064 l_line_definition_code VARCHAR2(30);
8065 l_line_definition_owner_code VARCHAR2(1);
8066 --
8067 -- adr variables
8068 l_segment VARCHAR2(30);
8069 l_ccid NUMBER;
8070 l_adr_transaction_coa_id NUMBER;
8071 l_adr_accounting_coa_id NUMBER;
8072 l_adr_flexfield_segment_code VARCHAR2(30);
8073 l_adr_flex_value_set_id NUMBER;
8074 l_adr_value_type_code VARCHAR2(30);
8075 l_adr_value_combination_id NUMBER;
8076 l_adr_value_segment_code VARCHAR2(30);
8077
8078 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8079 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8080 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8081 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8082
8083 -- 4262811 Variables ------------------------------------------------------------------------------------------
8084 l_entered_amt_idx NUMBER;
8085 l_accted_amt_idx NUMBER;
8086 l_acc_rev_flag VARCHAR2(1);
8087 l_accrual_line_num NUMBER;
8088 l_tmp_amt NUMBER;
8089 l_acc_rev_natural_side_code VARCHAR2(1);
8090
8091 l_num_entries NUMBER;
8092 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8093 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8094 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8095 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8096 l_recog_line_1 NUMBER;
8097 l_recog_line_2 NUMBER;
8098
8099 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8100 l_bflow_applied_to_amt NUMBER; -- 5132302
8101 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8102
8103 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8104
8108 ---------------------------------------------------------------------------------------------------------------
8105 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8106 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8107
8109
8110
8111 --
8112 -- bulk performance
8113 --
8114 l_balance_type_code VARCHAR2(1);
8115 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8116 l_log_module VARCHAR2(240);
8117
8118 --
8119 -- Upgrade strategy
8120 --
8121 l_actual_upg_option VARCHAR2(1);
8122 l_enc_upg_option VARCHAR2(1);
8123
8124 --
8125 BEGIN
8126 --
8127 IF g_log_enabled THEN
8128 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
8129 END IF;
8130 --
8131 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8132
8133 trace
8134 (p_msg => 'BEGIN of AcctLineType_42'
8135 ,p_level => C_LEVEL_PROCEDURE
8136 ,p_module => l_log_module);
8137
8138 END IF;
8139 --
8140 l_component_type := 'AMB_JLT';
8141 l_component_code := 'AP_ACCR_PREPAY_PAY_RATE_APP';
8142 l_component_type_code := 'S';
8143 l_component_appl_id := 200;
8144 l_amb_context_code := 'DEFAULT';
8145 l_entity_code := 'AP_INVOICES';
8146 l_event_class_code := 'PREPAYMENT APPLICATIONS';
8147 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
8148 l_line_definition_owner_code := 'S';
8149 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
8150 --
8151 l_balance_type_code := 'A';
8152 l_segment := NULL;
8153 l_ccid := NULL;
8154 l_adr_transaction_coa_id := NULL;
8155 l_adr_accounting_coa_id := NULL;
8156 l_adr_flexfield_segment_code := NULL;
8157 l_adr_flex_value_set_id := NULL;
8158 l_adr_value_type_code := NULL;
8159 l_adr_value_combination_id := NULL;
8160 l_adr_value_segment_code := NULL;
8161
8162 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8163 l_bflow_class_code := ''; -- 4219869 Business Flow
8164 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8165 l_budgetary_control_flag := 'N';
8166
8167 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8168 l_bflow_applied_to_amt := NULL; -- 5132302
8169 l_entered_amt_idx := NULL; -- 4262811
8170 l_accted_amt_idx := NULL; -- 4262811
8171 l_acc_rev_flag := NULL; -- 4262811
8172 l_accrual_line_num := NULL; -- 4262811
8173 l_tmp_amt := NULL; -- 4262811
8174 --
8175
8176 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8177 l_balance_type_code <> 'B' THEN
8178 IF NVL(p_source_38,'
8179 ') <> 'CLEAR_CLEAR' AND
8180 (NVL(p_source_67,'
8181 ') = 'PREPAY APPL' OR
8182 NVL(p_source_67,'
8183 ') = 'PREPAY APPL NONREC TAX' OR
8184 NVL(p_source_67,'
8185 ') = 'PREPAY APPL REC TAX') AND
8186 (NVL(p_source_68,'
8187 ') = 'ACCRUAL' OR
8188 NVL(p_source_68,'
8189 ') = 'RETROACCRUAL')
8190 THEN
8191
8192 --
8193 XLA_AE_LINES_PKG.SetNewLine;
8194
8195 p_balance_type_code := l_balance_type_code;
8196 -- set the flag so later we will know whether the gain loss line needs to be created
8197
8198 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8199 p_actual_flag :='A';
8200 END IF;
8201
8202 --
8203 -- bulk performance
8204 --
8205 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8206 p_header_num => 0); -- 4262811
8207 --
8208 -- set accounting line options
8209 --
8210 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8211 p_natural_side_code => 'C'
8212 , p_gain_or_loss_flag => 'N'
8213 , p_gl_transfer_mode_code => 'S'
8214 , p_acct_entry_type_code => 'A'
8215 , p_switch_side_flag => 'Y'
8216 , p_merge_duplicate_code => 'A'
8217 );
8218 --
8219 l_acc_rev_natural_side_code := 'D'; -- 4262811
8220 --
8221 --
8222 -- set accounting line type info
8223 --
8224 xla_ae_lines_pkg.SetAcctLineType
8225 (p_component_type => l_component_type
8226 ,p_event_type_code => l_event_type_code
8227 ,p_line_definition_owner_code => l_line_definition_owner_code
8228 ,p_line_definition_code => l_line_definition_code
8229 ,p_accounting_line_code => l_component_code
8230 ,p_accounting_line_type_code => l_component_type_code
8231 ,p_accounting_line_appl_id => l_component_appl_id
8232 ,p_amb_context_code => l_amb_context_code
8233 ,p_entity_code => l_entity_code
8234 ,p_event_class_code => l_event_class_code);
8235 --
8236 -- set accounting class
8237 --
8238 xla_ae_lines_pkg.SetAcctClass(
8239 p_accounting_class_code => 'ACCRUAL'
8240 , p_ae_header_id => l_ae_header_id
8241 );
8242
8246 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8243 --
8244 -- set rounding class
8245 --
8247 'ACCRUAL';
8248
8249 --
8250 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8251 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8252 --
8253 -- bulk performance
8254 --
8255 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8256
8257 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8258 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8259
8260 -- 4955764
8261 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8262 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8263
8264 -- 4458381 Public Sector Enh
8265
8266 --
8267 -- set accounting attributes for the line type
8268 --
8269 l_entered_amt_idx := 25;
8270 l_accted_amt_idx := 30;
8271 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8272 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8273 l_rec_acct_attrs.array_char_value(1) := p_source_40;
8274 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8275 l_rec_acct_attrs.array_num_value(2) :=
8276 xla_ae_sources_pkg.GetSystemSourceNum(
8277 p_source_code => 'XLA_EVENT_APPL_ID'
8278 , p_source_type_code => 'Y'
8279 , p_source_application_id => 602
8280 );
8281 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8282 l_rec_acct_attrs.array_char_value(3) := p_source_48;
8283 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8284 l_rec_acct_attrs.array_char_value(4) :=
8285 xla_ae_sources_pkg.GetSystemSourceChar(
8286 p_source_code => 'XLA_ENTITY_CODE'
8287 , p_source_type_code => 'Y'
8288 , p_source_application_id => 602
8289 );
8290 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8291 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
8292 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8293 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
8294 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8295 l_rec_acct_attrs.array_num_value(7) := p_source_42;
8296 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8297 l_rec_acct_attrs.array_char_value(8) := p_source_73;
8298 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8299 l_rec_acct_attrs.array_char_value(9) := p_source_74;
8300 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8301 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
8302 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8303 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
8304 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8305 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
8306 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8307 l_rec_acct_attrs.array_char_value(13) := p_source_48;
8308 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
8309 l_rec_acct_attrs.array_char_value(14) := p_source_77;
8310 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8311 l_rec_acct_attrs.array_num_value(15) := p_source_78;
8312 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8313 l_rec_acct_attrs.array_num_value(16) := p_source_79;
8314 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8315 l_rec_acct_attrs.array_char_value(17) := p_source_80;
8316 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8317 l_rec_acct_attrs.array_num_value(18) := p_source_81;
8318 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
8319 l_rec_acct_attrs.array_char_value(19) := p_source_82;
8320 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
8321 l_rec_acct_attrs.array_num_value(20) := p_source_83;
8322 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
8323 l_rec_acct_attrs.array_num_value(21) := p_source_84;
8324 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
8325 l_rec_acct_attrs.array_char_value(22) := p_source_80;
8326 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
8327 l_rec_acct_attrs.array_num_value(23) := p_source_85;
8328 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
8329 l_rec_acct_attrs.array_char_value(24) := p_source_86;
8330 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
8331 l_rec_acct_attrs.array_num_value(25) := p_source_87;
8332 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
8333 l_rec_acct_attrs.array_char_value(26) := p_source_98;
8334 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
8335 l_rec_acct_attrs.array_date_value(27) := p_source_50;
8336 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
8337 l_rec_acct_attrs.array_num_value(28) := p_source_51;
8338 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
8339 l_rec_acct_attrs.array_char_value(29) := p_source_52;
8340 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
8341 l_rec_acct_attrs.array_num_value(30) := p_source_99;
8345 l_rec_acct_attrs.array_char_value(32) := p_source_91;
8342 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
8343 l_rec_acct_attrs.array_date_value(31) := p_source_90;
8344 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
8346 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
8347 l_rec_acct_attrs.array_date_value(33) := p_source_92;
8348 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
8349 l_rec_acct_attrs.array_char_value(34) := p_source_53;
8350 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
8351 l_rec_acct_attrs.array_num_value(35) := p_source_93;
8352 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
8353 l_rec_acct_attrs.array_num_value(36) := p_source_94;
8354 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
8355 l_rec_acct_attrs.array_char_value(37) := p_source_56;
8356 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
8357 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
8358 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
8359 l_rec_acct_attrs.array_char_value(39) := p_source_48;
8360 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8361 l_rec_acct_attrs.array_num_value(40) := p_source_58;
8362 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8363 l_rec_acct_attrs.array_num_value(41) := p_source_66;
8364 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8365 l_rec_acct_attrs.array_num_value(42) := p_source_59;
8366 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8367 l_rec_acct_attrs.array_num_value(43) := p_source_96;
8368 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8369 l_rec_acct_attrs.array_num_value(44) := p_source_97;
8370
8371 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8372 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8373
8374 ---------------------------------------------------------------------------------------------------------------
8375 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8376 ---------------------------------------------------------------------------------------------------------------
8377 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8378
8379 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8380 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8381
8382 IF xla_accounting_cache_pkg.GetValueChar
8383 (p_source_code => 'LEDGER_CATEGORY_CODE'
8384 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8385 AND l_bflow_method_code = 'PRIOR_ENTRY'
8386 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8387 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8388 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8389 )
8390 THEN
8391 xla_ae_lines_pkg.BflowUpgEntry
8392 (p_business_method_code => l_bflow_method_code
8393 ,p_business_class_code => l_bflow_class_code
8394 ,p_balance_type => l_balance_type_code);
8395 ELSE
8396 NULL;
8397 -- No business flow processing for business flow method of NONE.
8398 END IF;
8399
8400 --
8401 -- call analytical criteria
8402 --
8403
8404 --
8405 -- call description
8406 --
8407 -- No description or it is inherited.
8408 --
8409 -- call ADRs
8410 -- Bug 4922099
8411 --
8412 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8413 (NVL(l_actual_upg_option, 'N') = 'O') OR
8414 (NVL(l_enc_upg_option, 'N') = 'O')
8415 )
8416 THEN
8417 NULL;
8418 --
8419 --
8420
8421 l_ccid := AcctDerRule_26(
8422 p_application_id => p_application_id
8423 , p_ae_header_id => l_ae_header_id
8424 , p_source_17 => p_source_17
8425 , x_transaction_coa_id => l_adr_transaction_coa_id
8426 , x_accounting_coa_id => l_adr_accounting_coa_id
8427 , x_value_type_code => l_adr_value_type_code
8428 , p_side => 'NA'
8429 );
8430
8431 xla_ae_lines_pkg.set_ccid(
8432 p_code_combination_id => l_ccid
8433 , p_value_type_code => l_adr_value_type_code
8434 , p_transaction_coa_id => l_adr_transaction_coa_id
8435 , p_accounting_coa_id => l_adr_accounting_coa_id
8436 , p_adr_code => 'AP_INVOICE_DIST'
8437 , p_adr_type_code => 'S'
8438 , p_component_type => l_component_type
8439 , p_component_code => l_component_code
8440 , p_component_type_code => l_component_type_code
8441 , p_component_appl_id => l_component_appl_id
8442 , p_amb_context_code => l_amb_context_code
8443 , p_side => 'NA'
8444 );
8445
8446
8447 --
8448 --
8449 END IF;
8450 --
8451 -- Bug 4922099
8452 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8456 )
8453 (NVL(l_enc_upg_option, 'N') = 'O')
8454 ) AND
8455 (l_bflow_method_code = 'PRIOR_ENTRY')
8457 THEN
8458 IF
8459 --
8460 1 = 2
8461 --
8462 THEN
8463 xla_accounting_err_pkg.build_message
8464 (p_appli_s_name => 'XLA'
8465 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8466 ,p_token_1 => 'LINE_NUMBER'
8467 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8468 ,p_token_2 => 'LINE_TYPE_NAME'
8469 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8470 l_component_type
8471 ,l_component_code
8472 ,l_component_type_code
8473 ,l_component_appl_id
8474 ,l_amb_context_code
8475 ,l_entity_code
8476 ,l_event_class_code
8477 )
8478 ,p_token_3 => 'OWNER'
8479 ,p_value_3 => xla_lookups_pkg.get_meaning(
8480 p_lookup_type => 'XLA_OWNER_TYPE'
8481 ,p_lookup_code => l_component_type_code
8482 )
8483 ,p_token_4 => 'PRODUCT_NAME'
8484 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8485 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8486 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8487 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8488 ,p_ae_header_id => NULL
8489 );
8490
8491 IF (C_LEVEL_ERROR>= g_log_level) THEN
8492 trace
8493 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8494 ,p_level => C_LEVEL_ERROR
8495 ,p_module => l_log_module);
8496 END IF;
8497 END IF;
8498 END IF;
8499 --
8500 --
8501 ------------------------------------------------------------------------------------------------
8502 -- 4219869 Business Flow
8503 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8504 -- Prior Entry. Currently, the following code is always generated.
8505 ------------------------------------------------------------------------------------------------
8506 XLA_AE_LINES_PKG.ValidateCurrentLine;
8507
8508 ------------------------------------------------------------------------------------
8509 -- 4219869 Business Flow
8510 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8511 ------------------------------------------------------------------------------------
8512 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8513
8514 ----------------------------------------------------------------------------------
8515 -- 4219869 Business Flow
8516 -- Update journal entry status -- Need to generate this within IF <condition>
8517 ----------------------------------------------------------------------------------
8518 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8519 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8520 ,p_balance_type_code => l_balance_type_code
8521 );
8522
8523 -------------------------------------------------------------------------------------------
8524 -- 4262811 - Generate the Accrual Reversal lines
8525 -------------------------------------------------------------------------------------------
8526 BEGIN
8527 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8528 (g_array_event(p_event_id).array_value_num('header_index'));
8529 IF l_acc_rev_flag IS NULL THEN
8530 l_acc_rev_flag := 'N';
8531 END IF;
8532 EXCEPTION
8533 WHEN OTHERS THEN
8534 l_acc_rev_flag := 'N';
8535 END;
8536 --
8537 IF (l_acc_rev_flag = 'Y') THEN
8538
8539 -- 4645092 ------------------------------------------------------------------------------
8540 -- To allow MPA report to determine if it should generate report process
8541 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8542 ------------------------------------------------------------------------------------------
8543
8544 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8545 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8546 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8550 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8547 -- call ADRs
8548 -- Bug 4922099
8549 --
8551 (NVL(l_actual_upg_option, 'N') = 'O') OR
8552 (NVL(l_enc_upg_option, 'N') = 'O')
8553 )
8554 THEN
8555 NULL;
8556 --
8557 --
8558
8559 l_ccid := AcctDerRule_26(
8560 p_application_id => p_application_id
8561 , p_ae_header_id => l_ae_header_id
8562 , p_source_17 => p_source_17
8563 , x_transaction_coa_id => l_adr_transaction_coa_id
8564 , x_accounting_coa_id => l_adr_accounting_coa_id
8565 , x_value_type_code => l_adr_value_type_code
8566 , p_side => 'NA'
8567 );
8568
8569 xla_ae_lines_pkg.set_ccid(
8570 p_code_combination_id => l_ccid
8571 , p_value_type_code => l_adr_value_type_code
8572 , p_transaction_coa_id => l_adr_transaction_coa_id
8573 , p_accounting_coa_id => l_adr_accounting_coa_id
8574 , p_adr_code => 'AP_INVOICE_DIST'
8575 , p_adr_type_code => 'S'
8576 , p_component_type => l_component_type
8577 , p_component_code => l_component_code
8578 , p_component_type_code => l_component_type_code
8579 , p_component_appl_id => l_component_appl_id
8580 , p_amb_context_code => l_amb_context_code
8581 , p_side => 'NA'
8582 );
8583
8584
8585 --
8586 --
8587 END IF;
8588
8589 --
8590 -- Update the line information that should be overwritten
8591 --
8592 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8593 p_header_num => 1);
8594 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8595
8596 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8597
8598 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8599 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8600 END IF;
8601
8602 --
8603 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8604 --
8605 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8606 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8607 ELSE
8608 ---------------------------------------------------------------------------------------------------
8609 -- 4262811a Switch Sign
8610 ---------------------------------------------------------------------------------------------------
8611 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8612 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8614 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8615 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8616 -- 5132302
8617 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8618 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8619
8620 END IF;
8621
8622 -- 4955764
8623 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8624 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8625
8626
8627 XLA_AE_LINES_PKG.ValidateCurrentLine;
8628 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8629
8630 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8631 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8632 ,p_balance_type_code => l_balance_type_code);
8633
8634 END IF;
8635
8636 -----------------------------------------------------------------------------------------
8637 -- 4262811 Multiperiod Accounting
8638 -----------------------------------------------------------------------------------------
8639 -- No MPA option is assigned.
8640
8641
8642 END IF;
8643 END IF;
8644 --
8645
8646 --
8647 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8648 trace
8649 (p_msg => 'END of AcctLineType_42'
8650 ,p_level => C_LEVEL_PROCEDURE
8651 ,p_module => l_log_module);
8652 END IF;
8653 --
8654 EXCEPTION
8655 WHEN xla_exceptions_pkg.application_exception THEN
8656 RAISE;
8657 WHEN OTHERS THEN
8658 xla_exceptions_pkg.raise_message
8659 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_42');
8660 END AcctLineType_42;
8661 --
8662
8663 ---------------------------------------
8664 --
8665 -- PRIVATE FUNCTION
8666 -- AcctLineType_43
8667 --
8668 ---------------------------------------
8669 PROCEDURE AcctLineType_43 (
8670 p_application_id IN NUMBER
8674 ,p_actual_flag IN OUT VARCHAR2
8671 ,p_event_id IN NUMBER
8672 ,p_calculate_acctd_flag IN VARCHAR2
8673 ,p_calculate_g_l_flag IN VARCHAR2
8675 ,p_balance_type_code OUT VARCHAR2
8676 ,p_gain_or_loss_ref OUT VARCHAR2
8677
8678 --Automatic Offsets Value
8679 , p_source_4 IN VARCHAR2
8680 , p_source_4_meaning IN VARCHAR2
8681 --Purchase Order Rate Variance Gain Account
8682 , p_source_5 IN NUMBER
8683 --Destination Type of the PO Distribution
8684 , p_source_7 IN VARCHAR2
8685 , p_source_7_meaning IN VARCHAR2
8686 --Purchase Order Rate Variance Loss Account
8687 , p_source_8 IN NUMBER
8688 --Payment Distribution (Payment Rate) Ledger Amount
8689 , p_source_9 IN NUMBER
8690 --Payment Distribution (Cleared Rate) Ledger Amount
8691 , p_source_10 IN NUMBER
8692 --Invoice Distribution Account
8693 , p_source_17 IN NUMBER
8694 --Invoice Distribution Type
8695 , p_source_20 IN VARCHAR2
8696 , p_source_20_meaning IN VARCHAR2
8697 --Automatic Offsets Flag
8698 , p_source_30 IN VARCHAR2
8699 , p_source_30_meaning IN VARCHAR2
8700 --When to Account for Payment Option
8701 , p_source_38 IN VARCHAR2
8702 --Payment Distribution Type
8703 , p_source_39 IN VARCHAR2
8704 , p_source_39_meaning IN VARCHAR2
8705 --Accounting Reversal Indicator
8706 , p_source_40 IN VARCHAR2
8707 --Payment Distribution Amount
8708 , p_source_41 IN NUMBER
8709 --Business Flow Accounts Payable Application Identifier
8710 , p_source_42 IN NUMBER
8711 --Business Flow Payment Distribution Type
8712 , p_source_43 IN VARCHAR2
8713 --Business Flow Payment Entity Code
8714 , p_source_44 IN VARCHAR2
8715 --Business Flow Payment Distribution Identifier
8716 , p_source_45 IN NUMBER
8717 --Business Flow Payment Identifier
8718 , p_source_46 IN NUMBER
8719 --Payment Distribution Identifier
8720 , p_source_47 IN NUMBER
8721 --Distribution Link Type
8722 , p_source_48 IN VARCHAR2
8723 --Override Accounted Amount Indicator
8724 , p_source_53 IN VARCHAR2
8725 , p_source_53_meaning IN VARCHAR2
8726 --Payment Supplier Identifier
8727 , p_source_54 IN NUMBER
8728 --Payment Supplier Site Identifier
8729 , p_source_55 IN NUMBER
8730 --Third Party Type
8731 , p_source_56 IN VARCHAR2
8732 --Payment Distribution Reversed Identifier
8733 , p_source_57 IN NUMBER
8734 --Invoice Distribution Tax Line Identifier
8735 , p_source_58 IN NUMBER
8736 --Invoice Distribution Summary Tax Line Identifier
8737 , p_source_59 IN NUMBER
8738 )
8739 IS
8740
8741 l_component_type VARCHAR2(80);
8742 l_component_code VARCHAR2(30);
8743 l_component_type_code VARCHAR2(1);
8744 l_component_appl_id INTEGER;
8745 l_amb_context_code VARCHAR2(30);
8746 l_entity_code VARCHAR2(30);
8747 l_event_class_code VARCHAR2(30);
8748 l_ae_header_id NUMBER;
8749 l_event_type_code VARCHAR2(30);
8750 l_line_definition_code VARCHAR2(30);
8751 l_line_definition_owner_code VARCHAR2(1);
8752 --
8753 -- adr variables
8754 l_segment VARCHAR2(30);
8755 l_ccid NUMBER;
8756 l_adr_transaction_coa_id NUMBER;
8757 l_adr_accounting_coa_id NUMBER;
8758 l_adr_flexfield_segment_code VARCHAR2(30);
8759 l_adr_flex_value_set_id NUMBER;
8760 l_adr_value_type_code VARCHAR2(30);
8761 l_adr_value_combination_id NUMBER;
8762 l_adr_value_segment_code VARCHAR2(30);
8763
8764 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8765 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8766 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8767 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8768
8769 -- 4262811 Variables ------------------------------------------------------------------------------------------
8770 l_entered_amt_idx NUMBER;
8771 l_accted_amt_idx NUMBER;
8772 l_acc_rev_flag VARCHAR2(1);
8773 l_accrual_line_num NUMBER;
8774 l_tmp_amt NUMBER;
8775 l_acc_rev_natural_side_code VARCHAR2(1);
8776
8777 l_num_entries NUMBER;
8778 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8779 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8780 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8781 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8782 l_recog_line_1 NUMBER;
8783 l_recog_line_2 NUMBER;
8784
8785 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8786 l_bflow_applied_to_amt NUMBER; -- 5132302
8787 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8788
8789 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8790
8791 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8792 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8793
8797 --
8794 ---------------------------------------------------------------------------------------------------------------
8795
8796
8798 -- bulk performance
8799 --
8800 l_balance_type_code VARCHAR2(1);
8801 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8802 l_log_module VARCHAR2(240);
8803
8804 --
8805 -- Upgrade strategy
8806 --
8807 l_actual_upg_option VARCHAR2(1);
8808 l_enc_upg_option VARCHAR2(1);
8809
8810 --
8811 BEGIN
8812 --
8813 IF g_log_enabled THEN
8814 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
8815 END IF;
8816 --
8817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8818
8819 trace
8820 (p_msg => 'BEGIN of AcctLineType_43'
8821 ,p_level => C_LEVEL_PROCEDURE
8822 ,p_module => l_log_module);
8823
8824 END IF;
8825 --
8826 l_component_type := 'AMB_JLT';
8827 l_component_code := 'AP_ALC_EX_RATE_VAR_CLEAR';
8828 l_component_type_code := 'S';
8829 l_component_appl_id := 200;
8830 l_amb_context_code := 'DEFAULT';
8831 l_entity_code := 'AP_PAYMENTS';
8832 l_event_class_code := 'RECONCILED PAYMENTS';
8833 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
8834 l_line_definition_owner_code := 'S';
8835 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
8836 --
8837 l_balance_type_code := 'A';
8838 l_segment := NULL;
8839 l_ccid := NULL;
8840 l_adr_transaction_coa_id := NULL;
8841 l_adr_accounting_coa_id := NULL;
8842 l_adr_flexfield_segment_code := NULL;
8843 l_adr_flex_value_set_id := NULL;
8844 l_adr_value_type_code := NULL;
8845 l_adr_value_combination_id := NULL;
8846 l_adr_value_segment_code := NULL;
8847
8848 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8849 l_bflow_class_code := ''; -- 4219869 Business Flow
8850 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8851 l_budgetary_control_flag := 'N';
8852
8853 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8854 l_bflow_applied_to_amt := NULL; -- 5132302
8855 l_entered_amt_idx := NULL; -- 4262811
8856 l_accted_amt_idx := NULL; -- 4262811
8857 l_acc_rev_flag := NULL; -- 4262811
8858 l_accrual_line_num := NULL; -- 4262811
8859 l_tmp_amt := NULL; -- 4262811
8860 --
8861 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
8862 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
8863 return;
8864 END IF;
8865
8866 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8867 l_balance_type_code <> 'B' THEN
8868 IF NVL(p_source_38,'
8869 ') = 'CLEAR_CLEAR' AND
8870 NVL(p_source_20,'
8871 ') = 'ACCRUAL' AND
8872 (NVL(p_source_39,'
8873 ') = 'CASH' OR
8874 NVL(p_source_39,'
8875 ') = 'DISCOUNT')
8876 THEN
8877
8878 --
8879 XLA_AE_LINES_PKG.SetNewLine;
8880
8881 p_balance_type_code := l_balance_type_code;
8882 -- set the flag so later we will know whether the gain loss line needs to be created
8883
8884 IF(l_balance_type_code = 'A' ) THEN
8885 p_actual_flag :='G';
8886 END IF;
8887
8888 --
8889 -- bulk performance
8890 --
8891 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8892 p_header_num => 0); -- 4262811
8893 --
8894 -- set accounting line options
8895 --
8896 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8897 p_natural_side_code => 'G'
8898 , p_gain_or_loss_flag => 'N'
8899 , p_gl_transfer_mode_code => 'S'
8900 , p_acct_entry_type_code => 'A'
8901 , p_switch_side_flag => ''
8902 , p_merge_duplicate_code => 'A'
8903 );
8904 --
8905 l_acc_rev_natural_side_code := 'C'; -- 4262811
8906 --
8907 --
8908 -- set accounting line type info
8909 --
8910 xla_ae_lines_pkg.SetAcctLineType
8911 (p_component_type => l_component_type
8912 ,p_event_type_code => l_event_type_code
8913 ,p_line_definition_owner_code => l_line_definition_owner_code
8914 ,p_line_definition_code => l_line_definition_code
8915 ,p_accounting_line_code => l_component_code
8916 ,p_accounting_line_type_code => l_component_type_code
8917 ,p_accounting_line_appl_id => l_component_appl_id
8918 ,p_amb_context_code => l_amb_context_code
8919 ,p_entity_code => l_entity_code
8920 ,p_event_class_code => l_event_class_code);
8921 --
8922 -- set accounting class
8923 --
8924 xla_ae_lines_pkg.SetAcctClass(
8925 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
8926 , p_ae_header_id => l_ae_header_id
8927 );
8928
8929 --
8930 -- set rounding class
8931 --
8935 --
8932 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8933 'EXCHANGE_RATE_VARIANCE';
8934
8936 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8937 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8938 --
8939 -- bulk performance
8940 --
8941 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8942
8943 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8944 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8945
8946 -- 4955764
8947 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8948 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8949
8950 -- 4458381 Public Sector Enh
8951
8952 --
8953 -- set accounting attributes for the line type
8954 --
8955 l_entered_amt_idx := NULL;
8956 l_accted_amt_idx := 10;
8957 l_bflow_applied_to_amt_idx := 2; -- 5132302
8958 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8959 l_rec_acct_attrs.array_char_value(1) := p_source_40;
8960 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
8961 l_rec_acct_attrs.array_num_value(2) := p_source_41;
8962 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
8963 l_rec_acct_attrs.array_num_value(3) := p_source_42;
8964 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8965 l_rec_acct_attrs.array_char_value(4) := p_source_43;
8966 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
8967 l_rec_acct_attrs.array_char_value(5) := p_source_44;
8968 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
8969 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
8970 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8971 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
8972 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
8973 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
8974 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
8975 l_rec_acct_attrs.array_char_value(9) := p_source_48;
8976 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
8977 l_rec_acct_attrs.array_num_value(10) := p_source_10;
8978 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
8979 l_rec_acct_attrs.array_char_value(11) := p_source_53;
8980 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
8981 l_rec_acct_attrs.array_num_value(12) := p_source_54;
8982 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
8983 l_rec_acct_attrs.array_num_value(13) := p_source_55;
8984 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
8985 l_rec_acct_attrs.array_char_value(14) := p_source_56;
8986 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
8987 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
8988 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
8989 l_rec_acct_attrs.array_char_value(16) := p_source_48;
8990 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
8991 l_rec_acct_attrs.array_num_value(17) := p_source_58;
8992 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
8993 l_rec_acct_attrs.array_num_value(18) := p_source_58;
8994 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
8995 l_rec_acct_attrs.array_num_value(19) := p_source_59;
8996
8997 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8998 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8999
9000 ---------------------------------------------------------------------------------------------------------------
9001 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9002 ---------------------------------------------------------------------------------------------------------------
9003 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9004
9005 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9006 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9007
9008 IF xla_accounting_cache_pkg.GetValueChar
9009 (p_source_code => 'LEDGER_CATEGORY_CODE'
9010 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9011 AND l_bflow_method_code = 'PRIOR_ENTRY'
9012 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9013 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9014 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9015 )
9016 THEN
9017 xla_ae_lines_pkg.BflowUpgEntry
9018 (p_business_method_code => l_bflow_method_code
9019 ,p_business_class_code => l_bflow_class_code
9020 ,p_balance_type => l_balance_type_code);
9021 ELSE
9022 NULL;
9023 -- No business flow processing for business flow method of NONE.
9024 END IF;
9025
9026 --
9027 -- call analytical criteria
9028 --
9029
9030 --
9034 --
9031 -- call description
9032 --
9033 -- No description or it is inherited.
9035 -- call ADRs
9036 -- Bug 4922099
9037 --
9038 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9039 (NVL(l_actual_upg_option, 'N') = 'O') OR
9040 (NVL(l_enc_upg_option, 'N') = 'O')
9041 )
9042 THEN
9043 NULL;
9044 --
9045 --
9046
9047 l_ccid := AcctDerRule_22(
9048 p_application_id => p_application_id
9049 , p_ae_header_id => l_ae_header_id
9050 , p_source_4 => p_source_4
9051 , p_source_4_meaning => p_source_4_meaning
9052 , p_source_5 => p_source_5
9053 , p_source_7 => p_source_7
9054 , p_source_7_meaning => p_source_7_meaning
9055 , p_source_8 => p_source_8
9056 , p_source_9 => p_source_9
9057 , p_source_10 => p_source_10
9058 , p_source_17 => p_source_17
9059 , p_source_30 => p_source_30
9060 , p_source_30_meaning => p_source_30_meaning
9061 , x_transaction_coa_id => l_adr_transaction_coa_id
9062 , x_accounting_coa_id => l_adr_accounting_coa_id
9063 , x_value_type_code => l_adr_value_type_code
9064 , p_side => 'ALL'
9065 );
9066
9067 xla_ae_lines_pkg.set_ccid(
9068 p_code_combination_id => l_ccid
9069 , p_value_type_code => l_adr_value_type_code
9070 , p_transaction_coa_id => l_adr_transaction_coa_id
9071 , p_accounting_coa_id => l_adr_accounting_coa_id
9072 , p_adr_code => 'AP_ERV_TAXERV_CASH'
9073 , p_adr_type_code => 'S'
9074 , p_component_type => l_component_type
9075 , p_component_code => l_component_code
9076 , p_component_type_code => l_component_type_code
9077 , p_component_appl_id => l_component_appl_id
9078 , p_amb_context_code => l_amb_context_code
9079 , p_side => 'ALL'
9080 );
9081
9082
9083 l_segment := AcctDerRule_5(
9084 p_application_id => p_application_id
9085 , p_ae_header_id => l_ae_header_id
9086 , p_source_4 => p_source_4
9087 , p_source_4_meaning => p_source_4_meaning
9088 , p_source_5 => p_source_5
9089 , p_source_7 => p_source_7
9090 , p_source_7_meaning => p_source_7_meaning
9091 , x_transaction_coa_id => l_adr_transaction_coa_id
9092 , x_accounting_coa_id => l_adr_accounting_coa_id
9093 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9094 , x_flex_value_set_id => l_adr_flex_value_set_id
9095 , x_value_type_code => l_adr_value_type_code
9096 , x_value_combination_id => l_adr_value_combination_id
9097 , x_value_segment_code => l_adr_value_segment_code
9098 , p_side => 'CREDIT'
9099 , p_override_seg_flag => 'Y'
9100 );
9101
9102 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9103
9104 xla_ae_lines_pkg.set_segment(
9105 p_to_segment_code => 'GL_ACCOUNT'
9106 , p_segment_value => l_segment
9107 , p_from_segment_code => l_adr_value_segment_code
9108 , p_from_combination_id => l_adr_value_combination_id
9109 , p_value_type_code => l_adr_value_type_code
9110 , p_transaction_coa_id => l_adr_transaction_coa_id
9111 , p_accounting_coa_id => l_adr_accounting_coa_id
9112 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9113 , p_flex_value_set_id => l_adr_flex_value_set_id
9114 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9115 , p_adr_type_code => 'S'
9116 , p_component_type => l_component_type
9117 , p_component_code => l_component_code
9118 , p_component_type_code => l_component_type_code
9119 , p_component_appl_id => l_component_appl_id
9120 , p_amb_context_code => l_amb_context_code
9121 , p_entity_code => 'AP_PAYMENTS'
9122 , p_event_class_code => 'RECONCILED PAYMENTS'
9123 , p_side => 'CREDIT'
9124 );
9125
9126 END IF;
9127
9128 l_segment := AcctDerRule_6(
9129 p_application_id => p_application_id
9130 , p_ae_header_id => l_ae_header_id
9131 , p_source_4 => p_source_4
9132 , p_source_4_meaning => p_source_4_meaning
9133 , p_source_7 => p_source_7
9134 , p_source_7_meaning => p_source_7_meaning
9135 , p_source_8 => p_source_8
9136 , x_transaction_coa_id => l_adr_transaction_coa_id
9137 , x_accounting_coa_id => l_adr_accounting_coa_id
9138 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9139 , x_flex_value_set_id => l_adr_flex_value_set_id
9140 , x_value_type_code => l_adr_value_type_code
9141 , x_value_combination_id => l_adr_value_combination_id
9142 , x_value_segment_code => l_adr_value_segment_code
9143 , p_side => 'DEBIT'
9144 , p_override_seg_flag => 'Y'
9145 );
9146
9147 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9148
9149 xla_ae_lines_pkg.set_segment(
9153 , p_from_combination_id => l_adr_value_combination_id
9150 p_to_segment_code => 'GL_ACCOUNT'
9151 , p_segment_value => l_segment
9152 , p_from_segment_code => l_adr_value_segment_code
9154 , p_value_type_code => l_adr_value_type_code
9155 , p_transaction_coa_id => l_adr_transaction_coa_id
9156 , p_accounting_coa_id => l_adr_accounting_coa_id
9157 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9158 , p_flex_value_set_id => l_adr_flex_value_set_id
9159 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9160 , p_adr_type_code => 'S'
9161 , p_component_type => l_component_type
9162 , p_component_code => l_component_code
9163 , p_component_type_code => l_component_type_code
9164 , p_component_appl_id => l_component_appl_id
9165 , p_amb_context_code => l_amb_context_code
9166 , p_entity_code => 'AP_PAYMENTS'
9167 , p_event_class_code => 'RECONCILED PAYMENTS'
9168 , p_side => 'DEBIT'
9169 );
9170
9171 END IF;
9172
9173 l_segment := AcctDerRule_15(
9174 p_application_id => p_application_id
9175 , p_ae_header_id => l_ae_header_id
9176 , p_source_4 => p_source_4
9177 , p_source_4_meaning => p_source_4_meaning
9178 , p_source_7 => p_source_7
9179 , p_source_7_meaning => p_source_7_meaning
9180 , p_source_17 => p_source_17
9181 , x_transaction_coa_id => l_adr_transaction_coa_id
9182 , x_accounting_coa_id => l_adr_accounting_coa_id
9183 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9184 , x_flex_value_set_id => l_adr_flex_value_set_id
9185 , x_value_type_code => l_adr_value_type_code
9186 , x_value_combination_id => l_adr_value_combination_id
9187 , x_value_segment_code => l_adr_value_segment_code
9188 , p_side => 'ALL'
9189 , p_override_seg_flag => 'Y'
9190 );
9191
9192 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9193
9194 xla_ae_lines_pkg.set_segment(
9195 p_to_segment_code => 'GL_BALANCING'
9196 , p_segment_value => l_segment
9197 , p_from_segment_code => l_adr_value_segment_code
9198 , p_from_combination_id => l_adr_value_combination_id
9199 , p_value_type_code => l_adr_value_type_code
9200 , p_transaction_coa_id => l_adr_transaction_coa_id
9201 , p_accounting_coa_id => l_adr_accounting_coa_id
9202 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9203 , p_flex_value_set_id => l_adr_flex_value_set_id
9204 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
9205 , p_adr_type_code => 'S'
9206 , p_component_type => l_component_type
9207 , p_component_code => l_component_code
9208 , p_component_type_code => l_component_type_code
9209 , p_component_appl_id => l_component_appl_id
9210 , p_amb_context_code => l_amb_context_code
9211 , p_entity_code => 'AP_PAYMENTS'
9212 , p_event_class_code => 'RECONCILED PAYMENTS'
9213 , p_side => 'ALL'
9214 );
9215
9216 END IF;
9217
9218 --
9219 --
9220 END IF;
9221 --
9222 -- Bug 4922099
9223 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9224 (NVL(l_enc_upg_option, 'N') = 'O')
9225 ) AND
9226 (l_bflow_method_code = 'PRIOR_ENTRY')
9227 )
9228 THEN
9229 IF
9230 --
9231 1 = 2
9232 --
9233 THEN
9234 xla_accounting_err_pkg.build_message
9235 (p_appli_s_name => 'XLA'
9236 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9237 ,p_token_1 => 'LINE_NUMBER'
9238 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9239 ,p_token_2 => 'LINE_TYPE_NAME'
9240 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9241 l_component_type
9242 ,l_component_code
9243 ,l_component_type_code
9244 ,l_component_appl_id
9245 ,l_amb_context_code
9246 ,l_entity_code
9247 ,l_event_class_code
9248 )
9249 ,p_token_3 => 'OWNER'
9250 ,p_value_3 => xla_lookups_pkg.get_meaning(
9251 p_lookup_type => 'XLA_OWNER_TYPE'
9252 ,p_lookup_code => l_component_type_code
9253 )
9257 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9254 ,p_token_4 => 'PRODUCT_NAME'
9255 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9256 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9258 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9259 ,p_ae_header_id => NULL
9260 );
9261
9262 IF (C_LEVEL_ERROR>= g_log_level) THEN
9263 trace
9264 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9265 ,p_level => C_LEVEL_ERROR
9266 ,p_module => l_log_module);
9267 END IF;
9268 END IF;
9269 END IF;
9270 --
9271 --
9272 ------------------------------------------------------------------------------------------------
9273 -- 4219869 Business Flow
9274 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9275 -- Prior Entry. Currently, the following code is always generated.
9276 ------------------------------------------------------------------------------------------------
9277 XLA_AE_LINES_PKG.ValidateCurrentLine;
9278
9279 ------------------------------------------------------------------------------------
9280 -- 4219869 Business Flow
9281 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9282 ------------------------------------------------------------------------------------
9283 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9284
9285 ----------------------------------------------------------------------------------
9286 -- 4219869 Business Flow
9287 -- Update journal entry status -- Need to generate this within IF <condition>
9288 ----------------------------------------------------------------------------------
9289 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9290 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9291 ,p_balance_type_code => l_balance_type_code
9292 );
9293
9294 -------------------------------------------------------------------------------------------
9295 -- 4262811 - Generate the Accrual Reversal lines
9296 -------------------------------------------------------------------------------------------
9297 BEGIN
9298 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9299 (g_array_event(p_event_id).array_value_num('header_index'));
9300 IF l_acc_rev_flag IS NULL THEN
9301 l_acc_rev_flag := 'N';
9302 END IF;
9303 EXCEPTION
9304 WHEN OTHERS THEN
9305 l_acc_rev_flag := 'N';
9306 END;
9307 --
9308 IF (l_acc_rev_flag = 'Y') THEN
9309
9310 -- 4645092 ------------------------------------------------------------------------------
9311 -- To allow MPA report to determine if it should generate report process
9312 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9313 ------------------------------------------------------------------------------------------
9314
9315 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9316 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9317 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9318 -- call ADRs
9319 -- Bug 4922099
9320 --
9321 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9322 (NVL(l_actual_upg_option, 'N') = 'O') OR
9323 (NVL(l_enc_upg_option, 'N') = 'O')
9324 )
9325 THEN
9326 NULL;
9327 --
9328 --
9329
9330 l_ccid := AcctDerRule_22(
9331 p_application_id => p_application_id
9332 , p_ae_header_id => l_ae_header_id
9333 , p_source_4 => p_source_4
9334 , p_source_4_meaning => p_source_4_meaning
9335 , p_source_5 => p_source_5
9336 , p_source_7 => p_source_7
9337 , p_source_7_meaning => p_source_7_meaning
9338 , p_source_8 => p_source_8
9339 , p_source_9 => p_source_9
9340 , p_source_10 => p_source_10
9341 , p_source_17 => p_source_17
9342 , p_source_30 => p_source_30
9343 , p_source_30_meaning => p_source_30_meaning
9344 , x_transaction_coa_id => l_adr_transaction_coa_id
9345 , x_accounting_coa_id => l_adr_accounting_coa_id
9346 , x_value_type_code => l_adr_value_type_code
9347 , p_side => 'ALL'
9348 );
9349
9350 xla_ae_lines_pkg.set_ccid(
9351 p_code_combination_id => l_ccid
9352 , p_value_type_code => l_adr_value_type_code
9353 , p_transaction_coa_id => l_adr_transaction_coa_id
9354 , p_accounting_coa_id => l_adr_accounting_coa_id
9355 , p_adr_code => 'AP_ERV_TAXERV_CASH'
9356 , p_adr_type_code => 'S'
9357 , p_component_type => l_component_type
9358 , p_component_code => l_component_code
9359 , p_component_type_code => l_component_type_code
9360 , p_component_appl_id => l_component_appl_id
9361 , p_amb_context_code => l_amb_context_code
9365
9362 , p_side => 'ALL'
9363 );
9364
9366 l_segment := AcctDerRule_5(
9367 p_application_id => p_application_id
9368 , p_ae_header_id => l_ae_header_id
9369 , p_source_4 => p_source_4
9370 , p_source_4_meaning => p_source_4_meaning
9371 , p_source_5 => p_source_5
9372 , p_source_7 => p_source_7
9373 , p_source_7_meaning => p_source_7_meaning
9374 , x_transaction_coa_id => l_adr_transaction_coa_id
9375 , x_accounting_coa_id => l_adr_accounting_coa_id
9376 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9377 , x_flex_value_set_id => l_adr_flex_value_set_id
9378 , x_value_type_code => l_adr_value_type_code
9379 , x_value_combination_id => l_adr_value_combination_id
9380 , x_value_segment_code => l_adr_value_segment_code
9381 , p_side => 'CREDIT'
9382 , p_override_seg_flag => 'Y'
9383 );
9384
9385 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9386
9387 xla_ae_lines_pkg.set_segment(
9388 p_to_segment_code => 'GL_ACCOUNT'
9389 , p_segment_value => l_segment
9390 , p_from_segment_code => l_adr_value_segment_code
9391 , p_from_combination_id => l_adr_value_combination_id
9392 , p_value_type_code => l_adr_value_type_code
9393 , p_transaction_coa_id => l_adr_transaction_coa_id
9394 , p_accounting_coa_id => l_adr_accounting_coa_id
9395 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9396 , p_flex_value_set_id => l_adr_flex_value_set_id
9397 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9398 , p_adr_type_code => 'S'
9399 , p_component_type => l_component_type
9400 , p_component_code => l_component_code
9401 , p_component_type_code => l_component_type_code
9402 , p_component_appl_id => l_component_appl_id
9403 , p_amb_context_code => l_amb_context_code
9404 , p_entity_code => 'AP_PAYMENTS'
9405 , p_event_class_code => 'RECONCILED PAYMENTS'
9406 , p_side => 'CREDIT'
9407 );
9408
9409 END IF;
9410
9411 l_segment := AcctDerRule_6(
9412 p_application_id => p_application_id
9413 , p_ae_header_id => l_ae_header_id
9414 , p_source_4 => p_source_4
9415 , p_source_4_meaning => p_source_4_meaning
9416 , p_source_7 => p_source_7
9417 , p_source_7_meaning => p_source_7_meaning
9418 , p_source_8 => p_source_8
9419 , x_transaction_coa_id => l_adr_transaction_coa_id
9420 , x_accounting_coa_id => l_adr_accounting_coa_id
9421 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9422 , x_flex_value_set_id => l_adr_flex_value_set_id
9423 , x_value_type_code => l_adr_value_type_code
9424 , x_value_combination_id => l_adr_value_combination_id
9425 , x_value_segment_code => l_adr_value_segment_code
9426 , p_side => 'DEBIT'
9427 , p_override_seg_flag => 'Y'
9428 );
9429
9430 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9431
9432 xla_ae_lines_pkg.set_segment(
9433 p_to_segment_code => 'GL_ACCOUNT'
9434 , p_segment_value => l_segment
9435 , p_from_segment_code => l_adr_value_segment_code
9436 , p_from_combination_id => l_adr_value_combination_id
9437 , p_value_type_code => l_adr_value_type_code
9438 , p_transaction_coa_id => l_adr_transaction_coa_id
9439 , p_accounting_coa_id => l_adr_accounting_coa_id
9440 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9441 , p_flex_value_set_id => l_adr_flex_value_set_id
9442 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9443 , p_adr_type_code => 'S'
9444 , p_component_type => l_component_type
9445 , p_component_code => l_component_code
9446 , p_component_type_code => l_component_type_code
9447 , p_component_appl_id => l_component_appl_id
9448 , p_amb_context_code => l_amb_context_code
9449 , p_entity_code => 'AP_PAYMENTS'
9450 , p_event_class_code => 'RECONCILED PAYMENTS'
9451 , p_side => 'DEBIT'
9452 );
9453
9454 END IF;
9455
9456 l_segment := AcctDerRule_15(
9457 p_application_id => p_application_id
9458 , p_ae_header_id => l_ae_header_id
9459 , p_source_4 => p_source_4
9460 , p_source_4_meaning => p_source_4_meaning
9461 , p_source_7 => p_source_7
9462 , p_source_7_meaning => p_source_7_meaning
9463 , p_source_17 => p_source_17
9464 , x_transaction_coa_id => l_adr_transaction_coa_id
9465 , x_accounting_coa_id => l_adr_accounting_coa_id
9466 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9467 , x_flex_value_set_id => l_adr_flex_value_set_id
9468 , x_value_type_code => l_adr_value_type_code
9469 , x_value_combination_id => l_adr_value_combination_id
9470 , x_value_segment_code => l_adr_value_segment_code
9471 , p_side => 'ALL'
9475 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9472 , p_override_seg_flag => 'Y'
9473 );
9474
9476
9477 xla_ae_lines_pkg.set_segment(
9478 p_to_segment_code => 'GL_BALANCING'
9479 , p_segment_value => l_segment
9480 , p_from_segment_code => l_adr_value_segment_code
9481 , p_from_combination_id => l_adr_value_combination_id
9482 , p_value_type_code => l_adr_value_type_code
9483 , p_transaction_coa_id => l_adr_transaction_coa_id
9484 , p_accounting_coa_id => l_adr_accounting_coa_id
9485 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9486 , p_flex_value_set_id => l_adr_flex_value_set_id
9487 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
9488 , p_adr_type_code => 'S'
9489 , p_component_type => l_component_type
9490 , p_component_code => l_component_code
9491 , p_component_type_code => l_component_type_code
9492 , p_component_appl_id => l_component_appl_id
9493 , p_amb_context_code => l_amb_context_code
9494 , p_entity_code => 'AP_PAYMENTS'
9495 , p_event_class_code => 'RECONCILED PAYMENTS'
9496 , p_side => 'ALL'
9497 );
9498
9499 END IF;
9500
9501 --
9502 --
9503 END IF;
9504
9505 --
9506 -- Update the line information that should be overwritten
9507 --
9508 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9509 p_header_num => 1);
9510 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9511
9512 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9513
9514 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9515 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9516 END IF;
9517
9518 --
9519 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9520 --
9521 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9522 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9523 ELSE
9524 ---------------------------------------------------------------------------------------------------
9525 -- 4262811a Switch Sign
9526 ---------------------------------------------------------------------------------------------------
9527 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9528 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9529 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9530 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9531 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9532 -- 5132302
9533 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9534 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9535
9536 END IF;
9537
9538 -- 4955764
9539 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9540 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9541
9542
9543 XLA_AE_LINES_PKG.ValidateCurrentLine;
9544 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9545
9546 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9547 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9548 ,p_balance_type_code => l_balance_type_code);
9549
9550 END IF;
9551
9552 -----------------------------------------------------------------------------------------
9553 -- 4262811 Multiperiod Accounting
9554 -----------------------------------------------------------------------------------------
9555 -- No MPA option is assigned.
9556
9557
9558 END IF;
9559 END IF;
9560 --
9561
9562 --
9563 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9564 trace
9565 (p_msg => 'END of AcctLineType_43'
9566 ,p_level => C_LEVEL_PROCEDURE
9567 ,p_module => l_log_module);
9568 END IF;
9569 --
9570 EXCEPTION
9571 WHEN xla_exceptions_pkg.application_exception THEN
9572 RAISE;
9573 WHEN OTHERS THEN
9574 xla_exceptions_pkg.raise_message
9575 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_43');
9576 END AcctLineType_43;
9577 --
9578
9579 ---------------------------------------
9580 --
9581 -- PRIVATE FUNCTION
9582 -- AcctLineType_44
9583 --
9584 ---------------------------------------
9585 PROCEDURE AcctLineType_44 (
9586 p_application_id IN NUMBER
9587 ,p_event_id IN NUMBER
9588 ,p_calculate_acctd_flag IN VARCHAR2
9589 ,p_calculate_g_l_flag IN VARCHAR2
9590 ,p_actual_flag IN OUT VARCHAR2
9594 --Automatic Offsets Value
9591 ,p_balance_type_code OUT VARCHAR2
9592 ,p_gain_or_loss_ref OUT VARCHAR2
9593
9595 , p_source_4 IN VARCHAR2
9596 , p_source_4_meaning IN VARCHAR2
9597 --Purchase Order Rate Variance Gain Account
9598 , p_source_5 IN NUMBER
9599 --Destination Type of the PO Distribution
9600 , p_source_7 IN VARCHAR2
9601 , p_source_7_meaning IN VARCHAR2
9602 --Purchase Order Rate Variance Loss Account
9603 , p_source_8 IN NUMBER
9604 --Payment Distribution (Payment Rate) Ledger Amount
9605 , p_source_9 IN NUMBER
9606 --Payment Distribution (Cleared Rate) Ledger Amount
9607 , p_source_10 IN NUMBER
9608 --Invoice Distribution Account
9609 , p_source_17 IN NUMBER
9610 --Invoice Distribution Type
9611 , p_source_20 IN VARCHAR2
9612 , p_source_20_meaning IN VARCHAR2
9613 --Automatic Offsets Flag
9614 , p_source_30 IN VARCHAR2
9615 , p_source_30_meaning IN VARCHAR2
9616 --When to Account for Payment Option
9617 , p_source_38 IN VARCHAR2
9618 --Accounting Reversal Indicator
9619 , p_source_40 IN VARCHAR2
9620 --Business Flow Accounts Payable Application Identifier
9621 , p_source_42 IN NUMBER
9622 --Payment Distribution Identifier
9623 , p_source_47 IN NUMBER
9624 --Distribution Link Type
9625 , p_source_48 IN VARCHAR2
9626 --Override Accounted Amount Indicator
9627 , p_source_53 IN VARCHAR2
9628 , p_source_53_meaning IN VARCHAR2
9629 --Payment Supplier Identifier
9630 , p_source_54 IN NUMBER
9631 --Payment Supplier Site Identifier
9632 , p_source_55 IN NUMBER
9633 --Third Party Type
9634 , p_source_56 IN VARCHAR2
9635 --Payment Distribution Reversed Identifier
9636 , p_source_57 IN NUMBER
9637 --Invoice Distribution Tax Line Identifier
9638 , p_source_58 IN NUMBER
9639 --Invoice Distribution Summary Tax Line Identifier
9640 , p_source_59 IN NUMBER
9641 --Payment Type
9642 , p_source_60 IN VARCHAR2
9643 , p_source_60_meaning IN VARCHAR2
9644 --Invoice Distribution Amount of the Payment Distribution
9645 , p_source_61 IN NUMBER
9646 --Business Flow Invoice Distribution Type
9647 , p_source_62 IN VARCHAR2
9648 --Business Flow Invoice Entity Code
9649 , p_source_63 IN VARCHAR2
9650 --Business Flow Invoice Distribution Identifier
9651 , p_source_64 IN NUMBER
9652 --Business Flow Invoice Identifier
9653 , p_source_65 IN NUMBER
9654 --Invoice Distribution Tax Distribution Identifier from Tax
9655 , p_source_66 IN NUMBER
9656 )
9657 IS
9658
9659 l_component_type VARCHAR2(80);
9660 l_component_code VARCHAR2(30);
9661 l_component_type_code VARCHAR2(1);
9662 l_component_appl_id INTEGER;
9663 l_amb_context_code VARCHAR2(30);
9664 l_entity_code VARCHAR2(30);
9665 l_event_class_code VARCHAR2(30);
9666 l_ae_header_id NUMBER;
9667 l_event_type_code VARCHAR2(30);
9668 l_line_definition_code VARCHAR2(30);
9669 l_line_definition_owner_code VARCHAR2(1);
9670 --
9671 -- adr variables
9672 l_segment VARCHAR2(30);
9673 l_ccid NUMBER;
9674 l_adr_transaction_coa_id NUMBER;
9675 l_adr_accounting_coa_id NUMBER;
9676 l_adr_flexfield_segment_code VARCHAR2(30);
9677 l_adr_flex_value_set_id NUMBER;
9678 l_adr_value_type_code VARCHAR2(30);
9679 l_adr_value_combination_id NUMBER;
9680 l_adr_value_segment_code VARCHAR2(30);
9681
9682 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9683 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9684 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9685 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9686
9687 -- 4262811 Variables ------------------------------------------------------------------------------------------
9688 l_entered_amt_idx NUMBER;
9689 l_accted_amt_idx NUMBER;
9690 l_acc_rev_flag VARCHAR2(1);
9691 l_accrual_line_num NUMBER;
9692 l_tmp_amt NUMBER;
9693 l_acc_rev_natural_side_code VARCHAR2(1);
9694
9695 l_num_entries NUMBER;
9696 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9697 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9698 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9699 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9700 l_recog_line_1 NUMBER;
9701 l_recog_line_2 NUMBER;
9702
9703 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9704 l_bflow_applied_to_amt NUMBER; -- 5132302
9705 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9706
9707 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9708
9709 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9710 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9711
9712 ---------------------------------------------------------------------------------------------------------------
9713
9717 --
9714
9715 --
9716 -- bulk performance
9718 l_balance_type_code VARCHAR2(1);
9719 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9720 l_log_module VARCHAR2(240);
9721
9722 --
9723 -- Upgrade strategy
9724 --
9725 l_actual_upg_option VARCHAR2(1);
9726 l_enc_upg_option VARCHAR2(1);
9727
9728 --
9729 BEGIN
9730 --
9731 IF g_log_enabled THEN
9732 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
9733 END IF;
9734 --
9735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9736
9737 trace
9738 (p_msg => 'BEGIN of AcctLineType_44'
9739 ,p_level => C_LEVEL_PROCEDURE
9740 ,p_module => l_log_module);
9741
9742 END IF;
9743 --
9744 l_component_type := 'AMB_JLT';
9745 l_component_code := 'AP_ALC_EX_RATE_VAR_PMT';
9746 l_component_type_code := 'S';
9747 l_component_appl_id := 200;
9748 l_amb_context_code := 'DEFAULT';
9749 l_entity_code := 'AP_PAYMENTS';
9750 l_event_class_code := 'PAYMENTS';
9751 l_event_type_code := 'PAYMENTS_ALL';
9752 l_line_definition_owner_code := 'S';
9753 l_line_definition_code := 'CASH_PAYMENTS_ALL';
9754 --
9755 l_balance_type_code := 'A';
9756 l_segment := NULL;
9757 l_ccid := NULL;
9758 l_adr_transaction_coa_id := NULL;
9759 l_adr_accounting_coa_id := NULL;
9760 l_adr_flexfield_segment_code := NULL;
9761 l_adr_flex_value_set_id := NULL;
9762 l_adr_value_type_code := NULL;
9763 l_adr_value_combination_id := NULL;
9764 l_adr_value_segment_code := NULL;
9765
9766 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9767 l_bflow_class_code := ''; -- 4219869 Business Flow
9768 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9769 l_budgetary_control_flag := 'N';
9770
9771 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9772 l_bflow_applied_to_amt := NULL; -- 5132302
9773 l_entered_amt_idx := NULL; -- 4262811
9774 l_accted_amt_idx := NULL; -- 4262811
9775 l_acc_rev_flag := NULL; -- 4262811
9776 l_accrual_line_num := NULL; -- 4262811
9777 l_tmp_amt := NULL; -- 4262811
9778 --
9779 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9780 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
9781 return;
9782 END IF;
9783
9784 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9785 l_balance_type_code <> 'B' THEN
9786 IF NVL(p_source_38,'
9787 ') <> 'CLEAR_CLEAR' AND
9788 NVL(p_source_20,'
9789 ') = 'ACCRUAL' AND
9790 NVL(p_source_60,'
9791 ') <> 'R'
9792 THEN
9793
9794 --
9795 XLA_AE_LINES_PKG.SetNewLine;
9796
9797 p_balance_type_code := l_balance_type_code;
9798 -- set the flag so later we will know whether the gain loss line needs to be created
9799
9800 IF(l_balance_type_code = 'A' ) THEN
9801 p_actual_flag :='G';
9802 END IF;
9803
9804 --
9805 -- bulk performance
9806 --
9807 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9808 p_header_num => 0); -- 4262811
9809 --
9810 -- set accounting line options
9811 --
9812 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9813 p_natural_side_code => 'G'
9814 , p_gain_or_loss_flag => 'N'
9815 , p_gl_transfer_mode_code => 'S'
9816 , p_acct_entry_type_code => 'A'
9817 , p_switch_side_flag => ''
9818 , p_merge_duplicate_code => 'A'
9819 );
9820 --
9821 l_acc_rev_natural_side_code := 'C'; -- 4262811
9822 --
9823 --
9824 -- set accounting line type info
9825 --
9826 xla_ae_lines_pkg.SetAcctLineType
9827 (p_component_type => l_component_type
9828 ,p_event_type_code => l_event_type_code
9829 ,p_line_definition_owner_code => l_line_definition_owner_code
9830 ,p_line_definition_code => l_line_definition_code
9831 ,p_accounting_line_code => l_component_code
9832 ,p_accounting_line_type_code => l_component_type_code
9833 ,p_accounting_line_appl_id => l_component_appl_id
9834 ,p_amb_context_code => l_amb_context_code
9835 ,p_entity_code => l_entity_code
9836 ,p_event_class_code => l_event_class_code);
9837 --
9838 -- set accounting class
9839 --
9840 xla_ae_lines_pkg.SetAcctClass(
9841 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
9842 , p_ae_header_id => l_ae_header_id
9843 );
9844
9845 --
9846 -- set rounding class
9847 --
9848 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9849 'EXCHANGE_RATE_VARIANCE';
9850
9851 --
9855 -- bulk performance
9852 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9853 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9854 --
9856 --
9857 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9858
9859 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9860 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9861
9862 -- 4955764
9863 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9864 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9865
9866 -- 4458381 Public Sector Enh
9867
9868 --
9869 -- set accounting attributes for the line type
9870 --
9871 l_entered_amt_idx := NULL;
9872 l_accted_amt_idx := 10;
9873 l_bflow_applied_to_amt_idx := 2; -- 5132302
9874 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9875 l_rec_acct_attrs.array_char_value(1) := p_source_40;
9876 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
9877 l_rec_acct_attrs.array_num_value(2) := p_source_61;
9878 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
9879 l_rec_acct_attrs.array_num_value(3) := p_source_42;
9880 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9881 l_rec_acct_attrs.array_char_value(4) := p_source_62;
9882 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
9883 l_rec_acct_attrs.array_char_value(5) := p_source_63;
9884 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
9885 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
9886 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9887 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
9888 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
9889 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
9890 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
9891 l_rec_acct_attrs.array_char_value(9) := p_source_48;
9892 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
9893 l_rec_acct_attrs.array_num_value(10) := p_source_9;
9894 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
9895 l_rec_acct_attrs.array_char_value(11) := p_source_53;
9896 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
9897 l_rec_acct_attrs.array_num_value(12) := p_source_54;
9898 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
9899 l_rec_acct_attrs.array_num_value(13) := p_source_55;
9900 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
9901 l_rec_acct_attrs.array_char_value(14) := p_source_56;
9902 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
9903 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
9904 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
9905 l_rec_acct_attrs.array_char_value(16) := p_source_48;
9906 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
9907 l_rec_acct_attrs.array_num_value(17) := p_source_58;
9908 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
9909 l_rec_acct_attrs.array_num_value(18) := p_source_66;
9910 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
9911 l_rec_acct_attrs.array_num_value(19) := p_source_59;
9912
9913 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9914 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9915
9916 ---------------------------------------------------------------------------------------------------------------
9917 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9918 ---------------------------------------------------------------------------------------------------------------
9919 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9920
9921 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9922 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9923
9924 IF xla_accounting_cache_pkg.GetValueChar
9925 (p_source_code => 'LEDGER_CATEGORY_CODE'
9926 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9927 AND l_bflow_method_code = 'PRIOR_ENTRY'
9928 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9929 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9930 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9931 )
9932 THEN
9933 xla_ae_lines_pkg.BflowUpgEntry
9934 (p_business_method_code => l_bflow_method_code
9935 ,p_business_class_code => l_bflow_class_code
9936 ,p_balance_type => l_balance_type_code);
9937 ELSE
9938 NULL;
9939 -- No business flow processing for business flow method of NONE.
9940 END IF;
9941
9942 --
9943 -- call analytical criteria
9944 --
9945
9946 --
9947 -- call description
9948 --
9949 -- No description or it is inherited.
9950 --
9951 -- call ADRs
9952 -- Bug 4922099
9953 --
9957 )
9954 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9955 (NVL(l_actual_upg_option, 'N') = 'O') OR
9956 (NVL(l_enc_upg_option, 'N') = 'O')
9958 THEN
9959 NULL;
9960 --
9961 --
9962
9963 l_ccid := AcctDerRule_22(
9964 p_application_id => p_application_id
9965 , p_ae_header_id => l_ae_header_id
9966 , p_source_4 => p_source_4
9967 , p_source_4_meaning => p_source_4_meaning
9968 , p_source_5 => p_source_5
9969 , p_source_7 => p_source_7
9970 , p_source_7_meaning => p_source_7_meaning
9971 , p_source_8 => p_source_8
9972 , p_source_9 => p_source_9
9973 , p_source_10 => p_source_10
9974 , p_source_17 => p_source_17
9975 , p_source_30 => p_source_30
9976 , p_source_30_meaning => p_source_30_meaning
9977 , x_transaction_coa_id => l_adr_transaction_coa_id
9978 , x_accounting_coa_id => l_adr_accounting_coa_id
9979 , x_value_type_code => l_adr_value_type_code
9980 , p_side => 'ALL'
9981 );
9982
9983 xla_ae_lines_pkg.set_ccid(
9984 p_code_combination_id => l_ccid
9985 , p_value_type_code => l_adr_value_type_code
9986 , p_transaction_coa_id => l_adr_transaction_coa_id
9987 , p_accounting_coa_id => l_adr_accounting_coa_id
9988 , p_adr_code => 'AP_ERV_TAXERV_CASH'
9989 , p_adr_type_code => 'S'
9990 , p_component_type => l_component_type
9991 , p_component_code => l_component_code
9992 , p_component_type_code => l_component_type_code
9993 , p_component_appl_id => l_component_appl_id
9994 , p_amb_context_code => l_amb_context_code
9995 , p_side => 'ALL'
9996 );
9997
9998
9999 l_segment := AcctDerRule_5(
10000 p_application_id => p_application_id
10001 , p_ae_header_id => l_ae_header_id
10002 , p_source_4 => p_source_4
10003 , p_source_4_meaning => p_source_4_meaning
10004 , p_source_5 => p_source_5
10005 , p_source_7 => p_source_7
10006 , p_source_7_meaning => p_source_7_meaning
10007 , x_transaction_coa_id => l_adr_transaction_coa_id
10008 , x_accounting_coa_id => l_adr_accounting_coa_id
10009 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10010 , x_flex_value_set_id => l_adr_flex_value_set_id
10011 , x_value_type_code => l_adr_value_type_code
10012 , x_value_combination_id => l_adr_value_combination_id
10013 , x_value_segment_code => l_adr_value_segment_code
10014 , p_side => 'CREDIT'
10015 , p_override_seg_flag => 'Y'
10016 );
10017
10018 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10019
10020 xla_ae_lines_pkg.set_segment(
10021 p_to_segment_code => 'GL_ACCOUNT'
10022 , p_segment_value => l_segment
10023 , p_from_segment_code => l_adr_value_segment_code
10024 , p_from_combination_id => l_adr_value_combination_id
10025 , p_value_type_code => l_adr_value_type_code
10026 , p_transaction_coa_id => l_adr_transaction_coa_id
10027 , p_accounting_coa_id => l_adr_accounting_coa_id
10028 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10029 , p_flex_value_set_id => l_adr_flex_value_set_id
10030 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10031 , p_adr_type_code => 'S'
10032 , p_component_type => l_component_type
10033 , p_component_code => l_component_code
10034 , p_component_type_code => l_component_type_code
10035 , p_component_appl_id => l_component_appl_id
10036 , p_amb_context_code => l_amb_context_code
10037 , p_entity_code => 'AP_PAYMENTS'
10038 , p_event_class_code => 'PAYMENTS'
10039 , p_side => 'CREDIT'
10040 );
10041
10042 END IF;
10043
10044 l_segment := AcctDerRule_6(
10045 p_application_id => p_application_id
10046 , p_ae_header_id => l_ae_header_id
10047 , p_source_4 => p_source_4
10048 , p_source_4_meaning => p_source_4_meaning
10049 , p_source_7 => p_source_7
10050 , p_source_7_meaning => p_source_7_meaning
10051 , p_source_8 => p_source_8
10052 , x_transaction_coa_id => l_adr_transaction_coa_id
10053 , x_accounting_coa_id => l_adr_accounting_coa_id
10054 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10055 , x_flex_value_set_id => l_adr_flex_value_set_id
10056 , x_value_type_code => l_adr_value_type_code
10057 , x_value_combination_id => l_adr_value_combination_id
10058 , x_value_segment_code => l_adr_value_segment_code
10059 , p_side => 'DEBIT'
10060 , p_override_seg_flag => 'Y'
10061 );
10062
10063 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10064
10065 xla_ae_lines_pkg.set_segment(
10066 p_to_segment_code => 'GL_ACCOUNT'
10067 , p_segment_value => l_segment
10071 , p_transaction_coa_id => l_adr_transaction_coa_id
10068 , p_from_segment_code => l_adr_value_segment_code
10069 , p_from_combination_id => l_adr_value_combination_id
10070 , p_value_type_code => l_adr_value_type_code
10072 , p_accounting_coa_id => l_adr_accounting_coa_id
10073 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10074 , p_flex_value_set_id => l_adr_flex_value_set_id
10075 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10076 , p_adr_type_code => 'S'
10077 , p_component_type => l_component_type
10078 , p_component_code => l_component_code
10079 , p_component_type_code => l_component_type_code
10080 , p_component_appl_id => l_component_appl_id
10081 , p_amb_context_code => l_amb_context_code
10082 , p_entity_code => 'AP_PAYMENTS'
10083 , p_event_class_code => 'PAYMENTS'
10084 , p_side => 'DEBIT'
10085 );
10086
10087 END IF;
10088
10089 l_segment := AcctDerRule_15(
10090 p_application_id => p_application_id
10091 , p_ae_header_id => l_ae_header_id
10092 , p_source_4 => p_source_4
10093 , p_source_4_meaning => p_source_4_meaning
10094 , p_source_7 => p_source_7
10095 , p_source_7_meaning => p_source_7_meaning
10096 , p_source_17 => p_source_17
10097 , x_transaction_coa_id => l_adr_transaction_coa_id
10098 , x_accounting_coa_id => l_adr_accounting_coa_id
10099 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10100 , x_flex_value_set_id => l_adr_flex_value_set_id
10101 , x_value_type_code => l_adr_value_type_code
10102 , x_value_combination_id => l_adr_value_combination_id
10103 , x_value_segment_code => l_adr_value_segment_code
10104 , p_side => 'ALL'
10105 , p_override_seg_flag => 'Y'
10106 );
10107
10108 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10109
10110 xla_ae_lines_pkg.set_segment(
10111 p_to_segment_code => 'GL_BALANCING'
10112 , p_segment_value => l_segment
10113 , p_from_segment_code => l_adr_value_segment_code
10114 , p_from_combination_id => l_adr_value_combination_id
10115 , p_value_type_code => l_adr_value_type_code
10116 , p_transaction_coa_id => l_adr_transaction_coa_id
10117 , p_accounting_coa_id => l_adr_accounting_coa_id
10118 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10119 , p_flex_value_set_id => l_adr_flex_value_set_id
10120 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
10121 , p_adr_type_code => 'S'
10122 , p_component_type => l_component_type
10123 , p_component_code => l_component_code
10124 , p_component_type_code => l_component_type_code
10125 , p_component_appl_id => l_component_appl_id
10126 , p_amb_context_code => l_amb_context_code
10127 , p_entity_code => 'AP_PAYMENTS'
10128 , p_event_class_code => 'PAYMENTS'
10129 , p_side => 'ALL'
10130 );
10131
10132 END IF;
10133
10134 --
10135 --
10136 END IF;
10137 --
10138 -- Bug 4922099
10139 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10140 (NVL(l_enc_upg_option, 'N') = 'O')
10141 ) AND
10142 (l_bflow_method_code = 'PRIOR_ENTRY')
10143 )
10144 THEN
10145 IF
10146 --
10147 1 = 2
10148 --
10149 THEN
10150 xla_accounting_err_pkg.build_message
10151 (p_appli_s_name => 'XLA'
10152 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10153 ,p_token_1 => 'LINE_NUMBER'
10154 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10155 ,p_token_2 => 'LINE_TYPE_NAME'
10156 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10157 l_component_type
10158 ,l_component_code
10159 ,l_component_type_code
10160 ,l_component_appl_id
10161 ,l_amb_context_code
10162 ,l_entity_code
10163 ,l_event_class_code
10164 )
10165 ,p_token_3 => 'OWNER'
10166 ,p_value_3 => xla_lookups_pkg.get_meaning(
10167 p_lookup_type => 'XLA_OWNER_TYPE'
10168 ,p_lookup_code => l_component_type_code
10169 )
10173 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10170 ,p_token_4 => 'PRODUCT_NAME'
10171 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10172 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10174 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10175 ,p_ae_header_id => NULL
10176 );
10177
10178 IF (C_LEVEL_ERROR>= g_log_level) THEN
10179 trace
10180 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10181 ,p_level => C_LEVEL_ERROR
10182 ,p_module => l_log_module);
10183 END IF;
10184 END IF;
10185 END IF;
10186 --
10187 --
10188 ------------------------------------------------------------------------------------------------
10189 -- 4219869 Business Flow
10190 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10191 -- Prior Entry. Currently, the following code is always generated.
10192 ------------------------------------------------------------------------------------------------
10193 XLA_AE_LINES_PKG.ValidateCurrentLine;
10194
10195 ------------------------------------------------------------------------------------
10196 -- 4219869 Business Flow
10197 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10198 ------------------------------------------------------------------------------------
10199 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10200
10201 ----------------------------------------------------------------------------------
10202 -- 4219869 Business Flow
10203 -- Update journal entry status -- Need to generate this within IF <condition>
10204 ----------------------------------------------------------------------------------
10205 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10206 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10207 ,p_balance_type_code => l_balance_type_code
10208 );
10209
10210 -------------------------------------------------------------------------------------------
10211 -- 4262811 - Generate the Accrual Reversal lines
10212 -------------------------------------------------------------------------------------------
10213 BEGIN
10214 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10215 (g_array_event(p_event_id).array_value_num('header_index'));
10216 IF l_acc_rev_flag IS NULL THEN
10217 l_acc_rev_flag := 'N';
10218 END IF;
10219 EXCEPTION
10220 WHEN OTHERS THEN
10221 l_acc_rev_flag := 'N';
10222 END;
10223 --
10224 IF (l_acc_rev_flag = 'Y') THEN
10225
10226 -- 4645092 ------------------------------------------------------------------------------
10227 -- To allow MPA report to determine if it should generate report process
10228 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10229 ------------------------------------------------------------------------------------------
10230
10231 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10232 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10233 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10234 -- call ADRs
10235 -- Bug 4922099
10236 --
10237 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10238 (NVL(l_actual_upg_option, 'N') = 'O') OR
10239 (NVL(l_enc_upg_option, 'N') = 'O')
10240 )
10241 THEN
10242 NULL;
10243 --
10244 --
10245
10246 l_ccid := AcctDerRule_22(
10247 p_application_id => p_application_id
10248 , p_ae_header_id => l_ae_header_id
10249 , p_source_4 => p_source_4
10250 , p_source_4_meaning => p_source_4_meaning
10251 , p_source_5 => p_source_5
10252 , p_source_7 => p_source_7
10253 , p_source_7_meaning => p_source_7_meaning
10254 , p_source_8 => p_source_8
10255 , p_source_9 => p_source_9
10256 , p_source_10 => p_source_10
10257 , p_source_17 => p_source_17
10258 , p_source_30 => p_source_30
10259 , p_source_30_meaning => p_source_30_meaning
10260 , x_transaction_coa_id => l_adr_transaction_coa_id
10261 , x_accounting_coa_id => l_adr_accounting_coa_id
10262 , x_value_type_code => l_adr_value_type_code
10263 , p_side => 'ALL'
10264 );
10265
10266 xla_ae_lines_pkg.set_ccid(
10267 p_code_combination_id => l_ccid
10268 , p_value_type_code => l_adr_value_type_code
10269 , p_transaction_coa_id => l_adr_transaction_coa_id
10270 , p_accounting_coa_id => l_adr_accounting_coa_id
10271 , p_adr_code => 'AP_ERV_TAXERV_CASH'
10272 , p_adr_type_code => 'S'
10273 , p_component_type => l_component_type
10274 , p_component_code => l_component_code
10275 , p_component_type_code => l_component_type_code
10276 , p_component_appl_id => l_component_appl_id
10280
10277 , p_amb_context_code => l_amb_context_code
10278 , p_side => 'ALL'
10279 );
10281
10282 l_segment := AcctDerRule_5(
10283 p_application_id => p_application_id
10284 , p_ae_header_id => l_ae_header_id
10285 , p_source_4 => p_source_4
10286 , p_source_4_meaning => p_source_4_meaning
10287 , p_source_5 => p_source_5
10288 , p_source_7 => p_source_7
10289 , p_source_7_meaning => p_source_7_meaning
10290 , x_transaction_coa_id => l_adr_transaction_coa_id
10291 , x_accounting_coa_id => l_adr_accounting_coa_id
10292 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10293 , x_flex_value_set_id => l_adr_flex_value_set_id
10294 , x_value_type_code => l_adr_value_type_code
10295 , x_value_combination_id => l_adr_value_combination_id
10296 , x_value_segment_code => l_adr_value_segment_code
10297 , p_side => 'CREDIT'
10298 , p_override_seg_flag => 'Y'
10299 );
10300
10301 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10302
10303 xla_ae_lines_pkg.set_segment(
10304 p_to_segment_code => 'GL_ACCOUNT'
10305 , p_segment_value => l_segment
10306 , p_from_segment_code => l_adr_value_segment_code
10307 , p_from_combination_id => l_adr_value_combination_id
10308 , p_value_type_code => l_adr_value_type_code
10309 , p_transaction_coa_id => l_adr_transaction_coa_id
10310 , p_accounting_coa_id => l_adr_accounting_coa_id
10311 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10312 , p_flex_value_set_id => l_adr_flex_value_set_id
10313 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10314 , p_adr_type_code => 'S'
10315 , p_component_type => l_component_type
10316 , p_component_code => l_component_code
10317 , p_component_type_code => l_component_type_code
10318 , p_component_appl_id => l_component_appl_id
10319 , p_amb_context_code => l_amb_context_code
10320 , p_entity_code => 'AP_PAYMENTS'
10321 , p_event_class_code => 'PAYMENTS'
10322 , p_side => 'CREDIT'
10323 );
10324
10325 END IF;
10326
10327 l_segment := AcctDerRule_6(
10328 p_application_id => p_application_id
10329 , p_ae_header_id => l_ae_header_id
10330 , p_source_4 => p_source_4
10331 , p_source_4_meaning => p_source_4_meaning
10332 , p_source_7 => p_source_7
10333 , p_source_7_meaning => p_source_7_meaning
10334 , p_source_8 => p_source_8
10335 , x_transaction_coa_id => l_adr_transaction_coa_id
10336 , x_accounting_coa_id => l_adr_accounting_coa_id
10337 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10338 , x_flex_value_set_id => l_adr_flex_value_set_id
10339 , x_value_type_code => l_adr_value_type_code
10340 , x_value_combination_id => l_adr_value_combination_id
10341 , x_value_segment_code => l_adr_value_segment_code
10342 , p_side => 'DEBIT'
10343 , p_override_seg_flag => 'Y'
10344 );
10345
10346 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10347
10348 xla_ae_lines_pkg.set_segment(
10349 p_to_segment_code => 'GL_ACCOUNT'
10350 , p_segment_value => l_segment
10351 , p_from_segment_code => l_adr_value_segment_code
10352 , p_from_combination_id => l_adr_value_combination_id
10353 , p_value_type_code => l_adr_value_type_code
10354 , p_transaction_coa_id => l_adr_transaction_coa_id
10355 , p_accounting_coa_id => l_adr_accounting_coa_id
10356 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10357 , p_flex_value_set_id => l_adr_flex_value_set_id
10358 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10359 , p_adr_type_code => 'S'
10360 , p_component_type => l_component_type
10361 , p_component_code => l_component_code
10362 , p_component_type_code => l_component_type_code
10363 , p_component_appl_id => l_component_appl_id
10364 , p_amb_context_code => l_amb_context_code
10365 , p_entity_code => 'AP_PAYMENTS'
10366 , p_event_class_code => 'PAYMENTS'
10367 , p_side => 'DEBIT'
10368 );
10369
10370 END IF;
10371
10372 l_segment := AcctDerRule_15(
10373 p_application_id => p_application_id
10374 , p_ae_header_id => l_ae_header_id
10375 , p_source_4 => p_source_4
10376 , p_source_4_meaning => p_source_4_meaning
10377 , p_source_7 => p_source_7
10378 , p_source_7_meaning => p_source_7_meaning
10379 , p_source_17 => p_source_17
10380 , x_transaction_coa_id => l_adr_transaction_coa_id
10381 , x_accounting_coa_id => l_adr_accounting_coa_id
10382 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10383 , x_flex_value_set_id => l_adr_flex_value_set_id
10384 , x_value_type_code => l_adr_value_type_code
10385 , x_value_combination_id => l_adr_value_combination_id
10389 );
10386 , x_value_segment_code => l_adr_value_segment_code
10387 , p_side => 'ALL'
10388 , p_override_seg_flag => 'Y'
10390
10391 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10392
10393 xla_ae_lines_pkg.set_segment(
10394 p_to_segment_code => 'GL_BALANCING'
10395 , p_segment_value => l_segment
10396 , p_from_segment_code => l_adr_value_segment_code
10397 , p_from_combination_id => l_adr_value_combination_id
10398 , p_value_type_code => l_adr_value_type_code
10399 , p_transaction_coa_id => l_adr_transaction_coa_id
10400 , p_accounting_coa_id => l_adr_accounting_coa_id
10401 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10402 , p_flex_value_set_id => l_adr_flex_value_set_id
10403 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
10404 , p_adr_type_code => 'S'
10405 , p_component_type => l_component_type
10406 , p_component_code => l_component_code
10407 , p_component_type_code => l_component_type_code
10408 , p_component_appl_id => l_component_appl_id
10409 , p_amb_context_code => l_amb_context_code
10410 , p_entity_code => 'AP_PAYMENTS'
10411 , p_event_class_code => 'PAYMENTS'
10412 , p_side => 'ALL'
10413 );
10414
10415 END IF;
10416
10417 --
10418 --
10419 END IF;
10420
10421 --
10422 -- Update the line information that should be overwritten
10423 --
10424 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10425 p_header_num => 1);
10426 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10427
10428 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10429
10430 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10431 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10432 END IF;
10433
10434 --
10435 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10436 --
10437 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10438 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10439 ELSE
10440 ---------------------------------------------------------------------------------------------------
10441 -- 4262811a Switch Sign
10442 ---------------------------------------------------------------------------------------------------
10443 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10444 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10445 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10446 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10447 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10448 -- 5132302
10449 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10450 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10451
10452 END IF;
10453
10454 -- 4955764
10455 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10456 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10457
10458
10459 XLA_AE_LINES_PKG.ValidateCurrentLine;
10460 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10461
10462 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10463 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10464 ,p_balance_type_code => l_balance_type_code);
10465
10466 END IF;
10467
10468 -----------------------------------------------------------------------------------------
10469 -- 4262811 Multiperiod Accounting
10470 -----------------------------------------------------------------------------------------
10471 -- No MPA option is assigned.
10472
10473
10474 END IF;
10475 END IF;
10476 --
10477
10478 --
10479 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10480 trace
10481 (p_msg => 'END of AcctLineType_44'
10482 ,p_level => C_LEVEL_PROCEDURE
10483 ,p_module => l_log_module);
10484 END IF;
10485 --
10486 EXCEPTION
10487 WHEN xla_exceptions_pkg.application_exception THEN
10488 RAISE;
10489 WHEN OTHERS THEN
10490 xla_exceptions_pkg.raise_message
10491 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_44');
10492 END AcctLineType_44;
10493 --
10494
10495 ---------------------------------------
10496 --
10497 -- PRIVATE FUNCTION
10498 -- AcctLineType_45
10499 --
10500 ---------------------------------------
10501 PROCEDURE AcctLineType_45 (
10505 ,p_calculate_g_l_flag IN VARCHAR2
10502 p_application_id IN NUMBER
10503 ,p_event_id IN NUMBER
10504 ,p_calculate_acctd_flag IN VARCHAR2
10506 ,p_actual_flag IN OUT VARCHAR2
10507 ,p_balance_type_code OUT VARCHAR2
10508 ,p_gain_or_loss_ref OUT VARCHAR2
10509
10510 --Automatic Offsets Value
10511 , p_source_4 IN VARCHAR2
10512 , p_source_4_meaning IN VARCHAR2
10513 --Purchase Order Rate Variance Gain Account
10514 , p_source_5 IN NUMBER
10515 --Invoice Distribution Ledger Amount
10516 , p_source_6 IN NUMBER
10517 --Destination Type of the PO Distribution
10518 , p_source_7 IN VARCHAR2
10519 , p_source_7_meaning IN VARCHAR2
10520 --Purchase Order Rate Variance Loss Account
10521 , p_source_8 IN NUMBER
10522 --Invoice Distribution Account
10523 , p_source_17 IN NUMBER
10524 --Automatic Offsets Flag
10525 , p_source_30 IN VARCHAR2
10526 , p_source_30_meaning IN VARCHAR2
10527 --Accounting Reversal Indicator
10528 , p_source_40 IN VARCHAR2
10529 --Business Flow Accounts Payable Application Identifier
10530 , p_source_42 IN NUMBER
10531 --Distribution Link Type
10532 , p_source_48 IN VARCHAR2
10533 --Override Accounted Amount Indicator
10534 , p_source_53 IN VARCHAR2
10535 , p_source_53_meaning IN VARCHAR2
10536 --Third Party Type
10537 , p_source_56 IN VARCHAR2
10538 --Invoice Distribution Tax Line Identifier
10539 , p_source_58 IN NUMBER
10540 --Invoice Distribution Summary Tax Line Identifier
10541 , p_source_59 IN NUMBER
10542 --Invoice Distribution Tax Distribution Identifier from Tax
10543 , p_source_66 IN NUMBER
10544 --Prepayment Distribution Type
10545 , p_source_67 IN VARCHAR2
10546 --Recipient Invoice Distribution Type
10547 , p_source_68 IN VARCHAR2
10548 , p_source_68_meaning IN VARCHAR2
10549 --Prepayment Application Distribution Identifier
10550 , p_source_71 IN NUMBER
10551 --Invoice Identifier
10552 , p_source_72 IN NUMBER
10553 --Business Flow Prepayment Invoice Distribution Type
10554 , p_source_73 IN VARCHAR2
10555 --Business Flow Prepayment Invoice Entity Code
10556 , p_source_74 IN VARCHAR2
10557 --Business Flow Prepayment Invoice Distribution Identifier
10558 , p_source_75 IN NUMBER
10559 --Business Flow Prepayment Invoice Identifier
10560 , p_source_76 IN NUMBER
10561 --Upgrade Encumbrance Credit Account Class
10562 , p_source_77 IN VARCHAR2
10563 --Payables Encumbrance Upgrade Credit Account
10564 , p_source_78 IN NUMBER
10565 --Payables Encumbrance Upgrade Credit Amount
10566 , p_source_79 IN NUMBER
10567 --Invoice Currency Code
10568 , p_source_80 IN VARCHAR2
10569 --Payables Encumbrance Upgrade Credit Base Amount
10570 , p_source_81 IN NUMBER
10571 --Upgrade Encumbrance Debit Account Class
10572 , p_source_82 IN VARCHAR2
10573 --Payables Encumbrance Upgrade Debit Account
10574 , p_source_83 IN NUMBER
10575 --Payables Encumbrance Upgrade Debit Amount
10576 , p_source_84 IN NUMBER
10577 --Payables Encumbrance Upgrade Debit Base Amount
10578 , p_source_85 IN NUMBER
10579 --Payables Encumbrance Upgrade Option
10580 , p_source_86 IN VARCHAR2
10581 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
10582 , p_source_89 IN NUMBER
10583 --Deferred Accounting End Date
10584 , p_source_90 IN DATE
10585 --Deferred Accounting Option
10586 , p_source_91 IN VARCHAR2
10587 --Deferred Accounting Start Date
10588 , p_source_92 IN DATE
10589 --Invoice Supplier Identifier
10590 , p_source_93 IN NUMBER
10591 --Invoice Supplier Site Identifier
10592 , p_source_94 IN NUMBER
10593 --Identifier of the Prepayment Application Reversed
10594 , p_source_95 IN NUMBER
10595 --Payables Upgrade Credit Encumbrance Type Identifier
10596 , p_source_96 IN NUMBER
10597 --Payables Upgrade Debit Encumbrance Type Identifier
10598 , p_source_97 IN NUMBER
10599 )
10600 IS
10601
10602 l_component_type VARCHAR2(80);
10603 l_component_code VARCHAR2(30);
10604 l_component_type_code VARCHAR2(1);
10605 l_component_appl_id INTEGER;
10606 l_amb_context_code VARCHAR2(30);
10607 l_entity_code VARCHAR2(30);
10608 l_event_class_code VARCHAR2(30);
10609 l_ae_header_id NUMBER;
10610 l_event_type_code VARCHAR2(30);
10611 l_line_definition_code VARCHAR2(30);
10612 l_line_definition_owner_code VARCHAR2(1);
10613 --
10614 -- adr variables
10615 l_segment VARCHAR2(30);
10616 l_ccid NUMBER;
10617 l_adr_transaction_coa_id NUMBER;
10618 l_adr_accounting_coa_id NUMBER;
10619 l_adr_flexfield_segment_code VARCHAR2(30);
10620 l_adr_flex_value_set_id NUMBER;
10621 l_adr_value_type_code VARCHAR2(30);
10622 l_adr_value_combination_id NUMBER;
10623 l_adr_value_segment_code VARCHAR2(30);
10624
10625 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10626 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10630 -- 4262811 Variables ------------------------------------------------------------------------------------------
10627 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10628 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10629
10631 l_entered_amt_idx NUMBER;
10632 l_accted_amt_idx NUMBER;
10633 l_acc_rev_flag VARCHAR2(1);
10634 l_accrual_line_num NUMBER;
10635 l_tmp_amt NUMBER;
10636 l_acc_rev_natural_side_code VARCHAR2(1);
10637
10638 l_num_entries NUMBER;
10639 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10640 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10641 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10642 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10643 l_recog_line_1 NUMBER;
10644 l_recog_line_2 NUMBER;
10645
10646 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10647 l_bflow_applied_to_amt NUMBER; -- 5132302
10648 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10649
10650 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10651
10652 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10653 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10654
10655 ---------------------------------------------------------------------------------------------------------------
10656
10657
10658 --
10659 -- bulk performance
10660 --
10661 l_balance_type_code VARCHAR2(1);
10662 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10663 l_log_module VARCHAR2(240);
10664
10665 --
10666 -- Upgrade strategy
10667 --
10668 l_actual_upg_option VARCHAR2(1);
10669 l_enc_upg_option VARCHAR2(1);
10670
10671 --
10672 BEGIN
10673 --
10674 IF g_log_enabled THEN
10675 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
10676 END IF;
10677 --
10678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10679
10680 trace
10681 (p_msg => 'BEGIN of AcctLineType_45'
10682 ,p_level => C_LEVEL_PROCEDURE
10683 ,p_module => l_log_module);
10684
10685 END IF;
10686 --
10687 l_component_type := 'AMB_JLT';
10688 l_component_code := 'AP_ALC_EX_RATE_VAR_PREPAY_APP';
10689 l_component_type_code := 'S';
10690 l_component_appl_id := 200;
10691 l_amb_context_code := 'DEFAULT';
10692 l_entity_code := 'AP_INVOICES';
10693 l_event_class_code := 'PREPAYMENT APPLICATIONS';
10694 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
10695 l_line_definition_owner_code := 'S';
10696 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
10697 --
10698 l_balance_type_code := 'A';
10699 l_segment := NULL;
10700 l_ccid := NULL;
10701 l_adr_transaction_coa_id := NULL;
10702 l_adr_accounting_coa_id := NULL;
10703 l_adr_flexfield_segment_code := NULL;
10704 l_adr_flex_value_set_id := NULL;
10705 l_adr_value_type_code := NULL;
10706 l_adr_value_combination_id := NULL;
10707 l_adr_value_segment_code := NULL;
10708
10709 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10710 l_bflow_class_code := ''; -- 4219869 Business Flow
10711 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10712 l_budgetary_control_flag := 'N';
10713
10714 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10715 l_bflow_applied_to_amt := NULL; -- 5132302
10716 l_entered_amt_idx := NULL; -- 4262811
10717 l_accted_amt_idx := NULL; -- 4262811
10718 l_acc_rev_flag := NULL; -- 4262811
10719 l_accrual_line_num := NULL; -- 4262811
10720 l_tmp_amt := NULL; -- 4262811
10721 --
10722 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10723 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
10724 return;
10725 END IF;
10726
10727 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10728 l_balance_type_code <> 'B' THEN
10729 IF (NVL(p_source_67,'
10730 ') = 'PREPAY APPL' OR
10731 NVL(p_source_67,'
10732 ') = 'PREPAY APPL NONREC TAX' OR
10733 NVL(p_source_67,'
10734 ') = 'PREPAY APPL REC TAX') AND
10735 NVL(p_source_68,'
10736 ') = 'ACCRUAL'
10737 THEN
10738
10739 --
10740 XLA_AE_LINES_PKG.SetNewLine;
10741
10742 p_balance_type_code := l_balance_type_code;
10743 -- set the flag so later we will know whether the gain loss line needs to be created
10744
10745 IF(l_balance_type_code = 'A' ) THEN
10746 p_actual_flag :='G';
10747 END IF;
10748
10749 --
10750 -- bulk performance
10751 --
10752 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10753 p_header_num => 0); -- 4262811
10754 --
10755 -- set accounting line options
10759 , p_gain_or_loss_flag => 'N'
10756 --
10757 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10758 p_natural_side_code => 'G'
10760 , p_gl_transfer_mode_code => 'S'
10761 , p_acct_entry_type_code => 'A'
10762 , p_switch_side_flag => ''
10763 , p_merge_duplicate_code => 'A'
10764 );
10765 --
10766 l_acc_rev_natural_side_code := 'C'; -- 4262811
10767 --
10768 --
10769 -- set accounting line type info
10770 --
10771 xla_ae_lines_pkg.SetAcctLineType
10772 (p_component_type => l_component_type
10773 ,p_event_type_code => l_event_type_code
10774 ,p_line_definition_owner_code => l_line_definition_owner_code
10775 ,p_line_definition_code => l_line_definition_code
10776 ,p_accounting_line_code => l_component_code
10777 ,p_accounting_line_type_code => l_component_type_code
10778 ,p_accounting_line_appl_id => l_component_appl_id
10779 ,p_amb_context_code => l_amb_context_code
10780 ,p_entity_code => l_entity_code
10781 ,p_event_class_code => l_event_class_code);
10782 --
10783 -- set accounting class
10784 --
10785 xla_ae_lines_pkg.SetAcctClass(
10786 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
10787 , p_ae_header_id => l_ae_header_id
10788 );
10789
10790 --
10791 -- set rounding class
10792 --
10793 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10794 'EXCHANGE_RATE_VARIANCE';
10795
10796 --
10797 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10798 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10799 --
10800 -- bulk performance
10801 --
10802 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10803
10804 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10805 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10806
10807 -- 4955764
10808 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10809 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10810
10811 -- 4458381 Public Sector Enh
10812
10813 --
10814 -- set accounting attributes for the line type
10815 --
10816 l_entered_amt_idx := NULL;
10817 l_accted_amt_idx := 25;
10818 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10819 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10820 l_rec_acct_attrs.array_char_value(1) := p_source_40;
10821 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10822 l_rec_acct_attrs.array_num_value(2) :=
10823 xla_ae_sources_pkg.GetSystemSourceNum(
10824 p_source_code => 'XLA_EVENT_APPL_ID'
10825 , p_source_type_code => 'Y'
10826 , p_source_application_id => 602
10827 );
10828 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10829 l_rec_acct_attrs.array_char_value(3) := p_source_48;
10830 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10831 l_rec_acct_attrs.array_char_value(4) :=
10832 xla_ae_sources_pkg.GetSystemSourceChar(
10833 p_source_code => 'XLA_ENTITY_CODE'
10834 , p_source_type_code => 'Y'
10835 , p_source_application_id => 602
10836 );
10837 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10838 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
10839 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10840 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
10841 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10842 l_rec_acct_attrs.array_num_value(7) := p_source_42;
10843 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10844 l_rec_acct_attrs.array_char_value(8) := p_source_73;
10845 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10846 l_rec_acct_attrs.array_char_value(9) := p_source_74;
10847 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10848 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
10849 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10850 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
10851 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10852 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
10853 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10854 l_rec_acct_attrs.array_char_value(13) := p_source_48;
10855 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
10856 l_rec_acct_attrs.array_char_value(14) := p_source_77;
10857 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
10858 l_rec_acct_attrs.array_num_value(15) := p_source_78;
10859 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
10860 l_rec_acct_attrs.array_num_value(16) := p_source_79;
10861 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
10862 l_rec_acct_attrs.array_char_value(17) := p_source_80;
10866 l_rec_acct_attrs.array_char_value(19) := p_source_82;
10863 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
10864 l_rec_acct_attrs.array_num_value(18) := p_source_81;
10865 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
10867 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
10868 l_rec_acct_attrs.array_num_value(20) := p_source_83;
10869 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
10870 l_rec_acct_attrs.array_num_value(21) := p_source_84;
10871 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
10872 l_rec_acct_attrs.array_char_value(22) := p_source_80;
10873 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
10874 l_rec_acct_attrs.array_num_value(23) := p_source_85;
10875 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
10876 l_rec_acct_attrs.array_char_value(24) := p_source_86;
10877 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
10878 l_rec_acct_attrs.array_num_value(25) := p_source_89;
10879 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
10880 l_rec_acct_attrs.array_date_value(26) := p_source_90;
10881 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
10882 l_rec_acct_attrs.array_char_value(27) := p_source_91;
10883 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
10884 l_rec_acct_attrs.array_date_value(28) := p_source_92;
10885 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
10886 l_rec_acct_attrs.array_char_value(29) := p_source_53;
10887 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
10888 l_rec_acct_attrs.array_num_value(30) := p_source_93;
10889 l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
10890 l_rec_acct_attrs.array_num_value(31) := p_source_94;
10891 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
10892 l_rec_acct_attrs.array_char_value(32) := p_source_56;
10893 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
10894 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_95);
10895 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
10896 l_rec_acct_attrs.array_char_value(34) := p_source_48;
10897 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
10898 l_rec_acct_attrs.array_num_value(35) := p_source_58;
10899 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
10900 l_rec_acct_attrs.array_num_value(36) := p_source_66;
10901 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
10902 l_rec_acct_attrs.array_num_value(37) := p_source_59;
10903 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
10904 l_rec_acct_attrs.array_num_value(38) := p_source_96;
10905 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
10906 l_rec_acct_attrs.array_num_value(39) := p_source_97;
10907
10908 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10909 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10910
10911 ---------------------------------------------------------------------------------------------------------------
10912 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10913 ---------------------------------------------------------------------------------------------------------------
10914 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10915
10916 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10917 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10918
10919 IF xla_accounting_cache_pkg.GetValueChar
10920 (p_source_code => 'LEDGER_CATEGORY_CODE'
10921 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10922 AND l_bflow_method_code = 'PRIOR_ENTRY'
10923 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10924 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10925 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10926 )
10927 THEN
10928 xla_ae_lines_pkg.BflowUpgEntry
10929 (p_business_method_code => l_bflow_method_code
10930 ,p_business_class_code => l_bflow_class_code
10931 ,p_balance_type => l_balance_type_code);
10932 ELSE
10933 NULL;
10934 -- No business flow processing for business flow method of NONE.
10935 END IF;
10936
10937 --
10938 -- call analytical criteria
10939 --
10940
10941 --
10942 -- call description
10943 --
10944 -- No description or it is inherited.
10945 --
10946 -- call ADRs
10947 -- Bug 4922099
10948 --
10949 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10950 (NVL(l_actual_upg_option, 'N') = 'O') OR
10951 (NVL(l_enc_upg_option, 'N') = 'O')
10952 )
10953 THEN
10954 NULL;
10955 --
10956 --
10957
10958 l_ccid := AcctDerRule_23(
10959 p_application_id => p_application_id
10960 , p_ae_header_id => l_ae_header_id
10961 , p_source_4 => p_source_4
10962 , p_source_4_meaning => p_source_4_meaning
10963 , p_source_5 => p_source_5
10964 , p_source_6 => p_source_6
10968 , p_source_17 => p_source_17
10965 , p_source_7 => p_source_7
10966 , p_source_7_meaning => p_source_7_meaning
10967 , p_source_8 => p_source_8
10969 , p_source_30 => p_source_30
10970 , p_source_30_meaning => p_source_30_meaning
10971 , x_transaction_coa_id => l_adr_transaction_coa_id
10972 , x_accounting_coa_id => l_adr_accounting_coa_id
10973 , x_value_type_code => l_adr_value_type_code
10974 , p_side => 'ALL'
10975 );
10976
10977 xla_ae_lines_pkg.set_ccid(
10978 p_code_combination_id => l_ccid
10979 , p_value_type_code => l_adr_value_type_code
10980 , p_transaction_coa_id => l_adr_transaction_coa_id
10981 , p_accounting_coa_id => l_adr_accounting_coa_id
10982 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10983 , p_adr_type_code => 'S'
10984 , p_component_type => l_component_type
10985 , p_component_code => l_component_code
10986 , p_component_type_code => l_component_type_code
10987 , p_component_appl_id => l_component_appl_id
10988 , p_amb_context_code => l_amb_context_code
10989 , p_side => 'ALL'
10990 );
10991
10992
10993 l_segment := AcctDerRule_5(
10994 p_application_id => p_application_id
10995 , p_ae_header_id => l_ae_header_id
10996 , p_source_4 => p_source_4
10997 , p_source_4_meaning => p_source_4_meaning
10998 , p_source_5 => p_source_5
10999 , p_source_7 => p_source_7
11000 , p_source_7_meaning => p_source_7_meaning
11001 , x_transaction_coa_id => l_adr_transaction_coa_id
11002 , x_accounting_coa_id => l_adr_accounting_coa_id
11003 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11004 , x_flex_value_set_id => l_adr_flex_value_set_id
11005 , x_value_type_code => l_adr_value_type_code
11006 , x_value_combination_id => l_adr_value_combination_id
11007 , x_value_segment_code => l_adr_value_segment_code
11008 , p_side => 'CREDIT'
11009 , p_override_seg_flag => 'Y'
11010 );
11011
11012 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11013
11014 xla_ae_lines_pkg.set_segment(
11015 p_to_segment_code => 'GL_ACCOUNT'
11016 , p_segment_value => l_segment
11017 , p_from_segment_code => l_adr_value_segment_code
11018 , p_from_combination_id => l_adr_value_combination_id
11019 , p_value_type_code => l_adr_value_type_code
11020 , p_transaction_coa_id => l_adr_transaction_coa_id
11021 , p_accounting_coa_id => l_adr_accounting_coa_id
11022 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11023 , p_flex_value_set_id => l_adr_flex_value_set_id
11024 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11025 , p_adr_type_code => 'S'
11026 , p_component_type => l_component_type
11027 , p_component_code => l_component_code
11028 , p_component_type_code => l_component_type_code
11029 , p_component_appl_id => l_component_appl_id
11030 , p_amb_context_code => l_amb_context_code
11031 , p_entity_code => 'AP_INVOICES'
11032 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11033 , p_side => 'CREDIT'
11034 );
11035
11036 END IF;
11037
11038 l_segment := AcctDerRule_6(
11039 p_application_id => p_application_id
11040 , p_ae_header_id => l_ae_header_id
11041 , p_source_4 => p_source_4
11042 , p_source_4_meaning => p_source_4_meaning
11043 , p_source_7 => p_source_7
11044 , p_source_7_meaning => p_source_7_meaning
11045 , p_source_8 => p_source_8
11046 , x_transaction_coa_id => l_adr_transaction_coa_id
11047 , x_accounting_coa_id => l_adr_accounting_coa_id
11048 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11049 , x_flex_value_set_id => l_adr_flex_value_set_id
11050 , x_value_type_code => l_adr_value_type_code
11051 , x_value_combination_id => l_adr_value_combination_id
11052 , x_value_segment_code => l_adr_value_segment_code
11053 , p_side => 'DEBIT'
11054 , p_override_seg_flag => 'Y'
11055 );
11056
11057 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11058
11059 xla_ae_lines_pkg.set_segment(
11060 p_to_segment_code => 'GL_ACCOUNT'
11061 , p_segment_value => l_segment
11062 , p_from_segment_code => l_adr_value_segment_code
11063 , p_from_combination_id => l_adr_value_combination_id
11064 , p_value_type_code => l_adr_value_type_code
11065 , p_transaction_coa_id => l_adr_transaction_coa_id
11066 , p_accounting_coa_id => l_adr_accounting_coa_id
11067 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11068 , p_flex_value_set_id => l_adr_flex_value_set_id
11069 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11073 , p_component_type_code => l_component_type_code
11070 , p_adr_type_code => 'S'
11071 , p_component_type => l_component_type
11072 , p_component_code => l_component_code
11074 , p_component_appl_id => l_component_appl_id
11075 , p_amb_context_code => l_amb_context_code
11076 , p_entity_code => 'AP_INVOICES'
11077 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11078 , p_side => 'DEBIT'
11079 );
11080
11081 END IF;
11082
11083 l_segment := AcctDerRule_15(
11084 p_application_id => p_application_id
11085 , p_ae_header_id => l_ae_header_id
11086 , p_source_4 => p_source_4
11087 , p_source_4_meaning => p_source_4_meaning
11088 , p_source_7 => p_source_7
11089 , p_source_7_meaning => p_source_7_meaning
11090 , p_source_17 => p_source_17
11091 , x_transaction_coa_id => l_adr_transaction_coa_id
11092 , x_accounting_coa_id => l_adr_accounting_coa_id
11093 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11094 , x_flex_value_set_id => l_adr_flex_value_set_id
11095 , x_value_type_code => l_adr_value_type_code
11096 , x_value_combination_id => l_adr_value_combination_id
11097 , x_value_segment_code => l_adr_value_segment_code
11098 , p_side => 'ALL'
11099 , p_override_seg_flag => 'Y'
11100 );
11101
11102 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11103
11104 xla_ae_lines_pkg.set_segment(
11105 p_to_segment_code => 'GL_BALANCING'
11106 , p_segment_value => l_segment
11107 , p_from_segment_code => l_adr_value_segment_code
11108 , p_from_combination_id => l_adr_value_combination_id
11109 , p_value_type_code => l_adr_value_type_code
11110 , p_transaction_coa_id => l_adr_transaction_coa_id
11111 , p_accounting_coa_id => l_adr_accounting_coa_id
11112 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11113 , p_flex_value_set_id => l_adr_flex_value_set_id
11114 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
11115 , p_adr_type_code => 'S'
11116 , p_component_type => l_component_type
11117 , p_component_code => l_component_code
11118 , p_component_type_code => l_component_type_code
11119 , p_component_appl_id => l_component_appl_id
11120 , p_amb_context_code => l_amb_context_code
11121 , p_entity_code => 'AP_INVOICES'
11122 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11123 , p_side => 'ALL'
11124 );
11125
11126 END IF;
11127
11128 --
11129 --
11130 END IF;
11131 --
11132 -- Bug 4922099
11133 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11134 (NVL(l_enc_upg_option, 'N') = 'O')
11135 ) AND
11136 (l_bflow_method_code = 'PRIOR_ENTRY')
11137 )
11138 THEN
11139 IF
11140 --
11141 1 = 2
11142 --
11143 THEN
11144 xla_accounting_err_pkg.build_message
11145 (p_appli_s_name => 'XLA'
11146 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11147 ,p_token_1 => 'LINE_NUMBER'
11148 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11149 ,p_token_2 => 'LINE_TYPE_NAME'
11150 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11151 l_component_type
11152 ,l_component_code
11153 ,l_component_type_code
11154 ,l_component_appl_id
11155 ,l_amb_context_code
11156 ,l_entity_code
11157 ,l_event_class_code
11158 )
11159 ,p_token_3 => 'OWNER'
11160 ,p_value_3 => xla_lookups_pkg.get_meaning(
11161 p_lookup_type => 'XLA_OWNER_TYPE'
11162 ,p_lookup_code => l_component_type_code
11163 )
11164 ,p_token_4 => 'PRODUCT_NAME'
11165 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11166 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11167 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11171
11168 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11169 ,p_ae_header_id => NULL
11170 );
11172 IF (C_LEVEL_ERROR>= g_log_level) THEN
11173 trace
11174 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11175 ,p_level => C_LEVEL_ERROR
11176 ,p_module => l_log_module);
11177 END IF;
11178 END IF;
11179 END IF;
11180 --
11181 --
11182 ------------------------------------------------------------------------------------------------
11183 -- 4219869 Business Flow
11184 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11185 -- Prior Entry. Currently, the following code is always generated.
11186 ------------------------------------------------------------------------------------------------
11187 XLA_AE_LINES_PKG.ValidateCurrentLine;
11188
11189 ------------------------------------------------------------------------------------
11190 -- 4219869 Business Flow
11191 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11192 ------------------------------------------------------------------------------------
11193 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11194
11195 ----------------------------------------------------------------------------------
11196 -- 4219869 Business Flow
11197 -- Update journal entry status -- Need to generate this within IF <condition>
11198 ----------------------------------------------------------------------------------
11199 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11200 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11201 ,p_balance_type_code => l_balance_type_code
11202 );
11203
11204 -------------------------------------------------------------------------------------------
11205 -- 4262811 - Generate the Accrual Reversal lines
11206 -------------------------------------------------------------------------------------------
11207 BEGIN
11208 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11209 (g_array_event(p_event_id).array_value_num('header_index'));
11210 IF l_acc_rev_flag IS NULL THEN
11211 l_acc_rev_flag := 'N';
11212 END IF;
11213 EXCEPTION
11214 WHEN OTHERS THEN
11215 l_acc_rev_flag := 'N';
11216 END;
11217 --
11218 IF (l_acc_rev_flag = 'Y') THEN
11219
11220 -- 4645092 ------------------------------------------------------------------------------
11221 -- To allow MPA report to determine if it should generate report process
11222 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11223 ------------------------------------------------------------------------------------------
11224
11225 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11226 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11227 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11228 -- call ADRs
11229 -- Bug 4922099
11230 --
11231 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11232 (NVL(l_actual_upg_option, 'N') = 'O') OR
11233 (NVL(l_enc_upg_option, 'N') = 'O')
11234 )
11235 THEN
11236 NULL;
11237 --
11238 --
11239
11240 l_ccid := AcctDerRule_23(
11241 p_application_id => p_application_id
11242 , p_ae_header_id => l_ae_header_id
11243 , p_source_4 => p_source_4
11244 , p_source_4_meaning => p_source_4_meaning
11245 , p_source_5 => p_source_5
11246 , p_source_6 => p_source_6
11247 , p_source_7 => p_source_7
11248 , p_source_7_meaning => p_source_7_meaning
11249 , p_source_8 => p_source_8
11250 , p_source_17 => p_source_17
11251 , p_source_30 => p_source_30
11252 , p_source_30_meaning => p_source_30_meaning
11253 , x_transaction_coa_id => l_adr_transaction_coa_id
11254 , x_accounting_coa_id => l_adr_accounting_coa_id
11255 , x_value_type_code => l_adr_value_type_code
11256 , p_side => 'ALL'
11257 );
11258
11259 xla_ae_lines_pkg.set_ccid(
11260 p_code_combination_id => l_ccid
11261 , p_value_type_code => l_adr_value_type_code
11262 , p_transaction_coa_id => l_adr_transaction_coa_id
11263 , p_accounting_coa_id => l_adr_accounting_coa_id
11264 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11265 , p_adr_type_code => 'S'
11266 , p_component_type => l_component_type
11267 , p_component_code => l_component_code
11268 , p_component_type_code => l_component_type_code
11269 , p_component_appl_id => l_component_appl_id
11270 , p_amb_context_code => l_amb_context_code
11271 , p_side => 'ALL'
11272 );
11273
11274
11275 l_segment := AcctDerRule_5(
11276 p_application_id => p_application_id
11277 , p_ae_header_id => l_ae_header_id
11278 , p_source_4 => p_source_4
11279 , p_source_4_meaning => p_source_4_meaning
11280 , p_source_5 => p_source_5
11281 , p_source_7 => p_source_7
11282 , p_source_7_meaning => p_source_7_meaning
11286 , x_flex_value_set_id => l_adr_flex_value_set_id
11283 , x_transaction_coa_id => l_adr_transaction_coa_id
11284 , x_accounting_coa_id => l_adr_accounting_coa_id
11285 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11287 , x_value_type_code => l_adr_value_type_code
11288 , x_value_combination_id => l_adr_value_combination_id
11289 , x_value_segment_code => l_adr_value_segment_code
11290 , p_side => 'CREDIT'
11291 , p_override_seg_flag => 'Y'
11292 );
11293
11294 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11295
11296 xla_ae_lines_pkg.set_segment(
11297 p_to_segment_code => 'GL_ACCOUNT'
11298 , p_segment_value => l_segment
11299 , p_from_segment_code => l_adr_value_segment_code
11300 , p_from_combination_id => l_adr_value_combination_id
11301 , p_value_type_code => l_adr_value_type_code
11302 , p_transaction_coa_id => l_adr_transaction_coa_id
11303 , p_accounting_coa_id => l_adr_accounting_coa_id
11304 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11305 , p_flex_value_set_id => l_adr_flex_value_set_id
11306 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11307 , p_adr_type_code => 'S'
11308 , p_component_type => l_component_type
11309 , p_component_code => l_component_code
11310 , p_component_type_code => l_component_type_code
11311 , p_component_appl_id => l_component_appl_id
11312 , p_amb_context_code => l_amb_context_code
11313 , p_entity_code => 'AP_INVOICES'
11314 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11315 , p_side => 'CREDIT'
11316 );
11317
11318 END IF;
11319
11320 l_segment := AcctDerRule_6(
11321 p_application_id => p_application_id
11322 , p_ae_header_id => l_ae_header_id
11323 , p_source_4 => p_source_4
11324 , p_source_4_meaning => p_source_4_meaning
11325 , p_source_7 => p_source_7
11326 , p_source_7_meaning => p_source_7_meaning
11327 , p_source_8 => p_source_8
11328 , x_transaction_coa_id => l_adr_transaction_coa_id
11329 , x_accounting_coa_id => l_adr_accounting_coa_id
11330 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11331 , x_flex_value_set_id => l_adr_flex_value_set_id
11332 , x_value_type_code => l_adr_value_type_code
11333 , x_value_combination_id => l_adr_value_combination_id
11334 , x_value_segment_code => l_adr_value_segment_code
11335 , p_side => 'DEBIT'
11336 , p_override_seg_flag => 'Y'
11337 );
11338
11339 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11340
11341 xla_ae_lines_pkg.set_segment(
11342 p_to_segment_code => 'GL_ACCOUNT'
11343 , p_segment_value => l_segment
11344 , p_from_segment_code => l_adr_value_segment_code
11345 , p_from_combination_id => l_adr_value_combination_id
11346 , p_value_type_code => l_adr_value_type_code
11347 , p_transaction_coa_id => l_adr_transaction_coa_id
11348 , p_accounting_coa_id => l_adr_accounting_coa_id
11349 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11350 , p_flex_value_set_id => l_adr_flex_value_set_id
11351 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11352 , p_adr_type_code => 'S'
11353 , p_component_type => l_component_type
11354 , p_component_code => l_component_code
11355 , p_component_type_code => l_component_type_code
11356 , p_component_appl_id => l_component_appl_id
11357 , p_amb_context_code => l_amb_context_code
11358 , p_entity_code => 'AP_INVOICES'
11359 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11360 , p_side => 'DEBIT'
11361 );
11362
11363 END IF;
11364
11365 l_segment := AcctDerRule_15(
11366 p_application_id => p_application_id
11367 , p_ae_header_id => l_ae_header_id
11368 , p_source_4 => p_source_4
11369 , p_source_4_meaning => p_source_4_meaning
11370 , p_source_7 => p_source_7
11371 , p_source_7_meaning => p_source_7_meaning
11372 , p_source_17 => p_source_17
11373 , x_transaction_coa_id => l_adr_transaction_coa_id
11374 , x_accounting_coa_id => l_adr_accounting_coa_id
11375 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11376 , x_flex_value_set_id => l_adr_flex_value_set_id
11377 , x_value_type_code => l_adr_value_type_code
11378 , x_value_combination_id => l_adr_value_combination_id
11379 , x_value_segment_code => l_adr_value_segment_code
11380 , p_side => 'ALL'
11381 , p_override_seg_flag => 'Y'
11382 );
11383
11384 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11385
11386 xla_ae_lines_pkg.set_segment(
11387 p_to_segment_code => 'GL_BALANCING'
11388 , p_segment_value => l_segment
11389 , p_from_segment_code => l_adr_value_segment_code
11393 , p_accounting_coa_id => l_adr_accounting_coa_id
11390 , p_from_combination_id => l_adr_value_combination_id
11391 , p_value_type_code => l_adr_value_type_code
11392 , p_transaction_coa_id => l_adr_transaction_coa_id
11394 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11395 , p_flex_value_set_id => l_adr_flex_value_set_id
11396 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
11397 , p_adr_type_code => 'S'
11398 , p_component_type => l_component_type
11399 , p_component_code => l_component_code
11400 , p_component_type_code => l_component_type_code
11401 , p_component_appl_id => l_component_appl_id
11402 , p_amb_context_code => l_amb_context_code
11403 , p_entity_code => 'AP_INVOICES'
11404 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11405 , p_side => 'ALL'
11406 );
11407
11408 END IF;
11409
11410 --
11411 --
11412 END IF;
11413
11414 --
11415 -- Update the line information that should be overwritten
11416 --
11417 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11418 p_header_num => 1);
11419 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11420
11421 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11422
11423 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11424 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11425 END IF;
11426
11427 --
11428 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11429 --
11430 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11431 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11432 ELSE
11433 ---------------------------------------------------------------------------------------------------
11434 -- 4262811a Switch Sign
11435 ---------------------------------------------------------------------------------------------------
11436 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11437 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11438 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11439 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11440 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11441 -- 5132302
11442 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11443 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11444
11445 END IF;
11446
11447 -- 4955764
11448 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11449 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11450
11451
11452 XLA_AE_LINES_PKG.ValidateCurrentLine;
11453 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11454
11455 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11456 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11457 ,p_balance_type_code => l_balance_type_code);
11458
11459 END IF;
11460
11461 -----------------------------------------------------------------------------------------
11462 -- 4262811 Multiperiod Accounting
11463 -----------------------------------------------------------------------------------------
11464 -- No MPA option is assigned.
11465
11466
11467 END IF;
11468 END IF;
11469 --
11470
11471 --
11472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11473 trace
11474 (p_msg => 'END of AcctLineType_45'
11475 ,p_level => C_LEVEL_PROCEDURE
11476 ,p_module => l_log_module);
11477 END IF;
11478 --
11479 EXCEPTION
11480 WHEN xla_exceptions_pkg.application_exception THEN
11481 RAISE;
11482 WHEN OTHERS THEN
11483 xla_exceptions_pkg.raise_message
11484 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_45');
11485 END AcctLineType_45;
11486 --
11487
11488 ---------------------------------------
11489 --
11490 -- PRIVATE FUNCTION
11491 -- AcctLineType_46
11492 --
11493 ---------------------------------------
11494 PROCEDURE AcctLineType_46 (
11495 p_application_id IN NUMBER
11496 ,p_event_id IN NUMBER
11497 ,p_calculate_acctd_flag IN VARCHAR2
11498 ,p_calculate_g_l_flag IN VARCHAR2
11499 ,p_actual_flag IN OUT VARCHAR2
11500 ,p_balance_type_code OUT VARCHAR2
11501 ,p_gain_or_loss_ref OUT VARCHAR2
11502
11503 --Automatic Offsets Value
11504 , p_source_4 IN VARCHAR2
11505 , p_source_4_meaning IN VARCHAR2
11506 --Purchase Order Rate Variance Gain Account
11507 , p_source_5 IN NUMBER
11511 --Purchase Order Rate Variance Loss Account
11508 --Destination Type of the PO Distribution
11509 , p_source_7 IN VARCHAR2
11510 , p_source_7_meaning IN VARCHAR2
11512 , p_source_8 IN NUMBER
11513 --Payment Distribution (Payment Rate) Ledger Amount
11514 , p_source_9 IN NUMBER
11515 --Payment Distribution (Cleared Rate) Ledger Amount
11516 , p_source_10 IN NUMBER
11517 --Invoice Distribution Account
11518 , p_source_17 IN NUMBER
11519 --Invoice Distribution Type
11520 , p_source_20 IN VARCHAR2
11521 , p_source_20_meaning IN VARCHAR2
11522 --Automatic Offsets Flag
11523 , p_source_30 IN VARCHAR2
11524 , p_source_30_meaning IN VARCHAR2
11525 --When to Account for Payment Option
11526 , p_source_38 IN VARCHAR2
11527 --Accounting Reversal Indicator
11528 , p_source_40 IN VARCHAR2
11529 --Business Flow Accounts Payable Application Identifier
11530 , p_source_42 IN NUMBER
11531 --Payment Distribution Identifier
11532 , p_source_47 IN NUMBER
11533 --Distribution Link Type
11534 , p_source_48 IN VARCHAR2
11535 --Override Accounted Amount Indicator
11536 , p_source_53 IN VARCHAR2
11537 , p_source_53_meaning IN VARCHAR2
11538 --Payment Supplier Identifier
11539 , p_source_54 IN NUMBER
11540 --Payment Supplier Site Identifier
11541 , p_source_55 IN NUMBER
11542 --Third Party Type
11543 , p_source_56 IN VARCHAR2
11544 --Payment Distribution Reversed Identifier
11545 , p_source_57 IN NUMBER
11546 --Invoice Distribution Tax Line Identifier
11547 , p_source_58 IN NUMBER
11548 --Invoice Distribution Summary Tax Line Identifier
11549 , p_source_59 IN NUMBER
11550 --Payment Type
11551 , p_source_60 IN VARCHAR2
11552 , p_source_60_meaning IN VARCHAR2
11553 --Business Flow Invoice Distribution Type
11554 , p_source_62 IN VARCHAR2
11555 --Business Flow Invoice Entity Code
11556 , p_source_63 IN VARCHAR2
11557 --Business Flow Invoice Distribution Identifier
11558 , p_source_64 IN NUMBER
11559 --Business Flow Invoice Identifier
11560 , p_source_65 IN NUMBER
11561 --Invoice Distribution Tax Distribution Identifier from Tax
11562 , p_source_66 IN NUMBER
11563 )
11564 IS
11565
11566 l_component_type VARCHAR2(80);
11567 l_component_code VARCHAR2(30);
11568 l_component_type_code VARCHAR2(1);
11569 l_component_appl_id INTEGER;
11570 l_amb_context_code VARCHAR2(30);
11571 l_entity_code VARCHAR2(30);
11572 l_event_class_code VARCHAR2(30);
11573 l_ae_header_id NUMBER;
11574 l_event_type_code VARCHAR2(30);
11575 l_line_definition_code VARCHAR2(30);
11576 l_line_definition_owner_code VARCHAR2(1);
11577 --
11578 -- adr variables
11579 l_segment VARCHAR2(30);
11580 l_ccid NUMBER;
11581 l_adr_transaction_coa_id NUMBER;
11582 l_adr_accounting_coa_id NUMBER;
11583 l_adr_flexfield_segment_code VARCHAR2(30);
11584 l_adr_flex_value_set_id NUMBER;
11585 l_adr_value_type_code VARCHAR2(30);
11586 l_adr_value_combination_id NUMBER;
11587 l_adr_value_segment_code VARCHAR2(30);
11588
11589 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11590 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11591 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11592 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11593
11594 -- 4262811 Variables ------------------------------------------------------------------------------------------
11595 l_entered_amt_idx NUMBER;
11596 l_accted_amt_idx NUMBER;
11597 l_acc_rev_flag VARCHAR2(1);
11598 l_accrual_line_num NUMBER;
11599 l_tmp_amt NUMBER;
11600 l_acc_rev_natural_side_code VARCHAR2(1);
11601
11602 l_num_entries NUMBER;
11603 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11604 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11605 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11606 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11607 l_recog_line_1 NUMBER;
11608 l_recog_line_2 NUMBER;
11609
11610 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11611 l_bflow_applied_to_amt NUMBER; -- 5132302
11612 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11613
11614 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11615
11616 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11617 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11618
11619 ---------------------------------------------------------------------------------------------------------------
11620
11621
11622 --
11623 -- bulk performance
11624 --
11625 l_balance_type_code VARCHAR2(1);
11626 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11627 l_log_module VARCHAR2(240);
11628
11629 --
11630 -- Upgrade strategy
11631 --
11635 --
11632 l_actual_upg_option VARCHAR2(1);
11633 l_enc_upg_option VARCHAR2(1);
11634
11636 BEGIN
11637 --
11638 IF g_log_enabled THEN
11639 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
11640 END IF;
11641 --
11642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11643
11644 trace
11645 (p_msg => 'BEGIN of AcctLineType_46'
11646 ,p_level => C_LEVEL_PROCEDURE
11647 ,p_module => l_log_module);
11648
11649 END IF;
11650 --
11651 l_component_type := 'AMB_JLT';
11652 l_component_code := 'AP_ALC_EX_RATE_VAR_REF';
11653 l_component_type_code := 'S';
11654 l_component_appl_id := 200;
11655 l_amb_context_code := 'DEFAULT';
11656 l_entity_code := 'AP_PAYMENTS';
11657 l_event_class_code := 'REFUNDS';
11658 l_event_type_code := 'REFUNDS_ALL';
11659 l_line_definition_owner_code := 'S';
11660 l_line_definition_code := 'CASH_REFUNDS_ALL';
11661 --
11662 l_balance_type_code := 'A';
11663 l_segment := NULL;
11664 l_ccid := NULL;
11665 l_adr_transaction_coa_id := NULL;
11666 l_adr_accounting_coa_id := NULL;
11667 l_adr_flexfield_segment_code := NULL;
11668 l_adr_flex_value_set_id := NULL;
11669 l_adr_value_type_code := NULL;
11670 l_adr_value_combination_id := NULL;
11671 l_adr_value_segment_code := NULL;
11672
11673 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11674 l_bflow_class_code := ''; -- 4219869 Business Flow
11675 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11676 l_budgetary_control_flag := 'N';
11677
11678 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11679 l_bflow_applied_to_amt := NULL; -- 5132302
11680 l_entered_amt_idx := NULL; -- 4262811
11681 l_accted_amt_idx := NULL; -- 4262811
11682 l_acc_rev_flag := NULL; -- 4262811
11683 l_accrual_line_num := NULL; -- 4262811
11684 l_tmp_amt := NULL; -- 4262811
11685 --
11686 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11687 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
11688 return;
11689 END IF;
11690
11691 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11692 l_balance_type_code <> 'B' THEN
11693 IF NVL(p_source_38,'
11694 ') <> 'CLEAR_CLEAR' AND
11695 NVL(p_source_20,'
11696 ') = 'ACCRUAL' AND
11697 NVL(p_source_60,'
11698 ') = 'R'
11699 THEN
11700
11701 --
11702 XLA_AE_LINES_PKG.SetNewLine;
11703
11704 p_balance_type_code := l_balance_type_code;
11705 -- set the flag so later we will know whether the gain loss line needs to be created
11706
11707 IF(l_balance_type_code = 'A' ) THEN
11708 p_actual_flag :='G';
11709 END IF;
11710
11711 --
11712 -- bulk performance
11713 --
11714 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11715 p_header_num => 0); -- 4262811
11716 --
11717 -- set accounting line options
11718 --
11719 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11720 p_natural_side_code => 'G'
11721 , p_gain_or_loss_flag => 'N'
11722 , p_gl_transfer_mode_code => 'S'
11723 , p_acct_entry_type_code => 'A'
11724 , p_switch_side_flag => ''
11725 , p_merge_duplicate_code => 'A'
11726 );
11727 --
11728 l_acc_rev_natural_side_code := 'C'; -- 4262811
11729 --
11730 --
11731 -- set accounting line type info
11732 --
11733 xla_ae_lines_pkg.SetAcctLineType
11734 (p_component_type => l_component_type
11735 ,p_event_type_code => l_event_type_code
11736 ,p_line_definition_owner_code => l_line_definition_owner_code
11737 ,p_line_definition_code => l_line_definition_code
11738 ,p_accounting_line_code => l_component_code
11739 ,p_accounting_line_type_code => l_component_type_code
11740 ,p_accounting_line_appl_id => l_component_appl_id
11741 ,p_amb_context_code => l_amb_context_code
11742 ,p_entity_code => l_entity_code
11743 ,p_event_class_code => l_event_class_code);
11744 --
11745 -- set accounting class
11746 --
11747 xla_ae_lines_pkg.SetAcctClass(
11748 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
11749 , p_ae_header_id => l_ae_header_id
11750 );
11751
11752 --
11753 -- set rounding class
11754 --
11755 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11756 'EXCHANGE_RATE_VARIANCE';
11757
11758 --
11759 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11760 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11761 --
11762 -- bulk performance
11766 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11763 --
11764 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11765
11767 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11768
11769 -- 4955764
11770 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11771 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11772
11773 -- 4458381 Public Sector Enh
11774
11775 --
11776 -- set accounting attributes for the line type
11777 --
11778 l_entered_amt_idx := NULL;
11779 l_accted_amt_idx := 9;
11780 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11781 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11782 l_rec_acct_attrs.array_char_value(1) := p_source_40;
11783 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
11784 l_rec_acct_attrs.array_num_value(2) := p_source_42;
11785 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11786 l_rec_acct_attrs.array_char_value(3) := p_source_62;
11787 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
11788 l_rec_acct_attrs.array_char_value(4) := p_source_63;
11789 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
11790 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
11791 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11792 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
11793 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
11794 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
11795 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
11796 l_rec_acct_attrs.array_char_value(8) := p_source_48;
11797 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
11798 l_rec_acct_attrs.array_num_value(9) := p_source_9;
11799 l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
11800 l_rec_acct_attrs.array_char_value(10) := p_source_53;
11801 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
11802 l_rec_acct_attrs.array_num_value(11) := p_source_54;
11803 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
11804 l_rec_acct_attrs.array_num_value(12) := p_source_55;
11805 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
11806 l_rec_acct_attrs.array_char_value(13) := p_source_56;
11807 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
11808 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
11809 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
11810 l_rec_acct_attrs.array_char_value(15) := p_source_48;
11811 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
11812 l_rec_acct_attrs.array_num_value(16) := p_source_58;
11813 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
11814 l_rec_acct_attrs.array_num_value(17) := p_source_66;
11815 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
11816 l_rec_acct_attrs.array_num_value(18) := p_source_59;
11817
11818 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11819 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11820
11821 ---------------------------------------------------------------------------------------------------------------
11822 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11823 ---------------------------------------------------------------------------------------------------------------
11824 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11825
11826 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11827 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11828
11829 IF xla_accounting_cache_pkg.GetValueChar
11830 (p_source_code => 'LEDGER_CATEGORY_CODE'
11831 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11832 AND l_bflow_method_code = 'PRIOR_ENTRY'
11833 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11834 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11835 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11836 )
11837 THEN
11838 xla_ae_lines_pkg.BflowUpgEntry
11839 (p_business_method_code => l_bflow_method_code
11840 ,p_business_class_code => l_bflow_class_code
11841 ,p_balance_type => l_balance_type_code);
11842 ELSE
11843 NULL;
11844 -- No business flow processing for business flow method of NONE.
11845 END IF;
11846
11847 --
11848 -- call analytical criteria
11849 --
11850
11851 --
11852 -- call description
11853 --
11854 -- No description or it is inherited.
11855 --
11856 -- call ADRs
11857 -- Bug 4922099
11858 --
11859 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11860 (NVL(l_actual_upg_option, 'N') = 'O') OR
11861 (NVL(l_enc_upg_option, 'N') = 'O')
11862 )
11863 THEN
11864 NULL;
11865 --
11866 --
11867
11868 l_ccid := AcctDerRule_22(
11872 , p_source_4_meaning => p_source_4_meaning
11869 p_application_id => p_application_id
11870 , p_ae_header_id => l_ae_header_id
11871 , p_source_4 => p_source_4
11873 , p_source_5 => p_source_5
11874 , p_source_7 => p_source_7
11875 , p_source_7_meaning => p_source_7_meaning
11876 , p_source_8 => p_source_8
11877 , p_source_9 => p_source_9
11878 , p_source_10 => p_source_10
11879 , p_source_17 => p_source_17
11880 , p_source_30 => p_source_30
11881 , p_source_30_meaning => p_source_30_meaning
11882 , x_transaction_coa_id => l_adr_transaction_coa_id
11883 , x_accounting_coa_id => l_adr_accounting_coa_id
11884 , x_value_type_code => l_adr_value_type_code
11885 , p_side => 'ALL'
11886 );
11887
11888 xla_ae_lines_pkg.set_ccid(
11889 p_code_combination_id => l_ccid
11890 , p_value_type_code => l_adr_value_type_code
11891 , p_transaction_coa_id => l_adr_transaction_coa_id
11892 , p_accounting_coa_id => l_adr_accounting_coa_id
11893 , p_adr_code => 'AP_ERV_TAXERV_CASH'
11894 , p_adr_type_code => 'S'
11895 , p_component_type => l_component_type
11896 , p_component_code => l_component_code
11897 , p_component_type_code => l_component_type_code
11898 , p_component_appl_id => l_component_appl_id
11899 , p_amb_context_code => l_amb_context_code
11900 , p_side => 'ALL'
11901 );
11902
11903
11904 l_segment := AcctDerRule_5(
11905 p_application_id => p_application_id
11906 , p_ae_header_id => l_ae_header_id
11907 , p_source_4 => p_source_4
11908 , p_source_4_meaning => p_source_4_meaning
11909 , p_source_5 => p_source_5
11910 , p_source_7 => p_source_7
11911 , p_source_7_meaning => p_source_7_meaning
11912 , x_transaction_coa_id => l_adr_transaction_coa_id
11913 , x_accounting_coa_id => l_adr_accounting_coa_id
11914 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11915 , x_flex_value_set_id => l_adr_flex_value_set_id
11916 , x_value_type_code => l_adr_value_type_code
11917 , x_value_combination_id => l_adr_value_combination_id
11918 , x_value_segment_code => l_adr_value_segment_code
11919 , p_side => 'CREDIT'
11920 , p_override_seg_flag => 'Y'
11921 );
11922
11923 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11924
11925 xla_ae_lines_pkg.set_segment(
11926 p_to_segment_code => 'GL_ACCOUNT'
11927 , p_segment_value => l_segment
11928 , p_from_segment_code => l_adr_value_segment_code
11929 , p_from_combination_id => l_adr_value_combination_id
11930 , p_value_type_code => l_adr_value_type_code
11931 , p_transaction_coa_id => l_adr_transaction_coa_id
11932 , p_accounting_coa_id => l_adr_accounting_coa_id
11933 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11934 , p_flex_value_set_id => l_adr_flex_value_set_id
11935 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11936 , p_adr_type_code => 'S'
11937 , p_component_type => l_component_type
11938 , p_component_code => l_component_code
11939 , p_component_type_code => l_component_type_code
11940 , p_component_appl_id => l_component_appl_id
11941 , p_amb_context_code => l_amb_context_code
11942 , p_entity_code => 'AP_PAYMENTS'
11943 , p_event_class_code => 'REFUNDS'
11944 , p_side => 'CREDIT'
11945 );
11946
11947 END IF;
11948
11949 l_segment := AcctDerRule_6(
11950 p_application_id => p_application_id
11951 , p_ae_header_id => l_ae_header_id
11952 , p_source_4 => p_source_4
11953 , p_source_4_meaning => p_source_4_meaning
11954 , p_source_7 => p_source_7
11955 , p_source_7_meaning => p_source_7_meaning
11956 , p_source_8 => p_source_8
11957 , x_transaction_coa_id => l_adr_transaction_coa_id
11958 , x_accounting_coa_id => l_adr_accounting_coa_id
11959 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11960 , x_flex_value_set_id => l_adr_flex_value_set_id
11961 , x_value_type_code => l_adr_value_type_code
11962 , x_value_combination_id => l_adr_value_combination_id
11963 , x_value_segment_code => l_adr_value_segment_code
11964 , p_side => 'DEBIT'
11965 , p_override_seg_flag => 'Y'
11966 );
11967
11968 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11969
11970 xla_ae_lines_pkg.set_segment(
11971 p_to_segment_code => 'GL_ACCOUNT'
11972 , p_segment_value => l_segment
11973 , p_from_segment_code => l_adr_value_segment_code
11974 , p_from_combination_id => l_adr_value_combination_id
11975 , p_value_type_code => l_adr_value_type_code
11976 , p_transaction_coa_id => l_adr_transaction_coa_id
11977 , p_accounting_coa_id => l_adr_accounting_coa_id
11978 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11982 , p_component_type => l_component_type
11979 , p_flex_value_set_id => l_adr_flex_value_set_id
11980 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11981 , p_adr_type_code => 'S'
11983 , p_component_code => l_component_code
11984 , p_component_type_code => l_component_type_code
11985 , p_component_appl_id => l_component_appl_id
11986 , p_amb_context_code => l_amb_context_code
11987 , p_entity_code => 'AP_PAYMENTS'
11988 , p_event_class_code => 'REFUNDS'
11989 , p_side => 'DEBIT'
11990 );
11991
11992 END IF;
11993
11994 l_segment := AcctDerRule_15(
11995 p_application_id => p_application_id
11996 , p_ae_header_id => l_ae_header_id
11997 , p_source_4 => p_source_4
11998 , p_source_4_meaning => p_source_4_meaning
11999 , p_source_7 => p_source_7
12000 , p_source_7_meaning => p_source_7_meaning
12001 , p_source_17 => p_source_17
12002 , x_transaction_coa_id => l_adr_transaction_coa_id
12003 , x_accounting_coa_id => l_adr_accounting_coa_id
12004 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12005 , x_flex_value_set_id => l_adr_flex_value_set_id
12006 , x_value_type_code => l_adr_value_type_code
12007 , x_value_combination_id => l_adr_value_combination_id
12008 , x_value_segment_code => l_adr_value_segment_code
12009 , p_side => 'ALL'
12010 , p_override_seg_flag => 'Y'
12011 );
12012
12013 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12014
12015 xla_ae_lines_pkg.set_segment(
12016 p_to_segment_code => 'GL_BALANCING'
12017 , p_segment_value => l_segment
12018 , p_from_segment_code => l_adr_value_segment_code
12019 , p_from_combination_id => l_adr_value_combination_id
12020 , p_value_type_code => l_adr_value_type_code
12021 , p_transaction_coa_id => l_adr_transaction_coa_id
12022 , p_accounting_coa_id => l_adr_accounting_coa_id
12023 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12024 , p_flex_value_set_id => l_adr_flex_value_set_id
12025 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
12026 , p_adr_type_code => 'S'
12027 , p_component_type => l_component_type
12028 , p_component_code => l_component_code
12029 , p_component_type_code => l_component_type_code
12030 , p_component_appl_id => l_component_appl_id
12031 , p_amb_context_code => l_amb_context_code
12032 , p_entity_code => 'AP_PAYMENTS'
12033 , p_event_class_code => 'REFUNDS'
12034 , p_side => 'ALL'
12035 );
12036
12037 END IF;
12038
12039 --
12040 --
12041 END IF;
12042 --
12043 -- Bug 4922099
12044 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12045 (NVL(l_enc_upg_option, 'N') = 'O')
12046 ) AND
12047 (l_bflow_method_code = 'PRIOR_ENTRY')
12048 )
12049 THEN
12050 IF
12051 --
12052 1 = 2
12053 --
12054 THEN
12055 xla_accounting_err_pkg.build_message
12056 (p_appli_s_name => 'XLA'
12057 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12058 ,p_token_1 => 'LINE_NUMBER'
12059 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12060 ,p_token_2 => 'LINE_TYPE_NAME'
12061 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12062 l_component_type
12063 ,l_component_code
12064 ,l_component_type_code
12065 ,l_component_appl_id
12066 ,l_amb_context_code
12067 ,l_entity_code
12068 ,l_event_class_code
12069 )
12070 ,p_token_3 => 'OWNER'
12071 ,p_value_3 => xla_lookups_pkg.get_meaning(
12072 p_lookup_type => 'XLA_OWNER_TYPE'
12073 ,p_lookup_code => l_component_type_code
12074 )
12075 ,p_token_4 => 'PRODUCT_NAME'
12076 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12077 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12081 );
12078 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12079 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12080 ,p_ae_header_id => NULL
12082
12083 IF (C_LEVEL_ERROR>= g_log_level) THEN
12084 trace
12085 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12086 ,p_level => C_LEVEL_ERROR
12087 ,p_module => l_log_module);
12088 END IF;
12089 END IF;
12090 END IF;
12091 --
12092 --
12093 ------------------------------------------------------------------------------------------------
12094 -- 4219869 Business Flow
12095 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12096 -- Prior Entry. Currently, the following code is always generated.
12097 ------------------------------------------------------------------------------------------------
12098 XLA_AE_LINES_PKG.ValidateCurrentLine;
12099
12100 ------------------------------------------------------------------------------------
12101 -- 4219869 Business Flow
12102 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12103 ------------------------------------------------------------------------------------
12104 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12105
12106 ----------------------------------------------------------------------------------
12107 -- 4219869 Business Flow
12108 -- Update journal entry status -- Need to generate this within IF <condition>
12109 ----------------------------------------------------------------------------------
12110 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12111 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12112 ,p_balance_type_code => l_balance_type_code
12113 );
12114
12115 -------------------------------------------------------------------------------------------
12116 -- 4262811 - Generate the Accrual Reversal lines
12117 -------------------------------------------------------------------------------------------
12118 BEGIN
12119 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12120 (g_array_event(p_event_id).array_value_num('header_index'));
12121 IF l_acc_rev_flag IS NULL THEN
12122 l_acc_rev_flag := 'N';
12123 END IF;
12124 EXCEPTION
12125 WHEN OTHERS THEN
12126 l_acc_rev_flag := 'N';
12127 END;
12128 --
12129 IF (l_acc_rev_flag = 'Y') THEN
12130
12131 -- 4645092 ------------------------------------------------------------------------------
12132 -- To allow MPA report to determine if it should generate report process
12133 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12134 ------------------------------------------------------------------------------------------
12135
12136 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12137 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12138 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12139 -- call ADRs
12140 -- Bug 4922099
12141 --
12142 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12143 (NVL(l_actual_upg_option, 'N') = 'O') OR
12144 (NVL(l_enc_upg_option, 'N') = 'O')
12145 )
12146 THEN
12147 NULL;
12148 --
12149 --
12150
12151 l_ccid := AcctDerRule_22(
12152 p_application_id => p_application_id
12153 , p_ae_header_id => l_ae_header_id
12154 , p_source_4 => p_source_4
12155 , p_source_4_meaning => p_source_4_meaning
12156 , p_source_5 => p_source_5
12157 , p_source_7 => p_source_7
12158 , p_source_7_meaning => p_source_7_meaning
12159 , p_source_8 => p_source_8
12160 , p_source_9 => p_source_9
12161 , p_source_10 => p_source_10
12162 , p_source_17 => p_source_17
12163 , p_source_30 => p_source_30
12164 , p_source_30_meaning => p_source_30_meaning
12165 , x_transaction_coa_id => l_adr_transaction_coa_id
12166 , x_accounting_coa_id => l_adr_accounting_coa_id
12167 , x_value_type_code => l_adr_value_type_code
12168 , p_side => 'ALL'
12169 );
12170
12171 xla_ae_lines_pkg.set_ccid(
12172 p_code_combination_id => l_ccid
12173 , p_value_type_code => l_adr_value_type_code
12174 , p_transaction_coa_id => l_adr_transaction_coa_id
12175 , p_accounting_coa_id => l_adr_accounting_coa_id
12176 , p_adr_code => 'AP_ERV_TAXERV_CASH'
12177 , p_adr_type_code => 'S'
12178 , p_component_type => l_component_type
12179 , p_component_code => l_component_code
12180 , p_component_type_code => l_component_type_code
12181 , p_component_appl_id => l_component_appl_id
12182 , p_amb_context_code => l_amb_context_code
12183 , p_side => 'ALL'
12184 );
12185
12186
12187 l_segment := AcctDerRule_5(
12188 p_application_id => p_application_id
12189 , p_ae_header_id => l_ae_header_id
12190 , p_source_4 => p_source_4
12194 , p_source_7_meaning => p_source_7_meaning
12191 , p_source_4_meaning => p_source_4_meaning
12192 , p_source_5 => p_source_5
12193 , p_source_7 => p_source_7
12195 , x_transaction_coa_id => l_adr_transaction_coa_id
12196 , x_accounting_coa_id => l_adr_accounting_coa_id
12197 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12198 , x_flex_value_set_id => l_adr_flex_value_set_id
12199 , x_value_type_code => l_adr_value_type_code
12200 , x_value_combination_id => l_adr_value_combination_id
12201 , x_value_segment_code => l_adr_value_segment_code
12202 , p_side => 'CREDIT'
12203 , p_override_seg_flag => 'Y'
12204 );
12205
12206 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12207
12208 xla_ae_lines_pkg.set_segment(
12209 p_to_segment_code => 'GL_ACCOUNT'
12210 , p_segment_value => l_segment
12211 , p_from_segment_code => l_adr_value_segment_code
12212 , p_from_combination_id => l_adr_value_combination_id
12213 , p_value_type_code => l_adr_value_type_code
12214 , p_transaction_coa_id => l_adr_transaction_coa_id
12215 , p_accounting_coa_id => l_adr_accounting_coa_id
12216 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12217 , p_flex_value_set_id => l_adr_flex_value_set_id
12218 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12219 , p_adr_type_code => 'S'
12220 , p_component_type => l_component_type
12221 , p_component_code => l_component_code
12222 , p_component_type_code => l_component_type_code
12223 , p_component_appl_id => l_component_appl_id
12224 , p_amb_context_code => l_amb_context_code
12225 , p_entity_code => 'AP_PAYMENTS'
12226 , p_event_class_code => 'REFUNDS'
12227 , p_side => 'CREDIT'
12228 );
12229
12230 END IF;
12231
12232 l_segment := AcctDerRule_6(
12233 p_application_id => p_application_id
12234 , p_ae_header_id => l_ae_header_id
12235 , p_source_4 => p_source_4
12236 , p_source_4_meaning => p_source_4_meaning
12237 , p_source_7 => p_source_7
12238 , p_source_7_meaning => p_source_7_meaning
12239 , p_source_8 => p_source_8
12240 , x_transaction_coa_id => l_adr_transaction_coa_id
12241 , x_accounting_coa_id => l_adr_accounting_coa_id
12242 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12243 , x_flex_value_set_id => l_adr_flex_value_set_id
12244 , x_value_type_code => l_adr_value_type_code
12245 , x_value_combination_id => l_adr_value_combination_id
12246 , x_value_segment_code => l_adr_value_segment_code
12247 , p_side => 'DEBIT'
12248 , p_override_seg_flag => 'Y'
12249 );
12250
12251 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12252
12253 xla_ae_lines_pkg.set_segment(
12254 p_to_segment_code => 'GL_ACCOUNT'
12255 , p_segment_value => l_segment
12256 , p_from_segment_code => l_adr_value_segment_code
12257 , p_from_combination_id => l_adr_value_combination_id
12258 , p_value_type_code => l_adr_value_type_code
12259 , p_transaction_coa_id => l_adr_transaction_coa_id
12260 , p_accounting_coa_id => l_adr_accounting_coa_id
12261 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12262 , p_flex_value_set_id => l_adr_flex_value_set_id
12263 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12264 , p_adr_type_code => 'S'
12265 , p_component_type => l_component_type
12266 , p_component_code => l_component_code
12267 , p_component_type_code => l_component_type_code
12268 , p_component_appl_id => l_component_appl_id
12269 , p_amb_context_code => l_amb_context_code
12270 , p_entity_code => 'AP_PAYMENTS'
12271 , p_event_class_code => 'REFUNDS'
12272 , p_side => 'DEBIT'
12273 );
12274
12275 END IF;
12276
12277 l_segment := AcctDerRule_15(
12278 p_application_id => p_application_id
12279 , p_ae_header_id => l_ae_header_id
12280 , p_source_4 => p_source_4
12281 , p_source_4_meaning => p_source_4_meaning
12282 , p_source_7 => p_source_7
12283 , p_source_7_meaning => p_source_7_meaning
12284 , p_source_17 => p_source_17
12285 , x_transaction_coa_id => l_adr_transaction_coa_id
12286 , x_accounting_coa_id => l_adr_accounting_coa_id
12287 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12288 , x_flex_value_set_id => l_adr_flex_value_set_id
12289 , x_value_type_code => l_adr_value_type_code
12290 , x_value_combination_id => l_adr_value_combination_id
12291 , x_value_segment_code => l_adr_value_segment_code
12292 , p_side => 'ALL'
12293 , p_override_seg_flag => 'Y'
12294 );
12295
12296 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12297
12298 xla_ae_lines_pkg.set_segment(
12302 , p_from_combination_id => l_adr_value_combination_id
12299 p_to_segment_code => 'GL_BALANCING'
12300 , p_segment_value => l_segment
12301 , p_from_segment_code => l_adr_value_segment_code
12303 , p_value_type_code => l_adr_value_type_code
12304 , p_transaction_coa_id => l_adr_transaction_coa_id
12305 , p_accounting_coa_id => l_adr_accounting_coa_id
12306 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12307 , p_flex_value_set_id => l_adr_flex_value_set_id
12308 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
12309 , p_adr_type_code => 'S'
12310 , p_component_type => l_component_type
12311 , p_component_code => l_component_code
12312 , p_component_type_code => l_component_type_code
12313 , p_component_appl_id => l_component_appl_id
12314 , p_amb_context_code => l_amb_context_code
12315 , p_entity_code => 'AP_PAYMENTS'
12316 , p_event_class_code => 'REFUNDS'
12317 , p_side => 'ALL'
12318 );
12319
12320 END IF;
12321
12322 --
12323 --
12324 END IF;
12325
12326 --
12327 -- Update the line information that should be overwritten
12328 --
12329 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12330 p_header_num => 1);
12331 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12332
12333 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12334
12335 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12336 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12337 END IF;
12338
12339 --
12340 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12341 --
12342 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12343 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12344 ELSE
12345 ---------------------------------------------------------------------------------------------------
12346 -- 4262811a Switch Sign
12347 ---------------------------------------------------------------------------------------------------
12348 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12349 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12350 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12351 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12352 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12353 -- 5132302
12354 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12355 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12356
12357 END IF;
12358
12359 -- 4955764
12360 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12361 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12362
12363
12364 XLA_AE_LINES_PKG.ValidateCurrentLine;
12365 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12366
12367 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12368 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12369 ,p_balance_type_code => l_balance_type_code);
12370
12371 END IF;
12372
12373 -----------------------------------------------------------------------------------------
12374 -- 4262811 Multiperiod Accounting
12375 -----------------------------------------------------------------------------------------
12376 -- No MPA option is assigned.
12377
12378
12379 END IF;
12380 END IF;
12381 --
12382
12383 --
12384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12385 trace
12386 (p_msg => 'END of AcctLineType_46'
12387 ,p_level => C_LEVEL_PROCEDURE
12388 ,p_module => l_log_module);
12389 END IF;
12390 --
12391 EXCEPTION
12392 WHEN xla_exceptions_pkg.application_exception THEN
12393 RAISE;
12394 WHEN OTHERS THEN
12395 xla_exceptions_pkg.raise_message
12396 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_46');
12397 END AcctLineType_46;
12398 --
12399
12400 ---------------------------------------
12401 --
12402 -- PRIVATE FUNCTION
12403 -- AcctLineType_47
12404 --
12405 ---------------------------------------
12406 PROCEDURE AcctLineType_47 (
12407 p_application_id IN NUMBER
12408 ,p_event_id IN NUMBER
12409 ,p_calculate_acctd_flag IN VARCHAR2
12410 ,p_calculate_g_l_flag IN VARCHAR2
12411 ,p_actual_flag IN OUT VARCHAR2
12412 ,p_balance_type_code OUT VARCHAR2
12413 ,p_gain_or_loss_ref OUT VARCHAR2
12414
12415 --Automatic Offsets Value
12419 , p_source_5 IN NUMBER
12416 , p_source_4 IN VARCHAR2
12417 , p_source_4_meaning IN VARCHAR2
12418 --Purchase Order Rate Variance Gain Account
12420 --Destination Type of the PO Distribution
12421 , p_source_7 IN VARCHAR2
12422 , p_source_7_meaning IN VARCHAR2
12423 --Purchase Order Rate Variance Loss Account
12424 , p_source_8 IN NUMBER
12425 --Payment Distribution (Payment Rate) Ledger Amount
12426 , p_source_9 IN NUMBER
12427 --Payment Distribution (Cleared Rate) Ledger Amount
12428 , p_source_10 IN NUMBER
12429 --Invoice Distribution Account
12430 , p_source_17 IN NUMBER
12431 --Invoice Distribution Type
12432 , p_source_20 IN VARCHAR2
12433 , p_source_20_meaning IN VARCHAR2
12434 --Automatic Offsets Flag
12435 , p_source_30 IN VARCHAR2
12436 , p_source_30_meaning IN VARCHAR2
12437 --When to Account for Payment Option
12438 , p_source_38 IN VARCHAR2
12439 --Payment Distribution Type
12440 , p_source_39 IN VARCHAR2
12441 , p_source_39_meaning IN VARCHAR2
12442 --Accounting Reversal Indicator
12443 , p_source_40 IN VARCHAR2
12444 --Payment Distribution Amount
12445 , p_source_41 IN NUMBER
12446 --Business Flow Accounts Payable Application Identifier
12447 , p_source_42 IN NUMBER
12448 --Business Flow Payment Distribution Type
12449 , p_source_43 IN VARCHAR2
12450 --Business Flow Payment Entity Code
12451 , p_source_44 IN VARCHAR2
12452 --Business Flow Payment Distribution Identifier
12453 , p_source_45 IN NUMBER
12454 --Business Flow Payment Identifier
12455 , p_source_46 IN NUMBER
12456 --Payment Distribution Identifier
12457 , p_source_47 IN NUMBER
12458 --Distribution Link Type
12459 , p_source_48 IN VARCHAR2
12460 --Override Accounted Amount Indicator
12461 , p_source_53 IN VARCHAR2
12462 , p_source_53_meaning IN VARCHAR2
12463 --Payment Supplier Identifier
12464 , p_source_54 IN NUMBER
12465 --Payment Supplier Site Identifier
12466 , p_source_55 IN NUMBER
12467 --Third Party Type
12468 , p_source_56 IN VARCHAR2
12469 --Payment Distribution Reversed Identifier
12470 , p_source_57 IN NUMBER
12471 --Invoice Distribution Tax Line Identifier
12472 , p_source_58 IN NUMBER
12473 --Invoice Distribution Summary Tax Line Identifier
12474 , p_source_59 IN NUMBER
12475 --Accrue on Receipt Option
12476 , p_source_100 IN VARCHAR2
12477 , p_source_100_meaning IN VARCHAR2
12478 )
12479 IS
12480
12481 l_component_type VARCHAR2(80);
12482 l_component_code VARCHAR2(30);
12483 l_component_type_code VARCHAR2(1);
12484 l_component_appl_id INTEGER;
12485 l_amb_context_code VARCHAR2(30);
12486 l_entity_code VARCHAR2(30);
12487 l_event_class_code VARCHAR2(30);
12488 l_ae_header_id NUMBER;
12489 l_event_type_code VARCHAR2(30);
12490 l_line_definition_code VARCHAR2(30);
12491 l_line_definition_owner_code VARCHAR2(1);
12492 --
12493 -- adr variables
12494 l_segment VARCHAR2(30);
12495 l_ccid NUMBER;
12496 l_adr_transaction_coa_id NUMBER;
12497 l_adr_accounting_coa_id NUMBER;
12498 l_adr_flexfield_segment_code VARCHAR2(30);
12499 l_adr_flex_value_set_id NUMBER;
12500 l_adr_value_type_code VARCHAR2(30);
12501 l_adr_value_combination_id NUMBER;
12502 l_adr_value_segment_code VARCHAR2(30);
12503
12504 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12505 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12506 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12507 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12508
12509 -- 4262811 Variables ------------------------------------------------------------------------------------------
12510 l_entered_amt_idx NUMBER;
12511 l_accted_amt_idx NUMBER;
12512 l_acc_rev_flag VARCHAR2(1);
12513 l_accrual_line_num NUMBER;
12514 l_tmp_amt NUMBER;
12515 l_acc_rev_natural_side_code VARCHAR2(1);
12516
12517 l_num_entries NUMBER;
12518 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12519 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12520 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12521 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12522 l_recog_line_1 NUMBER;
12523 l_recog_line_2 NUMBER;
12524
12525 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12526 l_bflow_applied_to_amt NUMBER; -- 5132302
12527 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12528
12529 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12530
12531 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12532 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12533
12534 ---------------------------------------------------------------------------------------------------------------
12535
12539 --
12536
12537 --
12538 -- bulk performance
12540 l_balance_type_code VARCHAR2(1);
12541 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12542 l_log_module VARCHAR2(240);
12543
12544 --
12545 -- Upgrade strategy
12546 --
12547 l_actual_upg_option VARCHAR2(1);
12548 l_enc_upg_option VARCHAR2(1);
12549
12550 --
12551 BEGIN
12552 --
12553 IF g_log_enabled THEN
12554 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
12555 END IF;
12556 --
12557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12558
12559 trace
12560 (p_msg => 'BEGIN of AcctLineType_47'
12561 ,p_level => C_LEVEL_PROCEDURE
12562 ,p_module => l_log_module);
12563
12564 END IF;
12565 --
12566 l_component_type := 'AMB_JLT';
12567 l_component_code := 'AP_ALC_TAX_EX_RATE_VAR_CLEAR';
12568 l_component_type_code := 'S';
12569 l_component_appl_id := 200;
12570 l_amb_context_code := 'DEFAULT';
12571 l_entity_code := 'AP_PAYMENTS';
12572 l_event_class_code := 'RECONCILED PAYMENTS';
12573 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
12574 l_line_definition_owner_code := 'S';
12575 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
12576 --
12577 l_balance_type_code := 'A';
12578 l_segment := NULL;
12579 l_ccid := NULL;
12580 l_adr_transaction_coa_id := NULL;
12581 l_adr_accounting_coa_id := NULL;
12582 l_adr_flexfield_segment_code := NULL;
12583 l_adr_flex_value_set_id := NULL;
12584 l_adr_value_type_code := NULL;
12585 l_adr_value_combination_id := NULL;
12586 l_adr_value_segment_code := NULL;
12587
12588 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12589 l_bflow_class_code := ''; -- 4219869 Business Flow
12590 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12591 l_budgetary_control_flag := 'N';
12592
12593 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12594 l_bflow_applied_to_amt := NULL; -- 5132302
12595 l_entered_amt_idx := NULL; -- 4262811
12596 l_accted_amt_idx := NULL; -- 4262811
12597 l_acc_rev_flag := NULL; -- 4262811
12598 l_accrual_line_num := NULL; -- 4262811
12599 l_tmp_amt := NULL; -- 4262811
12600 --
12601 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12602 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
12603 return;
12604 END IF;
12605
12606 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12607 l_balance_type_code <> 'B' THEN
12608 IF NVL(p_source_38,'
12609 ') = 'CLEAR_CLEAR' AND
12610 NVL(p_source_20,'
12611 ') = 'NONREC_TAX' AND
12612 NVL(p_source_100,'
12613 ') = 'Y' AND
12614 (NVL(p_source_39,'
12615 ') = 'CASH' OR
12616 NVL(p_source_39,'
12617 ') = 'DISCOUNT')
12618 THEN
12619
12620 --
12621 XLA_AE_LINES_PKG.SetNewLine;
12622
12623 p_balance_type_code := l_balance_type_code;
12624 -- set the flag so later we will know whether the gain loss line needs to be created
12625
12626 IF(l_balance_type_code = 'A' ) THEN
12627 p_actual_flag :='G';
12628 END IF;
12629
12630 --
12631 -- bulk performance
12632 --
12633 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12634 p_header_num => 0); -- 4262811
12635 --
12636 -- set accounting line options
12637 --
12638 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12639 p_natural_side_code => 'G'
12640 , p_gain_or_loss_flag => 'N'
12641 , p_gl_transfer_mode_code => 'S'
12642 , p_acct_entry_type_code => 'A'
12643 , p_switch_side_flag => ''
12644 , p_merge_duplicate_code => 'A'
12645 );
12646 --
12647 l_acc_rev_natural_side_code := 'C'; -- 4262811
12648 --
12649 --
12650 -- set accounting line type info
12651 --
12652 xla_ae_lines_pkg.SetAcctLineType
12653 (p_component_type => l_component_type
12654 ,p_event_type_code => l_event_type_code
12655 ,p_line_definition_owner_code => l_line_definition_owner_code
12656 ,p_line_definition_code => l_line_definition_code
12657 ,p_accounting_line_code => l_component_code
12658 ,p_accounting_line_type_code => l_component_type_code
12659 ,p_accounting_line_appl_id => l_component_appl_id
12660 ,p_amb_context_code => l_amb_context_code
12661 ,p_entity_code => l_entity_code
12662 ,p_event_class_code => l_event_class_code);
12663 --
12664 -- set accounting class
12665 --
12666 xla_ae_lines_pkg.SetAcctClass(
12667 p_accounting_class_code => 'TERV'
12668 , p_ae_header_id => l_ae_header_id
12669 );
12670
12671 --
12672 -- set rounding class
12673 --
12677 --
12674 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12675 'TERV';
12676
12678 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12679 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12680 --
12681 -- bulk performance
12682 --
12683 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12684
12685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12686 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12687
12688 -- 4955764
12689 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12690 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12691
12692 -- 4458381 Public Sector Enh
12693
12694 --
12695 -- set accounting attributes for the line type
12696 --
12697 l_entered_amt_idx := NULL;
12698 l_accted_amt_idx := 10;
12699 l_bflow_applied_to_amt_idx := 2; -- 5132302
12700 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12701 l_rec_acct_attrs.array_char_value(1) := p_source_40;
12702 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
12703 l_rec_acct_attrs.array_num_value(2) := p_source_41;
12704 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
12705 l_rec_acct_attrs.array_num_value(3) := p_source_42;
12706 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12707 l_rec_acct_attrs.array_char_value(4) := p_source_43;
12708 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
12709 l_rec_acct_attrs.array_char_value(5) := p_source_44;
12710 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
12711 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
12712 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12713 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
12714 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
12715 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
12716 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
12717 l_rec_acct_attrs.array_char_value(9) := p_source_48;
12718 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
12719 l_rec_acct_attrs.array_num_value(10) := p_source_10;
12720 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
12721 l_rec_acct_attrs.array_char_value(11) := p_source_53;
12722 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
12723 l_rec_acct_attrs.array_num_value(12) := p_source_54;
12724 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
12725 l_rec_acct_attrs.array_num_value(13) := p_source_55;
12726 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
12727 l_rec_acct_attrs.array_char_value(14) := p_source_56;
12728 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
12729 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
12730 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
12731 l_rec_acct_attrs.array_char_value(16) := p_source_48;
12732 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
12733 l_rec_acct_attrs.array_num_value(17) := p_source_58;
12734 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
12735 l_rec_acct_attrs.array_num_value(18) := p_source_58;
12736 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
12737 l_rec_acct_attrs.array_num_value(19) := p_source_59;
12738
12739 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12740 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12741
12742 ---------------------------------------------------------------------------------------------------------------
12743 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12744 ---------------------------------------------------------------------------------------------------------------
12745 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12746
12747 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12748 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12749
12750 IF xla_accounting_cache_pkg.GetValueChar
12751 (p_source_code => 'LEDGER_CATEGORY_CODE'
12752 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12753 AND l_bflow_method_code = 'PRIOR_ENTRY'
12754 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12755 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12756 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12757 )
12758 THEN
12759 xla_ae_lines_pkg.BflowUpgEntry
12760 (p_business_method_code => l_bflow_method_code
12761 ,p_business_class_code => l_bflow_class_code
12762 ,p_balance_type => l_balance_type_code);
12763 ELSE
12764 NULL;
12765 -- No business flow processing for business flow method of NONE.
12766 END IF;
12767
12768 --
12769 -- call analytical criteria
12770 --
12771
12772 --
12776 --
12773 -- call description
12774 --
12775 -- No description or it is inherited.
12777 -- call ADRs
12778 -- Bug 4922099
12779 --
12780 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12781 (NVL(l_actual_upg_option, 'N') = 'O') OR
12782 (NVL(l_enc_upg_option, 'N') = 'O')
12783 )
12784 THEN
12785 NULL;
12786 --
12787 --
12788
12789 l_ccid := AcctDerRule_22(
12790 p_application_id => p_application_id
12791 , p_ae_header_id => l_ae_header_id
12792 , p_source_4 => p_source_4
12793 , p_source_4_meaning => p_source_4_meaning
12794 , p_source_5 => p_source_5
12795 , p_source_7 => p_source_7
12796 , p_source_7_meaning => p_source_7_meaning
12797 , p_source_8 => p_source_8
12798 , p_source_9 => p_source_9
12799 , p_source_10 => p_source_10
12800 , p_source_17 => p_source_17
12801 , p_source_30 => p_source_30
12802 , p_source_30_meaning => p_source_30_meaning
12803 , x_transaction_coa_id => l_adr_transaction_coa_id
12804 , x_accounting_coa_id => l_adr_accounting_coa_id
12805 , x_value_type_code => l_adr_value_type_code
12806 , p_side => 'ALL'
12807 );
12808
12809 xla_ae_lines_pkg.set_ccid(
12810 p_code_combination_id => l_ccid
12811 , p_value_type_code => l_adr_value_type_code
12812 , p_transaction_coa_id => l_adr_transaction_coa_id
12813 , p_accounting_coa_id => l_adr_accounting_coa_id
12814 , p_adr_code => 'AP_ERV_TAXERV_CASH'
12815 , p_adr_type_code => 'S'
12816 , p_component_type => l_component_type
12817 , p_component_code => l_component_code
12818 , p_component_type_code => l_component_type_code
12819 , p_component_appl_id => l_component_appl_id
12820 , p_amb_context_code => l_amb_context_code
12821 , p_side => 'ALL'
12822 );
12823
12824
12825 l_segment := AcctDerRule_5(
12826 p_application_id => p_application_id
12827 , p_ae_header_id => l_ae_header_id
12828 , p_source_4 => p_source_4
12829 , p_source_4_meaning => p_source_4_meaning
12830 , p_source_5 => p_source_5
12831 , p_source_7 => p_source_7
12832 , p_source_7_meaning => p_source_7_meaning
12833 , x_transaction_coa_id => l_adr_transaction_coa_id
12834 , x_accounting_coa_id => l_adr_accounting_coa_id
12835 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12836 , x_flex_value_set_id => l_adr_flex_value_set_id
12837 , x_value_type_code => l_adr_value_type_code
12838 , x_value_combination_id => l_adr_value_combination_id
12839 , x_value_segment_code => l_adr_value_segment_code
12840 , p_side => 'CREDIT'
12841 , p_override_seg_flag => 'Y'
12842 );
12843
12844 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12845
12846 xla_ae_lines_pkg.set_segment(
12847 p_to_segment_code => 'GL_ACCOUNT'
12848 , p_segment_value => l_segment
12849 , p_from_segment_code => l_adr_value_segment_code
12850 , p_from_combination_id => l_adr_value_combination_id
12851 , p_value_type_code => l_adr_value_type_code
12852 , p_transaction_coa_id => l_adr_transaction_coa_id
12853 , p_accounting_coa_id => l_adr_accounting_coa_id
12854 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12855 , p_flex_value_set_id => l_adr_flex_value_set_id
12856 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12857 , p_adr_type_code => 'S'
12858 , p_component_type => l_component_type
12859 , p_component_code => l_component_code
12860 , p_component_type_code => l_component_type_code
12861 , p_component_appl_id => l_component_appl_id
12862 , p_amb_context_code => l_amb_context_code
12863 , p_entity_code => 'AP_PAYMENTS'
12864 , p_event_class_code => 'RECONCILED PAYMENTS'
12865 , p_side => 'CREDIT'
12866 );
12867
12868 END IF;
12869
12870 l_segment := AcctDerRule_6(
12871 p_application_id => p_application_id
12872 , p_ae_header_id => l_ae_header_id
12873 , p_source_4 => p_source_4
12874 , p_source_4_meaning => p_source_4_meaning
12875 , p_source_7 => p_source_7
12876 , p_source_7_meaning => p_source_7_meaning
12877 , p_source_8 => p_source_8
12878 , x_transaction_coa_id => l_adr_transaction_coa_id
12879 , x_accounting_coa_id => l_adr_accounting_coa_id
12880 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12881 , x_flex_value_set_id => l_adr_flex_value_set_id
12882 , x_value_type_code => l_adr_value_type_code
12883 , x_value_combination_id => l_adr_value_combination_id
12884 , x_value_segment_code => l_adr_value_segment_code
12885 , p_side => 'DEBIT'
12886 , p_override_seg_flag => 'Y'
12887 );
12888
12889 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12890
12891 xla_ae_lines_pkg.set_segment(
12892 p_to_segment_code => 'GL_ACCOUNT'
12893 , p_segment_value => l_segment
12894 , p_from_segment_code => l_adr_value_segment_code
12898 , p_accounting_coa_id => l_adr_accounting_coa_id
12895 , p_from_combination_id => l_adr_value_combination_id
12896 , p_value_type_code => l_adr_value_type_code
12897 , p_transaction_coa_id => l_adr_transaction_coa_id
12899 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12900 , p_flex_value_set_id => l_adr_flex_value_set_id
12901 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12902 , p_adr_type_code => 'S'
12903 , p_component_type => l_component_type
12904 , p_component_code => l_component_code
12905 , p_component_type_code => l_component_type_code
12906 , p_component_appl_id => l_component_appl_id
12907 , p_amb_context_code => l_amb_context_code
12908 , p_entity_code => 'AP_PAYMENTS'
12909 , p_event_class_code => 'RECONCILED PAYMENTS'
12910 , p_side => 'DEBIT'
12911 );
12912
12913 END IF;
12914
12915 l_segment := AcctDerRule_15(
12916 p_application_id => p_application_id
12917 , p_ae_header_id => l_ae_header_id
12918 , p_source_4 => p_source_4
12919 , p_source_4_meaning => p_source_4_meaning
12920 , p_source_7 => p_source_7
12921 , p_source_7_meaning => p_source_7_meaning
12922 , p_source_17 => p_source_17
12923 , x_transaction_coa_id => l_adr_transaction_coa_id
12924 , x_accounting_coa_id => l_adr_accounting_coa_id
12925 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12926 , x_flex_value_set_id => l_adr_flex_value_set_id
12927 , x_value_type_code => l_adr_value_type_code
12928 , x_value_combination_id => l_adr_value_combination_id
12929 , x_value_segment_code => l_adr_value_segment_code
12930 , p_side => 'ALL'
12931 , p_override_seg_flag => 'Y'
12932 );
12933
12934 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12935
12936 xla_ae_lines_pkg.set_segment(
12937 p_to_segment_code => 'GL_BALANCING'
12938 , p_segment_value => l_segment
12939 , p_from_segment_code => l_adr_value_segment_code
12940 , p_from_combination_id => l_adr_value_combination_id
12941 , p_value_type_code => l_adr_value_type_code
12942 , p_transaction_coa_id => l_adr_transaction_coa_id
12943 , p_accounting_coa_id => l_adr_accounting_coa_id
12944 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12945 , p_flex_value_set_id => l_adr_flex_value_set_id
12946 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
12947 , p_adr_type_code => 'S'
12948 , p_component_type => l_component_type
12949 , p_component_code => l_component_code
12950 , p_component_type_code => l_component_type_code
12951 , p_component_appl_id => l_component_appl_id
12952 , p_amb_context_code => l_amb_context_code
12953 , p_entity_code => 'AP_PAYMENTS'
12954 , p_event_class_code => 'RECONCILED PAYMENTS'
12955 , p_side => 'ALL'
12956 );
12957
12958 END IF;
12959
12960 --
12961 --
12962 END IF;
12963 --
12964 -- Bug 4922099
12965 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12966 (NVL(l_enc_upg_option, 'N') = 'O')
12967 ) AND
12968 (l_bflow_method_code = 'PRIOR_ENTRY')
12969 )
12970 THEN
12971 IF
12972 --
12973 1 = 2
12974 --
12975 THEN
12976 xla_accounting_err_pkg.build_message
12977 (p_appli_s_name => 'XLA'
12978 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12979 ,p_token_1 => 'LINE_NUMBER'
12980 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12981 ,p_token_2 => 'LINE_TYPE_NAME'
12982 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12983 l_component_type
12984 ,l_component_code
12985 ,l_component_type_code
12986 ,l_component_appl_id
12987 ,l_amb_context_code
12988 ,l_entity_code
12989 ,l_event_class_code
12990 )
12991 ,p_token_3 => 'OWNER'
12992 ,p_value_3 => xla_lookups_pkg.get_meaning(
12993 p_lookup_type => 'XLA_OWNER_TYPE'
12994 ,p_lookup_code => l_component_type_code
12995 )
12999 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12996 ,p_token_4 => 'PRODUCT_NAME'
12997 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12998 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13000 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13001 ,p_ae_header_id => NULL
13002 );
13003
13004 IF (C_LEVEL_ERROR>= g_log_level) THEN
13005 trace
13006 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13007 ,p_level => C_LEVEL_ERROR
13008 ,p_module => l_log_module);
13009 END IF;
13010 END IF;
13011 END IF;
13012 --
13013 --
13014 ------------------------------------------------------------------------------------------------
13015 -- 4219869 Business Flow
13016 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13017 -- Prior Entry. Currently, the following code is always generated.
13018 ------------------------------------------------------------------------------------------------
13019 XLA_AE_LINES_PKG.ValidateCurrentLine;
13020
13021 ------------------------------------------------------------------------------------
13022 -- 4219869 Business Flow
13023 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13024 ------------------------------------------------------------------------------------
13025 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13026
13027 ----------------------------------------------------------------------------------
13028 -- 4219869 Business Flow
13029 -- Update journal entry status -- Need to generate this within IF <condition>
13030 ----------------------------------------------------------------------------------
13031 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13032 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13033 ,p_balance_type_code => l_balance_type_code
13034 );
13035
13036 -------------------------------------------------------------------------------------------
13037 -- 4262811 - Generate the Accrual Reversal lines
13038 -------------------------------------------------------------------------------------------
13039 BEGIN
13040 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13041 (g_array_event(p_event_id).array_value_num('header_index'));
13042 IF l_acc_rev_flag IS NULL THEN
13043 l_acc_rev_flag := 'N';
13044 END IF;
13045 EXCEPTION
13046 WHEN OTHERS THEN
13047 l_acc_rev_flag := 'N';
13048 END;
13049 --
13050 IF (l_acc_rev_flag = 'Y') THEN
13051
13052 -- 4645092 ------------------------------------------------------------------------------
13053 -- To allow MPA report to determine if it should generate report process
13054 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13055 ------------------------------------------------------------------------------------------
13056
13057 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13058 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13059 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13060 -- call ADRs
13061 -- Bug 4922099
13062 --
13063 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13064 (NVL(l_actual_upg_option, 'N') = 'O') OR
13065 (NVL(l_enc_upg_option, 'N') = 'O')
13066 )
13067 THEN
13068 NULL;
13069 --
13070 --
13071
13072 l_ccid := AcctDerRule_22(
13073 p_application_id => p_application_id
13074 , p_ae_header_id => l_ae_header_id
13075 , p_source_4 => p_source_4
13076 , p_source_4_meaning => p_source_4_meaning
13077 , p_source_5 => p_source_5
13078 , p_source_7 => p_source_7
13079 , p_source_7_meaning => p_source_7_meaning
13080 , p_source_8 => p_source_8
13081 , p_source_9 => p_source_9
13082 , p_source_10 => p_source_10
13083 , p_source_17 => p_source_17
13084 , p_source_30 => p_source_30
13085 , p_source_30_meaning => p_source_30_meaning
13086 , x_transaction_coa_id => l_adr_transaction_coa_id
13087 , x_accounting_coa_id => l_adr_accounting_coa_id
13088 , x_value_type_code => l_adr_value_type_code
13089 , p_side => 'ALL'
13090 );
13091
13092 xla_ae_lines_pkg.set_ccid(
13093 p_code_combination_id => l_ccid
13094 , p_value_type_code => l_adr_value_type_code
13095 , p_transaction_coa_id => l_adr_transaction_coa_id
13096 , p_accounting_coa_id => l_adr_accounting_coa_id
13097 , p_adr_code => 'AP_ERV_TAXERV_CASH'
13098 , p_adr_type_code => 'S'
13099 , p_component_type => l_component_type
13100 , p_component_code => l_component_code
13101 , p_component_type_code => l_component_type_code
13102 , p_component_appl_id => l_component_appl_id
13103 , p_amb_context_code => l_amb_context_code
13104 , p_side => 'ALL'
13108 l_segment := AcctDerRule_5(
13105 );
13106
13107
13109 p_application_id => p_application_id
13110 , p_ae_header_id => l_ae_header_id
13111 , p_source_4 => p_source_4
13112 , p_source_4_meaning => p_source_4_meaning
13113 , p_source_5 => p_source_5
13114 , p_source_7 => p_source_7
13115 , p_source_7_meaning => p_source_7_meaning
13116 , x_transaction_coa_id => l_adr_transaction_coa_id
13117 , x_accounting_coa_id => l_adr_accounting_coa_id
13118 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13119 , x_flex_value_set_id => l_adr_flex_value_set_id
13120 , x_value_type_code => l_adr_value_type_code
13121 , x_value_combination_id => l_adr_value_combination_id
13122 , x_value_segment_code => l_adr_value_segment_code
13123 , p_side => 'CREDIT'
13124 , p_override_seg_flag => 'Y'
13125 );
13126
13127 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13128
13129 xla_ae_lines_pkg.set_segment(
13130 p_to_segment_code => 'GL_ACCOUNT'
13131 , p_segment_value => l_segment
13132 , p_from_segment_code => l_adr_value_segment_code
13133 , p_from_combination_id => l_adr_value_combination_id
13134 , p_value_type_code => l_adr_value_type_code
13135 , p_transaction_coa_id => l_adr_transaction_coa_id
13136 , p_accounting_coa_id => l_adr_accounting_coa_id
13137 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13138 , p_flex_value_set_id => l_adr_flex_value_set_id
13139 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13140 , p_adr_type_code => 'S'
13141 , p_component_type => l_component_type
13142 , p_component_code => l_component_code
13143 , p_component_type_code => l_component_type_code
13144 , p_component_appl_id => l_component_appl_id
13145 , p_amb_context_code => l_amb_context_code
13146 , p_entity_code => 'AP_PAYMENTS'
13147 , p_event_class_code => 'RECONCILED PAYMENTS'
13148 , p_side => 'CREDIT'
13149 );
13150
13151 END IF;
13152
13153 l_segment := AcctDerRule_6(
13154 p_application_id => p_application_id
13155 , p_ae_header_id => l_ae_header_id
13156 , p_source_4 => p_source_4
13157 , p_source_4_meaning => p_source_4_meaning
13158 , p_source_7 => p_source_7
13159 , p_source_7_meaning => p_source_7_meaning
13160 , p_source_8 => p_source_8
13161 , x_transaction_coa_id => l_adr_transaction_coa_id
13162 , x_accounting_coa_id => l_adr_accounting_coa_id
13163 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13164 , x_flex_value_set_id => l_adr_flex_value_set_id
13165 , x_value_type_code => l_adr_value_type_code
13166 , x_value_combination_id => l_adr_value_combination_id
13167 , x_value_segment_code => l_adr_value_segment_code
13168 , p_side => 'DEBIT'
13169 , p_override_seg_flag => 'Y'
13170 );
13171
13172 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13173
13174 xla_ae_lines_pkg.set_segment(
13175 p_to_segment_code => 'GL_ACCOUNT'
13176 , p_segment_value => l_segment
13177 , p_from_segment_code => l_adr_value_segment_code
13178 , p_from_combination_id => l_adr_value_combination_id
13179 , p_value_type_code => l_adr_value_type_code
13180 , p_transaction_coa_id => l_adr_transaction_coa_id
13181 , p_accounting_coa_id => l_adr_accounting_coa_id
13182 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13183 , p_flex_value_set_id => l_adr_flex_value_set_id
13184 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13185 , p_adr_type_code => 'S'
13186 , p_component_type => l_component_type
13187 , p_component_code => l_component_code
13188 , p_component_type_code => l_component_type_code
13189 , p_component_appl_id => l_component_appl_id
13190 , p_amb_context_code => l_amb_context_code
13191 , p_entity_code => 'AP_PAYMENTS'
13192 , p_event_class_code => 'RECONCILED PAYMENTS'
13193 , p_side => 'DEBIT'
13194 );
13195
13196 END IF;
13197
13198 l_segment := AcctDerRule_15(
13199 p_application_id => p_application_id
13200 , p_ae_header_id => l_ae_header_id
13201 , p_source_4 => p_source_4
13202 , p_source_4_meaning => p_source_4_meaning
13203 , p_source_7 => p_source_7
13204 , p_source_7_meaning => p_source_7_meaning
13205 , p_source_17 => p_source_17
13206 , x_transaction_coa_id => l_adr_transaction_coa_id
13207 , x_accounting_coa_id => l_adr_accounting_coa_id
13208 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13209 , x_flex_value_set_id => l_adr_flex_value_set_id
13210 , x_value_type_code => l_adr_value_type_code
13211 , x_value_combination_id => l_adr_value_combination_id
13212 , x_value_segment_code => l_adr_value_segment_code
13213 , p_side => 'ALL'
13217 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13214 , p_override_seg_flag => 'Y'
13215 );
13216
13218
13219 xla_ae_lines_pkg.set_segment(
13220 p_to_segment_code => 'GL_BALANCING'
13221 , p_segment_value => l_segment
13222 , p_from_segment_code => l_adr_value_segment_code
13223 , p_from_combination_id => l_adr_value_combination_id
13224 , p_value_type_code => l_adr_value_type_code
13225 , p_transaction_coa_id => l_adr_transaction_coa_id
13226 , p_accounting_coa_id => l_adr_accounting_coa_id
13227 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13228 , p_flex_value_set_id => l_adr_flex_value_set_id
13229 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
13230 , p_adr_type_code => 'S'
13231 , p_component_type => l_component_type
13232 , p_component_code => l_component_code
13233 , p_component_type_code => l_component_type_code
13234 , p_component_appl_id => l_component_appl_id
13235 , p_amb_context_code => l_amb_context_code
13236 , p_entity_code => 'AP_PAYMENTS'
13237 , p_event_class_code => 'RECONCILED PAYMENTS'
13238 , p_side => 'ALL'
13239 );
13240
13241 END IF;
13242
13243 --
13244 --
13245 END IF;
13246
13247 --
13248 -- Update the line information that should be overwritten
13249 --
13250 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13251 p_header_num => 1);
13252 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13253
13254 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13255
13256 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13257 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13258 END IF;
13259
13260 --
13261 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13262 --
13263 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13264 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13265 ELSE
13266 ---------------------------------------------------------------------------------------------------
13267 -- 4262811a Switch Sign
13268 ---------------------------------------------------------------------------------------------------
13269 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13270 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13271 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13272 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13273 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13274 -- 5132302
13275 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13276 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13277
13278 END IF;
13279
13280 -- 4955764
13281 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13282 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13283
13284
13285 XLA_AE_LINES_PKG.ValidateCurrentLine;
13286 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13287
13288 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13289 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13290 ,p_balance_type_code => l_balance_type_code);
13291
13292 END IF;
13293
13294 -----------------------------------------------------------------------------------------
13295 -- 4262811 Multiperiod Accounting
13296 -----------------------------------------------------------------------------------------
13297 -- No MPA option is assigned.
13298
13299
13300 END IF;
13301 END IF;
13302 --
13303
13304 --
13305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13306 trace
13307 (p_msg => 'END of AcctLineType_47'
13308 ,p_level => C_LEVEL_PROCEDURE
13309 ,p_module => l_log_module);
13310 END IF;
13311 --
13312 EXCEPTION
13313 WHEN xla_exceptions_pkg.application_exception THEN
13314 RAISE;
13315 WHEN OTHERS THEN
13316 xla_exceptions_pkg.raise_message
13317 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_47');
13318 END AcctLineType_47;
13319 --
13320
13321 ---------------------------------------
13322 --
13323 -- PRIVATE FUNCTION
13324 -- AcctLineType_48
13325 --
13326 ---------------------------------------
13327 PROCEDURE AcctLineType_48 (
13328 p_application_id IN NUMBER
13332 ,p_actual_flag IN OUT VARCHAR2
13329 ,p_event_id IN NUMBER
13330 ,p_calculate_acctd_flag IN VARCHAR2
13331 ,p_calculate_g_l_flag IN VARCHAR2
13333 ,p_balance_type_code OUT VARCHAR2
13334 ,p_gain_or_loss_ref OUT VARCHAR2
13335
13336 --Automatic Offsets Value
13337 , p_source_4 IN VARCHAR2
13338 , p_source_4_meaning IN VARCHAR2
13339 --Purchase Order Rate Variance Gain Account
13340 , p_source_5 IN NUMBER
13341 --Destination Type of the PO Distribution
13342 , p_source_7 IN VARCHAR2
13343 , p_source_7_meaning IN VARCHAR2
13344 --Purchase Order Rate Variance Loss Account
13345 , p_source_8 IN NUMBER
13346 --Payment Distribution (Payment Rate) Ledger Amount
13347 , p_source_9 IN NUMBER
13348 --Payment Distribution (Cleared Rate) Ledger Amount
13349 , p_source_10 IN NUMBER
13350 --Invoice Distribution Account
13351 , p_source_17 IN NUMBER
13352 --Invoice Distribution Type
13353 , p_source_20 IN VARCHAR2
13354 , p_source_20_meaning IN VARCHAR2
13355 --Automatic Offsets Flag
13356 , p_source_30 IN VARCHAR2
13357 , p_source_30_meaning IN VARCHAR2
13358 --When to Account for Payment Option
13359 , p_source_38 IN VARCHAR2
13360 --Payment Distribution Type
13361 , p_source_39 IN VARCHAR2
13362 , p_source_39_meaning IN VARCHAR2
13363 --Accounting Reversal Indicator
13364 , p_source_40 IN VARCHAR2
13365 --Business Flow Accounts Payable Application Identifier
13366 , p_source_42 IN NUMBER
13367 --Payment Distribution Identifier
13368 , p_source_47 IN NUMBER
13369 --Distribution Link Type
13370 , p_source_48 IN VARCHAR2
13371 --Override Accounted Amount Indicator
13372 , p_source_53 IN VARCHAR2
13373 , p_source_53_meaning IN VARCHAR2
13374 --Payment Supplier Identifier
13375 , p_source_54 IN NUMBER
13376 --Payment Supplier Site Identifier
13377 , p_source_55 IN NUMBER
13378 --Third Party Type
13379 , p_source_56 IN VARCHAR2
13380 --Payment Distribution Reversed Identifier
13381 , p_source_57 IN NUMBER
13382 --Invoice Distribution Tax Line Identifier
13383 , p_source_58 IN NUMBER
13384 --Invoice Distribution Summary Tax Line Identifier
13385 , p_source_59 IN NUMBER
13386 --Payment Type
13387 , p_source_60 IN VARCHAR2
13388 , p_source_60_meaning IN VARCHAR2
13389 --Invoice Distribution Amount of the Payment Distribution
13390 , p_source_61 IN NUMBER
13391 --Business Flow Invoice Distribution Type
13392 , p_source_62 IN VARCHAR2
13393 --Business Flow Invoice Entity Code
13394 , p_source_63 IN VARCHAR2
13395 --Business Flow Invoice Distribution Identifier
13396 , p_source_64 IN NUMBER
13397 --Business Flow Invoice Identifier
13398 , p_source_65 IN NUMBER
13399 --Invoice Distribution Tax Distribution Identifier from Tax
13400 , p_source_66 IN NUMBER
13401 --Accrue on Receipt Option
13402 , p_source_100 IN VARCHAR2
13403 , p_source_100_meaning IN VARCHAR2
13404 --Invoice Type Paid
13405 , p_source_101 IN VARCHAR2
13406 , p_source_101_meaning IN VARCHAR2
13407 )
13408 IS
13409
13410 l_component_type VARCHAR2(80);
13411 l_component_code VARCHAR2(30);
13412 l_component_type_code VARCHAR2(1);
13413 l_component_appl_id INTEGER;
13414 l_amb_context_code VARCHAR2(30);
13415 l_entity_code VARCHAR2(30);
13416 l_event_class_code VARCHAR2(30);
13417 l_ae_header_id NUMBER;
13418 l_event_type_code VARCHAR2(30);
13419 l_line_definition_code VARCHAR2(30);
13420 l_line_definition_owner_code VARCHAR2(1);
13421 --
13422 -- adr variables
13423 l_segment VARCHAR2(30);
13424 l_ccid NUMBER;
13425 l_adr_transaction_coa_id NUMBER;
13426 l_adr_accounting_coa_id NUMBER;
13427 l_adr_flexfield_segment_code VARCHAR2(30);
13428 l_adr_flex_value_set_id NUMBER;
13429 l_adr_value_type_code VARCHAR2(30);
13430 l_adr_value_combination_id NUMBER;
13431 l_adr_value_segment_code VARCHAR2(30);
13432
13433 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13434 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13435 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13436 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13437
13438 -- 4262811 Variables ------------------------------------------------------------------------------------------
13439 l_entered_amt_idx NUMBER;
13440 l_accted_amt_idx NUMBER;
13441 l_acc_rev_flag VARCHAR2(1);
13442 l_accrual_line_num NUMBER;
13443 l_tmp_amt NUMBER;
13444 l_acc_rev_natural_side_code VARCHAR2(1);
13445
13446 l_num_entries NUMBER;
13447 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13448 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13449 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13450 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13451 l_recog_line_1 NUMBER;
13452 l_recog_line_2 NUMBER;
13453
13457
13454 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13455 l_bflow_applied_to_amt NUMBER; -- 5132302
13456 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13458 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13459
13460 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13461 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13462
13463 ---------------------------------------------------------------------------------------------------------------
13464
13465
13466 --
13467 -- bulk performance
13468 --
13469 l_balance_type_code VARCHAR2(1);
13470 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13471 l_log_module VARCHAR2(240);
13472
13473 --
13474 -- Upgrade strategy
13475 --
13476 l_actual_upg_option VARCHAR2(1);
13477 l_enc_upg_option VARCHAR2(1);
13478
13479 --
13480 BEGIN
13481 --
13482 IF g_log_enabled THEN
13483 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
13484 END IF;
13485 --
13486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13487
13488 trace
13489 (p_msg => 'BEGIN of AcctLineType_48'
13490 ,p_level => C_LEVEL_PROCEDURE
13491 ,p_module => l_log_module);
13492
13493 END IF;
13494 --
13495 l_component_type := 'AMB_JLT';
13496 l_component_code := 'AP_ALC_TAX_EX_RATE_VAR_PMT';
13497 l_component_type_code := 'S';
13498 l_component_appl_id := 200;
13499 l_amb_context_code := 'DEFAULT';
13500 l_entity_code := 'AP_PAYMENTS';
13501 l_event_class_code := 'PAYMENTS';
13502 l_event_type_code := 'PAYMENTS_ALL';
13503 l_line_definition_owner_code := 'S';
13504 l_line_definition_code := 'CASH_PAYMENTS_ALL';
13505 --
13506 l_balance_type_code := 'A';
13507 l_segment := NULL;
13508 l_ccid := NULL;
13509 l_adr_transaction_coa_id := NULL;
13510 l_adr_accounting_coa_id := NULL;
13511 l_adr_flexfield_segment_code := NULL;
13512 l_adr_flex_value_set_id := NULL;
13513 l_adr_value_type_code := NULL;
13514 l_adr_value_combination_id := NULL;
13515 l_adr_value_segment_code := NULL;
13516
13517 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13518 l_bflow_class_code := ''; -- 4219869 Business Flow
13519 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13520 l_budgetary_control_flag := 'N';
13521
13522 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13523 l_bflow_applied_to_amt := NULL; -- 5132302
13524 l_entered_amt_idx := NULL; -- 4262811
13525 l_accted_amt_idx := NULL; -- 4262811
13526 l_acc_rev_flag := NULL; -- 4262811
13527 l_accrual_line_num := NULL; -- 4262811
13528 l_tmp_amt := NULL; -- 4262811
13529 --
13530 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13531 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
13532 return;
13533 END IF;
13534
13535 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13536 l_balance_type_code <> 'B' THEN
13537 IF NVL(p_source_38,'
13538 ') <> 'CLEAR_CLEAR' AND
13539 NVL(p_source_20,'
13540 ') = 'NONREC_TAX' AND
13541 NVL(p_source_100,'
13542 ') = 'Y' AND
13543 NVL(p_source_101,'
13544 ') <> 'INTEREST' AND
13545 (NVL(p_source_39,'
13546 ') = 'CASH' OR
13547 NVL(p_source_39,'
13548 ') = 'DISCOUNT') AND
13549 NVL(p_source_60,'
13550 ') <> 'R'
13551 THEN
13552
13553 --
13554 XLA_AE_LINES_PKG.SetNewLine;
13555
13556 p_balance_type_code := l_balance_type_code;
13557 -- set the flag so later we will know whether the gain loss line needs to be created
13558
13559 IF(l_balance_type_code = 'A' ) THEN
13560 p_actual_flag :='G';
13561 END IF;
13562
13563 --
13564 -- bulk performance
13565 --
13566 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13567 p_header_num => 0); -- 4262811
13568 --
13569 -- set accounting line options
13570 --
13571 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13572 p_natural_side_code => 'G'
13573 , p_gain_or_loss_flag => 'N'
13574 , p_gl_transfer_mode_code => 'S'
13575 , p_acct_entry_type_code => 'A'
13576 , p_switch_side_flag => ''
13577 , p_merge_duplicate_code => 'A'
13578 );
13579 --
13580 l_acc_rev_natural_side_code := 'C'; -- 4262811
13581 --
13582 --
13583 -- set accounting line type info
13584 --
13585 xla_ae_lines_pkg.SetAcctLineType
13586 (p_component_type => l_component_type
13587 ,p_event_type_code => l_event_type_code
13588 ,p_line_definition_owner_code => l_line_definition_owner_code
13592 ,p_accounting_line_appl_id => l_component_appl_id
13589 ,p_line_definition_code => l_line_definition_code
13590 ,p_accounting_line_code => l_component_code
13591 ,p_accounting_line_type_code => l_component_type_code
13593 ,p_amb_context_code => l_amb_context_code
13594 ,p_entity_code => l_entity_code
13595 ,p_event_class_code => l_event_class_code);
13596 --
13597 -- set accounting class
13598 --
13599 xla_ae_lines_pkg.SetAcctClass(
13600 p_accounting_class_code => 'TERV'
13601 , p_ae_header_id => l_ae_header_id
13602 );
13603
13604 --
13605 -- set rounding class
13606 --
13607 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13608 'TERV';
13609
13610 --
13611 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13612 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13613 --
13614 -- bulk performance
13615 --
13616 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13617
13618 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13619 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13620
13621 -- 4955764
13622 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13623 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13624
13625 -- 4458381 Public Sector Enh
13626
13627 --
13628 -- set accounting attributes for the line type
13629 --
13630 l_entered_amt_idx := NULL;
13631 l_accted_amt_idx := 10;
13632 l_bflow_applied_to_amt_idx := 2; -- 5132302
13633 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13634 l_rec_acct_attrs.array_char_value(1) := p_source_40;
13635 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
13636 l_rec_acct_attrs.array_num_value(2) := p_source_61;
13637 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
13638 l_rec_acct_attrs.array_num_value(3) := p_source_42;
13639 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13640 l_rec_acct_attrs.array_char_value(4) := p_source_62;
13641 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
13642 l_rec_acct_attrs.array_char_value(5) := p_source_63;
13643 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
13644 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
13645 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13646 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
13647 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
13648 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
13649 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
13650 l_rec_acct_attrs.array_char_value(9) := p_source_48;
13651 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
13652 l_rec_acct_attrs.array_num_value(10) := p_source_9;
13653 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
13654 l_rec_acct_attrs.array_char_value(11) := p_source_53;
13655 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
13656 l_rec_acct_attrs.array_num_value(12) := p_source_54;
13657 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
13658 l_rec_acct_attrs.array_num_value(13) := p_source_55;
13659 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
13660 l_rec_acct_attrs.array_char_value(14) := p_source_56;
13661 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
13662 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
13663 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
13664 l_rec_acct_attrs.array_char_value(16) := p_source_48;
13665 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
13666 l_rec_acct_attrs.array_num_value(17) := p_source_58;
13667 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
13668 l_rec_acct_attrs.array_num_value(18) := p_source_66;
13669 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
13670 l_rec_acct_attrs.array_num_value(19) := p_source_59;
13671
13672 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13673 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13674
13675 ---------------------------------------------------------------------------------------------------------------
13676 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13677 ---------------------------------------------------------------------------------------------------------------
13678 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13679
13680 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13681 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13682
13683 IF xla_accounting_cache_pkg.GetValueChar
13684 (p_source_code => 'LEDGER_CATEGORY_CODE'
13688 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13685 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13686 AND l_bflow_method_code = 'PRIOR_ENTRY'
13687 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13689 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13690 )
13691 THEN
13692 xla_ae_lines_pkg.BflowUpgEntry
13693 (p_business_method_code => l_bflow_method_code
13694 ,p_business_class_code => l_bflow_class_code
13695 ,p_balance_type => l_balance_type_code);
13696 ELSE
13697 NULL;
13698 -- No business flow processing for business flow method of NONE.
13699 END IF;
13700
13701 --
13702 -- call analytical criteria
13703 --
13704
13705 --
13706 -- call description
13707 --
13708 -- No description or it is inherited.
13709 --
13710 -- call ADRs
13711 -- Bug 4922099
13712 --
13713 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13714 (NVL(l_actual_upg_option, 'N') = 'O') OR
13715 (NVL(l_enc_upg_option, 'N') = 'O')
13716 )
13717 THEN
13718 NULL;
13719 --
13720 --
13721
13722 l_ccid := AcctDerRule_22(
13723 p_application_id => p_application_id
13724 , p_ae_header_id => l_ae_header_id
13725 , p_source_4 => p_source_4
13726 , p_source_4_meaning => p_source_4_meaning
13727 , p_source_5 => p_source_5
13728 , p_source_7 => p_source_7
13729 , p_source_7_meaning => p_source_7_meaning
13730 , p_source_8 => p_source_8
13731 , p_source_9 => p_source_9
13732 , p_source_10 => p_source_10
13733 , p_source_17 => p_source_17
13734 , p_source_30 => p_source_30
13735 , p_source_30_meaning => p_source_30_meaning
13736 , x_transaction_coa_id => l_adr_transaction_coa_id
13737 , x_accounting_coa_id => l_adr_accounting_coa_id
13738 , x_value_type_code => l_adr_value_type_code
13739 , p_side => 'ALL'
13740 );
13741
13742 xla_ae_lines_pkg.set_ccid(
13743 p_code_combination_id => l_ccid
13744 , p_value_type_code => l_adr_value_type_code
13745 , p_transaction_coa_id => l_adr_transaction_coa_id
13746 , p_accounting_coa_id => l_adr_accounting_coa_id
13747 , p_adr_code => 'AP_ERV_TAXERV_CASH'
13748 , p_adr_type_code => 'S'
13749 , p_component_type => l_component_type
13750 , p_component_code => l_component_code
13751 , p_component_type_code => l_component_type_code
13752 , p_component_appl_id => l_component_appl_id
13753 , p_amb_context_code => l_amb_context_code
13754 , p_side => 'ALL'
13755 );
13756
13757
13758 l_segment := AcctDerRule_5(
13759 p_application_id => p_application_id
13760 , p_ae_header_id => l_ae_header_id
13761 , p_source_4 => p_source_4
13762 , p_source_4_meaning => p_source_4_meaning
13763 , p_source_5 => p_source_5
13764 , p_source_7 => p_source_7
13765 , p_source_7_meaning => p_source_7_meaning
13766 , x_transaction_coa_id => l_adr_transaction_coa_id
13767 , x_accounting_coa_id => l_adr_accounting_coa_id
13768 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13769 , x_flex_value_set_id => l_adr_flex_value_set_id
13770 , x_value_type_code => l_adr_value_type_code
13771 , x_value_combination_id => l_adr_value_combination_id
13772 , x_value_segment_code => l_adr_value_segment_code
13773 , p_side => 'CREDIT'
13774 , p_override_seg_flag => 'Y'
13775 );
13776
13777 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13778
13779 xla_ae_lines_pkg.set_segment(
13780 p_to_segment_code => 'GL_ACCOUNT'
13781 , p_segment_value => l_segment
13782 , p_from_segment_code => l_adr_value_segment_code
13783 , p_from_combination_id => l_adr_value_combination_id
13784 , p_value_type_code => l_adr_value_type_code
13785 , p_transaction_coa_id => l_adr_transaction_coa_id
13786 , p_accounting_coa_id => l_adr_accounting_coa_id
13787 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13788 , p_flex_value_set_id => l_adr_flex_value_set_id
13789 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13790 , p_adr_type_code => 'S'
13791 , p_component_type => l_component_type
13792 , p_component_code => l_component_code
13793 , p_component_type_code => l_component_type_code
13794 , p_component_appl_id => l_component_appl_id
13795 , p_amb_context_code => l_amb_context_code
13796 , p_entity_code => 'AP_PAYMENTS'
13797 , p_event_class_code => 'PAYMENTS'
13798 , p_side => 'CREDIT'
13799 );
13800
13801 END IF;
13802
13803 l_segment := AcctDerRule_6(
13804 p_application_id => p_application_id
13805 , p_ae_header_id => l_ae_header_id
13806 , p_source_4 => p_source_4
13807 , p_source_4_meaning => p_source_4_meaning
13811 , x_transaction_coa_id => l_adr_transaction_coa_id
13808 , p_source_7 => p_source_7
13809 , p_source_7_meaning => p_source_7_meaning
13810 , p_source_8 => p_source_8
13812 , x_accounting_coa_id => l_adr_accounting_coa_id
13813 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13814 , x_flex_value_set_id => l_adr_flex_value_set_id
13815 , x_value_type_code => l_adr_value_type_code
13816 , x_value_combination_id => l_adr_value_combination_id
13817 , x_value_segment_code => l_adr_value_segment_code
13818 , p_side => 'DEBIT'
13819 , p_override_seg_flag => 'Y'
13820 );
13821
13822 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13823
13824 xla_ae_lines_pkg.set_segment(
13825 p_to_segment_code => 'GL_ACCOUNT'
13826 , p_segment_value => l_segment
13827 , p_from_segment_code => l_adr_value_segment_code
13828 , p_from_combination_id => l_adr_value_combination_id
13829 , p_value_type_code => l_adr_value_type_code
13830 , p_transaction_coa_id => l_adr_transaction_coa_id
13831 , p_accounting_coa_id => l_adr_accounting_coa_id
13832 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13833 , p_flex_value_set_id => l_adr_flex_value_set_id
13834 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13835 , p_adr_type_code => 'S'
13836 , p_component_type => l_component_type
13837 , p_component_code => l_component_code
13838 , p_component_type_code => l_component_type_code
13839 , p_component_appl_id => l_component_appl_id
13840 , p_amb_context_code => l_amb_context_code
13841 , p_entity_code => 'AP_PAYMENTS'
13842 , p_event_class_code => 'PAYMENTS'
13843 , p_side => 'DEBIT'
13844 );
13845
13846 END IF;
13847
13848 l_segment := AcctDerRule_15(
13849 p_application_id => p_application_id
13850 , p_ae_header_id => l_ae_header_id
13851 , p_source_4 => p_source_4
13852 , p_source_4_meaning => p_source_4_meaning
13853 , p_source_7 => p_source_7
13854 , p_source_7_meaning => p_source_7_meaning
13855 , p_source_17 => p_source_17
13856 , x_transaction_coa_id => l_adr_transaction_coa_id
13857 , x_accounting_coa_id => l_adr_accounting_coa_id
13858 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13859 , x_flex_value_set_id => l_adr_flex_value_set_id
13860 , x_value_type_code => l_adr_value_type_code
13861 , x_value_combination_id => l_adr_value_combination_id
13862 , x_value_segment_code => l_adr_value_segment_code
13863 , p_side => 'ALL'
13864 , p_override_seg_flag => 'Y'
13865 );
13866
13867 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13868
13869 xla_ae_lines_pkg.set_segment(
13870 p_to_segment_code => 'GL_BALANCING'
13871 , p_segment_value => l_segment
13872 , p_from_segment_code => l_adr_value_segment_code
13873 , p_from_combination_id => l_adr_value_combination_id
13874 , p_value_type_code => l_adr_value_type_code
13875 , p_transaction_coa_id => l_adr_transaction_coa_id
13876 , p_accounting_coa_id => l_adr_accounting_coa_id
13877 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13878 , p_flex_value_set_id => l_adr_flex_value_set_id
13879 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
13880 , p_adr_type_code => 'S'
13881 , p_component_type => l_component_type
13882 , p_component_code => l_component_code
13883 , p_component_type_code => l_component_type_code
13884 , p_component_appl_id => l_component_appl_id
13885 , p_amb_context_code => l_amb_context_code
13886 , p_entity_code => 'AP_PAYMENTS'
13887 , p_event_class_code => 'PAYMENTS'
13888 , p_side => 'ALL'
13889 );
13890
13891 END IF;
13892
13893 --
13894 --
13895 END IF;
13896 --
13897 -- Bug 4922099
13898 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13899 (NVL(l_enc_upg_option, 'N') = 'O')
13900 ) AND
13901 (l_bflow_method_code = 'PRIOR_ENTRY')
13902 )
13903 THEN
13904 IF
13905 --
13906 1 = 2
13907 --
13908 THEN
13909 xla_accounting_err_pkg.build_message
13910 (p_appli_s_name => 'XLA'
13911 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13912 ,p_token_1 => 'LINE_NUMBER'
13913 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13914 ,p_token_2 => 'LINE_TYPE_NAME'
13915 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13916 l_component_type
13920 ,l_amb_context_code
13917 ,l_component_code
13918 ,l_component_type_code
13919 ,l_component_appl_id
13921 ,l_entity_code
13922 ,l_event_class_code
13923 )
13924 ,p_token_3 => 'OWNER'
13925 ,p_value_3 => xla_lookups_pkg.get_meaning(
13926 p_lookup_type => 'XLA_OWNER_TYPE'
13927 ,p_lookup_code => l_component_type_code
13928 )
13929 ,p_token_4 => 'PRODUCT_NAME'
13930 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13931 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13932 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13933 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13934 ,p_ae_header_id => NULL
13935 );
13936
13937 IF (C_LEVEL_ERROR>= g_log_level) THEN
13938 trace
13939 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13940 ,p_level => C_LEVEL_ERROR
13941 ,p_module => l_log_module);
13942 END IF;
13943 END IF;
13944 END IF;
13945 --
13946 --
13947 ------------------------------------------------------------------------------------------------
13948 -- 4219869 Business Flow
13949 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13950 -- Prior Entry. Currently, the following code is always generated.
13951 ------------------------------------------------------------------------------------------------
13952 XLA_AE_LINES_PKG.ValidateCurrentLine;
13953
13954 ------------------------------------------------------------------------------------
13955 -- 4219869 Business Flow
13956 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13957 ------------------------------------------------------------------------------------
13958 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13959
13960 ----------------------------------------------------------------------------------
13961 -- 4219869 Business Flow
13962 -- Update journal entry status -- Need to generate this within IF <condition>
13963 ----------------------------------------------------------------------------------
13964 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13965 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13966 ,p_balance_type_code => l_balance_type_code
13967 );
13968
13969 -------------------------------------------------------------------------------------------
13970 -- 4262811 - Generate the Accrual Reversal lines
13971 -------------------------------------------------------------------------------------------
13972 BEGIN
13973 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13974 (g_array_event(p_event_id).array_value_num('header_index'));
13975 IF l_acc_rev_flag IS NULL THEN
13976 l_acc_rev_flag := 'N';
13977 END IF;
13978 EXCEPTION
13979 WHEN OTHERS THEN
13980 l_acc_rev_flag := 'N';
13981 END;
13982 --
13983 IF (l_acc_rev_flag = 'Y') THEN
13984
13985 -- 4645092 ------------------------------------------------------------------------------
13986 -- To allow MPA report to determine if it should generate report process
13987 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13988 ------------------------------------------------------------------------------------------
13989
13990 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13991 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13992 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13993 -- call ADRs
13994 -- Bug 4922099
13995 --
13996 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13997 (NVL(l_actual_upg_option, 'N') = 'O') OR
13998 (NVL(l_enc_upg_option, 'N') = 'O')
13999 )
14000 THEN
14001 NULL;
14002 --
14003 --
14004
14005 l_ccid := AcctDerRule_22(
14006 p_application_id => p_application_id
14007 , p_ae_header_id => l_ae_header_id
14008 , p_source_4 => p_source_4
14009 , p_source_4_meaning => p_source_4_meaning
14010 , p_source_5 => p_source_5
14011 , p_source_7 => p_source_7
14012 , p_source_7_meaning => p_source_7_meaning
14013 , p_source_8 => p_source_8
14014 , p_source_9 => p_source_9
14015 , p_source_10 => p_source_10
14016 , p_source_17 => p_source_17
14017 , p_source_30 => p_source_30
14018 , p_source_30_meaning => p_source_30_meaning
14019 , x_transaction_coa_id => l_adr_transaction_coa_id
14023 );
14020 , x_accounting_coa_id => l_adr_accounting_coa_id
14021 , x_value_type_code => l_adr_value_type_code
14022 , p_side => 'ALL'
14024
14025 xla_ae_lines_pkg.set_ccid(
14026 p_code_combination_id => l_ccid
14027 , p_value_type_code => l_adr_value_type_code
14028 , p_transaction_coa_id => l_adr_transaction_coa_id
14029 , p_accounting_coa_id => l_adr_accounting_coa_id
14030 , p_adr_code => 'AP_ERV_TAXERV_CASH'
14031 , p_adr_type_code => 'S'
14032 , p_component_type => l_component_type
14033 , p_component_code => l_component_code
14034 , p_component_type_code => l_component_type_code
14035 , p_component_appl_id => l_component_appl_id
14036 , p_amb_context_code => l_amb_context_code
14037 , p_side => 'ALL'
14038 );
14039
14040
14041 l_segment := AcctDerRule_5(
14042 p_application_id => p_application_id
14043 , p_ae_header_id => l_ae_header_id
14044 , p_source_4 => p_source_4
14045 , p_source_4_meaning => p_source_4_meaning
14046 , p_source_5 => p_source_5
14047 , p_source_7 => p_source_7
14048 , p_source_7_meaning => p_source_7_meaning
14049 , x_transaction_coa_id => l_adr_transaction_coa_id
14050 , x_accounting_coa_id => l_adr_accounting_coa_id
14051 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14052 , x_flex_value_set_id => l_adr_flex_value_set_id
14053 , x_value_type_code => l_adr_value_type_code
14054 , x_value_combination_id => l_adr_value_combination_id
14055 , x_value_segment_code => l_adr_value_segment_code
14056 , p_side => 'CREDIT'
14057 , p_override_seg_flag => 'Y'
14058 );
14059
14060 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14061
14062 xla_ae_lines_pkg.set_segment(
14063 p_to_segment_code => 'GL_ACCOUNT'
14064 , p_segment_value => l_segment
14065 , p_from_segment_code => l_adr_value_segment_code
14066 , p_from_combination_id => l_adr_value_combination_id
14067 , p_value_type_code => l_adr_value_type_code
14068 , p_transaction_coa_id => l_adr_transaction_coa_id
14069 , p_accounting_coa_id => l_adr_accounting_coa_id
14070 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14071 , p_flex_value_set_id => l_adr_flex_value_set_id
14072 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14073 , p_adr_type_code => 'S'
14074 , p_component_type => l_component_type
14075 , p_component_code => l_component_code
14076 , p_component_type_code => l_component_type_code
14077 , p_component_appl_id => l_component_appl_id
14078 , p_amb_context_code => l_amb_context_code
14079 , p_entity_code => 'AP_PAYMENTS'
14080 , p_event_class_code => 'PAYMENTS'
14081 , p_side => 'CREDIT'
14082 );
14083
14084 END IF;
14085
14086 l_segment := AcctDerRule_6(
14087 p_application_id => p_application_id
14088 , p_ae_header_id => l_ae_header_id
14089 , p_source_4 => p_source_4
14090 , p_source_4_meaning => p_source_4_meaning
14091 , p_source_7 => p_source_7
14092 , p_source_7_meaning => p_source_7_meaning
14093 , p_source_8 => p_source_8
14094 , x_transaction_coa_id => l_adr_transaction_coa_id
14095 , x_accounting_coa_id => l_adr_accounting_coa_id
14096 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14097 , x_flex_value_set_id => l_adr_flex_value_set_id
14098 , x_value_type_code => l_adr_value_type_code
14099 , x_value_combination_id => l_adr_value_combination_id
14100 , x_value_segment_code => l_adr_value_segment_code
14101 , p_side => 'DEBIT'
14102 , p_override_seg_flag => 'Y'
14103 );
14104
14105 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14106
14107 xla_ae_lines_pkg.set_segment(
14108 p_to_segment_code => 'GL_ACCOUNT'
14109 , p_segment_value => l_segment
14110 , p_from_segment_code => l_adr_value_segment_code
14111 , p_from_combination_id => l_adr_value_combination_id
14112 , p_value_type_code => l_adr_value_type_code
14113 , p_transaction_coa_id => l_adr_transaction_coa_id
14114 , p_accounting_coa_id => l_adr_accounting_coa_id
14115 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14116 , p_flex_value_set_id => l_adr_flex_value_set_id
14117 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14118 , p_adr_type_code => 'S'
14119 , p_component_type => l_component_type
14120 , p_component_code => l_component_code
14121 , p_component_type_code => l_component_type_code
14122 , p_component_appl_id => l_component_appl_id
14123 , p_amb_context_code => l_amb_context_code
14124 , p_entity_code => 'AP_PAYMENTS'
14125 , p_event_class_code => 'PAYMENTS'
14126 , p_side => 'DEBIT'
14127 );
14128
14129 END IF;
14130
14131 l_segment := AcctDerRule_15(
14135 , p_source_4_meaning => p_source_4_meaning
14132 p_application_id => p_application_id
14133 , p_ae_header_id => l_ae_header_id
14134 , p_source_4 => p_source_4
14136 , p_source_7 => p_source_7
14137 , p_source_7_meaning => p_source_7_meaning
14138 , p_source_17 => p_source_17
14139 , x_transaction_coa_id => l_adr_transaction_coa_id
14140 , x_accounting_coa_id => l_adr_accounting_coa_id
14141 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14142 , x_flex_value_set_id => l_adr_flex_value_set_id
14143 , x_value_type_code => l_adr_value_type_code
14144 , x_value_combination_id => l_adr_value_combination_id
14145 , x_value_segment_code => l_adr_value_segment_code
14146 , p_side => 'ALL'
14147 , p_override_seg_flag => 'Y'
14148 );
14149
14150 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14151
14152 xla_ae_lines_pkg.set_segment(
14153 p_to_segment_code => 'GL_BALANCING'
14154 , p_segment_value => l_segment
14155 , p_from_segment_code => l_adr_value_segment_code
14156 , p_from_combination_id => l_adr_value_combination_id
14157 , p_value_type_code => l_adr_value_type_code
14158 , p_transaction_coa_id => l_adr_transaction_coa_id
14159 , p_accounting_coa_id => l_adr_accounting_coa_id
14160 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14161 , p_flex_value_set_id => l_adr_flex_value_set_id
14162 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
14163 , p_adr_type_code => 'S'
14164 , p_component_type => l_component_type
14165 , p_component_code => l_component_code
14166 , p_component_type_code => l_component_type_code
14167 , p_component_appl_id => l_component_appl_id
14168 , p_amb_context_code => l_amb_context_code
14169 , p_entity_code => 'AP_PAYMENTS'
14170 , p_event_class_code => 'PAYMENTS'
14171 , p_side => 'ALL'
14172 );
14173
14174 END IF;
14175
14176 --
14177 --
14178 END IF;
14179
14180 --
14181 -- Update the line information that should be overwritten
14182 --
14183 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14184 p_header_num => 1);
14185 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14186
14187 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14188
14189 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14190 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14191 END IF;
14192
14193 --
14194 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14195 --
14196 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14197 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14198 ELSE
14199 ---------------------------------------------------------------------------------------------------
14200 -- 4262811a Switch Sign
14201 ---------------------------------------------------------------------------------------------------
14202 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14203 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14204 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14205 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14206 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14207 -- 5132302
14208 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14209 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14210
14211 END IF;
14212
14213 -- 4955764
14214 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14215 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14216
14217
14218 XLA_AE_LINES_PKG.ValidateCurrentLine;
14219 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14220
14221 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14222 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14223 ,p_balance_type_code => l_balance_type_code);
14224
14225 END IF;
14226
14227 -----------------------------------------------------------------------------------------
14228 -- 4262811 Multiperiod Accounting
14229 -----------------------------------------------------------------------------------------
14230 -- No MPA option is assigned.
14231
14232
14233 END IF;
14234 END IF;
14235 --
14236
14237 --
14238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14239 trace
14240 (p_msg => 'END of AcctLineType_48'
14244 --
14241 ,p_level => C_LEVEL_PROCEDURE
14242 ,p_module => l_log_module);
14243 END IF;
14245 EXCEPTION
14246 WHEN xla_exceptions_pkg.application_exception THEN
14247 RAISE;
14248 WHEN OTHERS THEN
14249 xla_exceptions_pkg.raise_message
14250 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_48');
14251 END AcctLineType_48;
14252 --
14253
14254 ---------------------------------------
14255 --
14256 -- PRIVATE FUNCTION
14257 -- AcctLineType_49
14258 --
14259 ---------------------------------------
14260 PROCEDURE AcctLineType_49 (
14261 p_application_id IN NUMBER
14262 ,p_event_id IN NUMBER
14263 ,p_calculate_acctd_flag IN VARCHAR2
14264 ,p_calculate_g_l_flag IN VARCHAR2
14265 ,p_actual_flag IN OUT VARCHAR2
14266 ,p_balance_type_code OUT VARCHAR2
14267 ,p_gain_or_loss_ref OUT VARCHAR2
14268
14269 --Automatic Offsets Value
14270 , p_source_4 IN VARCHAR2
14271 , p_source_4_meaning IN VARCHAR2
14272 --Purchase Order Rate Variance Gain Account
14273 , p_source_5 IN NUMBER
14274 --Destination Type of the PO Distribution
14275 , p_source_7 IN VARCHAR2
14276 , p_source_7_meaning IN VARCHAR2
14277 --Purchase Order Rate Variance Loss Account
14278 , p_source_8 IN NUMBER
14279 --Payment Distribution (Payment Rate) Ledger Amount
14280 , p_source_9 IN NUMBER
14281 --Payment Distribution (Cleared Rate) Ledger Amount
14282 , p_source_10 IN NUMBER
14283 --Invoice Distribution Account
14284 , p_source_17 IN NUMBER
14285 --Invoice Distribution Type
14286 , p_source_20 IN VARCHAR2
14287 , p_source_20_meaning IN VARCHAR2
14288 --Automatic Offsets Flag
14289 , p_source_30 IN VARCHAR2
14290 , p_source_30_meaning IN VARCHAR2
14291 --When to Account for Payment Option
14292 , p_source_38 IN VARCHAR2
14293 --Payment Distribution Type
14294 , p_source_39 IN VARCHAR2
14295 , p_source_39_meaning IN VARCHAR2
14296 --Accounting Reversal Indicator
14297 , p_source_40 IN VARCHAR2
14298 --Business Flow Accounts Payable Application Identifier
14299 , p_source_42 IN NUMBER
14300 --Payment Distribution Identifier
14301 , p_source_47 IN NUMBER
14302 --Distribution Link Type
14303 , p_source_48 IN VARCHAR2
14304 --Override Accounted Amount Indicator
14305 , p_source_53 IN VARCHAR2
14306 , p_source_53_meaning IN VARCHAR2
14307 --Payment Supplier Identifier
14308 , p_source_54 IN NUMBER
14309 --Payment Supplier Site Identifier
14310 , p_source_55 IN NUMBER
14311 --Third Party Type
14312 , p_source_56 IN VARCHAR2
14313 --Payment Distribution Reversed Identifier
14314 , p_source_57 IN NUMBER
14315 --Invoice Distribution Tax Line Identifier
14316 , p_source_58 IN NUMBER
14317 --Invoice Distribution Summary Tax Line Identifier
14318 , p_source_59 IN NUMBER
14319 --Payment Type
14320 , p_source_60 IN VARCHAR2
14321 , p_source_60_meaning IN VARCHAR2
14322 --Business Flow Invoice Distribution Type
14323 , p_source_62 IN VARCHAR2
14324 --Business Flow Invoice Entity Code
14325 , p_source_63 IN VARCHAR2
14326 --Business Flow Invoice Distribution Identifier
14327 , p_source_64 IN NUMBER
14328 --Business Flow Invoice Identifier
14329 , p_source_65 IN NUMBER
14330 --Invoice Distribution Tax Distribution Identifier from Tax
14331 , p_source_66 IN NUMBER
14332 --Accrue on Receipt Option
14333 , p_source_100 IN VARCHAR2
14334 , p_source_100_meaning IN VARCHAR2
14335 )
14336 IS
14337
14338 l_component_type VARCHAR2(80);
14339 l_component_code VARCHAR2(30);
14340 l_component_type_code VARCHAR2(1);
14341 l_component_appl_id INTEGER;
14342 l_amb_context_code VARCHAR2(30);
14343 l_entity_code VARCHAR2(30);
14344 l_event_class_code VARCHAR2(30);
14345 l_ae_header_id NUMBER;
14346 l_event_type_code VARCHAR2(30);
14347 l_line_definition_code VARCHAR2(30);
14348 l_line_definition_owner_code VARCHAR2(1);
14349 --
14350 -- adr variables
14351 l_segment VARCHAR2(30);
14352 l_ccid NUMBER;
14353 l_adr_transaction_coa_id NUMBER;
14354 l_adr_accounting_coa_id NUMBER;
14355 l_adr_flexfield_segment_code VARCHAR2(30);
14356 l_adr_flex_value_set_id NUMBER;
14357 l_adr_value_type_code VARCHAR2(30);
14358 l_adr_value_combination_id NUMBER;
14359 l_adr_value_segment_code VARCHAR2(30);
14360
14361 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14362 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14363 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14364 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14365
14366 -- 4262811 Variables ------------------------------------------------------------------------------------------
14367 l_entered_amt_idx NUMBER;
14368 l_accted_amt_idx NUMBER;
14369 l_acc_rev_flag VARCHAR2(1);
14370 l_accrual_line_num NUMBER;
14371 l_tmp_amt NUMBER;
14372 l_acc_rev_natural_side_code VARCHAR2(1);
14373
14374 l_num_entries NUMBER;
14378 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14375 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14376 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14377 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14379 l_recog_line_1 NUMBER;
14380 l_recog_line_2 NUMBER;
14381
14382 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14383 l_bflow_applied_to_amt NUMBER; -- 5132302
14384 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14385
14386 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14387
14388 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14389 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14390
14391 ---------------------------------------------------------------------------------------------------------------
14392
14393
14394 --
14395 -- bulk performance
14396 --
14397 l_balance_type_code VARCHAR2(1);
14398 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14399 l_log_module VARCHAR2(240);
14400
14401 --
14402 -- Upgrade strategy
14403 --
14404 l_actual_upg_option VARCHAR2(1);
14405 l_enc_upg_option VARCHAR2(1);
14406
14407 --
14408 BEGIN
14409 --
14410 IF g_log_enabled THEN
14411 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
14412 END IF;
14413 --
14414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14415
14416 trace
14417 (p_msg => 'BEGIN of AcctLineType_49'
14418 ,p_level => C_LEVEL_PROCEDURE
14419 ,p_module => l_log_module);
14420
14421 END IF;
14422 --
14423 l_component_type := 'AMB_JLT';
14424 l_component_code := 'AP_ALC_TAX_EX_RATE_VAR_REF';
14425 l_component_type_code := 'S';
14426 l_component_appl_id := 200;
14427 l_amb_context_code := 'DEFAULT';
14428 l_entity_code := 'AP_PAYMENTS';
14429 l_event_class_code := 'REFUNDS';
14430 l_event_type_code := 'REFUNDS_ALL';
14431 l_line_definition_owner_code := 'S';
14432 l_line_definition_code := 'CASH_REFUNDS_ALL';
14433 --
14434 l_balance_type_code := 'A';
14435 l_segment := NULL;
14436 l_ccid := NULL;
14437 l_adr_transaction_coa_id := NULL;
14438 l_adr_accounting_coa_id := NULL;
14439 l_adr_flexfield_segment_code := NULL;
14440 l_adr_flex_value_set_id := NULL;
14441 l_adr_value_type_code := NULL;
14442 l_adr_value_combination_id := NULL;
14443 l_adr_value_segment_code := NULL;
14444
14445 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14446 l_bflow_class_code := ''; -- 4219869 Business Flow
14447 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14448 l_budgetary_control_flag := 'N';
14449
14450 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14451 l_bflow_applied_to_amt := NULL; -- 5132302
14452 l_entered_amt_idx := NULL; -- 4262811
14453 l_accted_amt_idx := NULL; -- 4262811
14454 l_acc_rev_flag := NULL; -- 4262811
14455 l_accrual_line_num := NULL; -- 4262811
14456 l_tmp_amt := NULL; -- 4262811
14457 --
14458 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14459 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
14460 return;
14461 END IF;
14462
14463 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14464 l_balance_type_code <> 'B' THEN
14465 IF NVL(p_source_38,'
14466 ') <> 'CLEAR_CLEAR' AND
14467 NVL(p_source_20,'
14468 ') = 'NONREC_TAX' AND
14469 NVL(p_source_100,'
14470 ') = 'Y' AND
14471 (NVL(p_source_39,'
14472 ') = 'CASH' OR
14473 NVL(p_source_39,'
14474 ') = 'DISCOUNT') AND
14475 NVL(p_source_60,'
14476 ') = 'R'
14477 THEN
14478
14479 --
14480 XLA_AE_LINES_PKG.SetNewLine;
14481
14482 p_balance_type_code := l_balance_type_code;
14483 -- set the flag so later we will know whether the gain loss line needs to be created
14484
14485 IF(l_balance_type_code = 'A' ) THEN
14486 p_actual_flag :='G';
14487 END IF;
14488
14489 --
14490 -- bulk performance
14491 --
14492 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14493 p_header_num => 0); -- 4262811
14494 --
14495 -- set accounting line options
14496 --
14497 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14498 p_natural_side_code => 'G'
14499 , p_gain_or_loss_flag => 'N'
14500 , p_gl_transfer_mode_code => 'S'
14501 , p_acct_entry_type_code => 'A'
14502 , p_switch_side_flag => ''
14503 , p_merge_duplicate_code => 'A'
14504 );
14505 --
14506 l_acc_rev_natural_side_code := 'C'; -- 4262811
14507 --
14508 --
14512 (p_component_type => l_component_type
14509 -- set accounting line type info
14510 --
14511 xla_ae_lines_pkg.SetAcctLineType
14513 ,p_event_type_code => l_event_type_code
14514 ,p_line_definition_owner_code => l_line_definition_owner_code
14515 ,p_line_definition_code => l_line_definition_code
14516 ,p_accounting_line_code => l_component_code
14517 ,p_accounting_line_type_code => l_component_type_code
14518 ,p_accounting_line_appl_id => l_component_appl_id
14519 ,p_amb_context_code => l_amb_context_code
14520 ,p_entity_code => l_entity_code
14521 ,p_event_class_code => l_event_class_code);
14522 --
14523 -- set accounting class
14524 --
14525 xla_ae_lines_pkg.SetAcctClass(
14526 p_accounting_class_code => 'TERV'
14527 , p_ae_header_id => l_ae_header_id
14528 );
14529
14530 --
14531 -- set rounding class
14532 --
14533 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14534 'TERV';
14535
14536 --
14537 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14538 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14539 --
14540 -- bulk performance
14541 --
14542 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14543
14544 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14545 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14546
14547 -- 4955764
14548 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14549 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14550
14551 -- 4458381 Public Sector Enh
14552
14553 --
14554 -- set accounting attributes for the line type
14555 --
14556 l_entered_amt_idx := NULL;
14557 l_accted_amt_idx := 9;
14558 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14559 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14560 l_rec_acct_attrs.array_char_value(1) := p_source_40;
14561 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
14562 l_rec_acct_attrs.array_num_value(2) := p_source_42;
14563 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14564 l_rec_acct_attrs.array_char_value(3) := p_source_62;
14565 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
14566 l_rec_acct_attrs.array_char_value(4) := p_source_63;
14567 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
14568 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
14569 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14570 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
14571 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
14572 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
14573 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
14574 l_rec_acct_attrs.array_char_value(8) := p_source_48;
14575 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
14576 l_rec_acct_attrs.array_num_value(9) := p_source_9;
14577 l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
14578 l_rec_acct_attrs.array_char_value(10) := p_source_53;
14579 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
14580 l_rec_acct_attrs.array_num_value(11) := p_source_54;
14581 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
14582 l_rec_acct_attrs.array_num_value(12) := p_source_55;
14583 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
14584 l_rec_acct_attrs.array_char_value(13) := p_source_56;
14585 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
14586 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
14587 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
14588 l_rec_acct_attrs.array_char_value(15) := p_source_48;
14589 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
14590 l_rec_acct_attrs.array_num_value(16) := p_source_58;
14591 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
14592 l_rec_acct_attrs.array_num_value(17) := p_source_66;
14593 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
14594 l_rec_acct_attrs.array_num_value(18) := p_source_59;
14595
14596 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14597 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14598
14599 ---------------------------------------------------------------------------------------------------------------
14600 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14601 ---------------------------------------------------------------------------------------------------------------
14602 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14603
14604 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14605 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14606
14610 AND l_bflow_method_code = 'PRIOR_ENTRY'
14607 IF xla_accounting_cache_pkg.GetValueChar
14608 (p_source_code => 'LEDGER_CATEGORY_CODE'
14609 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14611 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14612 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14613 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14614 )
14615 THEN
14616 xla_ae_lines_pkg.BflowUpgEntry
14617 (p_business_method_code => l_bflow_method_code
14618 ,p_business_class_code => l_bflow_class_code
14619 ,p_balance_type => l_balance_type_code);
14620 ELSE
14621 NULL;
14622 -- No business flow processing for business flow method of NONE.
14623 END IF;
14624
14625 --
14626 -- call analytical criteria
14627 --
14628
14629 --
14630 -- call description
14631 --
14632 -- No description or it is inherited.
14633 --
14634 -- call ADRs
14635 -- Bug 4922099
14636 --
14637 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14638 (NVL(l_actual_upg_option, 'N') = 'O') OR
14639 (NVL(l_enc_upg_option, 'N') = 'O')
14640 )
14641 THEN
14642 NULL;
14643 --
14644 --
14645
14646 l_ccid := AcctDerRule_22(
14647 p_application_id => p_application_id
14648 , p_ae_header_id => l_ae_header_id
14649 , p_source_4 => p_source_4
14650 , p_source_4_meaning => p_source_4_meaning
14651 , p_source_5 => p_source_5
14652 , p_source_7 => p_source_7
14653 , p_source_7_meaning => p_source_7_meaning
14654 , p_source_8 => p_source_8
14655 , p_source_9 => p_source_9
14656 , p_source_10 => p_source_10
14657 , p_source_17 => p_source_17
14658 , p_source_30 => p_source_30
14659 , p_source_30_meaning => p_source_30_meaning
14660 , x_transaction_coa_id => l_adr_transaction_coa_id
14661 , x_accounting_coa_id => l_adr_accounting_coa_id
14662 , x_value_type_code => l_adr_value_type_code
14663 , p_side => 'ALL'
14664 );
14665
14666 xla_ae_lines_pkg.set_ccid(
14667 p_code_combination_id => l_ccid
14668 , p_value_type_code => l_adr_value_type_code
14669 , p_transaction_coa_id => l_adr_transaction_coa_id
14670 , p_accounting_coa_id => l_adr_accounting_coa_id
14671 , p_adr_code => 'AP_ERV_TAXERV_CASH'
14672 , p_adr_type_code => 'S'
14673 , p_component_type => l_component_type
14674 , p_component_code => l_component_code
14675 , p_component_type_code => l_component_type_code
14676 , p_component_appl_id => l_component_appl_id
14677 , p_amb_context_code => l_amb_context_code
14678 , p_side => 'ALL'
14679 );
14680
14681
14682 l_segment := AcctDerRule_5(
14683 p_application_id => p_application_id
14684 , p_ae_header_id => l_ae_header_id
14685 , p_source_4 => p_source_4
14686 , p_source_4_meaning => p_source_4_meaning
14687 , p_source_5 => p_source_5
14688 , p_source_7 => p_source_7
14689 , p_source_7_meaning => p_source_7_meaning
14690 , x_transaction_coa_id => l_adr_transaction_coa_id
14691 , x_accounting_coa_id => l_adr_accounting_coa_id
14692 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14693 , x_flex_value_set_id => l_adr_flex_value_set_id
14694 , x_value_type_code => l_adr_value_type_code
14695 , x_value_combination_id => l_adr_value_combination_id
14696 , x_value_segment_code => l_adr_value_segment_code
14697 , p_side => 'CREDIT'
14698 , p_override_seg_flag => 'Y'
14699 );
14700
14701 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14702
14703 xla_ae_lines_pkg.set_segment(
14704 p_to_segment_code => 'GL_ACCOUNT'
14705 , p_segment_value => l_segment
14706 , p_from_segment_code => l_adr_value_segment_code
14707 , p_from_combination_id => l_adr_value_combination_id
14708 , p_value_type_code => l_adr_value_type_code
14709 , p_transaction_coa_id => l_adr_transaction_coa_id
14710 , p_accounting_coa_id => l_adr_accounting_coa_id
14711 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14712 , p_flex_value_set_id => l_adr_flex_value_set_id
14713 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14714 , p_adr_type_code => 'S'
14715 , p_component_type => l_component_type
14716 , p_component_code => l_component_code
14717 , p_component_type_code => l_component_type_code
14718 , p_component_appl_id => l_component_appl_id
14719 , p_amb_context_code => l_amb_context_code
14720 , p_entity_code => 'AP_PAYMENTS'
14721 , p_event_class_code => 'REFUNDS'
14722 , p_side => 'CREDIT'
14723 );
14724
14725 END IF;
14726
14727 l_segment := AcctDerRule_6(
14728 p_application_id => p_application_id
14732 , p_source_7 => p_source_7
14729 , p_ae_header_id => l_ae_header_id
14730 , p_source_4 => p_source_4
14731 , p_source_4_meaning => p_source_4_meaning
14733 , p_source_7_meaning => p_source_7_meaning
14734 , p_source_8 => p_source_8
14735 , x_transaction_coa_id => l_adr_transaction_coa_id
14736 , x_accounting_coa_id => l_adr_accounting_coa_id
14737 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14738 , x_flex_value_set_id => l_adr_flex_value_set_id
14739 , x_value_type_code => l_adr_value_type_code
14740 , x_value_combination_id => l_adr_value_combination_id
14741 , x_value_segment_code => l_adr_value_segment_code
14742 , p_side => 'DEBIT'
14743 , p_override_seg_flag => 'Y'
14744 );
14745
14746 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14747
14748 xla_ae_lines_pkg.set_segment(
14749 p_to_segment_code => 'GL_ACCOUNT'
14750 , p_segment_value => l_segment
14751 , p_from_segment_code => l_adr_value_segment_code
14752 , p_from_combination_id => l_adr_value_combination_id
14753 , p_value_type_code => l_adr_value_type_code
14754 , p_transaction_coa_id => l_adr_transaction_coa_id
14755 , p_accounting_coa_id => l_adr_accounting_coa_id
14756 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14757 , p_flex_value_set_id => l_adr_flex_value_set_id
14758 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14759 , p_adr_type_code => 'S'
14760 , p_component_type => l_component_type
14761 , p_component_code => l_component_code
14762 , p_component_type_code => l_component_type_code
14763 , p_component_appl_id => l_component_appl_id
14764 , p_amb_context_code => l_amb_context_code
14765 , p_entity_code => 'AP_PAYMENTS'
14766 , p_event_class_code => 'REFUNDS'
14767 , p_side => 'DEBIT'
14768 );
14769
14770 END IF;
14771
14772 l_segment := AcctDerRule_15(
14773 p_application_id => p_application_id
14774 , p_ae_header_id => l_ae_header_id
14775 , p_source_4 => p_source_4
14776 , p_source_4_meaning => p_source_4_meaning
14777 , p_source_7 => p_source_7
14778 , p_source_7_meaning => p_source_7_meaning
14779 , p_source_17 => p_source_17
14780 , x_transaction_coa_id => l_adr_transaction_coa_id
14781 , x_accounting_coa_id => l_adr_accounting_coa_id
14782 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14783 , x_flex_value_set_id => l_adr_flex_value_set_id
14784 , x_value_type_code => l_adr_value_type_code
14785 , x_value_combination_id => l_adr_value_combination_id
14786 , x_value_segment_code => l_adr_value_segment_code
14787 , p_side => 'ALL'
14788 , p_override_seg_flag => 'Y'
14789 );
14790
14791 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14792
14793 xla_ae_lines_pkg.set_segment(
14794 p_to_segment_code => 'GL_BALANCING'
14795 , p_segment_value => l_segment
14796 , p_from_segment_code => l_adr_value_segment_code
14797 , p_from_combination_id => l_adr_value_combination_id
14798 , p_value_type_code => l_adr_value_type_code
14799 , p_transaction_coa_id => l_adr_transaction_coa_id
14800 , p_accounting_coa_id => l_adr_accounting_coa_id
14801 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14802 , p_flex_value_set_id => l_adr_flex_value_set_id
14803 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
14804 , p_adr_type_code => 'S'
14805 , p_component_type => l_component_type
14806 , p_component_code => l_component_code
14807 , p_component_type_code => l_component_type_code
14808 , p_component_appl_id => l_component_appl_id
14809 , p_amb_context_code => l_amb_context_code
14810 , p_entity_code => 'AP_PAYMENTS'
14811 , p_event_class_code => 'REFUNDS'
14812 , p_side => 'ALL'
14813 );
14814
14815 END IF;
14816
14817 --
14818 --
14819 END IF;
14820 --
14821 -- Bug 4922099
14822 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14823 (NVL(l_enc_upg_option, 'N') = 'O')
14824 ) AND
14825 (l_bflow_method_code = 'PRIOR_ENTRY')
14826 )
14827 THEN
14828 IF
14829 --
14830 1 = 2
14831 --
14832 THEN
14833 xla_accounting_err_pkg.build_message
14834 (p_appli_s_name => 'XLA'
14835 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14836 ,p_token_1 => 'LINE_NUMBER'
14837 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14838 ,p_token_2 => 'LINE_TYPE_NAME'
14839 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14843 ,l_component_appl_id
14840 l_component_type
14841 ,l_component_code
14842 ,l_component_type_code
14844 ,l_amb_context_code
14845 ,l_entity_code
14846 ,l_event_class_code
14847 )
14848 ,p_token_3 => 'OWNER'
14849 ,p_value_3 => xla_lookups_pkg.get_meaning(
14850 p_lookup_type => 'XLA_OWNER_TYPE'
14851 ,p_lookup_code => l_component_type_code
14852 )
14853 ,p_token_4 => 'PRODUCT_NAME'
14854 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14855 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14856 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14857 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14858 ,p_ae_header_id => NULL
14859 );
14860
14861 IF (C_LEVEL_ERROR>= g_log_level) THEN
14862 trace
14863 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14864 ,p_level => C_LEVEL_ERROR
14865 ,p_module => l_log_module);
14866 END IF;
14867 END IF;
14868 END IF;
14869 --
14870 --
14871 ------------------------------------------------------------------------------------------------
14872 -- 4219869 Business Flow
14873 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14874 -- Prior Entry. Currently, the following code is always generated.
14875 ------------------------------------------------------------------------------------------------
14876 XLA_AE_LINES_PKG.ValidateCurrentLine;
14877
14878 ------------------------------------------------------------------------------------
14879 -- 4219869 Business Flow
14880 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14881 ------------------------------------------------------------------------------------
14882 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14883
14884 ----------------------------------------------------------------------------------
14885 -- 4219869 Business Flow
14886 -- Update journal entry status -- Need to generate this within IF <condition>
14887 ----------------------------------------------------------------------------------
14888 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14889 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14890 ,p_balance_type_code => l_balance_type_code
14891 );
14892
14893 -------------------------------------------------------------------------------------------
14894 -- 4262811 - Generate the Accrual Reversal lines
14895 -------------------------------------------------------------------------------------------
14896 BEGIN
14897 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14898 (g_array_event(p_event_id).array_value_num('header_index'));
14899 IF l_acc_rev_flag IS NULL THEN
14900 l_acc_rev_flag := 'N';
14901 END IF;
14902 EXCEPTION
14903 WHEN OTHERS THEN
14904 l_acc_rev_flag := 'N';
14905 END;
14906 --
14907 IF (l_acc_rev_flag = 'Y') THEN
14908
14909 -- 4645092 ------------------------------------------------------------------------------
14910 -- To allow MPA report to determine if it should generate report process
14911 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14912 ------------------------------------------------------------------------------------------
14913
14914 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14915 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14916 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14917 -- call ADRs
14918 -- Bug 4922099
14919 --
14920 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14921 (NVL(l_actual_upg_option, 'N') = 'O') OR
14922 (NVL(l_enc_upg_option, 'N') = 'O')
14923 )
14924 THEN
14925 NULL;
14926 --
14927 --
14928
14929 l_ccid := AcctDerRule_22(
14930 p_application_id => p_application_id
14931 , p_ae_header_id => l_ae_header_id
14932 , p_source_4 => p_source_4
14933 , p_source_4_meaning => p_source_4_meaning
14934 , p_source_5 => p_source_5
14935 , p_source_7 => p_source_7
14939 , p_source_10 => p_source_10
14936 , p_source_7_meaning => p_source_7_meaning
14937 , p_source_8 => p_source_8
14938 , p_source_9 => p_source_9
14940 , p_source_17 => p_source_17
14941 , p_source_30 => p_source_30
14942 , p_source_30_meaning => p_source_30_meaning
14943 , x_transaction_coa_id => l_adr_transaction_coa_id
14944 , x_accounting_coa_id => l_adr_accounting_coa_id
14945 , x_value_type_code => l_adr_value_type_code
14946 , p_side => 'ALL'
14947 );
14948
14949 xla_ae_lines_pkg.set_ccid(
14950 p_code_combination_id => l_ccid
14951 , p_value_type_code => l_adr_value_type_code
14952 , p_transaction_coa_id => l_adr_transaction_coa_id
14953 , p_accounting_coa_id => l_adr_accounting_coa_id
14954 , p_adr_code => 'AP_ERV_TAXERV_CASH'
14955 , p_adr_type_code => 'S'
14956 , p_component_type => l_component_type
14957 , p_component_code => l_component_code
14958 , p_component_type_code => l_component_type_code
14959 , p_component_appl_id => l_component_appl_id
14960 , p_amb_context_code => l_amb_context_code
14961 , p_side => 'ALL'
14962 );
14963
14964
14965 l_segment := AcctDerRule_5(
14966 p_application_id => p_application_id
14967 , p_ae_header_id => l_ae_header_id
14968 , p_source_4 => p_source_4
14969 , p_source_4_meaning => p_source_4_meaning
14970 , p_source_5 => p_source_5
14971 , p_source_7 => p_source_7
14972 , p_source_7_meaning => p_source_7_meaning
14973 , x_transaction_coa_id => l_adr_transaction_coa_id
14974 , x_accounting_coa_id => l_adr_accounting_coa_id
14975 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14976 , x_flex_value_set_id => l_adr_flex_value_set_id
14977 , x_value_type_code => l_adr_value_type_code
14978 , x_value_combination_id => l_adr_value_combination_id
14979 , x_value_segment_code => l_adr_value_segment_code
14980 , p_side => 'CREDIT'
14981 , p_override_seg_flag => 'Y'
14982 );
14983
14984 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14985
14986 xla_ae_lines_pkg.set_segment(
14987 p_to_segment_code => 'GL_ACCOUNT'
14988 , p_segment_value => l_segment
14989 , p_from_segment_code => l_adr_value_segment_code
14990 , p_from_combination_id => l_adr_value_combination_id
14991 , p_value_type_code => l_adr_value_type_code
14992 , p_transaction_coa_id => l_adr_transaction_coa_id
14993 , p_accounting_coa_id => l_adr_accounting_coa_id
14994 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14995 , p_flex_value_set_id => l_adr_flex_value_set_id
14996 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14997 , p_adr_type_code => 'S'
14998 , p_component_type => l_component_type
14999 , p_component_code => l_component_code
15000 , p_component_type_code => l_component_type_code
15001 , p_component_appl_id => l_component_appl_id
15002 , p_amb_context_code => l_amb_context_code
15003 , p_entity_code => 'AP_PAYMENTS'
15004 , p_event_class_code => 'REFUNDS'
15005 , p_side => 'CREDIT'
15006 );
15007
15008 END IF;
15009
15010 l_segment := AcctDerRule_6(
15011 p_application_id => p_application_id
15012 , p_ae_header_id => l_ae_header_id
15013 , p_source_4 => p_source_4
15014 , p_source_4_meaning => p_source_4_meaning
15015 , p_source_7 => p_source_7
15016 , p_source_7_meaning => p_source_7_meaning
15017 , p_source_8 => p_source_8
15018 , x_transaction_coa_id => l_adr_transaction_coa_id
15019 , x_accounting_coa_id => l_adr_accounting_coa_id
15020 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15021 , x_flex_value_set_id => l_adr_flex_value_set_id
15022 , x_value_type_code => l_adr_value_type_code
15023 , x_value_combination_id => l_adr_value_combination_id
15024 , x_value_segment_code => l_adr_value_segment_code
15025 , p_side => 'DEBIT'
15026 , p_override_seg_flag => 'Y'
15027 );
15028
15029 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15030
15031 xla_ae_lines_pkg.set_segment(
15032 p_to_segment_code => 'GL_ACCOUNT'
15033 , p_segment_value => l_segment
15034 , p_from_segment_code => l_adr_value_segment_code
15035 , p_from_combination_id => l_adr_value_combination_id
15036 , p_value_type_code => l_adr_value_type_code
15037 , p_transaction_coa_id => l_adr_transaction_coa_id
15038 , p_accounting_coa_id => l_adr_accounting_coa_id
15039 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15040 , p_flex_value_set_id => l_adr_flex_value_set_id
15041 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15042 , p_adr_type_code => 'S'
15043 , p_component_type => l_component_type
15047 , p_amb_context_code => l_amb_context_code
15044 , p_component_code => l_component_code
15045 , p_component_type_code => l_component_type_code
15046 , p_component_appl_id => l_component_appl_id
15048 , p_entity_code => 'AP_PAYMENTS'
15049 , p_event_class_code => 'REFUNDS'
15050 , p_side => 'DEBIT'
15051 );
15052
15053 END IF;
15054
15055 l_segment := AcctDerRule_15(
15056 p_application_id => p_application_id
15057 , p_ae_header_id => l_ae_header_id
15058 , p_source_4 => p_source_4
15059 , p_source_4_meaning => p_source_4_meaning
15060 , p_source_7 => p_source_7
15061 , p_source_7_meaning => p_source_7_meaning
15062 , p_source_17 => p_source_17
15063 , x_transaction_coa_id => l_adr_transaction_coa_id
15064 , x_accounting_coa_id => l_adr_accounting_coa_id
15065 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15066 , x_flex_value_set_id => l_adr_flex_value_set_id
15067 , x_value_type_code => l_adr_value_type_code
15068 , x_value_combination_id => l_adr_value_combination_id
15069 , x_value_segment_code => l_adr_value_segment_code
15070 , p_side => 'ALL'
15071 , p_override_seg_flag => 'Y'
15072 );
15073
15074 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15075
15076 xla_ae_lines_pkg.set_segment(
15077 p_to_segment_code => 'GL_BALANCING'
15078 , p_segment_value => l_segment
15079 , p_from_segment_code => l_adr_value_segment_code
15080 , p_from_combination_id => l_adr_value_combination_id
15081 , p_value_type_code => l_adr_value_type_code
15082 , p_transaction_coa_id => l_adr_transaction_coa_id
15083 , p_accounting_coa_id => l_adr_accounting_coa_id
15084 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15085 , p_flex_value_set_id => l_adr_flex_value_set_id
15086 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
15087 , p_adr_type_code => 'S'
15088 , p_component_type => l_component_type
15089 , p_component_code => l_component_code
15090 , p_component_type_code => l_component_type_code
15091 , p_component_appl_id => l_component_appl_id
15092 , p_amb_context_code => l_amb_context_code
15093 , p_entity_code => 'AP_PAYMENTS'
15094 , p_event_class_code => 'REFUNDS'
15095 , p_side => 'ALL'
15096 );
15097
15098 END IF;
15099
15100 --
15101 --
15102 END IF;
15103
15104 --
15105 -- Update the line information that should be overwritten
15106 --
15107 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15108 p_header_num => 1);
15109 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15110
15111 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15112
15113 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15114 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15115 END IF;
15116
15117 --
15118 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15119 --
15120 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15121 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15122 ELSE
15123 ---------------------------------------------------------------------------------------------------
15124 -- 4262811a Switch Sign
15125 ---------------------------------------------------------------------------------------------------
15126 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15127 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15128 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15129 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15130 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15131 -- 5132302
15132 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15133 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15134
15135 END IF;
15136
15137 -- 4955764
15138 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15139 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15140
15141
15142 XLA_AE_LINES_PKG.ValidateCurrentLine;
15143 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15144
15145 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15146 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15147 ,p_balance_type_code => l_balance_type_code);
15148
15152 -- 4262811 Multiperiod Accounting
15149 END IF;
15150
15151 -----------------------------------------------------------------------------------------
15153 -----------------------------------------------------------------------------------------
15154 -- No MPA option is assigned.
15155
15156
15157 END IF;
15158 END IF;
15159 --
15160
15161 --
15162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15163 trace
15164 (p_msg => 'END of AcctLineType_49'
15165 ,p_level => C_LEVEL_PROCEDURE
15166 ,p_module => l_log_module);
15167 END IF;
15168 --
15169 EXCEPTION
15170 WHEN xla_exceptions_pkg.application_exception THEN
15171 RAISE;
15172 WHEN OTHERS THEN
15173 xla_exceptions_pkg.raise_message
15174 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_49');
15175 END AcctLineType_49;
15176 --
15177
15178 ---------------------------------------
15179 --
15180 -- PRIVATE FUNCTION
15181 -- AcctLineType_50
15182 --
15183 ---------------------------------------
15184 PROCEDURE AcctLineType_50 (
15185 p_application_id IN NUMBER
15186 ,p_event_id IN NUMBER
15187 ,p_calculate_acctd_flag IN VARCHAR2
15188 ,p_calculate_g_l_flag IN VARCHAR2
15189 ,p_actual_flag IN OUT VARCHAR2
15190 ,p_balance_type_code OUT VARCHAR2
15191 ,p_gain_or_loss_ref OUT VARCHAR2
15192
15193 --Automatic Offsets Value
15194 , p_source_4 IN VARCHAR2
15195 , p_source_4_meaning IN VARCHAR2
15196 --Purchase Order Rate Variance Gain Account
15197 , p_source_5 IN NUMBER
15198 --Invoice Distribution Ledger Amount
15199 , p_source_6 IN NUMBER
15200 --Destination Type of the PO Distribution
15201 , p_source_7 IN VARCHAR2
15202 , p_source_7_meaning IN VARCHAR2
15203 --Purchase Order Rate Variance Loss Account
15204 , p_source_8 IN NUMBER
15205 --Invoice Distribution Account
15206 , p_source_17 IN NUMBER
15207 --Automatic Offsets Flag
15208 , p_source_30 IN VARCHAR2
15209 , p_source_30_meaning IN VARCHAR2
15210 --Accounting Reversal Indicator
15211 , p_source_40 IN VARCHAR2
15212 --Business Flow Accounts Payable Application Identifier
15213 , p_source_42 IN NUMBER
15214 --Distribution Link Type
15215 , p_source_48 IN VARCHAR2
15216 --Override Accounted Amount Indicator
15217 , p_source_53 IN VARCHAR2
15218 , p_source_53_meaning IN VARCHAR2
15219 --Third Party Type
15220 , p_source_56 IN VARCHAR2
15221 --Invoice Distribution Tax Line Identifier
15222 , p_source_58 IN NUMBER
15223 --Invoice Distribution Summary Tax Line Identifier
15224 , p_source_59 IN NUMBER
15225 --Invoice Distribution Tax Distribution Identifier from Tax
15226 , p_source_66 IN NUMBER
15227 --Prepayment Distribution Type
15228 , p_source_67 IN VARCHAR2
15229 --Recipient Invoice Distribution Type
15230 , p_source_68 IN VARCHAR2
15231 , p_source_68_meaning IN VARCHAR2
15232 --Prepayment Application Distribution Identifier
15233 , p_source_71 IN NUMBER
15234 --Invoice Identifier
15235 , p_source_72 IN NUMBER
15236 --Business Flow Prepayment Invoice Distribution Type
15237 , p_source_73 IN VARCHAR2
15238 --Business Flow Prepayment Invoice Entity Code
15239 , p_source_74 IN VARCHAR2
15240 --Business Flow Prepayment Invoice Distribution Identifier
15241 , p_source_75 IN NUMBER
15242 --Business Flow Prepayment Invoice Identifier
15243 , p_source_76 IN NUMBER
15244 --Upgrade Encumbrance Credit Account Class
15245 , p_source_77 IN VARCHAR2
15246 --Payables Encumbrance Upgrade Credit Account
15247 , p_source_78 IN NUMBER
15248 --Payables Encumbrance Upgrade Credit Amount
15249 , p_source_79 IN NUMBER
15250 --Invoice Currency Code
15251 , p_source_80 IN VARCHAR2
15252 --Payables Encumbrance Upgrade Credit Base Amount
15253 , p_source_81 IN NUMBER
15254 --Upgrade Encumbrance Debit Account Class
15255 , p_source_82 IN VARCHAR2
15256 --Payables Encumbrance Upgrade Debit Account
15257 , p_source_83 IN NUMBER
15258 --Payables Encumbrance Upgrade Debit Amount
15259 , p_source_84 IN NUMBER
15260 --Payables Encumbrance Upgrade Debit Base Amount
15261 , p_source_85 IN NUMBER
15262 --Payables Encumbrance Upgrade Option
15263 , p_source_86 IN VARCHAR2
15264 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
15265 , p_source_89 IN NUMBER
15266 --Deferred Accounting End Date
15267 , p_source_90 IN DATE
15268 --Deferred Accounting Option
15269 , p_source_91 IN VARCHAR2
15270 --Deferred Accounting Start Date
15271 , p_source_92 IN DATE
15272 --Invoice Supplier Identifier
15273 , p_source_93 IN NUMBER
15274 --Invoice Supplier Site Identifier
15275 , p_source_94 IN NUMBER
15276 --Identifier of the Prepayment Application Reversed
15277 , p_source_95 IN NUMBER
15278 --Payables Upgrade Credit Encumbrance Type Identifier
15279 , p_source_96 IN NUMBER
15280 --Payables Upgrade Debit Encumbrance Type Identifier
15281 , p_source_97 IN NUMBER
15282 --Accrue on Receipt Option
15283 , p_source_100 IN VARCHAR2
15287
15284 , p_source_100_meaning IN VARCHAR2
15285 )
15286 IS
15288 l_component_type VARCHAR2(80);
15289 l_component_code VARCHAR2(30);
15290 l_component_type_code VARCHAR2(1);
15291 l_component_appl_id INTEGER;
15292 l_amb_context_code VARCHAR2(30);
15293 l_entity_code VARCHAR2(30);
15294 l_event_class_code VARCHAR2(30);
15295 l_ae_header_id NUMBER;
15296 l_event_type_code VARCHAR2(30);
15297 l_line_definition_code VARCHAR2(30);
15298 l_line_definition_owner_code VARCHAR2(1);
15299 --
15300 -- adr variables
15301 l_segment VARCHAR2(30);
15302 l_ccid NUMBER;
15303 l_adr_transaction_coa_id NUMBER;
15304 l_adr_accounting_coa_id NUMBER;
15305 l_adr_flexfield_segment_code VARCHAR2(30);
15306 l_adr_flex_value_set_id NUMBER;
15307 l_adr_value_type_code VARCHAR2(30);
15308 l_adr_value_combination_id NUMBER;
15309 l_adr_value_segment_code VARCHAR2(30);
15310
15311 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15312 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15313 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15314 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15315
15316 -- 4262811 Variables ------------------------------------------------------------------------------------------
15317 l_entered_amt_idx NUMBER;
15318 l_accted_amt_idx NUMBER;
15319 l_acc_rev_flag VARCHAR2(1);
15320 l_accrual_line_num NUMBER;
15321 l_tmp_amt NUMBER;
15322 l_acc_rev_natural_side_code VARCHAR2(1);
15323
15324 l_num_entries NUMBER;
15325 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15326 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15327 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15328 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15329 l_recog_line_1 NUMBER;
15330 l_recog_line_2 NUMBER;
15331
15332 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15333 l_bflow_applied_to_amt NUMBER; -- 5132302
15334 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15335
15336 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15337
15338 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15339 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15340
15341 ---------------------------------------------------------------------------------------------------------------
15342
15343
15344 --
15345 -- bulk performance
15346 --
15347 l_balance_type_code VARCHAR2(1);
15348 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15349 l_log_module VARCHAR2(240);
15350
15351 --
15352 -- Upgrade strategy
15353 --
15354 l_actual_upg_option VARCHAR2(1);
15355 l_enc_upg_option VARCHAR2(1);
15356
15357 --
15358 BEGIN
15359 --
15360 IF g_log_enabled THEN
15361 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
15362 END IF;
15363 --
15364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15365
15366 trace
15367 (p_msg => 'BEGIN of AcctLineType_50'
15368 ,p_level => C_LEVEL_PROCEDURE
15369 ,p_module => l_log_module);
15370
15371 END IF;
15372 --
15373 l_component_type := 'AMB_JLT';
15374 l_component_code := 'AP_ALC_TERV_PREPAY_APP';
15375 l_component_type_code := 'S';
15376 l_component_appl_id := 200;
15377 l_amb_context_code := 'DEFAULT';
15378 l_entity_code := 'AP_INVOICES';
15379 l_event_class_code := 'PREPAYMENT APPLICATIONS';
15380 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
15381 l_line_definition_owner_code := 'S';
15382 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
15383 --
15384 l_balance_type_code := 'A';
15385 l_segment := NULL;
15386 l_ccid := NULL;
15387 l_adr_transaction_coa_id := NULL;
15388 l_adr_accounting_coa_id := NULL;
15389 l_adr_flexfield_segment_code := NULL;
15390 l_adr_flex_value_set_id := NULL;
15391 l_adr_value_type_code := NULL;
15392 l_adr_value_combination_id := NULL;
15393 l_adr_value_segment_code := NULL;
15394
15395 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15396 l_bflow_class_code := ''; -- 4219869 Business Flow
15397 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15398 l_budgetary_control_flag := 'N';
15399
15400 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15401 l_bflow_applied_to_amt := NULL; -- 5132302
15402 l_entered_amt_idx := NULL; -- 4262811
15403 l_accted_amt_idx := NULL; -- 4262811
15404 l_acc_rev_flag := NULL; -- 4262811
15405 l_accrual_line_num := NULL; -- 4262811
15406 l_tmp_amt := NULL; -- 4262811
15407 --
15408 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15412
15409 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
15410 return;
15411 END IF;
15413 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15414 l_balance_type_code <> 'B' THEN
15415 IF (NVL(p_source_67,'
15416 ') = 'PREPAY APPL' OR
15417 NVL(p_source_67,'
15418 ') = 'PREPAY APPL NONREC TAX' OR
15419 NVL(p_source_67,'
15420 ') = 'PREPAY APPL REC TAX') AND
15421 NVL(p_source_68,'
15422 ') = 'NONREC_TAX' AND
15423 NVL(p_source_100,'
15424 ') = 'Y'
15425 THEN
15426
15427 --
15428 XLA_AE_LINES_PKG.SetNewLine;
15429
15430 p_balance_type_code := l_balance_type_code;
15431 -- set the flag so later we will know whether the gain loss line needs to be created
15432
15433 IF(l_balance_type_code = 'A' ) THEN
15434 p_actual_flag :='G';
15435 END IF;
15436
15437 --
15438 -- bulk performance
15439 --
15440 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15441 p_header_num => 0); -- 4262811
15442 --
15443 -- set accounting line options
15444 --
15445 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15446 p_natural_side_code => 'G'
15447 , p_gain_or_loss_flag => 'N'
15448 , p_gl_transfer_mode_code => 'S'
15449 , p_acct_entry_type_code => 'A'
15450 , p_switch_side_flag => ''
15451 , p_merge_duplicate_code => 'A'
15452 );
15453 --
15454 l_acc_rev_natural_side_code := 'C'; -- 4262811
15455 --
15456 --
15457 -- set accounting line type info
15458 --
15459 xla_ae_lines_pkg.SetAcctLineType
15460 (p_component_type => l_component_type
15461 ,p_event_type_code => l_event_type_code
15462 ,p_line_definition_owner_code => l_line_definition_owner_code
15463 ,p_line_definition_code => l_line_definition_code
15464 ,p_accounting_line_code => l_component_code
15465 ,p_accounting_line_type_code => l_component_type_code
15466 ,p_accounting_line_appl_id => l_component_appl_id
15467 ,p_amb_context_code => l_amb_context_code
15468 ,p_entity_code => l_entity_code
15469 ,p_event_class_code => l_event_class_code);
15470 --
15471 -- set accounting class
15472 --
15473 xla_ae_lines_pkg.SetAcctClass(
15474 p_accounting_class_code => 'TERV'
15475 , p_ae_header_id => l_ae_header_id
15476 );
15477
15478 --
15479 -- set rounding class
15480 --
15481 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15482 'TERV';
15483
15484 --
15485 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15486 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15487 --
15488 -- bulk performance
15489 --
15490 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15491
15492 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15493 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15494
15495 -- 4955764
15496 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15497 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15498
15499 -- 4458381 Public Sector Enh
15500
15501 --
15502 -- set accounting attributes for the line type
15503 --
15504 l_entered_amt_idx := NULL;
15505 l_accted_amt_idx := 25;
15506 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15507 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15508 l_rec_acct_attrs.array_char_value(1) := p_source_40;
15509 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15510 l_rec_acct_attrs.array_num_value(2) :=
15511 xla_ae_sources_pkg.GetSystemSourceNum(
15512 p_source_code => 'XLA_EVENT_APPL_ID'
15513 , p_source_type_code => 'Y'
15514 , p_source_application_id => 602
15515 );
15516 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15517 l_rec_acct_attrs.array_char_value(3) := p_source_48;
15518 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15519 l_rec_acct_attrs.array_char_value(4) :=
15520 xla_ae_sources_pkg.GetSystemSourceChar(
15521 p_source_code => 'XLA_ENTITY_CODE'
15522 , p_source_type_code => 'Y'
15523 , p_source_application_id => 602
15524 );
15525 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15526 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
15527 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15528 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
15529 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15530 l_rec_acct_attrs.array_num_value(7) := p_source_42;
15534 l_rec_acct_attrs.array_char_value(9) := p_source_74;
15531 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15532 l_rec_acct_attrs.array_char_value(8) := p_source_73;
15533 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15535 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15536 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
15537 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15538 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
15539 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15540 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
15541 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15542 l_rec_acct_attrs.array_char_value(13) := p_source_48;
15543 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
15544 l_rec_acct_attrs.array_char_value(14) := p_source_77;
15545 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15546 l_rec_acct_attrs.array_num_value(15) := p_source_78;
15547 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15548 l_rec_acct_attrs.array_num_value(16) := p_source_79;
15549 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15550 l_rec_acct_attrs.array_char_value(17) := p_source_80;
15551 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15552 l_rec_acct_attrs.array_num_value(18) := p_source_81;
15553 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
15554 l_rec_acct_attrs.array_char_value(19) := p_source_82;
15555 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
15556 l_rec_acct_attrs.array_num_value(20) := p_source_83;
15557 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
15558 l_rec_acct_attrs.array_num_value(21) := p_source_84;
15559 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
15560 l_rec_acct_attrs.array_char_value(22) := p_source_80;
15561 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
15562 l_rec_acct_attrs.array_num_value(23) := p_source_85;
15563 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
15564 l_rec_acct_attrs.array_char_value(24) := p_source_86;
15565 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
15566 l_rec_acct_attrs.array_num_value(25) := p_source_89;
15567 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
15568 l_rec_acct_attrs.array_date_value(26) := p_source_90;
15569 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
15570 l_rec_acct_attrs.array_char_value(27) := p_source_91;
15571 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
15572 l_rec_acct_attrs.array_date_value(28) := p_source_92;
15573 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
15574 l_rec_acct_attrs.array_char_value(29) := p_source_53;
15575 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
15576 l_rec_acct_attrs.array_num_value(30) := p_source_93;
15577 l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
15578 l_rec_acct_attrs.array_num_value(31) := p_source_94;
15579 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
15580 l_rec_acct_attrs.array_char_value(32) := p_source_56;
15581 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
15582 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_95);
15583 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
15584 l_rec_acct_attrs.array_char_value(34) := p_source_48;
15585 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
15586 l_rec_acct_attrs.array_num_value(35) := p_source_58;
15587 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
15588 l_rec_acct_attrs.array_num_value(36) := p_source_66;
15589 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
15590 l_rec_acct_attrs.array_num_value(37) := p_source_59;
15591 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
15592 l_rec_acct_attrs.array_num_value(38) := p_source_96;
15593 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
15594 l_rec_acct_attrs.array_num_value(39) := p_source_97;
15595
15596 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15597 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15598
15599 ---------------------------------------------------------------------------------------------------------------
15600 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15601 ---------------------------------------------------------------------------------------------------------------
15602 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15603
15604 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15605 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15606
15607 IF xla_accounting_cache_pkg.GetValueChar
15608 (p_source_code => 'LEDGER_CATEGORY_CODE'
15609 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15610 AND l_bflow_method_code = 'PRIOR_ENTRY'
15611 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15612 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15616 xla_ae_lines_pkg.BflowUpgEntry
15613 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15614 )
15615 THEN
15617 (p_business_method_code => l_bflow_method_code
15618 ,p_business_class_code => l_bflow_class_code
15619 ,p_balance_type => l_balance_type_code);
15620 ELSE
15621 NULL;
15622 -- No business flow processing for business flow method of NONE.
15623 END IF;
15624
15625 --
15626 -- call analytical criteria
15627 --
15628
15629 --
15630 -- call description
15631 --
15632 -- No description or it is inherited.
15633 --
15634 -- call ADRs
15635 -- Bug 4922099
15636 --
15637 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15638 (NVL(l_actual_upg_option, 'N') = 'O') OR
15639 (NVL(l_enc_upg_option, 'N') = 'O')
15640 )
15641 THEN
15642 NULL;
15643 --
15644 --
15645
15646 l_ccid := AcctDerRule_23(
15647 p_application_id => p_application_id
15648 , p_ae_header_id => l_ae_header_id
15649 , p_source_4 => p_source_4
15650 , p_source_4_meaning => p_source_4_meaning
15651 , p_source_5 => p_source_5
15652 , p_source_6 => p_source_6
15653 , p_source_7 => p_source_7
15654 , p_source_7_meaning => p_source_7_meaning
15655 , p_source_8 => p_source_8
15656 , p_source_17 => p_source_17
15657 , p_source_30 => p_source_30
15658 , p_source_30_meaning => p_source_30_meaning
15659 , x_transaction_coa_id => l_adr_transaction_coa_id
15660 , x_accounting_coa_id => l_adr_accounting_coa_id
15661 , x_value_type_code => l_adr_value_type_code
15662 , p_side => 'ALL'
15663 );
15664
15665 xla_ae_lines_pkg.set_ccid(
15666 p_code_combination_id => l_ccid
15667 , p_value_type_code => l_adr_value_type_code
15668 , p_transaction_coa_id => l_adr_transaction_coa_id
15669 , p_accounting_coa_id => l_adr_accounting_coa_id
15670 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15671 , p_adr_type_code => 'S'
15672 , p_component_type => l_component_type
15673 , p_component_code => l_component_code
15674 , p_component_type_code => l_component_type_code
15675 , p_component_appl_id => l_component_appl_id
15676 , p_amb_context_code => l_amb_context_code
15677 , p_side => 'ALL'
15678 );
15679
15680
15681 l_segment := AcctDerRule_5(
15682 p_application_id => p_application_id
15683 , p_ae_header_id => l_ae_header_id
15684 , p_source_4 => p_source_4
15685 , p_source_4_meaning => p_source_4_meaning
15686 , p_source_5 => p_source_5
15687 , p_source_7 => p_source_7
15688 , p_source_7_meaning => p_source_7_meaning
15689 , x_transaction_coa_id => l_adr_transaction_coa_id
15690 , x_accounting_coa_id => l_adr_accounting_coa_id
15691 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15692 , x_flex_value_set_id => l_adr_flex_value_set_id
15693 , x_value_type_code => l_adr_value_type_code
15694 , x_value_combination_id => l_adr_value_combination_id
15695 , x_value_segment_code => l_adr_value_segment_code
15696 , p_side => 'CREDIT'
15697 , p_override_seg_flag => 'Y'
15698 );
15699
15700 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15701
15702 xla_ae_lines_pkg.set_segment(
15703 p_to_segment_code => 'GL_ACCOUNT'
15704 , p_segment_value => l_segment
15705 , p_from_segment_code => l_adr_value_segment_code
15706 , p_from_combination_id => l_adr_value_combination_id
15707 , p_value_type_code => l_adr_value_type_code
15708 , p_transaction_coa_id => l_adr_transaction_coa_id
15709 , p_accounting_coa_id => l_adr_accounting_coa_id
15710 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15711 , p_flex_value_set_id => l_adr_flex_value_set_id
15712 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15713 , p_adr_type_code => 'S'
15714 , p_component_type => l_component_type
15715 , p_component_code => l_component_code
15716 , p_component_type_code => l_component_type_code
15717 , p_component_appl_id => l_component_appl_id
15718 , p_amb_context_code => l_amb_context_code
15719 , p_entity_code => 'AP_INVOICES'
15720 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
15721 , p_side => 'CREDIT'
15722 );
15723
15724 END IF;
15725
15726 l_segment := AcctDerRule_6(
15727 p_application_id => p_application_id
15728 , p_ae_header_id => l_ae_header_id
15729 , p_source_4 => p_source_4
15730 , p_source_4_meaning => p_source_4_meaning
15731 , p_source_7 => p_source_7
15732 , p_source_7_meaning => p_source_7_meaning
15733 , p_source_8 => p_source_8
15734 , x_transaction_coa_id => l_adr_transaction_coa_id
15735 , x_accounting_coa_id => l_adr_accounting_coa_id
15736 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15740 , x_value_segment_code => l_adr_value_segment_code
15737 , x_flex_value_set_id => l_adr_flex_value_set_id
15738 , x_value_type_code => l_adr_value_type_code
15739 , x_value_combination_id => l_adr_value_combination_id
15741 , p_side => 'DEBIT'
15742 , p_override_seg_flag => 'Y'
15743 );
15744
15745 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15746
15747 xla_ae_lines_pkg.set_segment(
15748 p_to_segment_code => 'GL_ACCOUNT'
15749 , p_segment_value => l_segment
15750 , p_from_segment_code => l_adr_value_segment_code
15751 , p_from_combination_id => l_adr_value_combination_id
15752 , p_value_type_code => l_adr_value_type_code
15753 , p_transaction_coa_id => l_adr_transaction_coa_id
15754 , p_accounting_coa_id => l_adr_accounting_coa_id
15755 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15756 , p_flex_value_set_id => l_adr_flex_value_set_id
15757 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15758 , p_adr_type_code => 'S'
15759 , p_component_type => l_component_type
15760 , p_component_code => l_component_code
15761 , p_component_type_code => l_component_type_code
15762 , p_component_appl_id => l_component_appl_id
15763 , p_amb_context_code => l_amb_context_code
15764 , p_entity_code => 'AP_INVOICES'
15765 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
15766 , p_side => 'DEBIT'
15767 );
15768
15769 END IF;
15770
15771 l_segment := AcctDerRule_15(
15772 p_application_id => p_application_id
15773 , p_ae_header_id => l_ae_header_id
15774 , p_source_4 => p_source_4
15775 , p_source_4_meaning => p_source_4_meaning
15776 , p_source_7 => p_source_7
15777 , p_source_7_meaning => p_source_7_meaning
15778 , p_source_17 => p_source_17
15779 , x_transaction_coa_id => l_adr_transaction_coa_id
15780 , x_accounting_coa_id => l_adr_accounting_coa_id
15781 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15782 , x_flex_value_set_id => l_adr_flex_value_set_id
15783 , x_value_type_code => l_adr_value_type_code
15784 , x_value_combination_id => l_adr_value_combination_id
15785 , x_value_segment_code => l_adr_value_segment_code
15786 , p_side => 'ALL'
15787 , p_override_seg_flag => 'Y'
15788 );
15789
15790 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15791
15792 xla_ae_lines_pkg.set_segment(
15793 p_to_segment_code => 'GL_BALANCING'
15794 , p_segment_value => l_segment
15795 , p_from_segment_code => l_adr_value_segment_code
15796 , p_from_combination_id => l_adr_value_combination_id
15797 , p_value_type_code => l_adr_value_type_code
15798 , p_transaction_coa_id => l_adr_transaction_coa_id
15799 , p_accounting_coa_id => l_adr_accounting_coa_id
15800 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15801 , p_flex_value_set_id => l_adr_flex_value_set_id
15802 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
15803 , p_adr_type_code => 'S'
15804 , p_component_type => l_component_type
15805 , p_component_code => l_component_code
15806 , p_component_type_code => l_component_type_code
15807 , p_component_appl_id => l_component_appl_id
15808 , p_amb_context_code => l_amb_context_code
15809 , p_entity_code => 'AP_INVOICES'
15810 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
15811 , p_side => 'ALL'
15812 );
15813
15814 END IF;
15815
15816 --
15817 --
15818 END IF;
15819 --
15820 -- Bug 4922099
15821 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15822 (NVL(l_enc_upg_option, 'N') = 'O')
15823 ) AND
15824 (l_bflow_method_code = 'PRIOR_ENTRY')
15825 )
15826 THEN
15827 IF
15828 --
15829 1 = 2
15830 --
15831 THEN
15832 xla_accounting_err_pkg.build_message
15833 (p_appli_s_name => 'XLA'
15834 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15835 ,p_token_1 => 'LINE_NUMBER'
15836 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15837 ,p_token_2 => 'LINE_TYPE_NAME'
15838 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15839 l_component_type
15840 ,l_component_code
15841 ,l_component_type_code
15842 ,l_component_appl_id
15843 ,l_amb_context_code
15847 ,p_token_3 => 'OWNER'
15844 ,l_entity_code
15845 ,l_event_class_code
15846 )
15848 ,p_value_3 => xla_lookups_pkg.get_meaning(
15849 p_lookup_type => 'XLA_OWNER_TYPE'
15850 ,p_lookup_code => l_component_type_code
15851 )
15852 ,p_token_4 => 'PRODUCT_NAME'
15853 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15854 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15855 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15856 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15857 ,p_ae_header_id => NULL
15858 );
15859
15860 IF (C_LEVEL_ERROR>= g_log_level) THEN
15861 trace
15862 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15863 ,p_level => C_LEVEL_ERROR
15864 ,p_module => l_log_module);
15865 END IF;
15866 END IF;
15867 END IF;
15868 --
15869 --
15870 ------------------------------------------------------------------------------------------------
15871 -- 4219869 Business Flow
15872 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15873 -- Prior Entry. Currently, the following code is always generated.
15874 ------------------------------------------------------------------------------------------------
15875 XLA_AE_LINES_PKG.ValidateCurrentLine;
15876
15877 ------------------------------------------------------------------------------------
15878 -- 4219869 Business Flow
15879 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15880 ------------------------------------------------------------------------------------
15881 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15882
15883 ----------------------------------------------------------------------------------
15884 -- 4219869 Business Flow
15885 -- Update journal entry status -- Need to generate this within IF <condition>
15886 ----------------------------------------------------------------------------------
15887 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15888 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15889 ,p_balance_type_code => l_balance_type_code
15890 );
15891
15892 -------------------------------------------------------------------------------------------
15893 -- 4262811 - Generate the Accrual Reversal lines
15894 -------------------------------------------------------------------------------------------
15895 BEGIN
15896 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15897 (g_array_event(p_event_id).array_value_num('header_index'));
15898 IF l_acc_rev_flag IS NULL THEN
15899 l_acc_rev_flag := 'N';
15900 END IF;
15901 EXCEPTION
15902 WHEN OTHERS THEN
15903 l_acc_rev_flag := 'N';
15904 END;
15905 --
15906 IF (l_acc_rev_flag = 'Y') THEN
15907
15908 -- 4645092 ------------------------------------------------------------------------------
15909 -- To allow MPA report to determine if it should generate report process
15910 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15911 ------------------------------------------------------------------------------------------
15912
15913 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15914 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15915 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
15916 -- call ADRs
15917 -- Bug 4922099
15918 --
15919 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15920 (NVL(l_actual_upg_option, 'N') = 'O') OR
15921 (NVL(l_enc_upg_option, 'N') = 'O')
15922 )
15923 THEN
15924 NULL;
15925 --
15926 --
15927
15928 l_ccid := AcctDerRule_23(
15929 p_application_id => p_application_id
15930 , p_ae_header_id => l_ae_header_id
15931 , p_source_4 => p_source_4
15932 , p_source_4_meaning => p_source_4_meaning
15933 , p_source_5 => p_source_5
15934 , p_source_6 => p_source_6
15935 , p_source_7 => p_source_7
15936 , p_source_7_meaning => p_source_7_meaning
15937 , p_source_8 => p_source_8
15938 , p_source_17 => p_source_17
15939 , p_source_30 => p_source_30
15940 , p_source_30_meaning => p_source_30_meaning
15941 , x_transaction_coa_id => l_adr_transaction_coa_id
15942 , x_accounting_coa_id => l_adr_accounting_coa_id
15943 , x_value_type_code => l_adr_value_type_code
15944 , p_side => 'ALL'
15948 p_code_combination_id => l_ccid
15945 );
15946
15947 xla_ae_lines_pkg.set_ccid(
15949 , p_value_type_code => l_adr_value_type_code
15950 , p_transaction_coa_id => l_adr_transaction_coa_id
15951 , p_accounting_coa_id => l_adr_accounting_coa_id
15952 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15953 , p_adr_type_code => 'S'
15954 , p_component_type => l_component_type
15955 , p_component_code => l_component_code
15956 , p_component_type_code => l_component_type_code
15957 , p_component_appl_id => l_component_appl_id
15958 , p_amb_context_code => l_amb_context_code
15959 , p_side => 'ALL'
15960 );
15961
15962
15963 l_segment := AcctDerRule_5(
15964 p_application_id => p_application_id
15965 , p_ae_header_id => l_ae_header_id
15966 , p_source_4 => p_source_4
15967 , p_source_4_meaning => p_source_4_meaning
15968 , p_source_5 => p_source_5
15969 , p_source_7 => p_source_7
15970 , p_source_7_meaning => p_source_7_meaning
15971 , x_transaction_coa_id => l_adr_transaction_coa_id
15972 , x_accounting_coa_id => l_adr_accounting_coa_id
15973 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15974 , x_flex_value_set_id => l_adr_flex_value_set_id
15975 , x_value_type_code => l_adr_value_type_code
15976 , x_value_combination_id => l_adr_value_combination_id
15977 , x_value_segment_code => l_adr_value_segment_code
15978 , p_side => 'CREDIT'
15979 , p_override_seg_flag => 'Y'
15980 );
15981
15982 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15983
15984 xla_ae_lines_pkg.set_segment(
15985 p_to_segment_code => 'GL_ACCOUNT'
15986 , p_segment_value => l_segment
15987 , p_from_segment_code => l_adr_value_segment_code
15988 , p_from_combination_id => l_adr_value_combination_id
15989 , p_value_type_code => l_adr_value_type_code
15990 , p_transaction_coa_id => l_adr_transaction_coa_id
15991 , p_accounting_coa_id => l_adr_accounting_coa_id
15992 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15993 , p_flex_value_set_id => l_adr_flex_value_set_id
15994 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15995 , p_adr_type_code => 'S'
15996 , p_component_type => l_component_type
15997 , p_component_code => l_component_code
15998 , p_component_type_code => l_component_type_code
15999 , p_component_appl_id => l_component_appl_id
16000 , p_amb_context_code => l_amb_context_code
16001 , p_entity_code => 'AP_INVOICES'
16002 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16003 , p_side => 'CREDIT'
16004 );
16005
16006 END IF;
16007
16008 l_segment := AcctDerRule_6(
16009 p_application_id => p_application_id
16010 , p_ae_header_id => l_ae_header_id
16011 , p_source_4 => p_source_4
16012 , p_source_4_meaning => p_source_4_meaning
16013 , p_source_7 => p_source_7
16014 , p_source_7_meaning => p_source_7_meaning
16015 , p_source_8 => p_source_8
16016 , x_transaction_coa_id => l_adr_transaction_coa_id
16017 , x_accounting_coa_id => l_adr_accounting_coa_id
16018 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16019 , x_flex_value_set_id => l_adr_flex_value_set_id
16020 , x_value_type_code => l_adr_value_type_code
16021 , x_value_combination_id => l_adr_value_combination_id
16022 , x_value_segment_code => l_adr_value_segment_code
16023 , p_side => 'DEBIT'
16024 , p_override_seg_flag => 'Y'
16025 );
16026
16027 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16028
16029 xla_ae_lines_pkg.set_segment(
16030 p_to_segment_code => 'GL_ACCOUNT'
16031 , p_segment_value => l_segment
16032 , p_from_segment_code => l_adr_value_segment_code
16033 , p_from_combination_id => l_adr_value_combination_id
16034 , p_value_type_code => l_adr_value_type_code
16035 , p_transaction_coa_id => l_adr_transaction_coa_id
16036 , p_accounting_coa_id => l_adr_accounting_coa_id
16037 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16038 , p_flex_value_set_id => l_adr_flex_value_set_id
16039 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16040 , p_adr_type_code => 'S'
16041 , p_component_type => l_component_type
16042 , p_component_code => l_component_code
16043 , p_component_type_code => l_component_type_code
16044 , p_component_appl_id => l_component_appl_id
16045 , p_amb_context_code => l_amb_context_code
16046 , p_entity_code => 'AP_INVOICES'
16047 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16048 , p_side => 'DEBIT'
16049 );
16050
16051 END IF;
16052
16053 l_segment := AcctDerRule_15(
16057 , p_source_4_meaning => p_source_4_meaning
16054 p_application_id => p_application_id
16055 , p_ae_header_id => l_ae_header_id
16056 , p_source_4 => p_source_4
16058 , p_source_7 => p_source_7
16059 , p_source_7_meaning => p_source_7_meaning
16060 , p_source_17 => p_source_17
16061 , x_transaction_coa_id => l_adr_transaction_coa_id
16062 , x_accounting_coa_id => l_adr_accounting_coa_id
16063 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16064 , x_flex_value_set_id => l_adr_flex_value_set_id
16065 , x_value_type_code => l_adr_value_type_code
16066 , x_value_combination_id => l_adr_value_combination_id
16067 , x_value_segment_code => l_adr_value_segment_code
16068 , p_side => 'ALL'
16069 , p_override_seg_flag => 'Y'
16070 );
16071
16072 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16073
16074 xla_ae_lines_pkg.set_segment(
16075 p_to_segment_code => 'GL_BALANCING'
16076 , p_segment_value => l_segment
16077 , p_from_segment_code => l_adr_value_segment_code
16078 , p_from_combination_id => l_adr_value_combination_id
16079 , p_value_type_code => l_adr_value_type_code
16080 , p_transaction_coa_id => l_adr_transaction_coa_id
16081 , p_accounting_coa_id => l_adr_accounting_coa_id
16082 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16083 , p_flex_value_set_id => l_adr_flex_value_set_id
16084 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
16085 , p_adr_type_code => 'S'
16086 , p_component_type => l_component_type
16087 , p_component_code => l_component_code
16088 , p_component_type_code => l_component_type_code
16089 , p_component_appl_id => l_component_appl_id
16090 , p_amb_context_code => l_amb_context_code
16091 , p_entity_code => 'AP_INVOICES'
16092 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16093 , p_side => 'ALL'
16094 );
16095
16096 END IF;
16097
16098 --
16099 --
16100 END IF;
16101
16102 --
16103 -- Update the line information that should be overwritten
16104 --
16105 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16106 p_header_num => 1);
16107 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16108
16109 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16110
16111 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16112 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16113 END IF;
16114
16115 --
16116 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16117 --
16118 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16119 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16120 ELSE
16121 ---------------------------------------------------------------------------------------------------
16122 -- 4262811a Switch Sign
16123 ---------------------------------------------------------------------------------------------------
16124 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16125 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16126 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16127 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16128 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16129 -- 5132302
16130 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16131 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16132
16133 END IF;
16134
16135 -- 4955764
16136 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16137 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16138
16139
16140 XLA_AE_LINES_PKG.ValidateCurrentLine;
16141 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16142
16143 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16144 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16145 ,p_balance_type_code => l_balance_type_code);
16146
16147 END IF;
16148
16149 -----------------------------------------------------------------------------------------
16150 -- 4262811 Multiperiod Accounting
16151 -----------------------------------------------------------------------------------------
16152 -- No MPA option is assigned.
16153
16154
16155 END IF;
16156 END IF;
16157 --
16158
16159 --
16160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16161 trace
16162 (p_msg => 'END of AcctLineType_50'
16166 --
16163 ,p_level => C_LEVEL_PROCEDURE
16164 ,p_module => l_log_module);
16165 END IF;
16167 EXCEPTION
16168 WHEN xla_exceptions_pkg.application_exception THEN
16169 RAISE;
16170 WHEN OTHERS THEN
16171 xla_exceptions_pkg.raise_message
16172 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_50');
16173 END AcctLineType_50;
16174 --
16175
16176 ---------------------------------------
16177 --
16178 -- PRIVATE FUNCTION
16179 -- AcctLineType_51
16180 --
16181 ---------------------------------------
16182 PROCEDURE AcctLineType_51 (
16183 p_application_id IN NUMBER
16184 ,p_event_id IN NUMBER
16185 ,p_calculate_acctd_flag IN VARCHAR2
16186 ,p_calculate_g_l_flag IN VARCHAR2
16187 ,p_actual_flag IN OUT VARCHAR2
16188 ,p_balance_type_code OUT VARCHAR2
16189 ,p_gain_or_loss_ref OUT VARCHAR2
16190
16191 --When to Account for Payment Option
16192 , p_source_38 IN VARCHAR2
16193 --Payment Distribution Type
16194 , p_source_39 IN VARCHAR2
16195 , p_source_39_meaning IN VARCHAR2
16196 --Accounting Reversal Indicator
16197 , p_source_40 IN VARCHAR2
16198 --Payment Distribution Amount
16199 , p_source_41 IN NUMBER
16200 --Business Flow Accounts Payable Application Identifier
16201 , p_source_42 IN NUMBER
16202 --Payment Distribution Identifier
16203 , p_source_47 IN NUMBER
16204 --Distribution Link Type
16205 , p_source_48 IN VARCHAR2
16206 --Payment Currency Code
16207 , p_source_49 IN VARCHAR2
16208 --Override Accounted Amount Indicator
16209 , p_source_53 IN VARCHAR2
16210 , p_source_53_meaning IN VARCHAR2
16211 --Third Party Type
16212 , p_source_56 IN VARCHAR2
16213 --Payment Distribution Reversed Identifier
16214 , p_source_57 IN NUMBER
16215 --Invoice Distribution Tax Line Identifier
16216 , p_source_58 IN NUMBER
16217 --Invoice Distribution Summary Tax Line Identifier
16218 , p_source_59 IN NUMBER
16219 --Business Flow Invoice Distribution Type
16220 , p_source_62 IN VARCHAR2
16221 --Business Flow Invoice Entity Code
16222 , p_source_63 IN VARCHAR2
16223 --Business Flow Invoice Distribution Identifier
16224 , p_source_64 IN NUMBER
16225 --Business Flow Invoice Identifier
16226 , p_source_65 IN NUMBER
16227 --Accrue on Receipt Option
16228 , p_source_100 IN VARCHAR2
16229 , p_source_100_meaning IN VARCHAR2
16230 --Purchasing Encumbrance Option
16231 , p_source_102 IN VARCHAR2
16232 , p_source_102_meaning IN VARCHAR2
16233 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
16234 , p_source_103 IN NUMBER
16235 --Invoice Encumbered Option
16236 , p_source_104 IN VARCHAR2
16237 , p_source_104_meaning IN VARCHAR2
16238 --Prorated Amount of Variance Amount for Cash Basis
16239 , p_source_105 IN NUMBER
16240 )
16241 IS
16242
16243 l_component_type VARCHAR2(80);
16244 l_component_code VARCHAR2(30);
16245 l_component_type_code VARCHAR2(1);
16246 l_component_appl_id INTEGER;
16247 l_amb_context_code VARCHAR2(30);
16248 l_entity_code VARCHAR2(30);
16249 l_event_class_code VARCHAR2(30);
16250 l_ae_header_id NUMBER;
16251 l_event_type_code VARCHAR2(30);
16252 l_line_definition_code VARCHAR2(30);
16253 l_line_definition_owner_code VARCHAR2(1);
16254 --
16255 -- adr variables
16256 l_segment VARCHAR2(30);
16257 l_ccid NUMBER;
16258 l_adr_transaction_coa_id NUMBER;
16259 l_adr_accounting_coa_id NUMBER;
16260 l_adr_flexfield_segment_code VARCHAR2(30);
16261 l_adr_flex_value_set_id NUMBER;
16262 l_adr_value_type_code VARCHAR2(30);
16263 l_adr_value_combination_id NUMBER;
16264 l_adr_value_segment_code VARCHAR2(30);
16265
16266 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16267 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16268 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16269 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16270
16271 -- 4262811 Variables ------------------------------------------------------------------------------------------
16272 l_entered_amt_idx NUMBER;
16273 l_accted_amt_idx NUMBER;
16274 l_acc_rev_flag VARCHAR2(1);
16275 l_accrual_line_num NUMBER;
16276 l_tmp_amt NUMBER;
16277 l_acc_rev_natural_side_code VARCHAR2(1);
16278
16279 l_num_entries NUMBER;
16280 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16281 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16282 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16283 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16284 l_recog_line_1 NUMBER;
16285 l_recog_line_2 NUMBER;
16286
16287 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16288 l_bflow_applied_to_amt NUMBER; -- 5132302
16289 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16290
16294 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16291 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16292
16293 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16295
16296 ---------------------------------------------------------------------------------------------------------------
16297
16298
16299 --
16300 -- bulk performance
16301 --
16302 l_balance_type_code VARCHAR2(1);
16303 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16304 l_log_module VARCHAR2(240);
16305
16306 --
16307 -- Upgrade strategy
16308 --
16309 l_actual_upg_option VARCHAR2(1);
16310 l_enc_upg_option VARCHAR2(1);
16311
16312 --
16313 BEGIN
16314 --
16315 IF g_log_enabled THEN
16316 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
16317 END IF;
16318 --
16319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16320
16321 trace
16322 (p_msg => 'BEGIN of AcctLineType_51'
16323 ,p_level => C_LEVEL_PROCEDURE
16324 ,p_module => l_log_module);
16325
16326 END IF;
16327 --
16328 l_component_type := 'AMB_JLT';
16329 l_component_code := 'AP_AMOUNT_VARIANCE_CLR_ENC';
16330 l_component_type_code := 'S';
16331 l_component_appl_id := 200;
16332 l_amb_context_code := 'DEFAULT';
16333 l_entity_code := 'AP_PAYMENTS';
16334 l_event_class_code := 'RECONCILED PAYMENTS';
16335 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
16336 l_line_definition_owner_code := 'S';
16337 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
16338 --
16339 l_balance_type_code := 'E';
16340 l_segment := NULL;
16341 l_ccid := NULL;
16342 l_adr_transaction_coa_id := NULL;
16343 l_adr_accounting_coa_id := NULL;
16344 l_adr_flexfield_segment_code := NULL;
16345 l_adr_flex_value_set_id := NULL;
16346 l_adr_value_type_code := NULL;
16347 l_adr_value_combination_id := NULL;
16348 l_adr_value_segment_code := NULL;
16349
16350 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
16351 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
16352 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16353 l_budgetary_control_flag := 'N';
16354
16355 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16356 l_bflow_applied_to_amt := NULL; -- 5132302
16357 l_entered_amt_idx := NULL; -- 4262811
16358 l_accted_amt_idx := NULL; -- 4262811
16359 l_acc_rev_flag := NULL; -- 4262811
16360 l_accrual_line_num := NULL; -- 4262811
16361 l_tmp_amt := NULL; -- 4262811
16362 --
16363
16364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16365 l_balance_type_code <> 'B' THEN
16366 IF NVL(p_source_38,'
16367 ') = 'CLEAR_CLEAR' AND
16368 NVL(p_source_100,'
16369 ') <> 'Y' AND
16370 (NVL(p_source_39,'
16371 ') = 'CASH' OR
16372 NVL(p_source_39,'
16373 ') = 'DISCOUNT') AND
16374 NVL(p_source_102,'
16375 ') = 'Y' AND
16376 p_source_103 IS NOT NULL AND
16377 NVL(p_source_104,'
16378 ') = 'Y'
16379 THEN
16380
16381 --
16382 XLA_AE_LINES_PKG.SetNewLine;
16383
16384 p_balance_type_code := l_balance_type_code;
16385 -- set the flag so later we will know whether the gain loss line needs to be created
16386
16387 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16388 p_actual_flag :='A';
16389 END IF;
16390
16391 --
16392 -- bulk performance
16393 --
16394 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16395 p_header_num => 0); -- 4262811
16396 --
16397 -- set accounting line options
16398 --
16399 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16400 p_natural_side_code => 'C'
16401 , p_gain_or_loss_flag => 'N'
16402 , p_gl_transfer_mode_code => 'S'
16403 , p_acct_entry_type_code => 'E'
16404 , p_switch_side_flag => 'Y'
16405 , p_merge_duplicate_code => 'A'
16406 );
16407 --
16408 l_acc_rev_natural_side_code := 'D'; -- 4262811
16409 --
16410 --
16411 -- set accounting line type info
16412 --
16413 xla_ae_lines_pkg.SetAcctLineType
16414 (p_component_type => l_component_type
16415 ,p_event_type_code => l_event_type_code
16416 ,p_line_definition_owner_code => l_line_definition_owner_code
16417 ,p_line_definition_code => l_line_definition_code
16418 ,p_accounting_line_code => l_component_code
16419 ,p_accounting_line_type_code => l_component_type_code
16420 ,p_accounting_line_appl_id => l_component_appl_id
16421 ,p_amb_context_code => l_amb_context_code
16422 ,p_entity_code => l_entity_code
16423 ,p_event_class_code => l_event_class_code);
16424 --
16425 -- set accounting class
16426 --
16427 xla_ae_lines_pkg.SetAcctClass(
16431
16428 p_accounting_class_code => 'AMT_VARIANCE'
16429 , p_ae_header_id => l_ae_header_id
16430 );
16432 --
16433 -- set rounding class
16434 --
16435 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16436 'AMT_VARIANCE';
16437
16438 --
16439 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16440 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16441 --
16442 -- bulk performance
16443 --
16444 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16445
16446 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16447 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16448
16449 -- 4955764
16450 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16451 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16452
16453 -- 4458381 Public Sector Enh
16454
16455 --
16456 -- set accounting attributes for the line type
16457 --
16458 l_entered_amt_idx := 10;
16459 l_accted_amt_idx := 12;
16460 l_bflow_applied_to_amt_idx := 2; -- 5132302
16461 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16462 l_rec_acct_attrs.array_char_value(1) := p_source_40;
16463 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
16464 l_rec_acct_attrs.array_num_value(2) := p_source_41;
16465 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
16466 l_rec_acct_attrs.array_num_value(3) := p_source_42;
16467 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16468 l_rec_acct_attrs.array_char_value(4) := p_source_62;
16469 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
16470 l_rec_acct_attrs.array_char_value(5) := p_source_63;
16471 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
16472 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
16473 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16474 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
16475 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
16476 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
16477 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
16478 l_rec_acct_attrs.array_char_value(9) := p_source_48;
16479 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
16480 l_rec_acct_attrs.array_num_value(10) := p_source_105;
16481 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
16482 l_rec_acct_attrs.array_char_value(11) := p_source_49;
16483 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
16484 l_rec_acct_attrs.array_num_value(12) := p_source_103;
16485 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
16486 l_rec_acct_attrs.array_char_value(13) := p_source_53;
16487 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
16488 l_rec_acct_attrs.array_char_value(14) := p_source_56;
16489 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
16490 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
16491 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
16492 l_rec_acct_attrs.array_char_value(16) := p_source_48;
16493 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
16494 l_rec_acct_attrs.array_num_value(17) := p_source_58;
16495 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
16496 l_rec_acct_attrs.array_num_value(18) := p_source_58;
16497 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
16498 l_rec_acct_attrs.array_num_value(19) := p_source_59;
16499
16500 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16501 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16502
16503 ---------------------------------------------------------------------------------------------------------------
16504 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16505 ---------------------------------------------------------------------------------------------------------------
16506 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16507
16508 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16509 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16510
16511 IF xla_accounting_cache_pkg.GetValueChar
16512 (p_source_code => 'LEDGER_CATEGORY_CODE'
16513 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16514 AND l_bflow_method_code = 'PRIOR_ENTRY'
16515 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16516 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16517 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16518 )
16519 THEN
16520 xla_ae_lines_pkg.BflowUpgEntry
16521 (p_business_method_code => l_bflow_method_code
16522 ,p_business_class_code => l_bflow_class_code
16526 XLA_AE_LINES_PKG.business_flow_validation(
16523 ,p_balance_type => l_balance_type_code);
16524 ELSE
16525 NULL;
16527 p_business_method_code => l_bflow_method_code
16528 ,p_business_class_code => l_bflow_class_code
16529 ,p_inherit_description_flag => l_inherit_desc_flag);
16530 END IF;
16531
16532 --
16533 -- call analytical criteria
16534 --
16535 -- Inherited Analytical Criteria for business flow method of Prior Entry.
16536 --
16537 -- call description
16538 --
16539 -- No description or it is inherited.
16540 --
16541 -- call ADRs
16542 -- Bug 4922099
16543 --
16544 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16545 (NVL(l_actual_upg_option, 'N') = 'O') OR
16546 (NVL(l_enc_upg_option, 'N') = 'O')
16547 )
16548 THEN
16549 NULL;
16550 --
16551 --
16552
16553 --
16554 --
16555 END IF;
16556 --
16557 -- Bug 4922099
16558 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16559 (NVL(l_enc_upg_option, 'N') = 'O')
16560 ) AND
16561 (l_bflow_method_code = 'PRIOR_ENTRY')
16562 )
16563 THEN
16564 IF
16565 --
16566 1 = 1
16567 --
16568 THEN
16569 xla_accounting_err_pkg.build_message
16570 (p_appli_s_name => 'XLA'
16571 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16572 ,p_token_1 => 'LINE_NUMBER'
16573 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16574 ,p_token_2 => 'LINE_TYPE_NAME'
16575 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16576 l_component_type
16577 ,l_component_code
16578 ,l_component_type_code
16579 ,l_component_appl_id
16580 ,l_amb_context_code
16581 ,l_entity_code
16582 ,l_event_class_code
16583 )
16584 ,p_token_3 => 'OWNER'
16585 ,p_value_3 => xla_lookups_pkg.get_meaning(
16586 p_lookup_type => 'XLA_OWNER_TYPE'
16587 ,p_lookup_code => l_component_type_code
16588 )
16589 ,p_token_4 => 'PRODUCT_NAME'
16590 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16591 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16592 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16593 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16594 ,p_ae_header_id => NULL
16595 );
16596
16597 IF (C_LEVEL_ERROR>= g_log_level) THEN
16598 trace
16599 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16600 ,p_level => C_LEVEL_ERROR
16601 ,p_module => l_log_module);
16602 END IF;
16603 END IF;
16604 END IF;
16605 --
16606 --
16607 ------------------------------------------------------------------------------------------------
16608 -- 4219869 Business Flow
16609 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16610 -- Prior Entry. Currently, the following code is always generated.
16611 ------------------------------------------------------------------------------------------------
16612 -- No ValidateCurrentLine for business flow method of Prior Entry
16613
16614 ------------------------------------------------------------------------------------
16615 -- 4219869 Business Flow
16616 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16617 ------------------------------------------------------------------------------------
16618 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16619
16620 ----------------------------------------------------------------------------------
16621 -- 4219869 Business Flow
16622 -- Update journal entry status -- Need to generate this within IF <condition>
16623 ----------------------------------------------------------------------------------
16624 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16625 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16629 -------------------------------------------------------------------------------------------
16626 ,p_balance_type_code => l_balance_type_code
16627 );
16628
16630 -- 4262811 - Generate the Accrual Reversal lines
16631 -------------------------------------------------------------------------------------------
16632 BEGIN
16633 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16634 (g_array_event(p_event_id).array_value_num('header_index'));
16635 IF l_acc_rev_flag IS NULL THEN
16636 l_acc_rev_flag := 'N';
16637 END IF;
16638 EXCEPTION
16639 WHEN OTHERS THEN
16640 l_acc_rev_flag := 'N';
16641 END;
16642 --
16643 IF (l_acc_rev_flag = 'Y') THEN
16644
16645 -- 4645092 ------------------------------------------------------------------------------
16646 -- To allow MPA report to determine if it should generate report process
16647 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16648 ------------------------------------------------------------------------------------------
16649
16650 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16651 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16652 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16653 -- call ADRs
16654 -- Bug 4922099
16655 --
16656 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16657 (NVL(l_actual_upg_option, 'N') = 'O') OR
16658 (NVL(l_enc_upg_option, 'N') = 'O')
16659 )
16660 THEN
16661 NULL;
16662 --
16663 --
16664
16665 --
16666 --
16667 END IF;
16668
16669 --
16670 -- Update the line information that should be overwritten
16671 --
16672 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16673 p_header_num => 1);
16674 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16675
16676 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16677
16678 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16679 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16680 END IF;
16681
16682 --
16683 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16684 --
16685 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16686 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16687 ELSE
16688 ---------------------------------------------------------------------------------------------------
16689 -- 4262811a Switch Sign
16690 ---------------------------------------------------------------------------------------------------
16691 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16692 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16693 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16694 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16695 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16696 -- 5132302
16697 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16698 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16699
16700 END IF;
16701
16702 -- 4955764
16703 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16704 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16705
16706
16707 XLA_AE_LINES_PKG.ValidateCurrentLine;
16708 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16709
16710 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16711 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16712 ,p_balance_type_code => l_balance_type_code);
16713
16714 END IF;
16715
16716 -----------------------------------------------------------------------------------------
16717 -- 4262811 Multiperiod Accounting
16718 -----------------------------------------------------------------------------------------
16719 -- No MPA option is assigned.
16720
16721
16722 END IF;
16723 END IF;
16724 --
16725
16726 --
16727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16728 trace
16729 (p_msg => 'END of AcctLineType_51'
16730 ,p_level => C_LEVEL_PROCEDURE
16731 ,p_module => l_log_module);
16732 END IF;
16733 --
16734 EXCEPTION
16735 WHEN xla_exceptions_pkg.application_exception THEN
16736 RAISE;
16737 WHEN OTHERS THEN
16738 xla_exceptions_pkg.raise_message
16739 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_51');
16740 END AcctLineType_51;
16741 --
16742
16743 ---------------------------------------
16744 --
16745 -- PRIVATE FUNCTION
16746 -- AcctLineType_52
16747 --
16751 ,p_event_id IN NUMBER
16748 ---------------------------------------
16749 PROCEDURE AcctLineType_52 (
16750 p_application_id IN NUMBER
16752 ,p_calculate_acctd_flag IN VARCHAR2
16753 ,p_calculate_g_l_flag IN VARCHAR2
16754 ,p_actual_flag IN OUT VARCHAR2
16755 ,p_balance_type_code OUT VARCHAR2
16756 ,p_gain_or_loss_ref OUT VARCHAR2
16757
16758 --When to Account for Payment Option
16759 , p_source_38 IN VARCHAR2
16760 --Payment Distribution Type
16761 , p_source_39 IN VARCHAR2
16762 , p_source_39_meaning IN VARCHAR2
16763 --Accounting Reversal Indicator
16764 , p_source_40 IN VARCHAR2
16765 --Business Flow Accounts Payable Application Identifier
16766 , p_source_42 IN NUMBER
16767 --Payment Distribution Identifier
16768 , p_source_47 IN NUMBER
16769 --Distribution Link Type
16770 , p_source_48 IN VARCHAR2
16771 --Payment Currency Code
16772 , p_source_49 IN VARCHAR2
16773 --Override Accounted Amount Indicator
16774 , p_source_53 IN VARCHAR2
16775 , p_source_53_meaning IN VARCHAR2
16776 --Third Party Type
16777 , p_source_56 IN VARCHAR2
16778 --Payment Distribution Reversed Identifier
16779 , p_source_57 IN NUMBER
16780 --Invoice Distribution Tax Line Identifier
16781 , p_source_58 IN NUMBER
16782 --Invoice Distribution Summary Tax Line Identifier
16783 , p_source_59 IN NUMBER
16784 --Payment Type
16785 , p_source_60 IN VARCHAR2
16786 , p_source_60_meaning IN VARCHAR2
16787 --Invoice Distribution Amount of the Payment Distribution
16788 , p_source_61 IN NUMBER
16789 --Business Flow Invoice Distribution Type
16790 , p_source_62 IN VARCHAR2
16791 --Business Flow Invoice Entity Code
16792 , p_source_63 IN VARCHAR2
16793 --Business Flow Invoice Distribution Identifier
16794 , p_source_64 IN NUMBER
16795 --Business Flow Invoice Identifier
16796 , p_source_65 IN NUMBER
16797 --Invoice Distribution Tax Distribution Identifier from Tax
16798 , p_source_66 IN NUMBER
16799 --Accrue on Receipt Option
16800 , p_source_100 IN VARCHAR2
16801 , p_source_100_meaning IN VARCHAR2
16802 --Purchasing Encumbrance Option
16803 , p_source_102 IN VARCHAR2
16804 , p_source_102_meaning IN VARCHAR2
16805 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
16806 , p_source_103 IN NUMBER
16807 --Invoice Encumbered Option
16808 , p_source_104 IN VARCHAR2
16809 , p_source_104_meaning IN VARCHAR2
16810 --Prorated Amount of Variance Amount for Cash Basis
16811 , p_source_105 IN NUMBER
16812 )
16813 IS
16814
16815 l_component_type VARCHAR2(80);
16816 l_component_code VARCHAR2(30);
16817 l_component_type_code VARCHAR2(1);
16818 l_component_appl_id INTEGER;
16819 l_amb_context_code VARCHAR2(30);
16820 l_entity_code VARCHAR2(30);
16821 l_event_class_code VARCHAR2(30);
16822 l_ae_header_id NUMBER;
16823 l_event_type_code VARCHAR2(30);
16824 l_line_definition_code VARCHAR2(30);
16825 l_line_definition_owner_code VARCHAR2(1);
16826 --
16827 -- adr variables
16828 l_segment VARCHAR2(30);
16829 l_ccid NUMBER;
16830 l_adr_transaction_coa_id NUMBER;
16831 l_adr_accounting_coa_id NUMBER;
16832 l_adr_flexfield_segment_code VARCHAR2(30);
16833 l_adr_flex_value_set_id NUMBER;
16834 l_adr_value_type_code VARCHAR2(30);
16835 l_adr_value_combination_id NUMBER;
16836 l_adr_value_segment_code VARCHAR2(30);
16837
16838 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16839 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16840 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16841 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16842
16843 -- 4262811 Variables ------------------------------------------------------------------------------------------
16844 l_entered_amt_idx NUMBER;
16845 l_accted_amt_idx NUMBER;
16846 l_acc_rev_flag VARCHAR2(1);
16847 l_accrual_line_num NUMBER;
16848 l_tmp_amt NUMBER;
16849 l_acc_rev_natural_side_code VARCHAR2(1);
16850
16851 l_num_entries NUMBER;
16852 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16853 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16854 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16855 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16856 l_recog_line_1 NUMBER;
16857 l_recog_line_2 NUMBER;
16858
16859 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16860 l_bflow_applied_to_amt NUMBER; -- 5132302
16861 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16862
16863 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16864
16865 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16866 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16867
16871 --
16868 ---------------------------------------------------------------------------------------------------------------
16869
16870
16872 -- bulk performance
16873 --
16874 l_balance_type_code VARCHAR2(1);
16875 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16876 l_log_module VARCHAR2(240);
16877
16878 --
16879 -- Upgrade strategy
16880 --
16881 l_actual_upg_option VARCHAR2(1);
16882 l_enc_upg_option VARCHAR2(1);
16883
16884 --
16885 BEGIN
16886 --
16887 IF g_log_enabled THEN
16888 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
16889 END IF;
16890 --
16891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16892
16893 trace
16894 (p_msg => 'BEGIN of AcctLineType_52'
16895 ,p_level => C_LEVEL_PROCEDURE
16896 ,p_module => l_log_module);
16897
16898 END IF;
16899 --
16900 l_component_type := 'AMB_JLT';
16901 l_component_code := 'AP_AMOUNT_VARIANCE_PMT_ENC';
16902 l_component_type_code := 'S';
16903 l_component_appl_id := 200;
16904 l_amb_context_code := 'DEFAULT';
16905 l_entity_code := 'AP_PAYMENTS';
16906 l_event_class_code := 'PAYMENTS';
16907 l_event_type_code := 'PAYMENTS_ALL';
16908 l_line_definition_owner_code := 'S';
16909 l_line_definition_code := 'ENC_PAYMENTS_ALL';
16910 --
16911 l_balance_type_code := 'E';
16912 l_segment := NULL;
16913 l_ccid := NULL;
16914 l_adr_transaction_coa_id := NULL;
16915 l_adr_accounting_coa_id := NULL;
16916 l_adr_flexfield_segment_code := NULL;
16917 l_adr_flex_value_set_id := NULL;
16918 l_adr_value_type_code := NULL;
16919 l_adr_value_combination_id := NULL;
16920 l_adr_value_segment_code := NULL;
16921
16922 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
16923 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
16924 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16925 l_budgetary_control_flag := 'N';
16926
16927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16928 l_bflow_applied_to_amt := NULL; -- 5132302
16929 l_entered_amt_idx := NULL; -- 4262811
16930 l_accted_amt_idx := NULL; -- 4262811
16931 l_acc_rev_flag := NULL; -- 4262811
16932 l_accrual_line_num := NULL; -- 4262811
16933 l_tmp_amt := NULL; -- 4262811
16934 --
16935
16936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16937 l_balance_type_code <> 'B' THEN
16938 IF NVL(p_source_38,'
16939 ') <> 'CLEAR_CLEAR' AND
16940 NVL(p_source_100,'
16941 ') <> 'Y' AND
16942 (NVL(p_source_39,'
16943 ') = 'CASH' OR
16944 NVL(p_source_39,'
16945 ') = 'DISCOUNT') AND
16946 NVL(p_source_60,'
16947 ') <> 'R' AND
16948 NVL(p_source_102,'
16949 ') = 'Y' AND
16950 p_source_103 IS NOT NULL AND
16951 NVL(p_source_104,'
16952 ') = 'Y'
16953 THEN
16954
16955 --
16956 XLA_AE_LINES_PKG.SetNewLine;
16957
16958 p_balance_type_code := l_balance_type_code;
16959 -- set the flag so later we will know whether the gain loss line needs to be created
16960
16961 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16962 p_actual_flag :='A';
16963 END IF;
16964
16965 --
16966 -- bulk performance
16967 --
16968 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16969 p_header_num => 0); -- 4262811
16970 --
16971 -- set accounting line options
16972 --
16973 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16974 p_natural_side_code => 'C'
16975 , p_gain_or_loss_flag => 'N'
16976 , p_gl_transfer_mode_code => 'S'
16977 , p_acct_entry_type_code => 'E'
16978 , p_switch_side_flag => 'Y'
16979 , p_merge_duplicate_code => 'A'
16980 );
16981 --
16982 l_acc_rev_natural_side_code := 'D'; -- 4262811
16983 --
16984 --
16985 -- set accounting line type info
16986 --
16987 xla_ae_lines_pkg.SetAcctLineType
16988 (p_component_type => l_component_type
16989 ,p_event_type_code => l_event_type_code
16990 ,p_line_definition_owner_code => l_line_definition_owner_code
16991 ,p_line_definition_code => l_line_definition_code
16992 ,p_accounting_line_code => l_component_code
16993 ,p_accounting_line_type_code => l_component_type_code
16994 ,p_accounting_line_appl_id => l_component_appl_id
16995 ,p_amb_context_code => l_amb_context_code
16996 ,p_entity_code => l_entity_code
16997 ,p_event_class_code => l_event_class_code);
16998 --
16999 -- set accounting class
17000 --
17001 xla_ae_lines_pkg.SetAcctClass(
17002 p_accounting_class_code => 'AMT_VARIANCE'
17003 , p_ae_header_id => l_ae_header_id
17004 );
17005
17006 --
17007 -- set rounding class
17008 --
17009 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17013 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17010 'AMT_VARIANCE';
17011
17012 --
17014 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17015 --
17016 -- bulk performance
17017 --
17018 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17019
17020 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17021 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17022
17023 -- 4955764
17024 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17025 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17026
17027 -- 4458381 Public Sector Enh
17028
17029 --
17030 -- set accounting attributes for the line type
17031 --
17032 l_entered_amt_idx := 10;
17033 l_accted_amt_idx := 12;
17034 l_bflow_applied_to_amt_idx := 2; -- 5132302
17035 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17036 l_rec_acct_attrs.array_char_value(1) := p_source_40;
17037 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17038 l_rec_acct_attrs.array_num_value(2) := p_source_61;
17039 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17040 l_rec_acct_attrs.array_num_value(3) := p_source_42;
17041 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17042 l_rec_acct_attrs.array_char_value(4) := p_source_62;
17043 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17044 l_rec_acct_attrs.array_char_value(5) := p_source_63;
17045 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17046 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
17047 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17048 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
17049 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17050 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
17051 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17052 l_rec_acct_attrs.array_char_value(9) := p_source_48;
17053 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17054 l_rec_acct_attrs.array_num_value(10) := p_source_105;
17055 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17056 l_rec_acct_attrs.array_char_value(11) := p_source_49;
17057 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
17058 l_rec_acct_attrs.array_num_value(12) := p_source_103;
17059 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
17060 l_rec_acct_attrs.array_char_value(13) := p_source_53;
17061 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
17062 l_rec_acct_attrs.array_char_value(14) := p_source_56;
17063 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
17064 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
17065 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
17066 l_rec_acct_attrs.array_char_value(16) := p_source_48;
17067 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
17068 l_rec_acct_attrs.array_num_value(17) := p_source_58;
17069 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
17070 l_rec_acct_attrs.array_num_value(18) := p_source_66;
17071 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
17072 l_rec_acct_attrs.array_num_value(19) := p_source_59;
17073
17074 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17075 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17076
17077 ---------------------------------------------------------------------------------------------------------------
17078 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17079 ---------------------------------------------------------------------------------------------------------------
17080 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17081
17082 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17083 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17084
17085 IF xla_accounting_cache_pkg.GetValueChar
17086 (p_source_code => 'LEDGER_CATEGORY_CODE'
17087 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17088 AND l_bflow_method_code = 'PRIOR_ENTRY'
17089 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17090 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17091 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17092 )
17093 THEN
17094 xla_ae_lines_pkg.BflowUpgEntry
17095 (p_business_method_code => l_bflow_method_code
17096 ,p_business_class_code => l_bflow_class_code
17097 ,p_balance_type => l_balance_type_code);
17098 ELSE
17099 NULL;
17100 XLA_AE_LINES_PKG.business_flow_validation(
17101 p_business_method_code => l_bflow_method_code
17102 ,p_business_class_code => l_bflow_class_code
17106 --
17103 ,p_inherit_description_flag => l_inherit_desc_flag);
17104 END IF;
17105
17107 -- call analytical criteria
17108 --
17109 -- Inherited Analytical Criteria for business flow method of Prior Entry.
17110 --
17111 -- call description
17112 --
17113 -- No description or it is inherited.
17114 --
17115 -- call ADRs
17116 -- Bug 4922099
17117 --
17118 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17119 (NVL(l_actual_upg_option, 'N') = 'O') OR
17120 (NVL(l_enc_upg_option, 'N') = 'O')
17121 )
17122 THEN
17123 NULL;
17124 --
17125 --
17126
17127 --
17128 --
17129 END IF;
17130 --
17131 -- Bug 4922099
17132 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17133 (NVL(l_enc_upg_option, 'N') = 'O')
17134 ) AND
17135 (l_bflow_method_code = 'PRIOR_ENTRY')
17136 )
17137 THEN
17138 IF
17139 --
17140 1 = 1
17141 --
17142 THEN
17143 xla_accounting_err_pkg.build_message
17144 (p_appli_s_name => 'XLA'
17145 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17146 ,p_token_1 => 'LINE_NUMBER'
17147 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17148 ,p_token_2 => 'LINE_TYPE_NAME'
17149 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17150 l_component_type
17151 ,l_component_code
17152 ,l_component_type_code
17153 ,l_component_appl_id
17154 ,l_amb_context_code
17155 ,l_entity_code
17156 ,l_event_class_code
17157 )
17158 ,p_token_3 => 'OWNER'
17159 ,p_value_3 => xla_lookups_pkg.get_meaning(
17160 p_lookup_type => 'XLA_OWNER_TYPE'
17161 ,p_lookup_code => l_component_type_code
17162 )
17163 ,p_token_4 => 'PRODUCT_NAME'
17164 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17165 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17166 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17167 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17168 ,p_ae_header_id => NULL
17169 );
17170
17171 IF (C_LEVEL_ERROR>= g_log_level) THEN
17172 trace
17173 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17174 ,p_level => C_LEVEL_ERROR
17175 ,p_module => l_log_module);
17176 END IF;
17177 END IF;
17178 END IF;
17179 --
17180 --
17181 ------------------------------------------------------------------------------------------------
17182 -- 4219869 Business Flow
17183 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17184 -- Prior Entry. Currently, the following code is always generated.
17185 ------------------------------------------------------------------------------------------------
17186 -- No ValidateCurrentLine for business flow method of Prior Entry
17187
17188 ------------------------------------------------------------------------------------
17189 -- 4219869 Business Flow
17190 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17191 ------------------------------------------------------------------------------------
17192 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17193
17194 ----------------------------------------------------------------------------------
17195 -- 4219869 Business Flow
17196 -- Update journal entry status -- Need to generate this within IF <condition>
17197 ----------------------------------------------------------------------------------
17198 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17199 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17200 ,p_balance_type_code => l_balance_type_code
17201 );
17202
17203 -------------------------------------------------------------------------------------------
17204 -- 4262811 - Generate the Accrual Reversal lines
17205 -------------------------------------------------------------------------------------------
17206 BEGIN
17210 l_acc_rev_flag := 'N';
17207 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17208 (g_array_event(p_event_id).array_value_num('header_index'));
17209 IF l_acc_rev_flag IS NULL THEN
17211 END IF;
17212 EXCEPTION
17213 WHEN OTHERS THEN
17214 l_acc_rev_flag := 'N';
17215 END;
17216 --
17217 IF (l_acc_rev_flag = 'Y') THEN
17218
17219 -- 4645092 ------------------------------------------------------------------------------
17220 -- To allow MPA report to determine if it should generate report process
17221 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17222 ------------------------------------------------------------------------------------------
17223
17224 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17225 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17226 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17227 -- call ADRs
17228 -- Bug 4922099
17229 --
17230 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17231 (NVL(l_actual_upg_option, 'N') = 'O') OR
17232 (NVL(l_enc_upg_option, 'N') = 'O')
17233 )
17234 THEN
17235 NULL;
17236 --
17237 --
17238
17239 --
17240 --
17241 END IF;
17242
17243 --
17244 -- Update the line information that should be overwritten
17245 --
17246 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17247 p_header_num => 1);
17248 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17249
17250 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17251
17252 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17253 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17254 END IF;
17255
17256 --
17257 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17258 --
17259 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17260 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17261 ELSE
17262 ---------------------------------------------------------------------------------------------------
17263 -- 4262811a Switch Sign
17264 ---------------------------------------------------------------------------------------------------
17265 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17266 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17267 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17268 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17269 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17270 -- 5132302
17271 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17272 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17273
17274 END IF;
17275
17276 -- 4955764
17277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17279
17280
17281 XLA_AE_LINES_PKG.ValidateCurrentLine;
17282 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17283
17284 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17285 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17286 ,p_balance_type_code => l_balance_type_code);
17287
17288 END IF;
17289
17290 -----------------------------------------------------------------------------------------
17291 -- 4262811 Multiperiod Accounting
17292 -----------------------------------------------------------------------------------------
17293 -- No MPA option is assigned.
17294
17295
17296 END IF;
17297 END IF;
17298 --
17299
17300 --
17301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17302 trace
17303 (p_msg => 'END of AcctLineType_52'
17304 ,p_level => C_LEVEL_PROCEDURE
17305 ,p_module => l_log_module);
17306 END IF;
17307 --
17308 EXCEPTION
17309 WHEN xla_exceptions_pkg.application_exception THEN
17310 RAISE;
17311 WHEN OTHERS THEN
17312 xla_exceptions_pkg.raise_message
17313 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_52');
17314 END AcctLineType_52;
17315 --
17316
17317 ---------------------------------------
17318 --
17319 -- PRIVATE FUNCTION
17320 -- AcctLineType_53
17321 --
17322 ---------------------------------------
17323 PROCEDURE AcctLineType_53 (
17324 p_application_id IN NUMBER
17325 ,p_event_id IN NUMBER
17326 ,p_calculate_acctd_flag IN VARCHAR2
17330 ,p_gain_or_loss_ref OUT VARCHAR2
17327 ,p_calculate_g_l_flag IN VARCHAR2
17328 ,p_actual_flag IN OUT VARCHAR2
17329 ,p_balance_type_code OUT VARCHAR2
17331
17332 --Automatic Offsets Value
17333 , p_source_4 IN VARCHAR2
17334 , p_source_4_meaning IN VARCHAR2
17335 --Payment Distribution (Cleared Rate) Ledger Amount
17336 , p_source_10 IN NUMBER
17337 --Invoice Distribution Account
17338 , p_source_17 IN NUMBER
17339 --Bank Charges Account
17340 , p_source_25 IN NUMBER
17341 --When to Account for Payment Option
17342 , p_source_38 IN VARCHAR2
17343 --Payment Distribution Type
17344 , p_source_39 IN VARCHAR2
17345 , p_source_39_meaning IN VARCHAR2
17346 --Accounting Reversal Indicator
17347 , p_source_40 IN VARCHAR2
17348 --Payment Distribution Amount
17349 , p_source_41 IN NUMBER
17350 --Business Flow Accounts Payable Application Identifier
17351 , p_source_42 IN NUMBER
17352 --Business Flow Payment Distribution Type
17353 , p_source_43 IN VARCHAR2
17354 --Business Flow Payment Entity Code
17355 , p_source_44 IN VARCHAR2
17356 --Business Flow Payment Distribution Identifier
17357 , p_source_45 IN NUMBER
17358 --Business Flow Payment Identifier
17359 , p_source_46 IN NUMBER
17360 --Payment Distribution Identifier
17361 , p_source_47 IN NUMBER
17362 --Distribution Link Type
17363 , p_source_48 IN VARCHAR2
17364 --Override Accounted Amount Indicator
17365 , p_source_53 IN VARCHAR2
17366 , p_source_53_meaning IN VARCHAR2
17367 --Payment Supplier Identifier
17368 , p_source_54 IN NUMBER
17369 --Payment Supplier Site Identifier
17370 , p_source_55 IN NUMBER
17371 --Third Party Type
17372 , p_source_56 IN VARCHAR2
17373 --Payment Distribution Reversed Identifier
17374 , p_source_57 IN NUMBER
17375 --Invoice Distribution Tax Line Identifier
17376 , p_source_58 IN NUMBER
17377 --Invoice Distribution Summary Tax Line Identifier
17378 , p_source_59 IN NUMBER
17379 --Cleared Currency Code
17380 , p_source_106 IN VARCHAR2
17381 --Cleared Exchange Date
17382 , p_source_107 IN DATE
17383 --Cleared Exchange Rate
17384 , p_source_108 IN NUMBER
17385 --Cleared Exchange Rate Type
17386 , p_source_109 IN VARCHAR2
17387 )
17388 IS
17389
17390 l_component_type VARCHAR2(80);
17391 l_component_code VARCHAR2(30);
17392 l_component_type_code VARCHAR2(1);
17393 l_component_appl_id INTEGER;
17394 l_amb_context_code VARCHAR2(30);
17395 l_entity_code VARCHAR2(30);
17396 l_event_class_code VARCHAR2(30);
17397 l_ae_header_id NUMBER;
17398 l_event_type_code VARCHAR2(30);
17399 l_line_definition_code VARCHAR2(30);
17400 l_line_definition_owner_code VARCHAR2(1);
17401 --
17402 -- adr variables
17403 l_segment VARCHAR2(30);
17404 l_ccid NUMBER;
17405 l_adr_transaction_coa_id NUMBER;
17406 l_adr_accounting_coa_id NUMBER;
17407 l_adr_flexfield_segment_code VARCHAR2(30);
17408 l_adr_flex_value_set_id NUMBER;
17409 l_adr_value_type_code VARCHAR2(30);
17410 l_adr_value_combination_id NUMBER;
17411 l_adr_value_segment_code VARCHAR2(30);
17412
17413 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17414 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17415 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17416 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17417
17418 -- 4262811 Variables ------------------------------------------------------------------------------------------
17419 l_entered_amt_idx NUMBER;
17420 l_accted_amt_idx NUMBER;
17421 l_acc_rev_flag VARCHAR2(1);
17422 l_accrual_line_num NUMBER;
17423 l_tmp_amt NUMBER;
17424 l_acc_rev_natural_side_code VARCHAR2(1);
17425
17426 l_num_entries NUMBER;
17427 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17428 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17429 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17430 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17431 l_recog_line_1 NUMBER;
17432 l_recog_line_2 NUMBER;
17433
17434 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17435 l_bflow_applied_to_amt NUMBER; -- 5132302
17436 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17437
17438 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17439
17440 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17441 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17442
17443 ---------------------------------------------------------------------------------------------------------------
17444
17445
17446 --
17447 -- bulk performance
17448 --
17449 l_balance_type_code VARCHAR2(1);
17450 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17451 l_log_module VARCHAR2(240);
17452
17453 --
17454 -- Upgrade strategy
17458
17455 --
17456 l_actual_upg_option VARCHAR2(1);
17457 l_enc_upg_option VARCHAR2(1);
17459 --
17460 BEGIN
17461 --
17462 IF g_log_enabled THEN
17463 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
17464 END IF;
17465 --
17466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17467
17468 trace
17469 (p_msg => 'BEGIN of AcctLineType_53'
17470 ,p_level => C_LEVEL_PROCEDURE
17471 ,p_module => l_log_module);
17472
17473 END IF;
17474 --
17475 l_component_type := 'AMB_JLT';
17476 l_component_code := 'AP_BANK_CHARGES_CLEAR';
17477 l_component_type_code := 'S';
17478 l_component_appl_id := 200;
17479 l_amb_context_code := 'DEFAULT';
17480 l_entity_code := 'AP_PAYMENTS';
17481 l_event_class_code := 'RECONCILED PAYMENTS';
17482 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
17483 l_line_definition_owner_code := 'S';
17484 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
17485 --
17486 l_balance_type_code := 'A';
17487 l_segment := NULL;
17488 l_ccid := NULL;
17489 l_adr_transaction_coa_id := NULL;
17490 l_adr_accounting_coa_id := NULL;
17491 l_adr_flexfield_segment_code := NULL;
17492 l_adr_flex_value_set_id := NULL;
17493 l_adr_value_type_code := NULL;
17494 l_adr_value_combination_id := NULL;
17495 l_adr_value_segment_code := NULL;
17496
17497 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17498 l_bflow_class_code := ''; -- 4219869 Business Flow
17499 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17500 l_budgetary_control_flag := 'N';
17501
17502 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17503 l_bflow_applied_to_amt := NULL; -- 5132302
17504 l_entered_amt_idx := NULL; -- 4262811
17505 l_accted_amt_idx := NULL; -- 4262811
17506 l_acc_rev_flag := NULL; -- 4262811
17507 l_accrual_line_num := NULL; -- 4262811
17508 l_tmp_amt := NULL; -- 4262811
17509 --
17510
17511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17512 l_balance_type_code <> 'B' THEN
17513 IF NVL(p_source_38,'
17514 ') <> 'ISSUE_ISSUE' AND
17515 NVL(p_source_39,'
17516 ') = 'BANK CHARGE'
17517 THEN
17518
17519 --
17520 XLA_AE_LINES_PKG.SetNewLine;
17521
17522 p_balance_type_code := l_balance_type_code;
17523 -- set the flag so later we will know whether the gain loss line needs to be created
17524
17525 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17526 p_actual_flag :='A';
17527 END IF;
17528
17529 --
17530 -- bulk performance
17531 --
17532 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17533 p_header_num => 0); -- 4262811
17534 --
17535 -- set accounting line options
17536 --
17537 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17538 p_natural_side_code => 'D'
17539 , p_gain_or_loss_flag => 'N'
17540 , p_gl_transfer_mode_code => 'S'
17541 , p_acct_entry_type_code => 'A'
17542 , p_switch_side_flag => 'Y'
17543 , p_merge_duplicate_code => 'A'
17544 );
17545 --
17546 l_acc_rev_natural_side_code := 'C'; -- 4262811
17547 --
17548 --
17549 -- set accounting line type info
17550 --
17551 xla_ae_lines_pkg.SetAcctLineType
17552 (p_component_type => l_component_type
17553 ,p_event_type_code => l_event_type_code
17554 ,p_line_definition_owner_code => l_line_definition_owner_code
17555 ,p_line_definition_code => l_line_definition_code
17556 ,p_accounting_line_code => l_component_code
17557 ,p_accounting_line_type_code => l_component_type_code
17558 ,p_accounting_line_appl_id => l_component_appl_id
17559 ,p_amb_context_code => l_amb_context_code
17560 ,p_entity_code => l_entity_code
17561 ,p_event_class_code => l_event_class_code);
17562 --
17563 -- set accounting class
17564 --
17565 xla_ae_lines_pkg.SetAcctClass(
17566 p_accounting_class_code => 'BANK_CHG'
17567 , p_ae_header_id => l_ae_header_id
17568 );
17569
17570 --
17571 -- set rounding class
17572 --
17573 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17574 'BANK_CHG';
17575
17576 --
17577 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17578 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17579 --
17580 -- bulk performance
17581 --
17582 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17583
17584 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17585 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17586
17587 -- 4955764
17588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17592
17589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17590
17591 -- 4458381 Public Sector Enh
17593 --
17594 -- set accounting attributes for the line type
17595 --
17596 l_entered_amt_idx := 10;
17597 l_accted_amt_idx := 15;
17598 l_bflow_applied_to_amt_idx := 2; -- 5132302
17599 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17600 l_rec_acct_attrs.array_char_value(1) := p_source_40;
17601 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17602 l_rec_acct_attrs.array_num_value(2) := p_source_41;
17603 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17604 l_rec_acct_attrs.array_num_value(3) := p_source_42;
17605 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17606 l_rec_acct_attrs.array_char_value(4) := p_source_43;
17607 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17608 l_rec_acct_attrs.array_char_value(5) := p_source_44;
17609 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17610 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
17611 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17612 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
17613 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17614 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
17615 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17616 l_rec_acct_attrs.array_char_value(9) := p_source_48;
17617 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17618 l_rec_acct_attrs.array_num_value(10) := p_source_41;
17619 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17620 l_rec_acct_attrs.array_char_value(11) := p_source_106;
17621 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
17622 l_rec_acct_attrs.array_date_value(12) := p_source_107;
17623 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
17624 l_rec_acct_attrs.array_num_value(13) := p_source_108;
17625 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
17626 l_rec_acct_attrs.array_char_value(14) := p_source_109;
17627 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
17628 l_rec_acct_attrs.array_num_value(15) := p_source_10;
17629 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
17630 l_rec_acct_attrs.array_char_value(16) := p_source_53;
17631 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
17632 l_rec_acct_attrs.array_num_value(17) := p_source_54;
17633 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
17634 l_rec_acct_attrs.array_num_value(18) := p_source_55;
17635 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
17636 l_rec_acct_attrs.array_char_value(19) := p_source_56;
17637 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
17638 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
17639 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
17640 l_rec_acct_attrs.array_char_value(21) := p_source_48;
17641 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
17642 l_rec_acct_attrs.array_num_value(22) := p_source_58;
17643 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
17644 l_rec_acct_attrs.array_num_value(23) := p_source_58;
17645 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
17646 l_rec_acct_attrs.array_num_value(24) := p_source_59;
17647
17648 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17649 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17650
17651 ---------------------------------------------------------------------------------------------------------------
17652 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17653 ---------------------------------------------------------------------------------------------------------------
17654 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17655
17656 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17657 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17658
17659 IF xla_accounting_cache_pkg.GetValueChar
17660 (p_source_code => 'LEDGER_CATEGORY_CODE'
17661 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17662 AND l_bflow_method_code = 'PRIOR_ENTRY'
17663 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17664 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17665 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17666 )
17667 THEN
17668 xla_ae_lines_pkg.BflowUpgEntry
17669 (p_business_method_code => l_bflow_method_code
17670 ,p_business_class_code => l_bflow_class_code
17671 ,p_balance_type => l_balance_type_code);
17672 ELSE
17673 NULL;
17674 -- No business flow processing for business flow method of NONE.
17675 END IF;
17676
17677 --
17678 -- call analytical criteria
17679 --
17680
17681 --
17682 -- call description
17683 --
17687 -- Bug 4922099
17684 -- No description or it is inherited.
17685 --
17686 -- call ADRs
17688 --
17689 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17690 (NVL(l_actual_upg_option, 'N') = 'O') OR
17691 (NVL(l_enc_upg_option, 'N') = 'O')
17692 )
17693 THEN
17694 NULL;
17695 --
17696 --
17697
17698 l_ccid := AcctDerRule_18(
17699 p_application_id => p_application_id
17700 , p_ae_header_id => l_ae_header_id
17701 , p_source_4 => p_source_4
17702 , p_source_4_meaning => p_source_4_meaning
17703 , p_source_17 => p_source_17
17704 , p_source_25 => p_source_25
17705 , x_transaction_coa_id => l_adr_transaction_coa_id
17706 , x_accounting_coa_id => l_adr_accounting_coa_id
17707 , x_value_type_code => l_adr_value_type_code
17708 , p_side => 'NA'
17709 );
17710
17711 xla_ae_lines_pkg.set_ccid(
17712 p_code_combination_id => l_ccid
17713 , p_value_type_code => l_adr_value_type_code
17714 , p_transaction_coa_id => l_adr_transaction_coa_id
17715 , p_accounting_coa_id => l_adr_accounting_coa_id
17716 , p_adr_code => 'AP_BANK_CHARGES'
17717 , p_adr_type_code => 'S'
17718 , p_component_type => l_component_type
17719 , p_component_code => l_component_code
17720 , p_component_type_code => l_component_type_code
17721 , p_component_appl_id => l_component_appl_id
17722 , p_amb_context_code => l_amb_context_code
17723 , p_side => 'NA'
17724 );
17725
17726
17727 --
17728 --
17729 END IF;
17730 --
17731 -- Bug 4922099
17732 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17733 (NVL(l_enc_upg_option, 'N') = 'O')
17734 ) AND
17735 (l_bflow_method_code = 'PRIOR_ENTRY')
17736 )
17737 THEN
17738 IF
17739 --
17740 1 = 2
17741 --
17742 THEN
17743 xla_accounting_err_pkg.build_message
17744 (p_appli_s_name => 'XLA'
17745 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17746 ,p_token_1 => 'LINE_NUMBER'
17747 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17748 ,p_token_2 => 'LINE_TYPE_NAME'
17749 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17750 l_component_type
17751 ,l_component_code
17752 ,l_component_type_code
17753 ,l_component_appl_id
17754 ,l_amb_context_code
17755 ,l_entity_code
17756 ,l_event_class_code
17757 )
17758 ,p_token_3 => 'OWNER'
17759 ,p_value_3 => xla_lookups_pkg.get_meaning(
17760 p_lookup_type => 'XLA_OWNER_TYPE'
17761 ,p_lookup_code => l_component_type_code
17762 )
17763 ,p_token_4 => 'PRODUCT_NAME'
17764 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17765 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17766 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17767 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17768 ,p_ae_header_id => NULL
17769 );
17770
17771 IF (C_LEVEL_ERROR>= g_log_level) THEN
17772 trace
17773 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17774 ,p_level => C_LEVEL_ERROR
17775 ,p_module => l_log_module);
17776 END IF;
17777 END IF;
17778 END IF;
17779 --
17780 --
17781 ------------------------------------------------------------------------------------------------
17782 -- 4219869 Business Flow
17783 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17784 -- Prior Entry. Currently, the following code is always generated.
17785 ------------------------------------------------------------------------------------------------
17786 XLA_AE_LINES_PKG.ValidateCurrentLine;
17787
17788 ------------------------------------------------------------------------------------
17792 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17789 -- 4219869 Business Flow
17790 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17791 ------------------------------------------------------------------------------------
17793
17794 ----------------------------------------------------------------------------------
17795 -- 4219869 Business Flow
17796 -- Update journal entry status -- Need to generate this within IF <condition>
17797 ----------------------------------------------------------------------------------
17798 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17799 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17800 ,p_balance_type_code => l_balance_type_code
17801 );
17802
17803 -------------------------------------------------------------------------------------------
17804 -- 4262811 - Generate the Accrual Reversal lines
17805 -------------------------------------------------------------------------------------------
17806 BEGIN
17807 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17808 (g_array_event(p_event_id).array_value_num('header_index'));
17809 IF l_acc_rev_flag IS NULL THEN
17810 l_acc_rev_flag := 'N';
17811 END IF;
17812 EXCEPTION
17813 WHEN OTHERS THEN
17814 l_acc_rev_flag := 'N';
17815 END;
17816 --
17817 IF (l_acc_rev_flag = 'Y') THEN
17818
17819 -- 4645092 ------------------------------------------------------------------------------
17820 -- To allow MPA report to determine if it should generate report process
17821 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17822 ------------------------------------------------------------------------------------------
17823
17824 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17825 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17826 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17827 -- call ADRs
17828 -- Bug 4922099
17829 --
17830 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17831 (NVL(l_actual_upg_option, 'N') = 'O') OR
17832 (NVL(l_enc_upg_option, 'N') = 'O')
17833 )
17834 THEN
17835 NULL;
17836 --
17837 --
17838
17839 l_ccid := AcctDerRule_18(
17840 p_application_id => p_application_id
17841 , p_ae_header_id => l_ae_header_id
17842 , p_source_4 => p_source_4
17843 , p_source_4_meaning => p_source_4_meaning
17844 , p_source_17 => p_source_17
17845 , p_source_25 => p_source_25
17846 , x_transaction_coa_id => l_adr_transaction_coa_id
17847 , x_accounting_coa_id => l_adr_accounting_coa_id
17848 , x_value_type_code => l_adr_value_type_code
17849 , p_side => 'NA'
17850 );
17851
17852 xla_ae_lines_pkg.set_ccid(
17853 p_code_combination_id => l_ccid
17854 , p_value_type_code => l_adr_value_type_code
17855 , p_transaction_coa_id => l_adr_transaction_coa_id
17856 , p_accounting_coa_id => l_adr_accounting_coa_id
17857 , p_adr_code => 'AP_BANK_CHARGES'
17858 , p_adr_type_code => 'S'
17859 , p_component_type => l_component_type
17860 , p_component_code => l_component_code
17861 , p_component_type_code => l_component_type_code
17862 , p_component_appl_id => l_component_appl_id
17863 , p_amb_context_code => l_amb_context_code
17864 , p_side => 'NA'
17865 );
17866
17867
17868 --
17869 --
17870 END IF;
17871
17872 --
17873 -- Update the line information that should be overwritten
17874 --
17875 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17876 p_header_num => 1);
17877 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17878
17879 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17880
17881 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17882 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17883 END IF;
17884
17885 --
17886 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17887 --
17888 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17889 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17890 ELSE
17891 ---------------------------------------------------------------------------------------------------
17892 -- 4262811a Switch Sign
17893 ---------------------------------------------------------------------------------------------------
17894 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17895 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17896 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17900 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17897 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17898 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17899 -- 5132302
17901 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17902
17903 END IF;
17904
17905 -- 4955764
17906 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17907 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17908
17909
17910 XLA_AE_LINES_PKG.ValidateCurrentLine;
17911 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17912
17913 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17914 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17915 ,p_balance_type_code => l_balance_type_code);
17916
17917 END IF;
17918
17919 -----------------------------------------------------------------------------------------
17920 -- 4262811 Multiperiod Accounting
17921 -----------------------------------------------------------------------------------------
17922 -- No MPA option is assigned.
17923
17924
17925 END IF;
17926 END IF;
17927 --
17928
17929 --
17930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17931 trace
17932 (p_msg => 'END of AcctLineType_53'
17933 ,p_level => C_LEVEL_PROCEDURE
17934 ,p_module => l_log_module);
17935 END IF;
17936 --
17937 EXCEPTION
17938 WHEN xla_exceptions_pkg.application_exception THEN
17939 RAISE;
17940 WHEN OTHERS THEN
17941 xla_exceptions_pkg.raise_message
17942 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_53');
17943 END AcctLineType_53;
17944 --
17945
17946 ---------------------------------------
17947 --
17948 -- PRIVATE FUNCTION
17949 -- AcctLineType_54
17950 --
17951 ---------------------------------------
17952 PROCEDURE AcctLineType_54 (
17953 p_application_id IN NUMBER
17954 ,p_event_id IN NUMBER
17955 ,p_calculate_acctd_flag IN VARCHAR2
17956 ,p_calculate_g_l_flag IN VARCHAR2
17957 ,p_actual_flag IN OUT VARCHAR2
17958 ,p_balance_type_code OUT VARCHAR2
17959 ,p_gain_or_loss_ref OUT VARCHAR2
17960
17961 --Automatic Offsets Value
17962 , p_source_4 IN VARCHAR2
17963 , p_source_4_meaning IN VARCHAR2
17964 --Payment Distribution (Cleared Rate) Ledger Amount
17965 , p_source_10 IN NUMBER
17966 --Invoice Distribution Account
17967 , p_source_17 IN NUMBER
17968 --Bank Errors Account
17969 , p_source_26 IN NUMBER
17970 --When to Account for Payment Option
17971 , p_source_38 IN VARCHAR2
17972 --Payment Distribution Type
17973 , p_source_39 IN VARCHAR2
17974 , p_source_39_meaning IN VARCHAR2
17975 --Accounting Reversal Indicator
17976 , p_source_40 IN VARCHAR2
17977 --Payment Distribution Amount
17978 , p_source_41 IN NUMBER
17979 --Business Flow Accounts Payable Application Identifier
17980 , p_source_42 IN NUMBER
17981 --Business Flow Payment Distribution Type
17982 , p_source_43 IN VARCHAR2
17983 --Business Flow Payment Entity Code
17984 , p_source_44 IN VARCHAR2
17985 --Business Flow Payment Distribution Identifier
17986 , p_source_45 IN NUMBER
17987 --Business Flow Payment Identifier
17988 , p_source_46 IN NUMBER
17989 --Payment Distribution Identifier
17990 , p_source_47 IN NUMBER
17991 --Distribution Link Type
17992 , p_source_48 IN VARCHAR2
17993 --Override Accounted Amount Indicator
17994 , p_source_53 IN VARCHAR2
17995 , p_source_53_meaning IN VARCHAR2
17996 --Payment Supplier Identifier
17997 , p_source_54 IN NUMBER
17998 --Payment Supplier Site Identifier
17999 , p_source_55 IN NUMBER
18000 --Third Party Type
18001 , p_source_56 IN VARCHAR2
18002 --Payment Distribution Reversed Identifier
18003 , p_source_57 IN NUMBER
18004 --Invoice Distribution Tax Line Identifier
18005 , p_source_58 IN NUMBER
18006 --Invoice Distribution Summary Tax Line Identifier
18007 , p_source_59 IN NUMBER
18008 --Cleared Currency Code
18009 , p_source_106 IN VARCHAR2
18010 --Cleared Exchange Date
18011 , p_source_107 IN DATE
18012 --Cleared Exchange Rate
18013 , p_source_108 IN NUMBER
18014 --Cleared Exchange Rate Type
18015 , p_source_109 IN VARCHAR2
18016 )
18017 IS
18018
18019 l_component_type VARCHAR2(80);
18020 l_component_code VARCHAR2(30);
18021 l_component_type_code VARCHAR2(1);
18022 l_component_appl_id INTEGER;
18023 l_amb_context_code VARCHAR2(30);
18024 l_entity_code VARCHAR2(30);
18025 l_event_class_code VARCHAR2(30);
18026 l_ae_header_id NUMBER;
18027 l_event_type_code VARCHAR2(30);
18028 l_line_definition_code VARCHAR2(30);
18029 l_line_definition_owner_code VARCHAR2(1);
18030 --
18031 -- adr variables
18032 l_segment VARCHAR2(30);
18033 l_ccid NUMBER;
18034 l_adr_transaction_coa_id NUMBER;
18038 l_adr_value_type_code VARCHAR2(30);
18035 l_adr_accounting_coa_id NUMBER;
18036 l_adr_flexfield_segment_code VARCHAR2(30);
18037 l_adr_flex_value_set_id NUMBER;
18039 l_adr_value_combination_id NUMBER;
18040 l_adr_value_segment_code VARCHAR2(30);
18041
18042 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18043 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18044 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18045 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18046
18047 -- 4262811 Variables ------------------------------------------------------------------------------------------
18048 l_entered_amt_idx NUMBER;
18049 l_accted_amt_idx NUMBER;
18050 l_acc_rev_flag VARCHAR2(1);
18051 l_accrual_line_num NUMBER;
18052 l_tmp_amt NUMBER;
18053 l_acc_rev_natural_side_code VARCHAR2(1);
18054
18055 l_num_entries NUMBER;
18056 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18057 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18058 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18059 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18060 l_recog_line_1 NUMBER;
18061 l_recog_line_2 NUMBER;
18062
18063 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18064 l_bflow_applied_to_amt NUMBER; -- 5132302
18065 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18066
18067 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18068
18069 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18070 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18071
18072 ---------------------------------------------------------------------------------------------------------------
18073
18074
18075 --
18076 -- bulk performance
18077 --
18078 l_balance_type_code VARCHAR2(1);
18079 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18080 l_log_module VARCHAR2(240);
18081
18082 --
18083 -- Upgrade strategy
18084 --
18085 l_actual_upg_option VARCHAR2(1);
18086 l_enc_upg_option VARCHAR2(1);
18087
18088 --
18089 BEGIN
18090 --
18091 IF g_log_enabled THEN
18092 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
18093 END IF;
18094 --
18095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18096
18097 trace
18098 (p_msg => 'BEGIN of AcctLineType_54'
18099 ,p_level => C_LEVEL_PROCEDURE
18100 ,p_module => l_log_module);
18101
18102 END IF;
18103 --
18104 l_component_type := 'AMB_JLT';
18105 l_component_code := 'AP_BANK_ERROR_CLEAR';
18106 l_component_type_code := 'S';
18107 l_component_appl_id := 200;
18108 l_amb_context_code := 'DEFAULT';
18109 l_entity_code := 'AP_PAYMENTS';
18110 l_event_class_code := 'RECONCILED PAYMENTS';
18111 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
18112 l_line_definition_owner_code := 'S';
18113 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
18114 --
18115 l_balance_type_code := 'A';
18116 l_segment := NULL;
18117 l_ccid := NULL;
18118 l_adr_transaction_coa_id := NULL;
18119 l_adr_accounting_coa_id := NULL;
18120 l_adr_flexfield_segment_code := NULL;
18121 l_adr_flex_value_set_id := NULL;
18122 l_adr_value_type_code := NULL;
18123 l_adr_value_combination_id := NULL;
18124 l_adr_value_segment_code := NULL;
18125
18126 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18127 l_bflow_class_code := ''; -- 4219869 Business Flow
18128 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18129 l_budgetary_control_flag := 'N';
18130
18131 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18132 l_bflow_applied_to_amt := NULL; -- 5132302
18133 l_entered_amt_idx := NULL; -- 4262811
18134 l_accted_amt_idx := NULL; -- 4262811
18135 l_acc_rev_flag := NULL; -- 4262811
18136 l_accrual_line_num := NULL; -- 4262811
18137 l_tmp_amt := NULL; -- 4262811
18138 --
18139
18140 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18141 l_balance_type_code <> 'B' THEN
18142 IF NVL(p_source_38,'
18143 ') <> 'ISSUE_ISSUE' AND
18144 NVL(p_source_39,'
18145 ') = 'BANK ERROR'
18146 THEN
18147
18148 --
18149 XLA_AE_LINES_PKG.SetNewLine;
18150
18151 p_balance_type_code := l_balance_type_code;
18152 -- set the flag so later we will know whether the gain loss line needs to be created
18153
18154 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18155 p_actual_flag :='A';
18156 END IF;
18157
18158 --
18159 -- bulk performance
18160 --
18161 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18162 p_header_num => 0); -- 4262811
18163 --
18164 -- set accounting line options
18165 --
18166 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18167 p_natural_side_code => 'D'
18168 , p_gain_or_loss_flag => 'N'
18172 , p_merge_duplicate_code => 'A'
18169 , p_gl_transfer_mode_code => 'S'
18170 , p_acct_entry_type_code => 'A'
18171 , p_switch_side_flag => 'Y'
18173 );
18174 --
18175 l_acc_rev_natural_side_code := 'C'; -- 4262811
18176 --
18177 --
18178 -- set accounting line type info
18179 --
18180 xla_ae_lines_pkg.SetAcctLineType
18181 (p_component_type => l_component_type
18182 ,p_event_type_code => l_event_type_code
18183 ,p_line_definition_owner_code => l_line_definition_owner_code
18184 ,p_line_definition_code => l_line_definition_code
18185 ,p_accounting_line_code => l_component_code
18186 ,p_accounting_line_type_code => l_component_type_code
18187 ,p_accounting_line_appl_id => l_component_appl_id
18188 ,p_amb_context_code => l_amb_context_code
18189 ,p_entity_code => l_entity_code
18190 ,p_event_class_code => l_event_class_code);
18191 --
18192 -- set accounting class
18193 --
18194 xla_ae_lines_pkg.SetAcctClass(
18195 p_accounting_class_code => 'BANK_ERROR'
18196 , p_ae_header_id => l_ae_header_id
18197 );
18198
18199 --
18200 -- set rounding class
18201 --
18202 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18203 'BANK_ERROR';
18204
18205 --
18206 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18207 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18208 --
18209 -- bulk performance
18210 --
18211 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18212
18213 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18214 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18215
18216 -- 4955764
18217 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18218 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18219
18220 -- 4458381 Public Sector Enh
18221
18222 --
18223 -- set accounting attributes for the line type
18224 --
18225 l_entered_amt_idx := 10;
18226 l_accted_amt_idx := 15;
18227 l_bflow_applied_to_amt_idx := 2; -- 5132302
18228 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18229 l_rec_acct_attrs.array_char_value(1) := p_source_40;
18230 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18231 l_rec_acct_attrs.array_num_value(2) := p_source_41;
18232 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18233 l_rec_acct_attrs.array_num_value(3) := p_source_42;
18234 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18235 l_rec_acct_attrs.array_char_value(4) := p_source_43;
18236 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18237 l_rec_acct_attrs.array_char_value(5) := p_source_44;
18238 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18239 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
18240 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18241 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
18242 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18243 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
18244 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18245 l_rec_acct_attrs.array_char_value(9) := p_source_48;
18246 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18247 l_rec_acct_attrs.array_num_value(10) := p_source_41;
18248 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18249 l_rec_acct_attrs.array_char_value(11) := p_source_106;
18250 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18251 l_rec_acct_attrs.array_date_value(12) := p_source_107;
18252 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18253 l_rec_acct_attrs.array_num_value(13) := p_source_108;
18254 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18255 l_rec_acct_attrs.array_char_value(14) := p_source_109;
18256 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18257 l_rec_acct_attrs.array_num_value(15) := p_source_10;
18258 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18259 l_rec_acct_attrs.array_char_value(16) := p_source_53;
18260 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18261 l_rec_acct_attrs.array_num_value(17) := p_source_54;
18262 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18263 l_rec_acct_attrs.array_num_value(18) := p_source_55;
18264 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18265 l_rec_acct_attrs.array_char_value(19) := p_source_56;
18266 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18267 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
18268 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18269 l_rec_acct_attrs.array_char_value(21) := p_source_48;
18270 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18271 l_rec_acct_attrs.array_num_value(22) := p_source_58;
18275 l_rec_acct_attrs.array_num_value(24) := p_source_59;
18272 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18273 l_rec_acct_attrs.array_num_value(23) := p_source_58;
18274 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18276
18277 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18278 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18279
18280 ---------------------------------------------------------------------------------------------------------------
18281 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18282 ---------------------------------------------------------------------------------------------------------------
18283 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18284
18285 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18286 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18287
18288 IF xla_accounting_cache_pkg.GetValueChar
18289 (p_source_code => 'LEDGER_CATEGORY_CODE'
18290 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18291 AND l_bflow_method_code = 'PRIOR_ENTRY'
18292 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18293 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18294 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18295 )
18296 THEN
18297 xla_ae_lines_pkg.BflowUpgEntry
18298 (p_business_method_code => l_bflow_method_code
18299 ,p_business_class_code => l_bflow_class_code
18300 ,p_balance_type => l_balance_type_code);
18301 ELSE
18302 NULL;
18303 -- No business flow processing for business flow method of NONE.
18304 END IF;
18305
18306 --
18307 -- call analytical criteria
18308 --
18309
18310 --
18311 -- call description
18312 --
18313 -- No description or it is inherited.
18314 --
18315 -- call ADRs
18316 -- Bug 4922099
18317 --
18318 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18319 (NVL(l_actual_upg_option, 'N') = 'O') OR
18320 (NVL(l_enc_upg_option, 'N') = 'O')
18321 )
18322 THEN
18323 NULL;
18324 --
18325 --
18326
18327 l_ccid := AcctDerRule_19(
18328 p_application_id => p_application_id
18329 , p_ae_header_id => l_ae_header_id
18330 , p_source_4 => p_source_4
18331 , p_source_4_meaning => p_source_4_meaning
18332 , p_source_17 => p_source_17
18333 , p_source_26 => p_source_26
18334 , x_transaction_coa_id => l_adr_transaction_coa_id
18335 , x_accounting_coa_id => l_adr_accounting_coa_id
18336 , x_value_type_code => l_adr_value_type_code
18337 , p_side => 'NA'
18338 );
18339
18340 xla_ae_lines_pkg.set_ccid(
18341 p_code_combination_id => l_ccid
18342 , p_value_type_code => l_adr_value_type_code
18343 , p_transaction_coa_id => l_adr_transaction_coa_id
18344 , p_accounting_coa_id => l_adr_accounting_coa_id
18345 , p_adr_code => 'AP_BANK_ERRORS'
18346 , p_adr_type_code => 'S'
18347 , p_component_type => l_component_type
18348 , p_component_code => l_component_code
18349 , p_component_type_code => l_component_type_code
18350 , p_component_appl_id => l_component_appl_id
18351 , p_amb_context_code => l_amb_context_code
18352 , p_side => 'NA'
18353 );
18354
18355
18356 --
18357 --
18358 END IF;
18359 --
18360 -- Bug 4922099
18361 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18362 (NVL(l_enc_upg_option, 'N') = 'O')
18363 ) AND
18364 (l_bflow_method_code = 'PRIOR_ENTRY')
18365 )
18366 THEN
18367 IF
18368 --
18369 1 = 2
18370 --
18371 THEN
18372 xla_accounting_err_pkg.build_message
18373 (p_appli_s_name => 'XLA'
18374 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18375 ,p_token_1 => 'LINE_NUMBER'
18376 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18377 ,p_token_2 => 'LINE_TYPE_NAME'
18378 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18379 l_component_type
18380 ,l_component_code
18381 ,l_component_type_code
18382 ,l_component_appl_id
18383 ,l_amb_context_code
18384 ,l_entity_code
18385 ,l_event_class_code
18389 p_lookup_type => 'XLA_OWNER_TYPE'
18386 )
18387 ,p_token_3 => 'OWNER'
18388 ,p_value_3 => xla_lookups_pkg.get_meaning(
18390 ,p_lookup_code => l_component_type_code
18391 )
18392 ,p_token_4 => 'PRODUCT_NAME'
18393 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18394 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18395 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18396 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18397 ,p_ae_header_id => NULL
18398 );
18399
18400 IF (C_LEVEL_ERROR>= g_log_level) THEN
18401 trace
18402 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18403 ,p_level => C_LEVEL_ERROR
18404 ,p_module => l_log_module);
18405 END IF;
18406 END IF;
18407 END IF;
18408 --
18409 --
18410 ------------------------------------------------------------------------------------------------
18411 -- 4219869 Business Flow
18412 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18413 -- Prior Entry. Currently, the following code is always generated.
18414 ------------------------------------------------------------------------------------------------
18415 XLA_AE_LINES_PKG.ValidateCurrentLine;
18416
18417 ------------------------------------------------------------------------------------
18418 -- 4219869 Business Flow
18419 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18420 ------------------------------------------------------------------------------------
18421 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18422
18423 ----------------------------------------------------------------------------------
18424 -- 4219869 Business Flow
18425 -- Update journal entry status -- Need to generate this within IF <condition>
18426 ----------------------------------------------------------------------------------
18427 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18428 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18429 ,p_balance_type_code => l_balance_type_code
18430 );
18431
18432 -------------------------------------------------------------------------------------------
18433 -- 4262811 - Generate the Accrual Reversal lines
18434 -------------------------------------------------------------------------------------------
18435 BEGIN
18436 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18437 (g_array_event(p_event_id).array_value_num('header_index'));
18438 IF l_acc_rev_flag IS NULL THEN
18439 l_acc_rev_flag := 'N';
18440 END IF;
18441 EXCEPTION
18442 WHEN OTHERS THEN
18443 l_acc_rev_flag := 'N';
18444 END;
18445 --
18446 IF (l_acc_rev_flag = 'Y') THEN
18447
18448 -- 4645092 ------------------------------------------------------------------------------
18449 -- To allow MPA report to determine if it should generate report process
18450 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18451 ------------------------------------------------------------------------------------------
18452
18453 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18454 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18455 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18456 -- call ADRs
18457 -- Bug 4922099
18458 --
18459 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18460 (NVL(l_actual_upg_option, 'N') = 'O') OR
18461 (NVL(l_enc_upg_option, 'N') = 'O')
18462 )
18463 THEN
18464 NULL;
18465 --
18466 --
18467
18468 l_ccid := AcctDerRule_19(
18469 p_application_id => p_application_id
18470 , p_ae_header_id => l_ae_header_id
18471 , p_source_4 => p_source_4
18472 , p_source_4_meaning => p_source_4_meaning
18473 , p_source_17 => p_source_17
18474 , p_source_26 => p_source_26
18475 , x_transaction_coa_id => l_adr_transaction_coa_id
18476 , x_accounting_coa_id => l_adr_accounting_coa_id
18477 , x_value_type_code => l_adr_value_type_code
18478 , p_side => 'NA'
18479 );
18480
18481 xla_ae_lines_pkg.set_ccid(
18482 p_code_combination_id => l_ccid
18483 , p_value_type_code => l_adr_value_type_code
18484 , p_transaction_coa_id => l_adr_transaction_coa_id
18485 , p_accounting_coa_id => l_adr_accounting_coa_id
18486 , p_adr_code => 'AP_BANK_ERRORS'
18487 , p_adr_type_code => 'S'
18491 , p_component_appl_id => l_component_appl_id
18488 , p_component_type => l_component_type
18489 , p_component_code => l_component_code
18490 , p_component_type_code => l_component_type_code
18492 , p_amb_context_code => l_amb_context_code
18493 , p_side => 'NA'
18494 );
18495
18496
18497 --
18498 --
18499 END IF;
18500
18501 --
18502 -- Update the line information that should be overwritten
18503 --
18504 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18505 p_header_num => 1);
18506 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18507
18508 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18509
18510 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18511 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18512 END IF;
18513
18514 --
18515 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18516 --
18517 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18518 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18519 ELSE
18520 ---------------------------------------------------------------------------------------------------
18521 -- 4262811a Switch Sign
18522 ---------------------------------------------------------------------------------------------------
18523 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18524 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18525 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18526 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18527 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18528 -- 5132302
18529 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18530 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18531
18532 END IF;
18533
18534 -- 4955764
18535 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18536 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18537
18538
18539 XLA_AE_LINES_PKG.ValidateCurrentLine;
18540 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18541
18542 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18543 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18544 ,p_balance_type_code => l_balance_type_code);
18545
18546 END IF;
18547
18548 -----------------------------------------------------------------------------------------
18549 -- 4262811 Multiperiod Accounting
18550 -----------------------------------------------------------------------------------------
18551 -- No MPA option is assigned.
18552
18553
18554 END IF;
18555 END IF;
18556 --
18557
18558 --
18559 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18560 trace
18561 (p_msg => 'END of AcctLineType_54'
18562 ,p_level => C_LEVEL_PROCEDURE
18563 ,p_module => l_log_module);
18564 END IF;
18565 --
18566 EXCEPTION
18567 WHEN xla_exceptions_pkg.application_exception THEN
18568 RAISE;
18569 WHEN OTHERS THEN
18570 xla_exceptions_pkg.raise_message
18571 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_54');
18572 END AcctLineType_54;
18573 --
18574
18575 ---------------------------------------
18576 --
18577 -- PRIVATE FUNCTION
18578 -- AcctLineType_55
18579 --
18580 ---------------------------------------
18581 PROCEDURE AcctLineType_55 (
18582 p_application_id IN NUMBER
18583 ,p_event_id IN NUMBER
18584 ,p_calculate_acctd_flag IN VARCHAR2
18585 ,p_calculate_g_l_flag IN VARCHAR2
18586 ,p_actual_flag IN OUT VARCHAR2
18587 ,p_balance_type_code OUT VARCHAR2
18588 ,p_gain_or_loss_ref OUT VARCHAR2
18589
18590 --Bank Cash Account
18591 , p_source_1 IN NUMBER
18592 --Automatic Offsets Value
18593 , p_source_4 IN VARCHAR2
18594 , p_source_4_meaning IN VARCHAR2
18595 --Payment Distribution (Cleared Rate) Ledger Amount
18596 , p_source_10 IN NUMBER
18597 --When to Account for Payment Option
18598 , p_source_38 IN VARCHAR2
18599 --Payment Distribution Type
18600 , p_source_39 IN VARCHAR2
18601 , p_source_39_meaning IN VARCHAR2
18602 --Accounting Reversal Indicator
18603 , p_source_40 IN VARCHAR2
18604 --Payment Distribution Amount
18605 , p_source_41 IN NUMBER
18606 --Business Flow Accounts Payable Application Identifier
18607 , p_source_42 IN NUMBER
18608 --Business Flow Payment Distribution Type
18609 , p_source_43 IN VARCHAR2
18613 , p_source_45 IN NUMBER
18610 --Business Flow Payment Entity Code
18611 , p_source_44 IN VARCHAR2
18612 --Business Flow Payment Distribution Identifier
18614 --Business Flow Payment Identifier
18615 , p_source_46 IN NUMBER
18616 --Payment Distribution Identifier
18617 , p_source_47 IN NUMBER
18618 --Distribution Link Type
18619 , p_source_48 IN VARCHAR2
18620 --Payment Currency Code
18621 , p_source_49 IN VARCHAR2
18622 --Override Accounted Amount Indicator
18623 , p_source_53 IN VARCHAR2
18624 , p_source_53_meaning IN VARCHAR2
18625 --Payment Supplier Identifier
18626 , p_source_54 IN NUMBER
18627 --Payment Supplier Site Identifier
18628 , p_source_55 IN NUMBER
18629 --Third Party Type
18630 , p_source_56 IN VARCHAR2
18631 --Payment Distribution Reversed Identifier
18632 , p_source_57 IN NUMBER
18633 --Invoice Distribution Tax Line Identifier
18634 , p_source_58 IN NUMBER
18635 --Invoice Distribution Summary Tax Line Identifier
18636 , p_source_59 IN NUMBER
18637 --Cleared Exchange Date
18638 , p_source_107 IN DATE
18639 --Cleared Exchange Rate
18640 , p_source_108 IN NUMBER
18641 --Cleared Exchange Rate Type
18642 , p_source_109 IN VARCHAR2
18643 --Pooled Bank Account Option
18644 , p_source_110 IN VARCHAR2
18645 , p_source_110_meaning IN VARCHAR2
18646 )
18647 IS
18648
18649 l_component_type VARCHAR2(80);
18650 l_component_code VARCHAR2(30);
18651 l_component_type_code VARCHAR2(1);
18652 l_component_appl_id INTEGER;
18653 l_amb_context_code VARCHAR2(30);
18654 l_entity_code VARCHAR2(30);
18655 l_event_class_code VARCHAR2(30);
18656 l_ae_header_id NUMBER;
18657 l_event_type_code VARCHAR2(30);
18658 l_line_definition_code VARCHAR2(30);
18659 l_line_definition_owner_code VARCHAR2(1);
18660 --
18661 -- adr variables
18662 l_segment VARCHAR2(30);
18663 l_ccid NUMBER;
18664 l_adr_transaction_coa_id NUMBER;
18665 l_adr_accounting_coa_id NUMBER;
18666 l_adr_flexfield_segment_code VARCHAR2(30);
18667 l_adr_flex_value_set_id NUMBER;
18668 l_adr_value_type_code VARCHAR2(30);
18669 l_adr_value_combination_id NUMBER;
18670 l_adr_value_segment_code VARCHAR2(30);
18671
18672 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18673 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18674 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18675 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18676
18677 -- 4262811 Variables ------------------------------------------------------------------------------------------
18678 l_entered_amt_idx NUMBER;
18679 l_accted_amt_idx NUMBER;
18680 l_acc_rev_flag VARCHAR2(1);
18681 l_accrual_line_num NUMBER;
18682 l_tmp_amt NUMBER;
18683 l_acc_rev_natural_side_code VARCHAR2(1);
18684
18685 l_num_entries NUMBER;
18686 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18687 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18688 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18689 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18690 l_recog_line_1 NUMBER;
18691 l_recog_line_2 NUMBER;
18692
18693 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18694 l_bflow_applied_to_amt NUMBER; -- 5132302
18695 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18696
18697 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18698
18699 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18700 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18701
18702 ---------------------------------------------------------------------------------------------------------------
18703
18704
18705 --
18706 -- bulk performance
18707 --
18708 l_balance_type_code VARCHAR2(1);
18709 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18710 l_log_module VARCHAR2(240);
18711
18712 --
18713 -- Upgrade strategy
18714 --
18715 l_actual_upg_option VARCHAR2(1);
18716 l_enc_upg_option VARCHAR2(1);
18717
18718 --
18719 BEGIN
18720 --
18721 IF g_log_enabled THEN
18722 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
18723 END IF;
18724 --
18725 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18726
18727 trace
18728 (p_msg => 'BEGIN of AcctLineType_55'
18729 ,p_level => C_LEVEL_PROCEDURE
18730 ,p_module => l_log_module);
18731
18732 END IF;
18733 --
18734 l_component_type := 'AMB_JLT';
18735 l_component_code := 'AP_CASH_CLEARONLY_AOS_AS';
18736 l_component_type_code := 'S';
18737 l_component_appl_id := 200;
18738 l_amb_context_code := 'DEFAULT';
18739 l_entity_code := 'AP_PAYMENTS';
18740 l_event_class_code := 'RECONCILED PAYMENTS';
18741 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
18745 l_balance_type_code := 'A';
18742 l_line_definition_owner_code := 'S';
18743 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
18744 --
18746 l_segment := NULL;
18747 l_ccid := NULL;
18748 l_adr_transaction_coa_id := NULL;
18749 l_adr_accounting_coa_id := NULL;
18750 l_adr_flexfield_segment_code := NULL;
18751 l_adr_flex_value_set_id := NULL;
18752 l_adr_value_type_code := NULL;
18753 l_adr_value_combination_id := NULL;
18754 l_adr_value_segment_code := NULL;
18755
18756 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
18757 l_bflow_class_code := ''; -- 4219869 Business Flow
18758 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18759 l_budgetary_control_flag := 'N';
18760
18761 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18762 l_bflow_applied_to_amt := NULL; -- 5132302
18763 l_entered_amt_idx := NULL; -- 4262811
18764 l_accted_amt_idx := NULL; -- 4262811
18765 l_acc_rev_flag := NULL; -- 4262811
18766 l_accrual_line_num := NULL; -- 4262811
18767 l_tmp_amt := NULL; -- 4262811
18768 --
18769
18770 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18771 l_balance_type_code <> 'B' THEN
18772 IF NVL(p_source_38,'
18773 ') <> 'ISSUE_ISSUE' AND
18774 (NVL(p_source_110,'
18775 ') = 'Y' AND
18776 NVL(p_source_4,'
18777 ') = 'ACCOUNT_SEGMENT_VALUE') AND
18778 (NVL(p_source_39,'
18779 ') = 'CASH' OR
18780 NVL(p_source_39,'
18781 ') = 'BANK CHARGE' OR
18782 NVL(p_source_39,'
18783 ') = 'BANK ERROR')
18784 THEN
18785
18786 --
18787 XLA_AE_LINES_PKG.SetNewLine;
18788
18789 p_balance_type_code := l_balance_type_code;
18790 -- set the flag so later we will know whether the gain loss line needs to be created
18791
18792 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18793 p_actual_flag :='A';
18794 END IF;
18795
18796 --
18797 -- bulk performance
18798 --
18799 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18800 p_header_num => 0); -- 4262811
18801 --
18802 -- set accounting line options
18803 --
18804 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18805 p_natural_side_code => 'C'
18806 , p_gain_or_loss_flag => 'N'
18807 , p_gl_transfer_mode_code => 'S'
18808 , p_acct_entry_type_code => 'A'
18809 , p_switch_side_flag => 'Y'
18810 , p_merge_duplicate_code => 'A'
18811 );
18812 --
18813 l_acc_rev_natural_side_code := 'D'; -- 4262811
18814 --
18815 --
18816 -- set accounting line type info
18817 --
18818 xla_ae_lines_pkg.SetAcctLineType
18819 (p_component_type => l_component_type
18820 ,p_event_type_code => l_event_type_code
18821 ,p_line_definition_owner_code => l_line_definition_owner_code
18822 ,p_line_definition_code => l_line_definition_code
18823 ,p_accounting_line_code => l_component_code
18824 ,p_accounting_line_type_code => l_component_type_code
18825 ,p_accounting_line_appl_id => l_component_appl_id
18826 ,p_amb_context_code => l_amb_context_code
18827 ,p_entity_code => l_entity_code
18828 ,p_event_class_code => l_event_class_code);
18829 --
18830 -- set accounting class
18831 --
18832 xla_ae_lines_pkg.SetAcctClass(
18833 p_accounting_class_code => 'CASH'
18834 , p_ae_header_id => l_ae_header_id
18835 );
18836
18837 --
18838 -- set rounding class
18839 --
18840 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18841 'CASH';
18842
18843 --
18844 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18845 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18846 --
18847 -- bulk performance
18848 --
18849 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18850
18851 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18852 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18853
18854 -- 4955764
18855 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18856 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18857
18858 -- 4458381 Public Sector Enh
18859
18860 --
18861 -- set accounting attributes for the line type
18862 --
18863 l_entered_amt_idx := 10;
18864 l_accted_amt_idx := 15;
18865 l_bflow_applied_to_amt_idx := 2; -- 5132302
18866 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18867 l_rec_acct_attrs.array_char_value(1) := p_source_40;
18868 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18869 l_rec_acct_attrs.array_num_value(2) := p_source_41;
18870 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18874 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18871 l_rec_acct_attrs.array_num_value(3) := p_source_42;
18872 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18873 l_rec_acct_attrs.array_char_value(4) := p_source_43;
18875 l_rec_acct_attrs.array_char_value(5) := p_source_44;
18876 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18877 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
18878 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18879 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
18880 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18881 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
18882 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18883 l_rec_acct_attrs.array_char_value(9) := p_source_48;
18884 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18885 l_rec_acct_attrs.array_num_value(10) := p_source_41;
18886 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18887 l_rec_acct_attrs.array_char_value(11) := p_source_49;
18888 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18889 l_rec_acct_attrs.array_date_value(12) := p_source_107;
18890 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18891 l_rec_acct_attrs.array_num_value(13) := p_source_108;
18892 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18893 l_rec_acct_attrs.array_char_value(14) := p_source_109;
18894 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18895 l_rec_acct_attrs.array_num_value(15) := p_source_10;
18896 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18897 l_rec_acct_attrs.array_char_value(16) := p_source_53;
18898 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18899 l_rec_acct_attrs.array_num_value(17) := p_source_54;
18900 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18901 l_rec_acct_attrs.array_num_value(18) := p_source_55;
18902 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18903 l_rec_acct_attrs.array_char_value(19) := p_source_56;
18904 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18905 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
18906 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18907 l_rec_acct_attrs.array_char_value(21) := p_source_48;
18908 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18909 l_rec_acct_attrs.array_num_value(22) := p_source_58;
18910 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18911 l_rec_acct_attrs.array_num_value(23) := p_source_58;
18912 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18913 l_rec_acct_attrs.array_num_value(24) := p_source_59;
18914
18915 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18916 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18917
18918 ---------------------------------------------------------------------------------------------------------------
18919 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18920 ---------------------------------------------------------------------------------------------------------------
18921 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18922
18923 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18924 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18925
18926 IF xla_accounting_cache_pkg.GetValueChar
18927 (p_source_code => 'LEDGER_CATEGORY_CODE'
18928 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18929 AND l_bflow_method_code = 'PRIOR_ENTRY'
18930 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18931 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18932 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18933 )
18934 THEN
18935 xla_ae_lines_pkg.BflowUpgEntry
18936 (p_business_method_code => l_bflow_method_code
18937 ,p_business_class_code => l_bflow_class_code
18938 ,p_balance_type => l_balance_type_code);
18939 ELSE
18940 NULL;
18941 XLA_AE_LINES_PKG.business_flow_validation(
18942 p_business_method_code => l_bflow_method_code
18943 ,p_business_class_code => l_bflow_class_code
18944 ,p_inherit_description_flag => l_inherit_desc_flag);
18945 END IF;
18946
18947 --
18948 -- call analytical criteria
18949 --
18950
18951 --
18952 -- call description
18953 --
18954 -- No description or it is inherited.
18955 --
18956 -- call ADRs
18957 -- Bug 4922099
18958 --
18959 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18960 (NVL(l_actual_upg_option, 'N') = 'O') OR
18961 (NVL(l_enc_upg_option, 'N') = 'O')
18962 )
18963 THEN
18964 NULL;
18965 --
18966 --
18967
18968 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
18969 p_code_combination_id => TO_NUMBER(C_NUM)
18973 , p_adr_code => NULL
18970 , p_value_type_code => NULL
18971 , p_transaction_coa_id => null
18972 , p_accounting_coa_id => null
18974 , p_adr_type_code => NULL
18975 , p_component_type => l_component_type
18976 , p_component_code => l_component_code
18977 , p_component_type_code => l_component_type_code
18978 , p_component_appl_id => l_component_appl_id
18979 , p_amb_context_code => l_amb_context_code
18980 , p_side => NULL
18981 );
18982
18983
18984 -- initialise segments
18985 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18986 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18987 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18988 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18989 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18990 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18991 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18992 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18993 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18994 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18995 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18996 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18997 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18998 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18999 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19000 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19001 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19002 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19003 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19004 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19005 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19006 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19007 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19008 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19009 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19010 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19011 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19012 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19013 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19014 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19015 --
19016
19017 --
19018
19019
19020 l_segment := AcctDerRule_1(
19021 p_application_id => p_application_id
19022 , p_ae_header_id => l_ae_header_id
19023 , p_source_1 => p_source_1
19024 , x_transaction_coa_id => l_adr_transaction_coa_id
19025 , x_accounting_coa_id => l_adr_accounting_coa_id
19026 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19027 , x_flex_value_set_id => l_adr_flex_value_set_id
19028 , x_value_type_code => l_adr_value_type_code
19029 , x_value_combination_id => l_adr_value_combination_id
19030 , x_value_segment_code => l_adr_value_segment_code
19031 , p_side => 'NA'
19032 , p_override_seg_flag => 'Y'
19033 );
19034
19035 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19036
19037 xla_ae_lines_pkg.set_segment(
19038 p_to_segment_code => 'GL_ACCOUNT'
19039 , p_segment_value => l_segment
19040 , p_from_segment_code => l_adr_value_segment_code
19041 , p_from_combination_id => l_adr_value_combination_id
19042 , p_value_type_code => l_adr_value_type_code
19043 , p_transaction_coa_id => l_adr_transaction_coa_id
19044 , p_accounting_coa_id => l_adr_accounting_coa_id
19045 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19046 , p_flex_value_set_id => l_adr_flex_value_set_id
19047 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
19048 , p_adr_type_code => 'S'
19049 , p_component_type => l_component_type
19050 , p_component_code => l_component_code
19051 , p_component_type_code => l_component_type_code
19052 , p_component_appl_id => l_component_appl_id
19053 , p_amb_context_code => l_amb_context_code
19054 , p_entity_code => 'AP_PAYMENTS'
19055 , p_event_class_code => 'RECONCILED PAYMENTS'
19056 , p_side => 'NA'
19057 );
19058
19059 END IF;
19060
19064 --
19061 --
19062 --
19063 END IF;
19065 -- Bug 4922099
19066 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19067 (NVL(l_enc_upg_option, 'N') = 'O')
19068 ) AND
19069 (l_bflow_method_code = 'PRIOR_ENTRY')
19070 )
19071 THEN
19072 IF
19073 --
19074 1 = 2
19075 --
19076 THEN
19077 xla_accounting_err_pkg.build_message
19078 (p_appli_s_name => 'XLA'
19079 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19080 ,p_token_1 => 'LINE_NUMBER'
19081 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19082 ,p_token_2 => 'LINE_TYPE_NAME'
19083 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19084 l_component_type
19085 ,l_component_code
19086 ,l_component_type_code
19087 ,l_component_appl_id
19088 ,l_amb_context_code
19089 ,l_entity_code
19090 ,l_event_class_code
19091 )
19092 ,p_token_3 => 'OWNER'
19093 ,p_value_3 => xla_lookups_pkg.get_meaning(
19094 p_lookup_type => 'XLA_OWNER_TYPE'
19095 ,p_lookup_code => l_component_type_code
19096 )
19097 ,p_token_4 => 'PRODUCT_NAME'
19098 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19099 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19100 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19101 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19102 ,p_ae_header_id => NULL
19103 );
19104
19105 IF (C_LEVEL_ERROR>= g_log_level) THEN
19106 trace
19107 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19108 ,p_level => C_LEVEL_ERROR
19109 ,p_module => l_log_module);
19110 END IF;
19111 END IF;
19112 END IF;
19113 --
19114 --
19115 ------------------------------------------------------------------------------------------------
19116 -- 4219869 Business Flow
19117 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19118 -- Prior Entry. Currently, the following code is always generated.
19119 ------------------------------------------------------------------------------------------------
19120 XLA_AE_LINES_PKG.ValidateCurrentLine;
19121
19122 ------------------------------------------------------------------------------------
19123 -- 4219869 Business Flow
19124 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19125 ------------------------------------------------------------------------------------
19126 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19127
19128 ----------------------------------------------------------------------------------
19129 -- 4219869 Business Flow
19130 -- Update journal entry status -- Need to generate this within IF <condition>
19131 ----------------------------------------------------------------------------------
19132 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19133 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19134 ,p_balance_type_code => l_balance_type_code
19135 );
19136
19137 -------------------------------------------------------------------------------------------
19138 -- 4262811 - Generate the Accrual Reversal lines
19139 -------------------------------------------------------------------------------------------
19140 BEGIN
19141 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19142 (g_array_event(p_event_id).array_value_num('header_index'));
19143 IF l_acc_rev_flag IS NULL THEN
19144 l_acc_rev_flag := 'N';
19145 END IF;
19146 EXCEPTION
19147 WHEN OTHERS THEN
19148 l_acc_rev_flag := 'N';
19149 END;
19150 --
19151 IF (l_acc_rev_flag = 'Y') THEN
19152
19153 -- 4645092 ------------------------------------------------------------------------------
19154 -- To allow MPA report to determine if it should generate report process
19155 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19156 ------------------------------------------------------------------------------------------
19157
19158 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19162 -- Bug 4922099
19159 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19160 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19161 -- call ADRs
19163 --
19164 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19165 (NVL(l_actual_upg_option, 'N') = 'O') OR
19166 (NVL(l_enc_upg_option, 'N') = 'O')
19167 )
19168 THEN
19169 NULL;
19170 --
19171 --
19172
19173 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
19174 p_code_combination_id => TO_NUMBER(C_NUM)
19175 , p_value_type_code => NULL
19176 , p_transaction_coa_id => null
19177 , p_accounting_coa_id => null
19178 , p_adr_code => NULL
19179 , p_adr_type_code => NULL
19180 , p_component_type => l_component_type
19181 , p_component_code => l_component_code
19182 , p_component_type_code => l_component_type_code
19183 , p_component_appl_id => l_component_appl_id
19184 , p_amb_context_code => l_amb_context_code
19185 , p_side => NULL
19186 );
19187
19188
19189 -- initialise segments
19190 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19191 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19192 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19193 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19194 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19195 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19196 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19197 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19198 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19199 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19200 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19201 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19202 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19203 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19204 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19205 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19206 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19207 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19208 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19209 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19210 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19211 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19212 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19213 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19214 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19215 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19216 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19217 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19218 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19219 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19220 --
19221
19222 --
19223
19224
19225 l_segment := AcctDerRule_1(
19226 p_application_id => p_application_id
19227 , p_ae_header_id => l_ae_header_id
19228 , p_source_1 => p_source_1
19229 , x_transaction_coa_id => l_adr_transaction_coa_id
19230 , x_accounting_coa_id => l_adr_accounting_coa_id
19231 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19232 , x_flex_value_set_id => l_adr_flex_value_set_id
19233 , x_value_type_code => l_adr_value_type_code
19234 , x_value_combination_id => l_adr_value_combination_id
19235 , x_value_segment_code => l_adr_value_segment_code
19236 , p_side => 'NA'
19237 , p_override_seg_flag => 'Y'
19238 );
19239
19240 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19241
19242 xla_ae_lines_pkg.set_segment(
19243 p_to_segment_code => 'GL_ACCOUNT'
19244 , p_segment_value => l_segment
19245 , p_from_segment_code => l_adr_value_segment_code
19246 , p_from_combination_id => l_adr_value_combination_id
19247 , p_value_type_code => l_adr_value_type_code
19248 , p_transaction_coa_id => l_adr_transaction_coa_id
19249 , p_accounting_coa_id => l_adr_accounting_coa_id
19250 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19251 , p_flex_value_set_id => l_adr_flex_value_set_id
19255 , p_component_code => l_component_code
19252 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
19253 , p_adr_type_code => 'S'
19254 , p_component_type => l_component_type
19256 , p_component_type_code => l_component_type_code
19257 , p_component_appl_id => l_component_appl_id
19258 , p_amb_context_code => l_amb_context_code
19259 , p_entity_code => 'AP_PAYMENTS'
19260 , p_event_class_code => 'RECONCILED PAYMENTS'
19261 , p_side => 'NA'
19262 );
19263
19264 END IF;
19265
19266 --
19267 --
19268 END IF;
19269
19270 --
19271 -- Update the line information that should be overwritten
19272 --
19273 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19274 p_header_num => 1);
19275 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19276
19277 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19278
19279 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19280 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19281 END IF;
19282
19283 --
19284 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19285 --
19286 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19287 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19288 ELSE
19289 ---------------------------------------------------------------------------------------------------
19290 -- 4262811a Switch Sign
19291 ---------------------------------------------------------------------------------------------------
19292 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19293 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19294 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19295 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19296 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19297 -- 5132302
19298 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19299 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19300
19301 END IF;
19302
19303 -- 4955764
19304 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19305 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19306
19307
19308 XLA_AE_LINES_PKG.ValidateCurrentLine;
19309 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19310
19311 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19312 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19313 ,p_balance_type_code => l_balance_type_code);
19314
19315 END IF;
19316
19317 -----------------------------------------------------------------------------------------
19318 -- 4262811 Multiperiod Accounting
19319 -----------------------------------------------------------------------------------------
19320 -- No MPA option is assigned.
19321
19322
19323 END IF;
19324 END IF;
19325 --
19326
19327 --
19328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19329 trace
19330 (p_msg => 'END of AcctLineType_55'
19331 ,p_level => C_LEVEL_PROCEDURE
19332 ,p_module => l_log_module);
19333 END IF;
19334 --
19335 EXCEPTION
19336 WHEN xla_exceptions_pkg.application_exception THEN
19337 RAISE;
19338 WHEN OTHERS THEN
19339 xla_exceptions_pkg.raise_message
19340 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_55');
19341 END AcctLineType_55;
19342 --
19343
19344 ---------------------------------------
19345 --
19346 -- PRIVATE FUNCTION
19347 -- AcctLineType_56
19348 --
19349 ---------------------------------------
19350 PROCEDURE AcctLineType_56 (
19351 p_application_id IN NUMBER
19352 ,p_event_id IN NUMBER
19353 ,p_calculate_acctd_flag IN VARCHAR2
19354 ,p_calculate_g_l_flag IN VARCHAR2
19355 ,p_actual_flag IN OUT VARCHAR2
19356 ,p_balance_type_code OUT VARCHAR2
19357 ,p_gain_or_loss_ref OUT VARCHAR2
19358
19359 --Bank Cash Account
19360 , p_source_1 IN NUMBER
19361 --Automatic Offsets Value
19362 , p_source_4 IN VARCHAR2
19363 , p_source_4_meaning IN VARCHAR2
19364 --Payment Distribution (Cleared Rate) Ledger Amount
19365 , p_source_10 IN NUMBER
19366 --When to Account for Payment Option
19367 , p_source_38 IN VARCHAR2
19368 --Payment Distribution Type
19369 , p_source_39 IN VARCHAR2
19370 , p_source_39_meaning IN VARCHAR2
19371 --Accounting Reversal Indicator
19372 , p_source_40 IN VARCHAR2
19373 --Payment Distribution Amount
19374 , p_source_41 IN NUMBER
19378 , p_source_43 IN VARCHAR2
19375 --Business Flow Accounts Payable Application Identifier
19376 , p_source_42 IN NUMBER
19377 --Business Flow Payment Distribution Type
19379 --Business Flow Payment Entity Code
19380 , p_source_44 IN VARCHAR2
19381 --Business Flow Payment Distribution Identifier
19382 , p_source_45 IN NUMBER
19383 --Business Flow Payment Identifier
19384 , p_source_46 IN NUMBER
19385 --Payment Distribution Identifier
19386 , p_source_47 IN NUMBER
19387 --Distribution Link Type
19388 , p_source_48 IN VARCHAR2
19389 --Payment Currency Code
19390 , p_source_49 IN VARCHAR2
19391 --Override Accounted Amount Indicator
19392 , p_source_53 IN VARCHAR2
19393 , p_source_53_meaning IN VARCHAR2
19394 --Payment Supplier Identifier
19395 , p_source_54 IN NUMBER
19396 --Payment Supplier Site Identifier
19397 , p_source_55 IN NUMBER
19398 --Third Party Type
19399 , p_source_56 IN VARCHAR2
19400 --Payment Distribution Reversed Identifier
19401 , p_source_57 IN NUMBER
19402 --Invoice Distribution Tax Line Identifier
19403 , p_source_58 IN NUMBER
19404 --Invoice Distribution Summary Tax Line Identifier
19405 , p_source_59 IN NUMBER
19406 --Cleared Exchange Date
19407 , p_source_107 IN DATE
19408 --Cleared Exchange Rate
19409 , p_source_108 IN NUMBER
19410 --Cleared Exchange Rate Type
19411 , p_source_109 IN VARCHAR2
19412 --Pooled Bank Account Option
19413 , p_source_110 IN VARCHAR2
19414 , p_source_110_meaning IN VARCHAR2
19415 )
19416 IS
19417
19418 l_component_type VARCHAR2(80);
19419 l_component_code VARCHAR2(30);
19420 l_component_type_code VARCHAR2(1);
19421 l_component_appl_id INTEGER;
19422 l_amb_context_code VARCHAR2(30);
19423 l_entity_code VARCHAR2(30);
19424 l_event_class_code VARCHAR2(30);
19425 l_ae_header_id NUMBER;
19426 l_event_type_code VARCHAR2(30);
19427 l_line_definition_code VARCHAR2(30);
19428 l_line_definition_owner_code VARCHAR2(1);
19429 --
19430 -- adr variables
19431 l_segment VARCHAR2(30);
19432 l_ccid NUMBER;
19433 l_adr_transaction_coa_id NUMBER;
19434 l_adr_accounting_coa_id NUMBER;
19435 l_adr_flexfield_segment_code VARCHAR2(30);
19436 l_adr_flex_value_set_id NUMBER;
19437 l_adr_value_type_code VARCHAR2(30);
19438 l_adr_value_combination_id NUMBER;
19439 l_adr_value_segment_code VARCHAR2(30);
19440
19441 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19442 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19443 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19444 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19445
19446 -- 4262811 Variables ------------------------------------------------------------------------------------------
19447 l_entered_amt_idx NUMBER;
19448 l_accted_amt_idx NUMBER;
19449 l_acc_rev_flag VARCHAR2(1);
19450 l_accrual_line_num NUMBER;
19451 l_tmp_amt NUMBER;
19452 l_acc_rev_natural_side_code VARCHAR2(1);
19453
19454 l_num_entries NUMBER;
19455 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19456 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19457 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19458 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19459 l_recog_line_1 NUMBER;
19460 l_recog_line_2 NUMBER;
19461
19462 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19463 l_bflow_applied_to_amt NUMBER; -- 5132302
19464 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19465
19466 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19467
19468 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19469 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19470
19471 ---------------------------------------------------------------------------------------------------------------
19472
19473
19474 --
19475 -- bulk performance
19476 --
19477 l_balance_type_code VARCHAR2(1);
19478 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19479 l_log_module VARCHAR2(240);
19480
19481 --
19482 -- Upgrade strategy
19483 --
19484 l_actual_upg_option VARCHAR2(1);
19485 l_enc_upg_option VARCHAR2(1);
19486
19487 --
19488 BEGIN
19489 --
19490 IF g_log_enabled THEN
19491 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
19492 END IF;
19493 --
19494 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19495
19496 trace
19497 (p_msg => 'BEGIN of AcctLineType_56'
19498 ,p_level => C_LEVEL_PROCEDURE
19499 ,p_module => l_log_module);
19500
19501 END IF;
19502 --
19503 l_component_type := 'AMB_JLT';
19507 l_amb_context_code := 'DEFAULT';
19504 l_component_code := 'AP_CASH_CLEARONLY_AOS_BS';
19505 l_component_type_code := 'S';
19506 l_component_appl_id := 200;
19508 l_entity_code := 'AP_PAYMENTS';
19509 l_event_class_code := 'RECONCILED PAYMENTS';
19510 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
19511 l_line_definition_owner_code := 'S';
19512 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
19513 --
19514 l_balance_type_code := 'A';
19515 l_segment := NULL;
19516 l_ccid := NULL;
19517 l_adr_transaction_coa_id := NULL;
19518 l_adr_accounting_coa_id := NULL;
19519 l_adr_flexfield_segment_code := NULL;
19520 l_adr_flex_value_set_id := NULL;
19521 l_adr_value_type_code := NULL;
19522 l_adr_value_combination_id := NULL;
19523 l_adr_value_segment_code := NULL;
19524
19525 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
19526 l_bflow_class_code := ''; -- 4219869 Business Flow
19527 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19528 l_budgetary_control_flag := 'N';
19529
19530 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19531 l_bflow_applied_to_amt := NULL; -- 5132302
19532 l_entered_amt_idx := NULL; -- 4262811
19533 l_accted_amt_idx := NULL; -- 4262811
19534 l_acc_rev_flag := NULL; -- 4262811
19535 l_accrual_line_num := NULL; -- 4262811
19536 l_tmp_amt := NULL; -- 4262811
19537 --
19538
19539 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19540 l_balance_type_code <> 'B' THEN
19541 IF NVL(p_source_38,'
19542 ') <> 'ISSUE_ISSUE' AND
19543 (NVL(p_source_110,'
19544 ') = 'Y' AND
19545 NVL(p_source_4,'
19546 ') = 'BALANCING_SEGMENT') AND
19547 (NVL(p_source_39,'
19548 ') = 'CASH' OR
19549 NVL(p_source_39,'
19550 ') = 'BANK CHARGE' OR
19551 NVL(p_source_39,'
19552 ') = 'BANK ERROR')
19553 THEN
19554
19555 --
19556 XLA_AE_LINES_PKG.SetNewLine;
19557
19558 p_balance_type_code := l_balance_type_code;
19559 -- set the flag so later we will know whether the gain loss line needs to be created
19560
19561 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19562 p_actual_flag :='A';
19563 END IF;
19564
19565 --
19566 -- bulk performance
19567 --
19568 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19569 p_header_num => 0); -- 4262811
19570 --
19571 -- set accounting line options
19572 --
19573 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19574 p_natural_side_code => 'C'
19575 , p_gain_or_loss_flag => 'N'
19576 , p_gl_transfer_mode_code => 'S'
19577 , p_acct_entry_type_code => 'A'
19578 , p_switch_side_flag => 'Y'
19579 , p_merge_duplicate_code => 'A'
19580 );
19581 --
19582 l_acc_rev_natural_side_code := 'D'; -- 4262811
19583 --
19584 --
19585 -- set accounting line type info
19586 --
19587 xla_ae_lines_pkg.SetAcctLineType
19588 (p_component_type => l_component_type
19589 ,p_event_type_code => l_event_type_code
19590 ,p_line_definition_owner_code => l_line_definition_owner_code
19591 ,p_line_definition_code => l_line_definition_code
19592 ,p_accounting_line_code => l_component_code
19593 ,p_accounting_line_type_code => l_component_type_code
19594 ,p_accounting_line_appl_id => l_component_appl_id
19595 ,p_amb_context_code => l_amb_context_code
19596 ,p_entity_code => l_entity_code
19597 ,p_event_class_code => l_event_class_code);
19598 --
19599 -- set accounting class
19600 --
19601 xla_ae_lines_pkg.SetAcctClass(
19602 p_accounting_class_code => 'CASH'
19603 , p_ae_header_id => l_ae_header_id
19604 );
19605
19606 --
19607 -- set rounding class
19608 --
19609 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19610 'CASH';
19611
19612 --
19613 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19614 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19615 --
19616 -- bulk performance
19617 --
19618 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19619
19620 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19621 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19622
19623 -- 4955764
19624 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19625 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19626
19627 -- 4458381 Public Sector Enh
19628
19629 --
19630 -- set accounting attributes for the line type
19631 --
19632 l_entered_amt_idx := 10;
19633 l_accted_amt_idx := 15;
19637 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19634 l_bflow_applied_to_amt_idx := 2; -- 5132302
19635 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19636 l_rec_acct_attrs.array_char_value(1) := p_source_40;
19638 l_rec_acct_attrs.array_num_value(2) := p_source_41;
19639 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19640 l_rec_acct_attrs.array_num_value(3) := p_source_42;
19641 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19642 l_rec_acct_attrs.array_char_value(4) := p_source_43;
19643 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19644 l_rec_acct_attrs.array_char_value(5) := p_source_44;
19645 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19646 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
19647 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19648 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
19649 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19650 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
19651 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19652 l_rec_acct_attrs.array_char_value(9) := p_source_48;
19653 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19654 l_rec_acct_attrs.array_num_value(10) := p_source_41;
19655 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19656 l_rec_acct_attrs.array_char_value(11) := p_source_49;
19657 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19658 l_rec_acct_attrs.array_date_value(12) := p_source_107;
19659 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19660 l_rec_acct_attrs.array_num_value(13) := p_source_108;
19661 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19662 l_rec_acct_attrs.array_char_value(14) := p_source_109;
19663 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19664 l_rec_acct_attrs.array_num_value(15) := p_source_10;
19665 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19666 l_rec_acct_attrs.array_char_value(16) := p_source_53;
19667 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19668 l_rec_acct_attrs.array_num_value(17) := p_source_54;
19669 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19670 l_rec_acct_attrs.array_num_value(18) := p_source_55;
19671 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19672 l_rec_acct_attrs.array_char_value(19) := p_source_56;
19673 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19674 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
19675 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19676 l_rec_acct_attrs.array_char_value(21) := p_source_48;
19677 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19678 l_rec_acct_attrs.array_num_value(22) := p_source_58;
19679 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19680 l_rec_acct_attrs.array_num_value(23) := p_source_58;
19681 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19682 l_rec_acct_attrs.array_num_value(24) := p_source_59;
19683
19684 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19685 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19686
19687 ---------------------------------------------------------------------------------------------------------------
19688 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19689 ---------------------------------------------------------------------------------------------------------------
19690 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19691
19692 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19693 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19694
19695 IF xla_accounting_cache_pkg.GetValueChar
19696 (p_source_code => 'LEDGER_CATEGORY_CODE'
19697 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19698 AND l_bflow_method_code = 'PRIOR_ENTRY'
19699 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19700 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19701 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19702 )
19703 THEN
19704 xla_ae_lines_pkg.BflowUpgEntry
19705 (p_business_method_code => l_bflow_method_code
19706 ,p_business_class_code => l_bflow_class_code
19707 ,p_balance_type => l_balance_type_code);
19708 ELSE
19709 NULL;
19710 XLA_AE_LINES_PKG.business_flow_validation(
19711 p_business_method_code => l_bflow_method_code
19712 ,p_business_class_code => l_bflow_class_code
19713 ,p_inherit_description_flag => l_inherit_desc_flag);
19714 END IF;
19715
19716 --
19717 -- call analytical criteria
19718 --
19719
19720 --
19721 -- call description
19722 --
19723 -- No description or it is inherited.
19724 --
19725 -- call ADRs
19726 -- Bug 4922099
19727 --
19728 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19732 THEN
19729 (NVL(l_actual_upg_option, 'N') = 'O') OR
19730 (NVL(l_enc_upg_option, 'N') = 'O')
19731 )
19733 NULL;
19734 --
19735 --
19736
19737 l_ccid := AcctDerRule_20(
19738 p_application_id => p_application_id
19739 , p_ae_header_id => l_ae_header_id
19740 , p_source_1 => p_source_1
19741 , x_transaction_coa_id => l_adr_transaction_coa_id
19742 , x_accounting_coa_id => l_adr_accounting_coa_id
19743 , x_value_type_code => l_adr_value_type_code
19744 , p_side => 'NA'
19745 );
19746
19747 xla_ae_lines_pkg.set_ccid(
19748 p_code_combination_id => l_ccid
19749 , p_value_type_code => l_adr_value_type_code
19750 , p_transaction_coa_id => l_adr_transaction_coa_id
19751 , p_accounting_coa_id => l_adr_accounting_coa_id
19752 , p_adr_code => 'AP_CASH'
19753 , p_adr_type_code => 'S'
19754 , p_component_type => l_component_type
19755 , p_component_code => l_component_code
19756 , p_component_type_code => l_component_type_code
19757 , p_component_appl_id => l_component_appl_id
19758 , p_amb_context_code => l_amb_context_code
19759 , p_side => 'NA'
19760 );
19761
19762
19763 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
19764 p_to_segment_code => 'GL_BALANCING'
19765 , p_segment_value => C_CHAR
19766 , p_from_segment_code => NULL
19767 , p_from_combination_id => NULL
19768 , p_value_type_code => NULL
19769 , p_transaction_coa_id => null
19770 , p_accounting_coa_id => null
19771 , p_flexfield_segment_code => NULL
19772 , p_flex_value_set_id => NULL
19773 , p_adr_code => NULL
19774 , p_adr_type_code => NULL
19775 , p_component_type => l_component_type
19776 , p_component_code => l_component_code
19777 , p_component_type_code => l_component_type_code
19778 , p_component_appl_id => l_component_appl_id
19779 , p_amb_context_code => l_amb_context_code
19780 , p_entity_code => 'AP_PAYMENTS'
19781 , p_event_class_code => 'RECONCILED PAYMENTS'
19782 , p_side => 'NA'
19783 );
19784 --
19785
19786
19787 --
19788 --
19789 END IF;
19790 --
19791 -- Bug 4922099
19792 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19793 (NVL(l_enc_upg_option, 'N') = 'O')
19794 ) AND
19795 (l_bflow_method_code = 'PRIOR_ENTRY')
19796 )
19797 THEN
19798 IF
19799 --
19800 1 = 2
19801 --
19802 THEN
19803 xla_accounting_err_pkg.build_message
19804 (p_appli_s_name => 'XLA'
19805 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19806 ,p_token_1 => 'LINE_NUMBER'
19807 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19808 ,p_token_2 => 'LINE_TYPE_NAME'
19809 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19810 l_component_type
19811 ,l_component_code
19812 ,l_component_type_code
19813 ,l_component_appl_id
19814 ,l_amb_context_code
19815 ,l_entity_code
19816 ,l_event_class_code
19817 )
19818 ,p_token_3 => 'OWNER'
19819 ,p_value_3 => xla_lookups_pkg.get_meaning(
19820 p_lookup_type => 'XLA_OWNER_TYPE'
19821 ,p_lookup_code => l_component_type_code
19822 )
19823 ,p_token_4 => 'PRODUCT_NAME'
19824 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19825 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19826 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19827 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19828 ,p_ae_header_id => NULL
19829 );
19830
19831 IF (C_LEVEL_ERROR>= g_log_level) THEN
19832 trace
19833 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19834 ,p_level => C_LEVEL_ERROR
19838 END IF;
19835 ,p_module => l_log_module);
19836 END IF;
19837 END IF;
19839 --
19840 --
19841 ------------------------------------------------------------------------------------------------
19842 -- 4219869 Business Flow
19843 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19844 -- Prior Entry. Currently, the following code is always generated.
19845 ------------------------------------------------------------------------------------------------
19846 XLA_AE_LINES_PKG.ValidateCurrentLine;
19847
19848 ------------------------------------------------------------------------------------
19849 -- 4219869 Business Flow
19850 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19851 ------------------------------------------------------------------------------------
19852 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19853
19854 ----------------------------------------------------------------------------------
19855 -- 4219869 Business Flow
19856 -- Update journal entry status -- Need to generate this within IF <condition>
19857 ----------------------------------------------------------------------------------
19858 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19859 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19860 ,p_balance_type_code => l_balance_type_code
19861 );
19862
19863 -------------------------------------------------------------------------------------------
19864 -- 4262811 - Generate the Accrual Reversal lines
19865 -------------------------------------------------------------------------------------------
19866 BEGIN
19867 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19868 (g_array_event(p_event_id).array_value_num('header_index'));
19869 IF l_acc_rev_flag IS NULL THEN
19870 l_acc_rev_flag := 'N';
19871 END IF;
19872 EXCEPTION
19873 WHEN OTHERS THEN
19874 l_acc_rev_flag := 'N';
19875 END;
19876 --
19877 IF (l_acc_rev_flag = 'Y') THEN
19878
19879 -- 4645092 ------------------------------------------------------------------------------
19880 -- To allow MPA report to determine if it should generate report process
19881 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19882 ------------------------------------------------------------------------------------------
19883
19884 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19885 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19886 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19887 -- call ADRs
19888 -- Bug 4922099
19889 --
19890 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19891 (NVL(l_actual_upg_option, 'N') = 'O') OR
19892 (NVL(l_enc_upg_option, 'N') = 'O')
19893 )
19894 THEN
19895 NULL;
19896 --
19897 --
19898
19899 l_ccid := AcctDerRule_20(
19900 p_application_id => p_application_id
19901 , p_ae_header_id => l_ae_header_id
19902 , p_source_1 => p_source_1
19903 , x_transaction_coa_id => l_adr_transaction_coa_id
19904 , x_accounting_coa_id => l_adr_accounting_coa_id
19905 , x_value_type_code => l_adr_value_type_code
19906 , p_side => 'NA'
19907 );
19908
19909 xla_ae_lines_pkg.set_ccid(
19910 p_code_combination_id => l_ccid
19911 , p_value_type_code => l_adr_value_type_code
19912 , p_transaction_coa_id => l_adr_transaction_coa_id
19913 , p_accounting_coa_id => l_adr_accounting_coa_id
19914 , p_adr_code => 'AP_CASH'
19915 , p_adr_type_code => 'S'
19916 , p_component_type => l_component_type
19917 , p_component_code => l_component_code
19918 , p_component_type_code => l_component_type_code
19919 , p_component_appl_id => l_component_appl_id
19920 , p_amb_context_code => l_amb_context_code
19921 , p_side => 'NA'
19922 );
19923
19924
19925 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
19926 p_to_segment_code => 'GL_BALANCING'
19927 , p_segment_value => C_CHAR
19928 , p_from_segment_code => NULL
19929 , p_from_combination_id => NULL
19930 , p_value_type_code => NULL
19931 , p_transaction_coa_id => null
19932 , p_accounting_coa_id => null
19933 , p_flexfield_segment_code => NULL
19934 , p_flex_value_set_id => NULL
19935 , p_adr_code => NULL
19936 , p_adr_type_code => NULL
19937 , p_component_type => l_component_type
19938 , p_component_code => l_component_code
19939 , p_component_type_code => l_component_type_code
19940 , p_component_appl_id => l_component_appl_id
19941 , p_amb_context_code => l_amb_context_code
19942 , p_entity_code => 'AP_PAYMENTS'
19943 , p_event_class_code => 'RECONCILED PAYMENTS'
19944 , p_side => 'NA'
19945 );
19946 --
19947
19951 END IF;
19948
19949 --
19950 --
19952
19953 --
19954 -- Update the line information that should be overwritten
19955 --
19956 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19957 p_header_num => 1);
19958 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19959
19960 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19961
19962 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19963 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19964 END IF;
19965
19966 --
19967 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19968 --
19969 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19970 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19971 ELSE
19972 ---------------------------------------------------------------------------------------------------
19973 -- 4262811a Switch Sign
19974 ---------------------------------------------------------------------------------------------------
19975 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19976 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19977 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19978 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19979 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19980 -- 5132302
19981 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19982 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19983
19984 END IF;
19985
19986 -- 4955764
19987 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19988 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19989
19990
19991 XLA_AE_LINES_PKG.ValidateCurrentLine;
19992 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19993
19994 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19995 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19996 ,p_balance_type_code => l_balance_type_code);
19997
19998 END IF;
19999
20000 -----------------------------------------------------------------------------------------
20001 -- 4262811 Multiperiod Accounting
20002 -----------------------------------------------------------------------------------------
20003 -- No MPA option is assigned.
20004
20005
20006 END IF;
20007 END IF;
20008 --
20009
20010 --
20011 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20012 trace
20013 (p_msg => 'END of AcctLineType_56'
20014 ,p_level => C_LEVEL_PROCEDURE
20015 ,p_module => l_log_module);
20016 END IF;
20017 --
20018 EXCEPTION
20019 WHEN xla_exceptions_pkg.application_exception THEN
20020 RAISE;
20021 WHEN OTHERS THEN
20022 xla_exceptions_pkg.raise_message
20023 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_56');
20024 END AcctLineType_56;
20025 --
20026
20027 ---------------------------------------
20028 --
20029 -- PRIVATE FUNCTION
20030 -- AcctLineType_57
20031 --
20032 ---------------------------------------
20033 PROCEDURE AcctLineType_57 (
20034 p_application_id IN NUMBER
20035 ,p_event_id IN NUMBER
20036 ,p_calculate_acctd_flag IN VARCHAR2
20037 ,p_calculate_g_l_flag IN VARCHAR2
20038 ,p_actual_flag IN OUT VARCHAR2
20039 ,p_balance_type_code OUT VARCHAR2
20040 ,p_gain_or_loss_ref OUT VARCHAR2
20041
20042 --Bank Cash Account
20043 , p_source_1 IN NUMBER
20044 --Payment Distribution (Cleared Rate) Ledger Amount
20045 , p_source_10 IN NUMBER
20046 --Automatic Offsets Flag
20047 , p_source_30 IN VARCHAR2
20048 , p_source_30_meaning IN VARCHAR2
20049 --When to Account for Payment Option
20050 , p_source_38 IN VARCHAR2
20051 --Payment Distribution Type
20052 , p_source_39 IN VARCHAR2
20053 , p_source_39_meaning IN VARCHAR2
20054 --Accounting Reversal Indicator
20055 , p_source_40 IN VARCHAR2
20056 --Payment Distribution Amount
20057 , p_source_41 IN NUMBER
20058 --Business Flow Accounts Payable Application Identifier
20059 , p_source_42 IN NUMBER
20060 --Business Flow Payment Distribution Type
20061 , p_source_43 IN VARCHAR2
20062 --Business Flow Payment Entity Code
20063 , p_source_44 IN VARCHAR2
20064 --Business Flow Payment Distribution Identifier
20065 , p_source_45 IN NUMBER
20066 --Business Flow Payment Identifier
20067 , p_source_46 IN NUMBER
20068 --Payment Distribution Identifier
20069 , p_source_47 IN NUMBER
20070 --Distribution Link Type
20071 , p_source_48 IN VARCHAR2
20072 --Payment Currency Code
20073 , p_source_49 IN VARCHAR2
20077 --Payment Supplier Identifier
20074 --Override Accounted Amount Indicator
20075 , p_source_53 IN VARCHAR2
20076 , p_source_53_meaning IN VARCHAR2
20078 , p_source_54 IN NUMBER
20079 --Payment Supplier Site Identifier
20080 , p_source_55 IN NUMBER
20081 --Third Party Type
20082 , p_source_56 IN VARCHAR2
20083 --Payment Distribution Reversed Identifier
20084 , p_source_57 IN NUMBER
20085 --Invoice Distribution Tax Line Identifier
20086 , p_source_58 IN NUMBER
20087 --Invoice Distribution Summary Tax Line Identifier
20088 , p_source_59 IN NUMBER
20089 --Cleared Exchange Date
20090 , p_source_107 IN DATE
20091 --Cleared Exchange Rate
20092 , p_source_108 IN NUMBER
20093 --Cleared Exchange Rate Type
20094 , p_source_109 IN VARCHAR2
20095 --Pooled Bank Account Option
20096 , p_source_110 IN VARCHAR2
20097 , p_source_110_meaning IN VARCHAR2
20098 )
20099 IS
20100
20101 l_component_type VARCHAR2(80);
20102 l_component_code VARCHAR2(30);
20103 l_component_type_code VARCHAR2(1);
20104 l_component_appl_id INTEGER;
20105 l_amb_context_code VARCHAR2(30);
20106 l_entity_code VARCHAR2(30);
20107 l_event_class_code VARCHAR2(30);
20108 l_ae_header_id NUMBER;
20109 l_event_type_code VARCHAR2(30);
20110 l_line_definition_code VARCHAR2(30);
20111 l_line_definition_owner_code VARCHAR2(1);
20112 --
20113 -- adr variables
20114 l_segment VARCHAR2(30);
20115 l_ccid NUMBER;
20116 l_adr_transaction_coa_id NUMBER;
20117 l_adr_accounting_coa_id NUMBER;
20118 l_adr_flexfield_segment_code VARCHAR2(30);
20119 l_adr_flex_value_set_id NUMBER;
20120 l_adr_value_type_code VARCHAR2(30);
20121 l_adr_value_combination_id NUMBER;
20122 l_adr_value_segment_code VARCHAR2(30);
20123
20124 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20125 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20126 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20127 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20128
20129 -- 4262811 Variables ------------------------------------------------------------------------------------------
20130 l_entered_amt_idx NUMBER;
20131 l_accted_amt_idx NUMBER;
20132 l_acc_rev_flag VARCHAR2(1);
20133 l_accrual_line_num NUMBER;
20134 l_tmp_amt NUMBER;
20135 l_acc_rev_natural_side_code VARCHAR2(1);
20136
20137 l_num_entries NUMBER;
20138 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20139 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20140 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20141 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20142 l_recog_line_1 NUMBER;
20143 l_recog_line_2 NUMBER;
20144
20145 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20146 l_bflow_applied_to_amt NUMBER; -- 5132302
20147 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20148
20149 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20150
20151 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20152 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20153
20154 ---------------------------------------------------------------------------------------------------------------
20155
20156
20157 --
20158 -- bulk performance
20159 --
20160 l_balance_type_code VARCHAR2(1);
20161 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20162 l_log_module VARCHAR2(240);
20163
20164 --
20165 -- Upgrade strategy
20166 --
20167 l_actual_upg_option VARCHAR2(1);
20168 l_enc_upg_option VARCHAR2(1);
20169
20170 --
20171 BEGIN
20172 --
20173 IF g_log_enabled THEN
20174 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
20175 END IF;
20176 --
20177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20178
20179 trace
20180 (p_msg => 'BEGIN of AcctLineType_57'
20181 ,p_level => C_LEVEL_PROCEDURE
20182 ,p_module => l_log_module);
20183
20184 END IF;
20185 --
20186 l_component_type := 'AMB_JLT';
20187 l_component_code := 'AP_CASH_CLEARONLY_NP';
20188 l_component_type_code := 'S';
20189 l_component_appl_id := 200;
20190 l_amb_context_code := 'DEFAULT';
20191 l_entity_code := 'AP_PAYMENTS';
20192 l_event_class_code := 'RECONCILED PAYMENTS';
20193 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
20194 l_line_definition_owner_code := 'S';
20195 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
20196 --
20197 l_balance_type_code := 'A';
20198 l_segment := NULL;
20199 l_ccid := NULL;
20200 l_adr_transaction_coa_id := NULL;
20201 l_adr_accounting_coa_id := NULL;
20202 l_adr_flexfield_segment_code := NULL;
20203 l_adr_flex_value_set_id := NULL;
20207
20204 l_adr_value_type_code := NULL;
20205 l_adr_value_combination_id := NULL;
20206 l_adr_value_segment_code := NULL;
20208 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20209 l_bflow_class_code := ''; -- 4219869 Business Flow
20210 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20211 l_budgetary_control_flag := 'N';
20212
20213 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20214 l_bflow_applied_to_amt := NULL; -- 5132302
20215 l_entered_amt_idx := NULL; -- 4262811
20216 l_accted_amt_idx := NULL; -- 4262811
20217 l_acc_rev_flag := NULL; -- 4262811
20218 l_accrual_line_num := NULL; -- 4262811
20219 l_tmp_amt := NULL; -- 4262811
20220 --
20221
20222 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20223 l_balance_type_code <> 'B' THEN
20224 IF NVL(p_source_38,'
20225 ') <> 'ISSUE_ISSUE' AND
20226 (NVL(p_source_30,'
20227 ') <> 'Y' OR
20228 NVL(p_source_30,'
20229 ') = 'Y' AND
20230 NVL(p_source_110,'
20231 ') <> 'Y') AND
20232 (NVL(p_source_39,'
20233 ') = 'CASH' OR
20234 NVL(p_source_39,'
20235 ') = 'BANK CHARGE' OR
20236 NVL(p_source_39,'
20237 ') = 'BANK ERROR')
20238 THEN
20239
20240 --
20241 XLA_AE_LINES_PKG.SetNewLine;
20242
20243 p_balance_type_code := l_balance_type_code;
20244 -- set the flag so later we will know whether the gain loss line needs to be created
20245
20246 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20247 p_actual_flag :='A';
20248 END IF;
20249
20250 --
20251 -- bulk performance
20252 --
20253 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20254 p_header_num => 0); -- 4262811
20255 --
20256 -- set accounting line options
20257 --
20258 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20259 p_natural_side_code => 'C'
20260 , p_gain_or_loss_flag => 'N'
20261 , p_gl_transfer_mode_code => 'S'
20262 , p_acct_entry_type_code => 'A'
20263 , p_switch_side_flag => 'Y'
20264 , p_merge_duplicate_code => 'A'
20265 );
20266 --
20267 l_acc_rev_natural_side_code := 'D'; -- 4262811
20268 --
20269 --
20270 -- set accounting line type info
20271 --
20272 xla_ae_lines_pkg.SetAcctLineType
20273 (p_component_type => l_component_type
20274 ,p_event_type_code => l_event_type_code
20275 ,p_line_definition_owner_code => l_line_definition_owner_code
20276 ,p_line_definition_code => l_line_definition_code
20277 ,p_accounting_line_code => l_component_code
20278 ,p_accounting_line_type_code => l_component_type_code
20279 ,p_accounting_line_appl_id => l_component_appl_id
20280 ,p_amb_context_code => l_amb_context_code
20281 ,p_entity_code => l_entity_code
20282 ,p_event_class_code => l_event_class_code);
20283 --
20284 -- set accounting class
20285 --
20286 xla_ae_lines_pkg.SetAcctClass(
20287 p_accounting_class_code => 'CASH'
20288 , p_ae_header_id => l_ae_header_id
20289 );
20290
20291 --
20292 -- set rounding class
20293 --
20294 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20295 'CASH';
20296
20297 --
20298 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20299 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20300 --
20301 -- bulk performance
20302 --
20303 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20304
20305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20306 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20307
20308 -- 4955764
20309 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20310 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20311
20312 -- 4458381 Public Sector Enh
20313
20314 --
20315 -- set accounting attributes for the line type
20316 --
20317 l_entered_amt_idx := 10;
20318 l_accted_amt_idx := 15;
20319 l_bflow_applied_to_amt_idx := 2; -- 5132302
20320 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20321 l_rec_acct_attrs.array_char_value(1) := p_source_40;
20322 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20323 l_rec_acct_attrs.array_num_value(2) := p_source_41;
20324 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20325 l_rec_acct_attrs.array_num_value(3) := p_source_42;
20326 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20327 l_rec_acct_attrs.array_char_value(4) := p_source_43;
20328 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20329 l_rec_acct_attrs.array_char_value(5) := p_source_44;
20333 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
20330 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20331 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
20332 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20334 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20335 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
20336 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20337 l_rec_acct_attrs.array_char_value(9) := p_source_48;
20338 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20339 l_rec_acct_attrs.array_num_value(10) := p_source_41;
20340 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20341 l_rec_acct_attrs.array_char_value(11) := p_source_49;
20342 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20343 l_rec_acct_attrs.array_date_value(12) := p_source_107;
20344 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20345 l_rec_acct_attrs.array_num_value(13) := p_source_108;
20346 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20347 l_rec_acct_attrs.array_char_value(14) := p_source_109;
20348 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20349 l_rec_acct_attrs.array_num_value(15) := p_source_10;
20350 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20351 l_rec_acct_attrs.array_char_value(16) := p_source_53;
20352 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20353 l_rec_acct_attrs.array_num_value(17) := p_source_54;
20354 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20355 l_rec_acct_attrs.array_num_value(18) := p_source_55;
20356 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20357 l_rec_acct_attrs.array_char_value(19) := p_source_56;
20358 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20359 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
20360 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20361 l_rec_acct_attrs.array_char_value(21) := p_source_48;
20362 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20363 l_rec_acct_attrs.array_num_value(22) := p_source_58;
20364 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20365 l_rec_acct_attrs.array_num_value(23) := p_source_58;
20366 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20367 l_rec_acct_attrs.array_num_value(24) := p_source_59;
20368
20369 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20370 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20371
20372 ---------------------------------------------------------------------------------------------------------------
20373 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20374 ---------------------------------------------------------------------------------------------------------------
20375 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20376
20377 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20378 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20379
20380 IF xla_accounting_cache_pkg.GetValueChar
20381 (p_source_code => 'LEDGER_CATEGORY_CODE'
20382 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20383 AND l_bflow_method_code = 'PRIOR_ENTRY'
20384 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20385 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20386 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20387 )
20388 THEN
20389 xla_ae_lines_pkg.BflowUpgEntry
20390 (p_business_method_code => l_bflow_method_code
20391 ,p_business_class_code => l_bflow_class_code
20392 ,p_balance_type => l_balance_type_code);
20393 ELSE
20394 NULL;
20395 -- No business flow processing for business flow method of NONE.
20396 END IF;
20397
20398 --
20399 -- call analytical criteria
20400 --
20401
20402 --
20403 -- call description
20404 --
20405 -- No description or it is inherited.
20406 --
20407 -- call ADRs
20408 -- Bug 4922099
20409 --
20410 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20411 (NVL(l_actual_upg_option, 'N') = 'O') OR
20412 (NVL(l_enc_upg_option, 'N') = 'O')
20413 )
20414 THEN
20415 NULL;
20416 --
20417 --
20418
20419 l_ccid := AcctDerRule_20(
20420 p_application_id => p_application_id
20421 , p_ae_header_id => l_ae_header_id
20422 , p_source_1 => p_source_1
20423 , x_transaction_coa_id => l_adr_transaction_coa_id
20424 , x_accounting_coa_id => l_adr_accounting_coa_id
20425 , x_value_type_code => l_adr_value_type_code
20426 , p_side => 'NA'
20427 );
20428
20429 xla_ae_lines_pkg.set_ccid(
20430 p_code_combination_id => l_ccid
20431 , p_value_type_code => l_adr_value_type_code
20432 , p_transaction_coa_id => l_adr_transaction_coa_id
20433 , p_accounting_coa_id => l_adr_accounting_coa_id
20437 , p_component_code => l_component_code
20434 , p_adr_code => 'AP_CASH'
20435 , p_adr_type_code => 'S'
20436 , p_component_type => l_component_type
20438 , p_component_type_code => l_component_type_code
20439 , p_component_appl_id => l_component_appl_id
20440 , p_amb_context_code => l_amb_context_code
20441 , p_side => 'NA'
20442 );
20443
20444
20445 --
20446 --
20447 END IF;
20448 --
20449 -- Bug 4922099
20450 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20451 (NVL(l_enc_upg_option, 'N') = 'O')
20452 ) AND
20453 (l_bflow_method_code = 'PRIOR_ENTRY')
20454 )
20455 THEN
20456 IF
20457 --
20458 1 = 2
20459 --
20460 THEN
20461 xla_accounting_err_pkg.build_message
20462 (p_appli_s_name => 'XLA'
20463 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20464 ,p_token_1 => 'LINE_NUMBER'
20465 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20466 ,p_token_2 => 'LINE_TYPE_NAME'
20467 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20468 l_component_type
20469 ,l_component_code
20470 ,l_component_type_code
20471 ,l_component_appl_id
20472 ,l_amb_context_code
20473 ,l_entity_code
20474 ,l_event_class_code
20475 )
20476 ,p_token_3 => 'OWNER'
20477 ,p_value_3 => xla_lookups_pkg.get_meaning(
20478 p_lookup_type => 'XLA_OWNER_TYPE'
20479 ,p_lookup_code => l_component_type_code
20480 )
20481 ,p_token_4 => 'PRODUCT_NAME'
20482 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20483 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20484 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20485 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20486 ,p_ae_header_id => NULL
20487 );
20488
20489 IF (C_LEVEL_ERROR>= g_log_level) THEN
20490 trace
20491 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20492 ,p_level => C_LEVEL_ERROR
20493 ,p_module => l_log_module);
20494 END IF;
20495 END IF;
20496 END IF;
20497 --
20498 --
20499 ------------------------------------------------------------------------------------------------
20500 -- 4219869 Business Flow
20501 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20502 -- Prior Entry. Currently, the following code is always generated.
20503 ------------------------------------------------------------------------------------------------
20504 XLA_AE_LINES_PKG.ValidateCurrentLine;
20505
20506 ------------------------------------------------------------------------------------
20507 -- 4219869 Business Flow
20508 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20509 ------------------------------------------------------------------------------------
20510 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20511
20512 ----------------------------------------------------------------------------------
20513 -- 4219869 Business Flow
20514 -- Update journal entry status -- Need to generate this within IF <condition>
20515 ----------------------------------------------------------------------------------
20516 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20517 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20518 ,p_balance_type_code => l_balance_type_code
20519 );
20520
20521 -------------------------------------------------------------------------------------------
20522 -- 4262811 - Generate the Accrual Reversal lines
20523 -------------------------------------------------------------------------------------------
20524 BEGIN
20525 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20526 (g_array_event(p_event_id).array_value_num('header_index'));
20530 EXCEPTION
20527 IF l_acc_rev_flag IS NULL THEN
20528 l_acc_rev_flag := 'N';
20529 END IF;
20531 WHEN OTHERS THEN
20532 l_acc_rev_flag := 'N';
20533 END;
20534 --
20535 IF (l_acc_rev_flag = 'Y') THEN
20536
20537 -- 4645092 ------------------------------------------------------------------------------
20538 -- To allow MPA report to determine if it should generate report process
20539 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20540 ------------------------------------------------------------------------------------------
20541
20542 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20543 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20544 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20545 -- call ADRs
20546 -- Bug 4922099
20547 --
20548 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20549 (NVL(l_actual_upg_option, 'N') = 'O') OR
20550 (NVL(l_enc_upg_option, 'N') = 'O')
20551 )
20552 THEN
20553 NULL;
20554 --
20555 --
20556
20557 l_ccid := AcctDerRule_20(
20558 p_application_id => p_application_id
20559 , p_ae_header_id => l_ae_header_id
20560 , p_source_1 => p_source_1
20561 , x_transaction_coa_id => l_adr_transaction_coa_id
20562 , x_accounting_coa_id => l_adr_accounting_coa_id
20563 , x_value_type_code => l_adr_value_type_code
20564 , p_side => 'NA'
20565 );
20566
20567 xla_ae_lines_pkg.set_ccid(
20568 p_code_combination_id => l_ccid
20569 , p_value_type_code => l_adr_value_type_code
20570 , p_transaction_coa_id => l_adr_transaction_coa_id
20571 , p_accounting_coa_id => l_adr_accounting_coa_id
20572 , p_adr_code => 'AP_CASH'
20573 , p_adr_type_code => 'S'
20574 , p_component_type => l_component_type
20575 , p_component_code => l_component_code
20576 , p_component_type_code => l_component_type_code
20577 , p_component_appl_id => l_component_appl_id
20578 , p_amb_context_code => l_amb_context_code
20579 , p_side => 'NA'
20580 );
20581
20582
20583 --
20584 --
20585 END IF;
20586
20587 --
20588 -- Update the line information that should be overwritten
20589 --
20590 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20591 p_header_num => 1);
20592 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20593
20594 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20595
20596 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20597 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20598 END IF;
20599
20600 --
20601 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20602 --
20603 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20604 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20605 ELSE
20606 ---------------------------------------------------------------------------------------------------
20607 -- 4262811a Switch Sign
20608 ---------------------------------------------------------------------------------------------------
20609 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20610 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20611 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20612 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20613 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20614 -- 5132302
20615 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20616 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20617
20618 END IF;
20619
20620 -- 4955764
20621 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20622 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20623
20624
20625 XLA_AE_LINES_PKG.ValidateCurrentLine;
20626 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20627
20628 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20629 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20630 ,p_balance_type_code => l_balance_type_code);
20631
20632 END IF;
20633
20634 -----------------------------------------------------------------------------------------
20635 -- 4262811 Multiperiod Accounting
20636 -----------------------------------------------------------------------------------------
20637 -- No MPA option is assigned.
20638
20639
20640 END IF;
20641 END IF;
20642 --
20643
20644 --
20648 ,p_level => C_LEVEL_PROCEDURE
20645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20646 trace
20647 (p_msg => 'END of AcctLineType_57'
20649 ,p_module => l_log_module);
20650 END IF;
20651 --
20652 EXCEPTION
20653 WHEN xla_exceptions_pkg.application_exception THEN
20654 RAISE;
20655 WHEN OTHERS THEN
20656 xla_exceptions_pkg.raise_message
20657 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_57');
20658 END AcctLineType_57;
20659 --
20660
20661 ---------------------------------------
20662 --
20663 -- PRIVATE FUNCTION
20664 -- AcctLineType_58
20665 --
20666 ---------------------------------------
20667 PROCEDURE AcctLineType_58 (
20668 p_application_id IN NUMBER
20669 ,p_event_id IN NUMBER
20670 ,p_calculate_acctd_flag IN VARCHAR2
20671 ,p_calculate_g_l_flag IN VARCHAR2
20672 ,p_actual_flag IN OUT VARCHAR2
20673 ,p_balance_type_code OUT VARCHAR2
20674 ,p_gain_or_loss_ref OUT VARCHAR2
20675
20676 --Payment Distribution (Payment Rate) Ledger Amount
20677 , p_source_9 IN NUMBER
20678 --When to Account for Payment Option
20679 , p_source_38 IN VARCHAR2
20680 --Payment Distribution Type
20681 , p_source_39 IN VARCHAR2
20682 , p_source_39_meaning IN VARCHAR2
20683 --Accounting Reversal Indicator
20684 , p_source_40 IN VARCHAR2
20685 --Payment Distribution Amount
20686 , p_source_41 IN NUMBER
20687 --Business Flow Accounts Payable Application Identifier
20688 , p_source_42 IN NUMBER
20689 --Business Flow Payment Distribution Type
20690 , p_source_43 IN VARCHAR2
20691 --Business Flow Payment Entity Code
20692 , p_source_44 IN VARCHAR2
20693 --Business Flow Payment Distribution Identifier
20694 , p_source_45 IN NUMBER
20695 --Business Flow Payment Identifier
20696 , p_source_46 IN NUMBER
20697 --Payment Distribution Identifier
20698 , p_source_47 IN NUMBER
20699 --Distribution Link Type
20700 , p_source_48 IN VARCHAR2
20701 --Payment Currency Code
20702 , p_source_49 IN VARCHAR2
20703 --Override Accounted Amount Indicator
20704 , p_source_53 IN VARCHAR2
20705 , p_source_53_meaning IN VARCHAR2
20706 --Third Party Type
20707 , p_source_56 IN VARCHAR2
20708 --Payment Distribution Reversed Identifier
20709 , p_source_57 IN NUMBER
20710 --Invoice Distribution Tax Line Identifier
20711 , p_source_58 IN NUMBER
20712 --Invoice Distribution Summary Tax Line Identifier
20713 , p_source_59 IN NUMBER
20714 --Payment Maturity Date
20715 , p_source_111 IN DATE
20716 )
20717 IS
20718
20719 l_component_type VARCHAR2(80);
20720 l_component_code VARCHAR2(30);
20721 l_component_type_code VARCHAR2(1);
20722 l_component_appl_id INTEGER;
20723 l_amb_context_code VARCHAR2(30);
20724 l_entity_code VARCHAR2(30);
20725 l_event_class_code VARCHAR2(30);
20726 l_ae_header_id NUMBER;
20727 l_event_type_code VARCHAR2(30);
20728 l_line_definition_code VARCHAR2(30);
20729 l_line_definition_owner_code VARCHAR2(1);
20730 --
20731 -- adr variables
20732 l_segment VARCHAR2(30);
20733 l_ccid NUMBER;
20734 l_adr_transaction_coa_id NUMBER;
20735 l_adr_accounting_coa_id NUMBER;
20736 l_adr_flexfield_segment_code VARCHAR2(30);
20737 l_adr_flex_value_set_id NUMBER;
20738 l_adr_value_type_code VARCHAR2(30);
20739 l_adr_value_combination_id NUMBER;
20740 l_adr_value_segment_code VARCHAR2(30);
20741
20742 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20743 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20744 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20745 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20746
20747 -- 4262811 Variables ------------------------------------------------------------------------------------------
20748 l_entered_amt_idx NUMBER;
20749 l_accted_amt_idx NUMBER;
20750 l_acc_rev_flag VARCHAR2(1);
20751 l_accrual_line_num NUMBER;
20752 l_tmp_amt NUMBER;
20753 l_acc_rev_natural_side_code VARCHAR2(1);
20754
20755 l_num_entries NUMBER;
20756 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20757 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20758 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20759 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20760 l_recog_line_1 NUMBER;
20761 l_recog_line_2 NUMBER;
20762
20763 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20764 l_bflow_applied_to_amt NUMBER; -- 5132302
20765 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20766
20767 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20768
20769 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20770 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20771
20775 --
20772 ---------------------------------------------------------------------------------------------------------------
20773
20774
20776 -- bulk performance
20777 --
20778 l_balance_type_code VARCHAR2(1);
20779 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20780 l_log_module VARCHAR2(240);
20781
20782 --
20783 -- Upgrade strategy
20784 --
20785 l_actual_upg_option VARCHAR2(1);
20786 l_enc_upg_option VARCHAR2(1);
20787
20788 --
20789 BEGIN
20790 --
20791 IF g_log_enabled THEN
20792 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
20793 END IF;
20794 --
20795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20796
20797 trace
20798 (p_msg => 'BEGIN of AcctLineType_58'
20799 ,p_level => C_LEVEL_PROCEDURE
20800 ,p_module => l_log_module);
20801
20802 END IF;
20803 --
20804 l_component_type := 'AMB_JLT';
20805 l_component_code := 'AP_CASH_CLEAR_CLEAR';
20806 l_component_type_code := 'S';
20807 l_component_appl_id := 200;
20808 l_amb_context_code := 'DEFAULT';
20809 l_entity_code := 'AP_PAYMENTS';
20810 l_event_class_code := 'RECONCILED PAYMENTS';
20811 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
20812 l_line_definition_owner_code := 'S';
20813 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
20814 --
20815 l_balance_type_code := 'A';
20816 l_segment := NULL;
20817 l_ccid := NULL;
20818 l_adr_transaction_coa_id := NULL;
20819 l_adr_accounting_coa_id := NULL;
20820 l_adr_flexfield_segment_code := NULL;
20821 l_adr_flex_value_set_id := NULL;
20822 l_adr_value_type_code := NULL;
20823 l_adr_value_combination_id := NULL;
20824 l_adr_value_segment_code := NULL;
20825
20826 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20827 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
20828 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20829 l_budgetary_control_flag := 'N';
20830
20831 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20832 l_bflow_applied_to_amt := NULL; -- 5132302
20833 l_entered_amt_idx := NULL; -- 4262811
20834 l_accted_amt_idx := NULL; -- 4262811
20835 l_acc_rev_flag := NULL; -- 4262811
20836 l_accrual_line_num := NULL; -- 4262811
20837 l_tmp_amt := NULL; -- 4262811
20838 --
20839
20840 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20841 l_balance_type_code <> 'B' THEN
20842 IF (NVL(p_source_38,'
20843 ') = 'ALWAYS_ALWAYS' OR
20844 NVL(p_source_38,'
20845 ') = 'ALWAYS_ISSUE') AND
20846 NVL(p_source_39,'
20847 ') = 'CASH' AND
20848 p_source_111 IS NULL
20849 THEN
20850
20851 --
20852 XLA_AE_LINES_PKG.SetNewLine;
20853
20854 p_balance_type_code := l_balance_type_code;
20855 -- set the flag so later we will know whether the gain loss line needs to be created
20856
20857 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20858 p_actual_flag :='A';
20859 END IF;
20860
20861 --
20862 -- bulk performance
20863 --
20864 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20865 p_header_num => 0); -- 4262811
20866 --
20867 -- set accounting line options
20868 --
20869 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20870 p_natural_side_code => 'D'
20871 , p_gain_or_loss_flag => 'N'
20872 , p_gl_transfer_mode_code => 'S'
20873 , p_acct_entry_type_code => 'A'
20874 , p_switch_side_flag => 'Y'
20875 , p_merge_duplicate_code => 'A'
20876 );
20877 --
20878 l_acc_rev_natural_side_code := 'C'; -- 4262811
20879 --
20880 --
20881 -- set accounting line type info
20882 --
20883 xla_ae_lines_pkg.SetAcctLineType
20884 (p_component_type => l_component_type
20885 ,p_event_type_code => l_event_type_code
20886 ,p_line_definition_owner_code => l_line_definition_owner_code
20887 ,p_line_definition_code => l_line_definition_code
20888 ,p_accounting_line_code => l_component_code
20889 ,p_accounting_line_type_code => l_component_type_code
20890 ,p_accounting_line_appl_id => l_component_appl_id
20891 ,p_amb_context_code => l_amb_context_code
20892 ,p_entity_code => l_entity_code
20893 ,p_event_class_code => l_event_class_code);
20894 --
20895 -- set accounting class
20896 --
20897 xla_ae_lines_pkg.SetAcctClass(
20898 p_accounting_class_code => 'CASH_CLEARING'
20899 , p_ae_header_id => l_ae_header_id
20900 );
20901
20902 --
20903 -- set rounding class
20904 --
20905 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20906 'CASH_CLEARING';
20907
20908 --
20909 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20913 --
20910 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20911 --
20912 -- bulk performance
20914 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20915
20916 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20917 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20918
20919 -- 4955764
20920 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20921 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20922
20923 -- 4458381 Public Sector Enh
20924
20925 --
20926 -- set accounting attributes for the line type
20927 --
20928 l_entered_amt_idx := 10;
20929 l_accted_amt_idx := 12;
20930 l_bflow_applied_to_amt_idx := 2; -- 5132302
20931 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20932 l_rec_acct_attrs.array_char_value(1) := p_source_40;
20933 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20934 l_rec_acct_attrs.array_num_value(2) := p_source_41;
20935 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20936 l_rec_acct_attrs.array_num_value(3) := p_source_42;
20937 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20938 l_rec_acct_attrs.array_char_value(4) := p_source_43;
20939 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20940 l_rec_acct_attrs.array_char_value(5) := p_source_44;
20941 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20942 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
20943 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20944 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
20945 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20946 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
20947 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20948 l_rec_acct_attrs.array_char_value(9) := p_source_48;
20949 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20950 l_rec_acct_attrs.array_num_value(10) := p_source_41;
20951 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20952 l_rec_acct_attrs.array_char_value(11) := p_source_49;
20953 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20954 l_rec_acct_attrs.array_num_value(12) := p_source_9;
20955 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
20956 l_rec_acct_attrs.array_char_value(13) := p_source_53;
20957 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
20958 l_rec_acct_attrs.array_char_value(14) := p_source_56;
20959 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20960 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
20961 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20962 l_rec_acct_attrs.array_char_value(16) := p_source_48;
20963 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
20964 l_rec_acct_attrs.array_num_value(17) := p_source_58;
20965 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
20966 l_rec_acct_attrs.array_num_value(18) := p_source_58;
20967 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
20968 l_rec_acct_attrs.array_num_value(19) := p_source_59;
20969
20970 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20971 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20972
20973 ---------------------------------------------------------------------------------------------------------------
20974 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20975 ---------------------------------------------------------------------------------------------------------------
20976 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20977
20978 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20979 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20980
20981 IF xla_accounting_cache_pkg.GetValueChar
20982 (p_source_code => 'LEDGER_CATEGORY_CODE'
20983 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20984 AND l_bflow_method_code = 'PRIOR_ENTRY'
20985 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20986 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20987 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20988 )
20989 THEN
20990 xla_ae_lines_pkg.BflowUpgEntry
20991 (p_business_method_code => l_bflow_method_code
20992 ,p_business_class_code => l_bflow_class_code
20993 ,p_balance_type => l_balance_type_code);
20994 ELSE
20995 NULL;
20996 XLA_AE_LINES_PKG.business_flow_validation(
20997 p_business_method_code => l_bflow_method_code
20998 ,p_business_class_code => l_bflow_class_code
20999 ,p_inherit_description_flag => l_inherit_desc_flag);
21000 END IF;
21001
21005 -- Inherited Analytical Criteria for business flow method of Prior Entry.
21002 --
21003 -- call analytical criteria
21004 --
21006 --
21007 -- call description
21008 --
21009 -- No description or it is inherited.
21010 --
21011 -- call ADRs
21012 -- Bug 4922099
21013 --
21014 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21015 (NVL(l_actual_upg_option, 'N') = 'O') OR
21016 (NVL(l_enc_upg_option, 'N') = 'O')
21017 )
21018 THEN
21019 NULL;
21020 --
21021 --
21022
21023 --
21024 --
21025 END IF;
21026 --
21027 -- Bug 4922099
21028 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21029 (NVL(l_enc_upg_option, 'N') = 'O')
21030 ) AND
21031 (l_bflow_method_code = 'PRIOR_ENTRY')
21032 )
21033 THEN
21034 IF
21035 --
21036 1 = 1
21037 --
21038 THEN
21039 xla_accounting_err_pkg.build_message
21040 (p_appli_s_name => 'XLA'
21041 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21042 ,p_token_1 => 'LINE_NUMBER'
21043 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21044 ,p_token_2 => 'LINE_TYPE_NAME'
21045 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21046 l_component_type
21047 ,l_component_code
21048 ,l_component_type_code
21049 ,l_component_appl_id
21050 ,l_amb_context_code
21051 ,l_entity_code
21052 ,l_event_class_code
21053 )
21054 ,p_token_3 => 'OWNER'
21055 ,p_value_3 => xla_lookups_pkg.get_meaning(
21056 p_lookup_type => 'XLA_OWNER_TYPE'
21057 ,p_lookup_code => l_component_type_code
21058 )
21059 ,p_token_4 => 'PRODUCT_NAME'
21060 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21061 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21062 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21063 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21064 ,p_ae_header_id => NULL
21065 );
21066
21067 IF (C_LEVEL_ERROR>= g_log_level) THEN
21068 trace
21069 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21070 ,p_level => C_LEVEL_ERROR
21071 ,p_module => l_log_module);
21072 END IF;
21073 END IF;
21074 END IF;
21075 --
21076 --
21077 ------------------------------------------------------------------------------------------------
21078 -- 4219869 Business Flow
21079 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21080 -- Prior Entry. Currently, the following code is always generated.
21081 ------------------------------------------------------------------------------------------------
21082 -- No ValidateCurrentLine for business flow method of Prior Entry
21083
21084 ------------------------------------------------------------------------------------
21085 -- 4219869 Business Flow
21086 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21087 ------------------------------------------------------------------------------------
21088 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21089
21090 ----------------------------------------------------------------------------------
21091 -- 4219869 Business Flow
21092 -- Update journal entry status -- Need to generate this within IF <condition>
21093 ----------------------------------------------------------------------------------
21094 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21095 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21096 ,p_balance_type_code => l_balance_type_code
21097 );
21098
21099 -------------------------------------------------------------------------------------------
21100 -- 4262811 - Generate the Accrual Reversal lines
21101 -------------------------------------------------------------------------------------------
21105 IF l_acc_rev_flag IS NULL THEN
21102 BEGIN
21103 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21104 (g_array_event(p_event_id).array_value_num('header_index'));
21106 l_acc_rev_flag := 'N';
21107 END IF;
21108 EXCEPTION
21109 WHEN OTHERS THEN
21110 l_acc_rev_flag := 'N';
21111 END;
21112 --
21113 IF (l_acc_rev_flag = 'Y') THEN
21114
21115 -- 4645092 ------------------------------------------------------------------------------
21116 -- To allow MPA report to determine if it should generate report process
21117 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21118 ------------------------------------------------------------------------------------------
21119
21120 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21121 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21122 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21123 -- call ADRs
21124 -- Bug 4922099
21125 --
21126 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21127 (NVL(l_actual_upg_option, 'N') = 'O') OR
21128 (NVL(l_enc_upg_option, 'N') = 'O')
21129 )
21130 THEN
21131 NULL;
21132 --
21133 --
21134
21135 --
21136 --
21137 END IF;
21138
21139 --
21140 -- Update the line information that should be overwritten
21141 --
21142 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21143 p_header_num => 1);
21144 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21145
21146 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21147
21148 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21149 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21150 END IF;
21151
21152 --
21153 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21154 --
21155 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21156 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21157 ELSE
21158 ---------------------------------------------------------------------------------------------------
21159 -- 4262811a Switch Sign
21160 ---------------------------------------------------------------------------------------------------
21161 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21162 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21163 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21164 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21165 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21166 -- 5132302
21167 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21168 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21169
21170 END IF;
21171
21172 -- 4955764
21173 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21174 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21175
21176
21177 XLA_AE_LINES_PKG.ValidateCurrentLine;
21178 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21179
21180 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21181 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21182 ,p_balance_type_code => l_balance_type_code);
21183
21184 END IF;
21185
21186 -----------------------------------------------------------------------------------------
21187 -- 4262811 Multiperiod Accounting
21188 -----------------------------------------------------------------------------------------
21189 -- No MPA option is assigned.
21190
21191
21192 END IF;
21193 END IF;
21194 --
21195
21196 --
21197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21198 trace
21199 (p_msg => 'END of AcctLineType_58'
21200 ,p_level => C_LEVEL_PROCEDURE
21201 ,p_module => l_log_module);
21202 END IF;
21203 --
21204 EXCEPTION
21205 WHEN xla_exceptions_pkg.application_exception THEN
21206 RAISE;
21207 WHEN OTHERS THEN
21208 xla_exceptions_pkg.raise_message
21209 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_58');
21210 END AcctLineType_58;
21211 --
21212
21213 ---------------------------------------
21214 --
21215 -- PRIVATE FUNCTION
21216 -- AcctLineType_59
21217 --
21218 ---------------------------------------
21219 PROCEDURE AcctLineType_59 (
21220 p_application_id IN NUMBER
21221 ,p_event_id IN NUMBER
21222 ,p_calculate_acctd_flag IN VARCHAR2
21223 ,p_calculate_g_l_flag IN VARCHAR2
21224 ,p_actual_flag IN OUT VARCHAR2
21225 ,p_balance_type_code OUT VARCHAR2
21229 , p_source_38 IN VARCHAR2
21226 ,p_gain_or_loss_ref OUT VARCHAR2
21227
21228 --When to Account for Payment Option
21230 --Payment Distribution Type
21231 , p_source_39 IN VARCHAR2
21232 , p_source_39_meaning IN VARCHAR2
21233 --Accounting Reversal Indicator
21234 , p_source_40 IN VARCHAR2
21235 --Payment Distribution Amount
21236 , p_source_41 IN NUMBER
21237 --Business Flow Accounts Payable Application Identifier
21238 , p_source_42 IN NUMBER
21239 --Business Flow Payment Distribution Type
21240 , p_source_43 IN VARCHAR2
21241 --Business Flow Payment Entity Code
21242 , p_source_44 IN VARCHAR2
21243 --Business Flow Payment Distribution Identifier
21244 , p_source_45 IN NUMBER
21245 --Business Flow Payment Identifier
21246 , p_source_46 IN NUMBER
21247 --Payment Distribution Identifier
21248 , p_source_47 IN NUMBER
21249 --Distribution Link Type
21250 , p_source_48 IN VARCHAR2
21251 --Payment Currency Code
21252 , p_source_49 IN VARCHAR2
21253 --Override Accounted Amount Indicator
21254 , p_source_53 IN VARCHAR2
21255 , p_source_53_meaning IN VARCHAR2
21256 --Third Party Type
21257 , p_source_56 IN VARCHAR2
21258 --Payment Distribution Reversed Identifier
21259 , p_source_57 IN NUMBER
21260 --Invoice Distribution Tax Line Identifier
21261 , p_source_58 IN NUMBER
21262 --Invoice Distribution Summary Tax Line Identifier
21263 , p_source_59 IN NUMBER
21264 --Payment Maturity Date
21265 , p_source_111 IN DATE
21266 --Payment Distribution (Invoice Rate) Ledger Amount
21267 , p_source_112 IN NUMBER
21268 )
21269 IS
21270
21271 l_component_type VARCHAR2(80);
21272 l_component_code VARCHAR2(30);
21273 l_component_type_code VARCHAR2(1);
21274 l_component_appl_id INTEGER;
21275 l_amb_context_code VARCHAR2(30);
21276 l_entity_code VARCHAR2(30);
21277 l_event_class_code VARCHAR2(30);
21278 l_ae_header_id NUMBER;
21279 l_event_type_code VARCHAR2(30);
21280 l_line_definition_code VARCHAR2(30);
21281 l_line_definition_owner_code VARCHAR2(1);
21282 --
21283 -- adr variables
21284 l_segment VARCHAR2(30);
21285 l_ccid NUMBER;
21286 l_adr_transaction_coa_id NUMBER;
21287 l_adr_accounting_coa_id NUMBER;
21288 l_adr_flexfield_segment_code VARCHAR2(30);
21289 l_adr_flex_value_set_id NUMBER;
21290 l_adr_value_type_code VARCHAR2(30);
21291 l_adr_value_combination_id NUMBER;
21292 l_adr_value_segment_code VARCHAR2(30);
21293
21294 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21295 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21296 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21297 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21298
21299 -- 4262811 Variables ------------------------------------------------------------------------------------------
21300 l_entered_amt_idx NUMBER;
21301 l_accted_amt_idx NUMBER;
21302 l_acc_rev_flag VARCHAR2(1);
21303 l_accrual_line_num NUMBER;
21304 l_tmp_amt NUMBER;
21305 l_acc_rev_natural_side_code VARCHAR2(1);
21306
21307 l_num_entries NUMBER;
21308 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21309 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21310 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21311 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21312 l_recog_line_1 NUMBER;
21313 l_recog_line_2 NUMBER;
21314
21315 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21316 l_bflow_applied_to_amt NUMBER; -- 5132302
21317 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21318
21319 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21320
21321 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21322 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21323
21324 ---------------------------------------------------------------------------------------------------------------
21325
21326
21327 --
21328 -- bulk performance
21329 --
21330 l_balance_type_code VARCHAR2(1);
21331 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21332 l_log_module VARCHAR2(240);
21333
21334 --
21335 -- Upgrade strategy
21336 --
21337 l_actual_upg_option VARCHAR2(1);
21338 l_enc_upg_option VARCHAR2(1);
21339
21340 --
21341 BEGIN
21342 --
21343 IF g_log_enabled THEN
21344 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
21345 END IF;
21346 --
21347 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21348
21349 trace
21350 (p_msg => 'BEGIN of AcctLineType_59'
21351 ,p_level => C_LEVEL_PROCEDURE
21352 ,p_module => l_log_module);
21353
21354 END IF;
21355 --
21356 l_component_type := 'AMB_JLT';
21360 l_amb_context_code := 'DEFAULT';
21357 l_component_code := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
21358 l_component_type_code := 'S';
21359 l_component_appl_id := 200;
21361 l_entity_code := 'AP_PAYMENTS';
21362 l_event_class_code := 'RECONCILED PAYMENTS';
21363 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
21364 l_line_definition_owner_code := 'S';
21365 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
21366 --
21367 l_balance_type_code := 'A';
21368 l_segment := NULL;
21369 l_ccid := NULL;
21370 l_adr_transaction_coa_id := NULL;
21371 l_adr_accounting_coa_id := NULL;
21372 l_adr_flexfield_segment_code := NULL;
21373 l_adr_flex_value_set_id := NULL;
21374 l_adr_value_type_code := NULL;
21375 l_adr_value_combination_id := NULL;
21376 l_adr_value_segment_code := NULL;
21377
21378 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
21379 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
21380 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21381 l_budgetary_control_flag := 'N';
21382
21383 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21384 l_bflow_applied_to_amt := NULL; -- 5132302
21385 l_entered_amt_idx := NULL; -- 4262811
21386 l_accted_amt_idx := NULL; -- 4262811
21387 l_acc_rev_flag := NULL; -- 4262811
21388 l_accrual_line_num := NULL; -- 4262811
21389 l_tmp_amt := NULL; -- 4262811
21390 --
21391
21392 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21393 l_balance_type_code <> 'B' THEN
21394 IF NVL(p_source_38,'
21395 ') = 'ALWAYS_CLEAR' AND
21396 NVL(p_source_39,'
21397 ') = 'CASH' AND
21398 p_source_111 IS NULL
21399 THEN
21400
21401 --
21402 XLA_AE_LINES_PKG.SetNewLine;
21403
21404 p_balance_type_code := l_balance_type_code;
21405 -- set the flag so later we will know whether the gain loss line needs to be created
21406
21407 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21408 p_actual_flag :='A';
21409 END IF;
21410
21411 --
21412 -- bulk performance
21413 --
21414 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21415 p_header_num => 0); -- 4262811
21416 --
21417 -- set accounting line options
21418 --
21419 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21420 p_natural_side_code => 'D'
21421 , p_gain_or_loss_flag => 'N'
21422 , p_gl_transfer_mode_code => 'S'
21423 , p_acct_entry_type_code => 'A'
21424 , p_switch_side_flag => 'Y'
21425 , p_merge_duplicate_code => 'A'
21426 );
21427 --
21428 l_acc_rev_natural_side_code := 'C'; -- 4262811
21429 --
21430 --
21431 -- set accounting line type info
21432 --
21433 xla_ae_lines_pkg.SetAcctLineType
21434 (p_component_type => l_component_type
21435 ,p_event_type_code => l_event_type_code
21436 ,p_line_definition_owner_code => l_line_definition_owner_code
21437 ,p_line_definition_code => l_line_definition_code
21438 ,p_accounting_line_code => l_component_code
21439 ,p_accounting_line_type_code => l_component_type_code
21440 ,p_accounting_line_appl_id => l_component_appl_id
21441 ,p_amb_context_code => l_amb_context_code
21442 ,p_entity_code => l_entity_code
21443 ,p_event_class_code => l_event_class_code);
21444 --
21445 -- set accounting class
21446 --
21447 xla_ae_lines_pkg.SetAcctClass(
21448 p_accounting_class_code => 'CASH_CLEARING'
21449 , p_ae_header_id => l_ae_header_id
21450 );
21451
21452 --
21453 -- set rounding class
21454 --
21455 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21456 'CASH_CLEARING';
21457
21458 --
21459 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21460 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21461 --
21462 -- bulk performance
21463 --
21464 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21465
21466 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21467 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21468
21469 -- 4955764
21470 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21471 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21472
21473 -- 4458381 Public Sector Enh
21474
21475 --
21476 -- set accounting attributes for the line type
21477 --
21478 l_entered_amt_idx := 10;
21479 l_accted_amt_idx := 12;
21480 l_bflow_applied_to_amt_idx := 2; -- 5132302
21481 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21482 l_rec_acct_attrs.array_char_value(1) := p_source_40;
21486 l_rec_acct_attrs.array_num_value(3) := p_source_42;
21483 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21484 l_rec_acct_attrs.array_num_value(2) := p_source_41;
21485 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21487 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21488 l_rec_acct_attrs.array_char_value(4) := p_source_43;
21489 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21490 l_rec_acct_attrs.array_char_value(5) := p_source_44;
21491 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21492 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
21493 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21494 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
21495 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21496 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
21497 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21498 l_rec_acct_attrs.array_char_value(9) := p_source_48;
21499 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21500 l_rec_acct_attrs.array_num_value(10) := p_source_41;
21501 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21502 l_rec_acct_attrs.array_char_value(11) := p_source_49;
21503 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
21504 l_rec_acct_attrs.array_num_value(12) := p_source_112;
21505 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
21506 l_rec_acct_attrs.array_char_value(13) := p_source_53;
21507 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
21508 l_rec_acct_attrs.array_char_value(14) := p_source_56;
21509 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
21510 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
21511 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
21512 l_rec_acct_attrs.array_char_value(16) := p_source_48;
21513 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
21514 l_rec_acct_attrs.array_num_value(17) := p_source_58;
21515 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
21516 l_rec_acct_attrs.array_num_value(18) := p_source_58;
21517 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
21518 l_rec_acct_attrs.array_num_value(19) := p_source_59;
21519
21520 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21521 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21522
21523 ---------------------------------------------------------------------------------------------------------------
21524 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21525 ---------------------------------------------------------------------------------------------------------------
21526 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21527
21528 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21529 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21530
21531 IF xla_accounting_cache_pkg.GetValueChar
21532 (p_source_code => 'LEDGER_CATEGORY_CODE'
21533 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21534 AND l_bflow_method_code = 'PRIOR_ENTRY'
21535 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21536 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21537 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21538 )
21539 THEN
21540 xla_ae_lines_pkg.BflowUpgEntry
21541 (p_business_method_code => l_bflow_method_code
21542 ,p_business_class_code => l_bflow_class_code
21543 ,p_balance_type => l_balance_type_code);
21544 ELSE
21545 NULL;
21546 XLA_AE_LINES_PKG.business_flow_validation(
21547 p_business_method_code => l_bflow_method_code
21548 ,p_business_class_code => l_bflow_class_code
21549 ,p_inherit_description_flag => l_inherit_desc_flag);
21550 END IF;
21551
21552 --
21553 -- call analytical criteria
21554 --
21555 -- Inherited Analytical Criteria for business flow method of Prior Entry.
21556 --
21557 -- call description
21558 --
21559 -- No description or it is inherited.
21560 --
21561 -- call ADRs
21562 -- Bug 4922099
21563 --
21564 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21565 (NVL(l_actual_upg_option, 'N') = 'O') OR
21566 (NVL(l_enc_upg_option, 'N') = 'O')
21567 )
21568 THEN
21569 NULL;
21570 --
21571 --
21572
21573 --
21574 --
21575 END IF;
21576 --
21577 -- Bug 4922099
21578 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21579 (NVL(l_enc_upg_option, 'N') = 'O')
21580 ) AND
21581 (l_bflow_method_code = 'PRIOR_ENTRY')
21582 )
21583 THEN
21584 IF
21585 --
21586 1 = 1
21587 --
21588 THEN
21589 xla_accounting_err_pkg.build_message
21590 (p_appli_s_name => 'XLA'
21594 ,p_token_2 => 'LINE_TYPE_NAME'
21591 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21592 ,p_token_1 => 'LINE_NUMBER'
21593 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21595 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21596 l_component_type
21597 ,l_component_code
21598 ,l_component_type_code
21599 ,l_component_appl_id
21600 ,l_amb_context_code
21601 ,l_entity_code
21602 ,l_event_class_code
21603 )
21604 ,p_token_3 => 'OWNER'
21605 ,p_value_3 => xla_lookups_pkg.get_meaning(
21606 p_lookup_type => 'XLA_OWNER_TYPE'
21607 ,p_lookup_code => l_component_type_code
21608 )
21609 ,p_token_4 => 'PRODUCT_NAME'
21610 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21611 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21612 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21613 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21614 ,p_ae_header_id => NULL
21615 );
21616
21617 IF (C_LEVEL_ERROR>= g_log_level) THEN
21618 trace
21619 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21620 ,p_level => C_LEVEL_ERROR
21621 ,p_module => l_log_module);
21622 END IF;
21623 END IF;
21624 END IF;
21625 --
21626 --
21627 ------------------------------------------------------------------------------------------------
21628 -- 4219869 Business Flow
21629 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21630 -- Prior Entry. Currently, the following code is always generated.
21631 ------------------------------------------------------------------------------------------------
21632 -- No ValidateCurrentLine for business flow method of Prior Entry
21633
21634 ------------------------------------------------------------------------------------
21635 -- 4219869 Business Flow
21636 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21637 ------------------------------------------------------------------------------------
21638 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21639
21640 ----------------------------------------------------------------------------------
21641 -- 4219869 Business Flow
21642 -- Update journal entry status -- Need to generate this within IF <condition>
21643 ----------------------------------------------------------------------------------
21644 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21645 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21646 ,p_balance_type_code => l_balance_type_code
21647 );
21648
21649 -------------------------------------------------------------------------------------------
21650 -- 4262811 - Generate the Accrual Reversal lines
21651 -------------------------------------------------------------------------------------------
21652 BEGIN
21653 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21654 (g_array_event(p_event_id).array_value_num('header_index'));
21655 IF l_acc_rev_flag IS NULL THEN
21656 l_acc_rev_flag := 'N';
21657 END IF;
21658 EXCEPTION
21659 WHEN OTHERS THEN
21660 l_acc_rev_flag := 'N';
21661 END;
21662 --
21663 IF (l_acc_rev_flag = 'Y') THEN
21664
21665 -- 4645092 ------------------------------------------------------------------------------
21666 -- To allow MPA report to determine if it should generate report process
21667 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21668 ------------------------------------------------------------------------------------------
21669
21670 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21671 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21672 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21673 -- call ADRs
21674 -- Bug 4922099
21675 --
21676 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21677 (NVL(l_actual_upg_option, 'N') = 'O') OR
21678 (NVL(l_enc_upg_option, 'N') = 'O')
21679 )
21680 THEN
21681 NULL;
21682 --
21686 --
21683 --
21684
21685 --
21687 END IF;
21688
21689 --
21690 -- Update the line information that should be overwritten
21691 --
21692 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21693 p_header_num => 1);
21694 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21695
21696 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21697
21698 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21699 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21700 END IF;
21701
21702 --
21703 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21704 --
21705 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21706 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21707 ELSE
21708 ---------------------------------------------------------------------------------------------------
21709 -- 4262811a Switch Sign
21710 ---------------------------------------------------------------------------------------------------
21711 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21712 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21713 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21714 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21715 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21716 -- 5132302
21717 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21718 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21719
21720 END IF;
21721
21722 -- 4955764
21723 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21724 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21725
21726
21727 XLA_AE_LINES_PKG.ValidateCurrentLine;
21728 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21729
21730 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21731 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21732 ,p_balance_type_code => l_balance_type_code);
21733
21734 END IF;
21735
21736 -----------------------------------------------------------------------------------------
21737 -- 4262811 Multiperiod Accounting
21738 -----------------------------------------------------------------------------------------
21739 -- No MPA option is assigned.
21740
21741
21742 END IF;
21743 END IF;
21744 --
21745
21746 --
21747 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21748 trace
21749 (p_msg => 'END of AcctLineType_59'
21750 ,p_level => C_LEVEL_PROCEDURE
21751 ,p_module => l_log_module);
21752 END IF;
21753 --
21754 EXCEPTION
21755 WHEN xla_exceptions_pkg.application_exception THEN
21756 RAISE;
21757 WHEN OTHERS THEN
21758 xla_exceptions_pkg.raise_message
21759 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_59');
21760 END AcctLineType_59;
21761 --
21762
21763 ---------------------------------------
21764 --
21765 -- PRIVATE FUNCTION
21766 -- AcctLineType_60
21767 --
21768 ---------------------------------------
21769 PROCEDURE AcctLineType_60 (
21770 p_application_id IN NUMBER
21771 ,p_event_id IN NUMBER
21772 ,p_calculate_acctd_flag IN VARCHAR2
21773 ,p_calculate_g_l_flag IN VARCHAR2
21774 ,p_actual_flag IN OUT VARCHAR2
21775 ,p_balance_type_code OUT VARCHAR2
21776 ,p_gain_or_loss_ref OUT VARCHAR2
21777
21778 --Payment Distribution (Payment Rate) Ledger Amount
21779 , p_source_9 IN NUMBER
21780 --Bank Cash Clearing Account
21781 , p_source_21 IN NUMBER
21782 --Automatic Offsets Flag
21783 , p_source_30 IN VARCHAR2
21784 , p_source_30_meaning IN VARCHAR2
21785 --When to Account for Payment Option
21786 , p_source_38 IN VARCHAR2
21787 --Payment Distribution Type
21788 , p_source_39 IN VARCHAR2
21789 , p_source_39_meaning IN VARCHAR2
21790 --Accounting Reversal Indicator
21791 , p_source_40 IN VARCHAR2
21792 --Payment Distribution Amount
21793 , p_source_41 IN NUMBER
21794 --Business Flow Accounts Payable Application Identifier
21795 , p_source_42 IN NUMBER
21796 --Payment Distribution Identifier
21797 , p_source_47 IN NUMBER
21798 --Distribution Link Type
21799 , p_source_48 IN VARCHAR2
21800 --Payment Currency Code
21801 , p_source_49 IN VARCHAR2
21802 --Override Accounted Amount Indicator
21803 , p_source_53 IN VARCHAR2
21804 , p_source_53_meaning IN VARCHAR2
21805 --Payment Supplier Identifier
21806 , p_source_54 IN NUMBER
21807 --Payment Supplier Site Identifier
21811 --Payment Distribution Reversed Identifier
21808 , p_source_55 IN NUMBER
21809 --Third Party Type
21810 , p_source_56 IN VARCHAR2
21812 , p_source_57 IN NUMBER
21813 --Invoice Distribution Tax Line Identifier
21814 , p_source_58 IN NUMBER
21815 --Invoice Distribution Summary Tax Line Identifier
21816 , p_source_59 IN NUMBER
21817 --Payment Type
21818 , p_source_60 IN VARCHAR2
21819 , p_source_60_meaning IN VARCHAR2
21820 --Invoice Distribution Amount of the Payment Distribution
21821 , p_source_61 IN NUMBER
21822 --Business Flow Invoice Distribution Type
21823 , p_source_62 IN VARCHAR2
21824 --Business Flow Invoice Entity Code
21825 , p_source_63 IN VARCHAR2
21826 --Business Flow Invoice Distribution Identifier
21827 , p_source_64 IN NUMBER
21828 --Business Flow Invoice Identifier
21829 , p_source_65 IN NUMBER
21830 --Invoice Distribution Tax Distribution Identifier from Tax
21831 , p_source_66 IN NUMBER
21832 --Pooled Bank Account Option
21833 , p_source_110 IN VARCHAR2
21834 , p_source_110_meaning IN VARCHAR2
21835 --Payment Maturity Date
21836 , p_source_111 IN DATE
21837 --Payment Processing Type
21838 , p_source_113 IN VARCHAR2
21839 --Payment Exchange Date
21840 , p_source_114 IN DATE
21841 --Payment Exchange Rate
21842 , p_source_115 IN NUMBER
21843 --Payment Exchange Rate Type
21844 , p_source_116 IN VARCHAR2
21845 )
21846 IS
21847
21848 l_component_type VARCHAR2(80);
21849 l_component_code VARCHAR2(30);
21850 l_component_type_code VARCHAR2(1);
21851 l_component_appl_id INTEGER;
21852 l_amb_context_code VARCHAR2(30);
21853 l_entity_code VARCHAR2(30);
21854 l_event_class_code VARCHAR2(30);
21855 l_ae_header_id NUMBER;
21856 l_event_type_code VARCHAR2(30);
21857 l_line_definition_code VARCHAR2(30);
21858 l_line_definition_owner_code VARCHAR2(1);
21859 --
21860 -- adr variables
21861 l_segment VARCHAR2(30);
21862 l_ccid NUMBER;
21863 l_adr_transaction_coa_id NUMBER;
21864 l_adr_accounting_coa_id NUMBER;
21865 l_adr_flexfield_segment_code VARCHAR2(30);
21866 l_adr_flex_value_set_id NUMBER;
21867 l_adr_value_type_code VARCHAR2(30);
21868 l_adr_value_combination_id NUMBER;
21869 l_adr_value_segment_code VARCHAR2(30);
21870
21871 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21872 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21873 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21874 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21875
21876 -- 4262811 Variables ------------------------------------------------------------------------------------------
21877 l_entered_amt_idx NUMBER;
21878 l_accted_amt_idx NUMBER;
21879 l_acc_rev_flag VARCHAR2(1);
21880 l_accrual_line_num NUMBER;
21881 l_tmp_amt NUMBER;
21882 l_acc_rev_natural_side_code VARCHAR2(1);
21883
21884 l_num_entries NUMBER;
21885 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21886 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21887 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21888 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21889 l_recog_line_1 NUMBER;
21890 l_recog_line_2 NUMBER;
21891
21892 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21893 l_bflow_applied_to_amt NUMBER; -- 5132302
21894 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21895
21896 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21897
21898 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21899 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21900
21901 ---------------------------------------------------------------------------------------------------------------
21902
21903
21904 --
21905 -- bulk performance
21906 --
21907 l_balance_type_code VARCHAR2(1);
21908 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21909 l_log_module VARCHAR2(240);
21910
21911 --
21912 -- Upgrade strategy
21913 --
21914 l_actual_upg_option VARCHAR2(1);
21915 l_enc_upg_option VARCHAR2(1);
21916
21917 --
21918 BEGIN
21919 --
21920 IF g_log_enabled THEN
21921 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
21922 END IF;
21923 --
21924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21925
21926 trace
21927 (p_msg => 'BEGIN of AcctLineType_60'
21928 ,p_level => C_LEVEL_PROCEDURE
21929 ,p_module => l_log_module);
21930
21931 END IF;
21932 --
21933 l_component_type := 'AMB_JLT';
21934 l_component_code := 'AP_CASH_CLEAR_PMT';
21935 l_component_type_code := 'S';
21936 l_component_appl_id := 200;
21940 l_event_type_code := 'PAYMENTS_ALL';
21937 l_amb_context_code := 'DEFAULT';
21938 l_entity_code := 'AP_PAYMENTS';
21939 l_event_class_code := 'PAYMENTS';
21941 l_line_definition_owner_code := 'S';
21942 l_line_definition_code := 'CASH_PAYMENTS_ALL';
21943 --
21944 l_balance_type_code := 'A';
21945 l_segment := NULL;
21946 l_ccid := NULL;
21947 l_adr_transaction_coa_id := NULL;
21948 l_adr_accounting_coa_id := NULL;
21949 l_adr_flexfield_segment_code := NULL;
21950 l_adr_flex_value_set_id := NULL;
21951 l_adr_value_type_code := NULL;
21952 l_adr_value_combination_id := NULL;
21953 l_adr_value_segment_code := NULL;
21954
21955 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21956 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
21957 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21958 l_budgetary_control_flag := 'N';
21959
21960 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21961 l_bflow_applied_to_amt := NULL; -- 5132302
21962 l_entered_amt_idx := NULL; -- 4262811
21963 l_accted_amt_idx := NULL; -- 4262811
21964 l_acc_rev_flag := NULL; -- 4262811
21965 l_accrual_line_num := NULL; -- 4262811
21966 l_tmp_amt := NULL; -- 4262811
21967 --
21968
21969 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21970 l_balance_type_code <> 'B' THEN
21971 IF NVL(p_source_38,'
21972 ') = 'ALWAYS_ALWAYS' AND
21973 (NVL(p_source_30,'
21974 ') <> 'Y' OR
21975 NVL(p_source_30,'
21976 ') = 'Y' AND
21977 NVL(p_source_110,'
21978 ') <> 'Y') AND
21979 p_source_111 IS NULL AND
21980 NVL(p_source_39,'
21981 ') = 'CASH' AND
21982 NVL(p_source_60,'
21983 ') <> 'R' AND
21984 NVL(p_source_113,'
21985 ') <> 'PAYMENTCARD'
21986 THEN
21987
21988 --
21989 XLA_AE_LINES_PKG.SetNewLine;
21990
21991 p_balance_type_code := l_balance_type_code;
21992 -- set the flag so later we will know whether the gain loss line needs to be created
21993
21994 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21995 p_actual_flag :='A';
21996 END IF;
21997
21998 --
21999 -- bulk performance
22000 --
22001 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22002 p_header_num => 0); -- 4262811
22003 --
22004 -- set accounting line options
22005 --
22006 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22007 p_natural_side_code => 'C'
22008 , p_gain_or_loss_flag => 'N'
22009 , p_gl_transfer_mode_code => 'S'
22010 , p_acct_entry_type_code => 'A'
22011 , p_switch_side_flag => 'Y'
22012 , p_merge_duplicate_code => 'A'
22013 );
22014 --
22015 l_acc_rev_natural_side_code := 'D'; -- 4262811
22016 --
22017 --
22018 -- set accounting line type info
22019 --
22020 xla_ae_lines_pkg.SetAcctLineType
22021 (p_component_type => l_component_type
22022 ,p_event_type_code => l_event_type_code
22023 ,p_line_definition_owner_code => l_line_definition_owner_code
22024 ,p_line_definition_code => l_line_definition_code
22025 ,p_accounting_line_code => l_component_code
22026 ,p_accounting_line_type_code => l_component_type_code
22027 ,p_accounting_line_appl_id => l_component_appl_id
22028 ,p_amb_context_code => l_amb_context_code
22029 ,p_entity_code => l_entity_code
22030 ,p_event_class_code => l_event_class_code);
22031 --
22032 -- set accounting class
22033 --
22034 xla_ae_lines_pkg.SetAcctClass(
22035 p_accounting_class_code => 'CASH_CLEARING'
22036 , p_ae_header_id => l_ae_header_id
22037 );
22038
22039 --
22040 -- set rounding class
22041 --
22042 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22043 'CASH_CLEARING';
22044
22045 --
22046 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22047 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22048 --
22049 -- bulk performance
22050 --
22051 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22052
22053 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22054 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22055
22056 -- 4955764
22057 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22058 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22059
22060 -- 4458381 Public Sector Enh
22061
22062 --
22063 -- set accounting attributes for the line type
22064 --
22065 l_entered_amt_idx := 10;
22066 l_accted_amt_idx := 15;
22067 l_bflow_applied_to_amt_idx := 2; -- 5132302
22068 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22069 l_rec_acct_attrs.array_char_value(1) := p_source_40;
22073 l_rec_acct_attrs.array_num_value(3) := p_source_42;
22070 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22071 l_rec_acct_attrs.array_num_value(2) := p_source_61;
22072 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22074 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22075 l_rec_acct_attrs.array_char_value(4) := p_source_62;
22076 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22077 l_rec_acct_attrs.array_char_value(5) := p_source_63;
22078 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22079 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
22080 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22081 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
22082 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22083 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
22084 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22085 l_rec_acct_attrs.array_char_value(9) := p_source_48;
22086 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22087 l_rec_acct_attrs.array_num_value(10) := p_source_41;
22088 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22089 l_rec_acct_attrs.array_char_value(11) := p_source_49;
22090 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22091 l_rec_acct_attrs.array_date_value(12) := p_source_114;
22092 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22093 l_rec_acct_attrs.array_num_value(13) := p_source_115;
22094 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22095 l_rec_acct_attrs.array_char_value(14) := p_source_116;
22096 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22097 l_rec_acct_attrs.array_num_value(15) := p_source_9;
22098 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22099 l_rec_acct_attrs.array_char_value(16) := p_source_53;
22100 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22101 l_rec_acct_attrs.array_num_value(17) := p_source_54;
22102 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22103 l_rec_acct_attrs.array_num_value(18) := p_source_55;
22104 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22105 l_rec_acct_attrs.array_char_value(19) := p_source_56;
22106 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22107 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
22108 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22109 l_rec_acct_attrs.array_char_value(21) := p_source_48;
22110 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22111 l_rec_acct_attrs.array_num_value(22) := p_source_58;
22112 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22113 l_rec_acct_attrs.array_num_value(23) := p_source_66;
22114 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22115 l_rec_acct_attrs.array_num_value(24) := p_source_59;
22116
22117 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22118 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22119
22120 ---------------------------------------------------------------------------------------------------------------
22121 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22122 ---------------------------------------------------------------------------------------------------------------
22123 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22124
22125 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22126 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22127
22128 IF xla_accounting_cache_pkg.GetValueChar
22129 (p_source_code => 'LEDGER_CATEGORY_CODE'
22130 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22131 AND l_bflow_method_code = 'PRIOR_ENTRY'
22132 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22133 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22134 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22135 )
22136 THEN
22137 xla_ae_lines_pkg.BflowUpgEntry
22138 (p_business_method_code => l_bflow_method_code
22139 ,p_business_class_code => l_bflow_class_code
22140 ,p_balance_type => l_balance_type_code);
22141 ELSE
22142 NULL;
22143 -- No business flow processing for business flow method of NONE.
22144 END IF;
22145
22146 --
22147 -- call analytical criteria
22148 --
22149
22150 --
22151 -- call description
22152 --
22153 -- No description or it is inherited.
22154 --
22155 -- call ADRs
22156 -- Bug 4922099
22157 --
22158 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22159 (NVL(l_actual_upg_option, 'N') = 'O') OR
22160 (NVL(l_enc_upg_option, 'N') = 'O')
22161 )
22162 THEN
22163 NULL;
22164 --
22165 --
22166
22167 l_ccid := AcctDerRule_28(
22168 p_application_id => p_application_id
22172 , x_accounting_coa_id => l_adr_accounting_coa_id
22169 , p_ae_header_id => l_ae_header_id
22170 , p_source_21 => p_source_21
22171 , x_transaction_coa_id => l_adr_transaction_coa_id
22173 , x_value_type_code => l_adr_value_type_code
22174 , p_side => 'NA'
22175 );
22176
22177 xla_ae_lines_pkg.set_ccid(
22178 p_code_combination_id => l_ccid
22179 , p_value_type_code => l_adr_value_type_code
22180 , p_transaction_coa_id => l_adr_transaction_coa_id
22181 , p_accounting_coa_id => l_adr_accounting_coa_id
22182 , p_adr_code => 'AP_PMT_CASH_CLEAR'
22183 , p_adr_type_code => 'S'
22184 , p_component_type => l_component_type
22185 , p_component_code => l_component_code
22186 , p_component_type_code => l_component_type_code
22187 , p_component_appl_id => l_component_appl_id
22188 , p_amb_context_code => l_amb_context_code
22189 , p_side => 'NA'
22190 );
22191
22192
22193 --
22194 --
22195 END IF;
22196 --
22197 -- Bug 4922099
22198 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22199 (NVL(l_enc_upg_option, 'N') = 'O')
22200 ) AND
22201 (l_bflow_method_code = 'PRIOR_ENTRY')
22202 )
22203 THEN
22204 IF
22205 --
22206 1 = 2
22207 --
22208 THEN
22209 xla_accounting_err_pkg.build_message
22210 (p_appli_s_name => 'XLA'
22211 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22212 ,p_token_1 => 'LINE_NUMBER'
22213 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22214 ,p_token_2 => 'LINE_TYPE_NAME'
22215 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22216 l_component_type
22217 ,l_component_code
22218 ,l_component_type_code
22219 ,l_component_appl_id
22220 ,l_amb_context_code
22221 ,l_entity_code
22222 ,l_event_class_code
22223 )
22224 ,p_token_3 => 'OWNER'
22225 ,p_value_3 => xla_lookups_pkg.get_meaning(
22226 p_lookup_type => 'XLA_OWNER_TYPE'
22227 ,p_lookup_code => l_component_type_code
22228 )
22229 ,p_token_4 => 'PRODUCT_NAME'
22230 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22231 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22232 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22233 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22234 ,p_ae_header_id => NULL
22235 );
22236
22237 IF (C_LEVEL_ERROR>= g_log_level) THEN
22238 trace
22239 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22240 ,p_level => C_LEVEL_ERROR
22241 ,p_module => l_log_module);
22242 END IF;
22243 END IF;
22244 END IF;
22245 --
22246 --
22247 ------------------------------------------------------------------------------------------------
22248 -- 4219869 Business Flow
22249 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22250 -- Prior Entry. Currently, the following code is always generated.
22251 ------------------------------------------------------------------------------------------------
22252 XLA_AE_LINES_PKG.ValidateCurrentLine;
22253
22254 ------------------------------------------------------------------------------------
22255 -- 4219869 Business Flow
22256 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22257 ------------------------------------------------------------------------------------
22258 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22259
22260 ----------------------------------------------------------------------------------
22261 -- 4219869 Business Flow
22262 -- Update journal entry status -- Need to generate this within IF <condition>
22263 ----------------------------------------------------------------------------------
22267 );
22264 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22265 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22266 ,p_balance_type_code => l_balance_type_code
22268
22269 -------------------------------------------------------------------------------------------
22270 -- 4262811 - Generate the Accrual Reversal lines
22271 -------------------------------------------------------------------------------------------
22272 BEGIN
22273 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22274 (g_array_event(p_event_id).array_value_num('header_index'));
22275 IF l_acc_rev_flag IS NULL THEN
22276 l_acc_rev_flag := 'N';
22277 END IF;
22278 EXCEPTION
22279 WHEN OTHERS THEN
22280 l_acc_rev_flag := 'N';
22281 END;
22282 --
22283 IF (l_acc_rev_flag = 'Y') THEN
22284
22285 -- 4645092 ------------------------------------------------------------------------------
22286 -- To allow MPA report to determine if it should generate report process
22287 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22288 ------------------------------------------------------------------------------------------
22289
22290 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22291 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22292 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22293 -- call ADRs
22294 -- Bug 4922099
22295 --
22296 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22297 (NVL(l_actual_upg_option, 'N') = 'O') OR
22298 (NVL(l_enc_upg_option, 'N') = 'O')
22299 )
22300 THEN
22301 NULL;
22302 --
22303 --
22304
22305 l_ccid := AcctDerRule_28(
22306 p_application_id => p_application_id
22307 , p_ae_header_id => l_ae_header_id
22308 , p_source_21 => p_source_21
22309 , x_transaction_coa_id => l_adr_transaction_coa_id
22310 , x_accounting_coa_id => l_adr_accounting_coa_id
22311 , x_value_type_code => l_adr_value_type_code
22312 , p_side => 'NA'
22313 );
22314
22315 xla_ae_lines_pkg.set_ccid(
22316 p_code_combination_id => l_ccid
22317 , p_value_type_code => l_adr_value_type_code
22318 , p_transaction_coa_id => l_adr_transaction_coa_id
22319 , p_accounting_coa_id => l_adr_accounting_coa_id
22320 , p_adr_code => 'AP_PMT_CASH_CLEAR'
22321 , p_adr_type_code => 'S'
22322 , p_component_type => l_component_type
22323 , p_component_code => l_component_code
22324 , p_component_type_code => l_component_type_code
22325 , p_component_appl_id => l_component_appl_id
22326 , p_amb_context_code => l_amb_context_code
22327 , p_side => 'NA'
22328 );
22329
22330
22331 --
22332 --
22333 END IF;
22334
22335 --
22336 -- Update the line information that should be overwritten
22337 --
22338 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22339 p_header_num => 1);
22340 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22341
22342 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22343
22344 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22345 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22346 END IF;
22347
22348 --
22349 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22350 --
22351 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22352 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22353 ELSE
22354 ---------------------------------------------------------------------------------------------------
22355 -- 4262811a Switch Sign
22356 ---------------------------------------------------------------------------------------------------
22357 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22358 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22359 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22360 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22361 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22362 -- 5132302
22363 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22364 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22365
22366 END IF;
22367
22368 -- 4955764
22369 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22370 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22371
22372
22373 XLA_AE_LINES_PKG.ValidateCurrentLine;
22374 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22375
22376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22380 END IF;
22377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22378 ,p_balance_type_code => l_balance_type_code);
22379
22381
22382 -----------------------------------------------------------------------------------------
22383 -- 4262811 Multiperiod Accounting
22384 -----------------------------------------------------------------------------------------
22385 -- No MPA option is assigned.
22386
22387
22388 END IF;
22389 END IF;
22390 --
22391
22392 --
22393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22394 trace
22395 (p_msg => 'END of AcctLineType_60'
22396 ,p_level => C_LEVEL_PROCEDURE
22397 ,p_module => l_log_module);
22398 END IF;
22399 --
22400 EXCEPTION
22401 WHEN xla_exceptions_pkg.application_exception THEN
22402 RAISE;
22403 WHEN OTHERS THEN
22404 xla_exceptions_pkg.raise_message
22405 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_60');
22406 END AcctLineType_60;
22407 --
22408
22409 ---------------------------------------
22410 --
22411 -- PRIVATE FUNCTION
22412 -- AcctLineType_61
22413 --
22414 ---------------------------------------
22415 PROCEDURE AcctLineType_61 (
22416 p_application_id IN NUMBER
22417 ,p_event_id IN NUMBER
22418 ,p_calculate_acctd_flag IN VARCHAR2
22419 ,p_calculate_g_l_flag IN VARCHAR2
22420 ,p_actual_flag IN OUT VARCHAR2
22421 ,p_balance_type_code OUT VARCHAR2
22422 ,p_gain_or_loss_ref OUT VARCHAR2
22423
22424 --Automatic Offsets Value
22425 , p_source_4 IN VARCHAR2
22426 , p_source_4_meaning IN VARCHAR2
22427 --Payment Distribution (Payment Rate) Ledger Amount
22428 , p_source_9 IN NUMBER
22429 --Bank Cash Clearing Account
22430 , p_source_21 IN NUMBER
22431 --When to Account for Payment Option
22432 , p_source_38 IN VARCHAR2
22433 --Payment Distribution Type
22434 , p_source_39 IN VARCHAR2
22435 , p_source_39_meaning IN VARCHAR2
22436 --Accounting Reversal Indicator
22437 , p_source_40 IN VARCHAR2
22438 --Payment Distribution Amount
22439 , p_source_41 IN NUMBER
22440 --Business Flow Accounts Payable Application Identifier
22441 , p_source_42 IN NUMBER
22442 --Payment Distribution Identifier
22443 , p_source_47 IN NUMBER
22444 --Distribution Link Type
22445 , p_source_48 IN VARCHAR2
22446 --Payment Currency Code
22447 , p_source_49 IN VARCHAR2
22448 --Override Accounted Amount Indicator
22449 , p_source_53 IN VARCHAR2
22450 , p_source_53_meaning IN VARCHAR2
22451 --Payment Supplier Identifier
22452 , p_source_54 IN NUMBER
22453 --Payment Supplier Site Identifier
22454 , p_source_55 IN NUMBER
22455 --Third Party Type
22456 , p_source_56 IN VARCHAR2
22457 --Payment Distribution Reversed Identifier
22458 , p_source_57 IN NUMBER
22459 --Invoice Distribution Tax Line Identifier
22460 , p_source_58 IN NUMBER
22461 --Invoice Distribution Summary Tax Line Identifier
22462 , p_source_59 IN NUMBER
22463 --Payment Type
22464 , p_source_60 IN VARCHAR2
22465 , p_source_60_meaning IN VARCHAR2
22466 --Invoice Distribution Amount of the Payment Distribution
22467 , p_source_61 IN NUMBER
22468 --Business Flow Invoice Distribution Type
22469 , p_source_62 IN VARCHAR2
22470 --Business Flow Invoice Entity Code
22471 , p_source_63 IN VARCHAR2
22472 --Business Flow Invoice Distribution Identifier
22473 , p_source_64 IN NUMBER
22474 --Business Flow Invoice Identifier
22475 , p_source_65 IN NUMBER
22476 --Invoice Distribution Tax Distribution Identifier from Tax
22477 , p_source_66 IN NUMBER
22478 --Pooled Bank Account Option
22479 , p_source_110 IN VARCHAR2
22480 , p_source_110_meaning IN VARCHAR2
22481 --Payment Maturity Date
22482 , p_source_111 IN DATE
22483 --Payment Processing Type
22484 , p_source_113 IN VARCHAR2
22485 --Payment Exchange Date
22486 , p_source_114 IN DATE
22487 --Payment Exchange Rate
22488 , p_source_115 IN NUMBER
22489 --Payment Exchange Rate Type
22490 , p_source_116 IN VARCHAR2
22491 )
22492 IS
22493
22494 l_component_type VARCHAR2(80);
22495 l_component_code VARCHAR2(30);
22496 l_component_type_code VARCHAR2(1);
22497 l_component_appl_id INTEGER;
22498 l_amb_context_code VARCHAR2(30);
22499 l_entity_code VARCHAR2(30);
22500 l_event_class_code VARCHAR2(30);
22501 l_ae_header_id NUMBER;
22502 l_event_type_code VARCHAR2(30);
22503 l_line_definition_code VARCHAR2(30);
22504 l_line_definition_owner_code VARCHAR2(1);
22505 --
22506 -- adr variables
22507 l_segment VARCHAR2(30);
22508 l_ccid NUMBER;
22509 l_adr_transaction_coa_id NUMBER;
22510 l_adr_accounting_coa_id NUMBER;
22511 l_adr_flexfield_segment_code VARCHAR2(30);
22512 l_adr_flex_value_set_id NUMBER;
22513 l_adr_value_type_code VARCHAR2(30);
22514 l_adr_value_combination_id NUMBER;
22515 l_adr_value_segment_code VARCHAR2(30);
22516
22520 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22517 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22518 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22519 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22521
22522 -- 4262811 Variables ------------------------------------------------------------------------------------------
22523 l_entered_amt_idx NUMBER;
22524 l_accted_amt_idx NUMBER;
22525 l_acc_rev_flag VARCHAR2(1);
22526 l_accrual_line_num NUMBER;
22527 l_tmp_amt NUMBER;
22528 l_acc_rev_natural_side_code VARCHAR2(1);
22529
22530 l_num_entries NUMBER;
22531 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22532 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22533 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22534 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22535 l_recog_line_1 NUMBER;
22536 l_recog_line_2 NUMBER;
22537
22538 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22539 l_bflow_applied_to_amt NUMBER; -- 5132302
22540 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22541
22542 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22543
22544 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22545 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22546
22547 ---------------------------------------------------------------------------------------------------------------
22548
22549
22550 --
22551 -- bulk performance
22552 --
22553 l_balance_type_code VARCHAR2(1);
22554 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22555 l_log_module VARCHAR2(240);
22556
22557 --
22558 -- Upgrade strategy
22559 --
22560 l_actual_upg_option VARCHAR2(1);
22561 l_enc_upg_option VARCHAR2(1);
22562
22563 --
22564 BEGIN
22565 --
22566 IF g_log_enabled THEN
22567 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
22568 END IF;
22569 --
22570 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22571
22572 trace
22573 (p_msg => 'BEGIN of AcctLineType_61'
22574 ,p_level => C_LEVEL_PROCEDURE
22575 ,p_module => l_log_module);
22576
22577 END IF;
22578 --
22579 l_component_type := 'AMB_JLT';
22580 l_component_code := 'AP_CASH_CLEAR_PMT_AOS_AS';
22581 l_component_type_code := 'S';
22582 l_component_appl_id := 200;
22583 l_amb_context_code := 'DEFAULT';
22584 l_entity_code := 'AP_PAYMENTS';
22585 l_event_class_code := 'PAYMENTS';
22586 l_event_type_code := 'PAYMENTS_ALL';
22587 l_line_definition_owner_code := 'S';
22588 l_line_definition_code := 'CASH_PAYMENTS_ALL';
22589 --
22590 l_balance_type_code := 'A';
22591 l_segment := NULL;
22592 l_ccid := NULL;
22593 l_adr_transaction_coa_id := NULL;
22594 l_adr_accounting_coa_id := NULL;
22595 l_adr_flexfield_segment_code := NULL;
22596 l_adr_flex_value_set_id := NULL;
22597 l_adr_value_type_code := NULL;
22598 l_adr_value_combination_id := NULL;
22599 l_adr_value_segment_code := NULL;
22600
22601 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
22602 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
22603 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22604 l_budgetary_control_flag := 'N';
22605
22606 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22607 l_bflow_applied_to_amt := NULL; -- 5132302
22608 l_entered_amt_idx := NULL; -- 4262811
22609 l_accted_amt_idx := NULL; -- 4262811
22610 l_acc_rev_flag := NULL; -- 4262811
22611 l_accrual_line_num := NULL; -- 4262811
22612 l_tmp_amt := NULL; -- 4262811
22613 --
22614
22615 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22616 l_balance_type_code <> 'B' THEN
22617 IF NVL(p_source_38,'
22618 ') = 'ALWAYS_ALWAYS' AND
22619 (NVL(p_source_110,'
22620 ') = 'Y' AND
22621 NVL(p_source_4,'
22622 ') = 'ACCOUNT_SEGMENT_VALUE') AND
22623 p_source_111 IS NULL AND
22624 NVL(p_source_39,'
22625 ') = 'CASH' AND
22626 NVL(p_source_60,'
22627 ') <> 'R' AND
22628 NVL(p_source_113,'
22629 ') <> 'PAYMENTCARD'
22630 THEN
22631
22632 --
22633 XLA_AE_LINES_PKG.SetNewLine;
22634
22635 p_balance_type_code := l_balance_type_code;
22636 -- set the flag so later we will know whether the gain loss line needs to be created
22637
22638 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22639 p_actual_flag :='A';
22640 END IF;
22641
22642 --
22643 -- bulk performance
22644 --
22645 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22646 p_header_num => 0); -- 4262811
22647 --
22648 -- set accounting line options
22649 --
22653 , p_gl_transfer_mode_code => 'S'
22650 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22651 p_natural_side_code => 'C'
22652 , p_gain_or_loss_flag => 'N'
22654 , p_acct_entry_type_code => 'A'
22655 , p_switch_side_flag => 'Y'
22656 , p_merge_duplicate_code => 'A'
22657 );
22658 --
22659 l_acc_rev_natural_side_code := 'D'; -- 4262811
22660 --
22661 --
22662 -- set accounting line type info
22663 --
22664 xla_ae_lines_pkg.SetAcctLineType
22665 (p_component_type => l_component_type
22666 ,p_event_type_code => l_event_type_code
22667 ,p_line_definition_owner_code => l_line_definition_owner_code
22668 ,p_line_definition_code => l_line_definition_code
22669 ,p_accounting_line_code => l_component_code
22670 ,p_accounting_line_type_code => l_component_type_code
22671 ,p_accounting_line_appl_id => l_component_appl_id
22672 ,p_amb_context_code => l_amb_context_code
22673 ,p_entity_code => l_entity_code
22674 ,p_event_class_code => l_event_class_code);
22675 --
22676 -- set accounting class
22677 --
22678 xla_ae_lines_pkg.SetAcctClass(
22679 p_accounting_class_code => 'CASH_CLEARING'
22680 , p_ae_header_id => l_ae_header_id
22681 );
22682
22683 --
22684 -- set rounding class
22685 --
22686 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22687 'CASH_CLEARING';
22688
22689 --
22690 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22691 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22692 --
22693 -- bulk performance
22694 --
22695 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22696
22697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22698 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22699
22700 -- 4955764
22701 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22702 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22703
22704 -- 4458381 Public Sector Enh
22705
22706 --
22707 -- set accounting attributes for the line type
22708 --
22709 l_entered_amt_idx := 10;
22710 l_accted_amt_idx := 15;
22711 l_bflow_applied_to_amt_idx := 2; -- 5132302
22712 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22713 l_rec_acct_attrs.array_char_value(1) := p_source_40;
22714 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22715 l_rec_acct_attrs.array_num_value(2) := p_source_61;
22716 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22717 l_rec_acct_attrs.array_num_value(3) := p_source_42;
22718 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22719 l_rec_acct_attrs.array_char_value(4) := p_source_62;
22720 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22721 l_rec_acct_attrs.array_char_value(5) := p_source_63;
22722 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22723 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
22724 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22725 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
22726 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22727 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
22728 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22729 l_rec_acct_attrs.array_char_value(9) := p_source_48;
22730 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22731 l_rec_acct_attrs.array_num_value(10) := p_source_41;
22732 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22733 l_rec_acct_attrs.array_char_value(11) := p_source_49;
22734 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22735 l_rec_acct_attrs.array_date_value(12) := p_source_114;
22736 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22737 l_rec_acct_attrs.array_num_value(13) := p_source_115;
22738 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22739 l_rec_acct_attrs.array_char_value(14) := p_source_116;
22740 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22741 l_rec_acct_attrs.array_num_value(15) := p_source_9;
22742 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22743 l_rec_acct_attrs.array_char_value(16) := p_source_53;
22744 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22745 l_rec_acct_attrs.array_num_value(17) := p_source_54;
22746 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22747 l_rec_acct_attrs.array_num_value(18) := p_source_55;
22748 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22749 l_rec_acct_attrs.array_char_value(19) := p_source_56;
22750 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22751 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
22755 l_rec_acct_attrs.array_num_value(22) := p_source_58;
22752 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22753 l_rec_acct_attrs.array_char_value(21) := p_source_48;
22754 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22756 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22757 l_rec_acct_attrs.array_num_value(23) := p_source_66;
22758 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22759 l_rec_acct_attrs.array_num_value(24) := p_source_59;
22760
22761 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22762 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22763
22764 ---------------------------------------------------------------------------------------------------------------
22765 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22766 ---------------------------------------------------------------------------------------------------------------
22767 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22768
22769 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22770 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22771
22772 IF xla_accounting_cache_pkg.GetValueChar
22773 (p_source_code => 'LEDGER_CATEGORY_CODE'
22774 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22775 AND l_bflow_method_code = 'PRIOR_ENTRY'
22776 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22777 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22778 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22779 )
22780 THEN
22781 xla_ae_lines_pkg.BflowUpgEntry
22782 (p_business_method_code => l_bflow_method_code
22783 ,p_business_class_code => l_bflow_class_code
22784 ,p_balance_type => l_balance_type_code);
22785 ELSE
22786 NULL;
22787 XLA_AE_LINES_PKG.business_flow_validation(
22788 p_business_method_code => l_bflow_method_code
22789 ,p_business_class_code => l_bflow_class_code
22790 ,p_inherit_description_flag => l_inherit_desc_flag);
22791 END IF;
22792
22793 --
22794 -- call analytical criteria
22795 --
22796
22797 --
22798 -- call description
22799 --
22800 -- No description or it is inherited.
22801 --
22802 -- call ADRs
22803 -- Bug 4922099
22804 --
22805 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22806 (NVL(l_actual_upg_option, 'N') = 'O') OR
22807 (NVL(l_enc_upg_option, 'N') = 'O')
22808 )
22809 THEN
22810 NULL;
22811 --
22812 --
22813
22814 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
22815 p_code_combination_id => TO_NUMBER(C_NUM)
22816 , p_value_type_code => NULL
22817 , p_transaction_coa_id => null
22818 , p_accounting_coa_id => null
22819 , p_adr_code => NULL
22820 , p_adr_type_code => NULL
22821 , p_component_type => l_component_type
22822 , p_component_code => l_component_code
22823 , p_component_type_code => l_component_type_code
22824 , p_component_appl_id => l_component_appl_id
22825 , p_amb_context_code => l_amb_context_code
22826 , p_side => NULL
22827 );
22828
22829
22830 -- initialise segments
22831 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22832 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22833 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22834 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22835 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22836 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22837 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22838 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22839 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22840 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22841 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22842 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22843 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22844 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22845 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22846 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22847 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22848 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22849 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22850 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22854 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22851 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22852 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22853 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22855 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22856 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22857 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22858 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22859 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22860 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22861 --
22862
22863 --
22864
22865
22866 l_segment := AcctDerRule_11(
22867 p_application_id => p_application_id
22868 , p_ae_header_id => l_ae_header_id
22869 , p_source_21 => p_source_21
22870 , x_transaction_coa_id => l_adr_transaction_coa_id
22871 , x_accounting_coa_id => l_adr_accounting_coa_id
22872 , x_flexfield_segment_code => l_adr_flexfield_segment_code
22873 , x_flex_value_set_id => l_adr_flex_value_set_id
22874 , x_value_type_code => l_adr_value_type_code
22875 , x_value_combination_id => l_adr_value_combination_id
22876 , x_value_segment_code => l_adr_value_segment_code
22877 , p_side => 'NA'
22878 , p_override_seg_flag => 'Y'
22879 );
22880
22881 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
22882
22883 xla_ae_lines_pkg.set_segment(
22884 p_to_segment_code => 'GL_ACCOUNT'
22885 , p_segment_value => l_segment
22886 , p_from_segment_code => l_adr_value_segment_code
22887 , p_from_combination_id => l_adr_value_combination_id
22888 , p_value_type_code => l_adr_value_type_code
22889 , p_transaction_coa_id => l_adr_transaction_coa_id
22890 , p_accounting_coa_id => l_adr_accounting_coa_id
22891 , p_flexfield_segment_code => l_adr_flexfield_segment_code
22892 , p_flex_value_set_id => l_adr_flex_value_set_id
22893 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22894 , p_adr_type_code => 'S'
22895 , p_component_type => l_component_type
22896 , p_component_code => l_component_code
22897 , p_component_type_code => l_component_type_code
22898 , p_component_appl_id => l_component_appl_id
22899 , p_amb_context_code => l_amb_context_code
22900 , p_entity_code => 'AP_PAYMENTS'
22901 , p_event_class_code => 'PAYMENTS'
22902 , p_side => 'NA'
22903 );
22904
22905 END IF;
22906
22907 --
22908 --
22909 END IF;
22910 --
22911 -- Bug 4922099
22912 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22913 (NVL(l_enc_upg_option, 'N') = 'O')
22914 ) AND
22915 (l_bflow_method_code = 'PRIOR_ENTRY')
22916 )
22917 THEN
22918 IF
22919 --
22920 1 = 2
22921 --
22922 THEN
22923 xla_accounting_err_pkg.build_message
22924 (p_appli_s_name => 'XLA'
22925 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22926 ,p_token_1 => 'LINE_NUMBER'
22927 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22928 ,p_token_2 => 'LINE_TYPE_NAME'
22929 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22930 l_component_type
22931 ,l_component_code
22932 ,l_component_type_code
22933 ,l_component_appl_id
22934 ,l_amb_context_code
22935 ,l_entity_code
22936 ,l_event_class_code
22937 )
22938 ,p_token_3 => 'OWNER'
22939 ,p_value_3 => xla_lookups_pkg.get_meaning(
22940 p_lookup_type => 'XLA_OWNER_TYPE'
22941 ,p_lookup_code => l_component_type_code
22942 )
22943 ,p_token_4 => 'PRODUCT_NAME'
22944 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22948 ,p_ae_header_id => NULL
22945 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22946 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22947 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22949 );
22950
22951 IF (C_LEVEL_ERROR>= g_log_level) THEN
22952 trace
22953 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22954 ,p_level => C_LEVEL_ERROR
22955 ,p_module => l_log_module);
22956 END IF;
22957 END IF;
22958 END IF;
22959 --
22960 --
22961 ------------------------------------------------------------------------------------------------
22962 -- 4219869 Business Flow
22963 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22964 -- Prior Entry. Currently, the following code is always generated.
22965 ------------------------------------------------------------------------------------------------
22966 XLA_AE_LINES_PKG.ValidateCurrentLine;
22967
22968 ------------------------------------------------------------------------------------
22969 -- 4219869 Business Flow
22970 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22971 ------------------------------------------------------------------------------------
22972 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22973
22974 ----------------------------------------------------------------------------------
22975 -- 4219869 Business Flow
22976 -- Update journal entry status -- Need to generate this within IF <condition>
22977 ----------------------------------------------------------------------------------
22978 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22979 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22980 ,p_balance_type_code => l_balance_type_code
22981 );
22982
22983 -------------------------------------------------------------------------------------------
22984 -- 4262811 - Generate the Accrual Reversal lines
22985 -------------------------------------------------------------------------------------------
22986 BEGIN
22987 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22988 (g_array_event(p_event_id).array_value_num('header_index'));
22989 IF l_acc_rev_flag IS NULL THEN
22990 l_acc_rev_flag := 'N';
22991 END IF;
22992 EXCEPTION
22993 WHEN OTHERS THEN
22994 l_acc_rev_flag := 'N';
22995 END;
22996 --
22997 IF (l_acc_rev_flag = 'Y') THEN
22998
22999 -- 4645092 ------------------------------------------------------------------------------
23000 -- To allow MPA report to determine if it should generate report process
23001 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23002 ------------------------------------------------------------------------------------------
23003
23004 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23005 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23006 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23007 -- call ADRs
23008 -- Bug 4922099
23009 --
23010 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23011 (NVL(l_actual_upg_option, 'N') = 'O') OR
23012 (NVL(l_enc_upg_option, 'N') = 'O')
23013 )
23014 THEN
23015 NULL;
23016 --
23017 --
23018
23019 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
23020 p_code_combination_id => TO_NUMBER(C_NUM)
23021 , p_value_type_code => NULL
23022 , p_transaction_coa_id => null
23023 , p_accounting_coa_id => null
23024 , p_adr_code => NULL
23025 , p_adr_type_code => NULL
23026 , p_component_type => l_component_type
23027 , p_component_code => l_component_code
23028 , p_component_type_code => l_component_type_code
23029 , p_component_appl_id => l_component_appl_id
23030 , p_amb_context_code => l_amb_context_code
23031 , p_side => NULL
23032 );
23033
23034
23035 -- initialise segments
23036 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23037 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23038 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23039 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23040 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23041 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23042 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23043 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23044 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23045 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23046 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23047 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23051 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23048 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23049 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23050 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23052 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23053 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23054 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23055 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23056 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23057 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23058 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23059 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23060 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23061 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23062 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23063 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23064 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23065 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23066 --
23067
23068 --
23069
23070
23071 l_segment := AcctDerRule_11(
23072 p_application_id => p_application_id
23073 , p_ae_header_id => l_ae_header_id
23074 , p_source_21 => p_source_21
23075 , x_transaction_coa_id => l_adr_transaction_coa_id
23076 , x_accounting_coa_id => l_adr_accounting_coa_id
23077 , x_flexfield_segment_code => l_adr_flexfield_segment_code
23078 , x_flex_value_set_id => l_adr_flex_value_set_id
23079 , x_value_type_code => l_adr_value_type_code
23080 , x_value_combination_id => l_adr_value_combination_id
23081 , x_value_segment_code => l_adr_value_segment_code
23082 , p_side => 'NA'
23083 , p_override_seg_flag => 'Y'
23084 );
23085
23086 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
23087
23088 xla_ae_lines_pkg.set_segment(
23089 p_to_segment_code => 'GL_ACCOUNT'
23090 , p_segment_value => l_segment
23091 , p_from_segment_code => l_adr_value_segment_code
23092 , p_from_combination_id => l_adr_value_combination_id
23093 , p_value_type_code => l_adr_value_type_code
23094 , p_transaction_coa_id => l_adr_transaction_coa_id
23095 , p_accounting_coa_id => l_adr_accounting_coa_id
23096 , p_flexfield_segment_code => l_adr_flexfield_segment_code
23097 , p_flex_value_set_id => l_adr_flex_value_set_id
23098 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
23099 , p_adr_type_code => 'S'
23100 , p_component_type => l_component_type
23101 , p_component_code => l_component_code
23102 , p_component_type_code => l_component_type_code
23103 , p_component_appl_id => l_component_appl_id
23104 , p_amb_context_code => l_amb_context_code
23105 , p_entity_code => 'AP_PAYMENTS'
23106 , p_event_class_code => 'PAYMENTS'
23107 , p_side => 'NA'
23108 );
23109
23110 END IF;
23111
23112 --
23113 --
23114 END IF;
23115
23116 --
23117 -- Update the line information that should be overwritten
23118 --
23119 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23120 p_header_num => 1);
23121 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23122
23123 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23124
23125 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23126 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23127 END IF;
23128
23129 --
23130 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23131 --
23132 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23133 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23134 ELSE
23135 ---------------------------------------------------------------------------------------------------
23136 -- 4262811a Switch Sign
23137 ---------------------------------------------------------------------------------------------------
23138 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23139 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23140 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23141 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23145 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23142 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23143 -- 5132302
23144 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23146
23147 END IF;
23148
23149 -- 4955764
23150 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23151 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23152
23153
23154 XLA_AE_LINES_PKG.ValidateCurrentLine;
23155 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23156
23157 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23158 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23159 ,p_balance_type_code => l_balance_type_code);
23160
23161 END IF;
23162
23163 -----------------------------------------------------------------------------------------
23164 -- 4262811 Multiperiod Accounting
23165 -----------------------------------------------------------------------------------------
23166 -- No MPA option is assigned.
23167
23168
23169 END IF;
23170 END IF;
23171 --
23172
23173 --
23174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23175 trace
23176 (p_msg => 'END of AcctLineType_61'
23177 ,p_level => C_LEVEL_PROCEDURE
23178 ,p_module => l_log_module);
23179 END IF;
23180 --
23181 EXCEPTION
23182 WHEN xla_exceptions_pkg.application_exception THEN
23183 RAISE;
23184 WHEN OTHERS THEN
23185 xla_exceptions_pkg.raise_message
23186 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_61');
23187 END AcctLineType_61;
23188 --
23189
23190 ---------------------------------------
23191 --
23192 -- PRIVATE FUNCTION
23193 -- AcctLineType_62
23194 --
23195 ---------------------------------------
23196 PROCEDURE AcctLineType_62 (
23197 p_application_id IN NUMBER
23198 ,p_event_id IN NUMBER
23199 ,p_calculate_acctd_flag IN VARCHAR2
23200 ,p_calculate_g_l_flag IN VARCHAR2
23201 ,p_actual_flag IN OUT VARCHAR2
23202 ,p_balance_type_code OUT VARCHAR2
23203 ,p_gain_or_loss_ref OUT VARCHAR2
23204
23205 --Automatic Offsets Value
23206 , p_source_4 IN VARCHAR2
23207 , p_source_4_meaning IN VARCHAR2
23208 --Payment Distribution (Payment Rate) Ledger Amount
23209 , p_source_9 IN NUMBER
23210 --Bank Cash Clearing Account
23211 , p_source_21 IN NUMBER
23212 --When to Account for Payment Option
23213 , p_source_38 IN VARCHAR2
23214 --Payment Distribution Type
23215 , p_source_39 IN VARCHAR2
23216 , p_source_39_meaning IN VARCHAR2
23217 --Accounting Reversal Indicator
23218 , p_source_40 IN VARCHAR2
23219 --Payment Distribution Amount
23220 , p_source_41 IN NUMBER
23221 --Business Flow Accounts Payable Application Identifier
23222 , p_source_42 IN NUMBER
23223 --Payment Distribution Identifier
23224 , p_source_47 IN NUMBER
23225 --Distribution Link Type
23226 , p_source_48 IN VARCHAR2
23227 --Payment Currency Code
23228 , p_source_49 IN VARCHAR2
23229 --Override Accounted Amount Indicator
23230 , p_source_53 IN VARCHAR2
23231 , p_source_53_meaning IN VARCHAR2
23232 --Payment Supplier Identifier
23233 , p_source_54 IN NUMBER
23234 --Payment Supplier Site Identifier
23235 , p_source_55 IN NUMBER
23236 --Third Party Type
23237 , p_source_56 IN VARCHAR2
23238 --Payment Distribution Reversed Identifier
23239 , p_source_57 IN NUMBER
23240 --Invoice Distribution Tax Line Identifier
23241 , p_source_58 IN NUMBER
23242 --Invoice Distribution Summary Tax Line Identifier
23243 , p_source_59 IN NUMBER
23244 --Payment Type
23245 , p_source_60 IN VARCHAR2
23246 , p_source_60_meaning IN VARCHAR2
23247 --Invoice Distribution Amount of the Payment Distribution
23248 , p_source_61 IN NUMBER
23249 --Business Flow Invoice Distribution Type
23250 , p_source_62 IN VARCHAR2
23251 --Business Flow Invoice Entity Code
23252 , p_source_63 IN VARCHAR2
23253 --Business Flow Invoice Distribution Identifier
23254 , p_source_64 IN NUMBER
23255 --Business Flow Invoice Identifier
23256 , p_source_65 IN NUMBER
23257 --Invoice Distribution Tax Distribution Identifier from Tax
23258 , p_source_66 IN NUMBER
23259 --Pooled Bank Account Option
23260 , p_source_110 IN VARCHAR2
23261 , p_source_110_meaning IN VARCHAR2
23262 --Payment Maturity Date
23263 , p_source_111 IN DATE
23264 --Payment Processing Type
23265 , p_source_113 IN VARCHAR2
23266 --Payment Exchange Date
23267 , p_source_114 IN DATE
23268 --Payment Exchange Rate
23269 , p_source_115 IN NUMBER
23270 --Payment Exchange Rate Type
23271 , p_source_116 IN VARCHAR2
23272 )
23273 IS
23274
23275 l_component_type VARCHAR2(80);
23279 l_amb_context_code VARCHAR2(30);
23276 l_component_code VARCHAR2(30);
23277 l_component_type_code VARCHAR2(1);
23278 l_component_appl_id INTEGER;
23280 l_entity_code VARCHAR2(30);
23281 l_event_class_code VARCHAR2(30);
23282 l_ae_header_id NUMBER;
23283 l_event_type_code VARCHAR2(30);
23284 l_line_definition_code VARCHAR2(30);
23285 l_line_definition_owner_code VARCHAR2(1);
23286 --
23287 -- adr variables
23288 l_segment VARCHAR2(30);
23289 l_ccid NUMBER;
23290 l_adr_transaction_coa_id NUMBER;
23291 l_adr_accounting_coa_id NUMBER;
23292 l_adr_flexfield_segment_code VARCHAR2(30);
23293 l_adr_flex_value_set_id NUMBER;
23294 l_adr_value_type_code VARCHAR2(30);
23295 l_adr_value_combination_id NUMBER;
23296 l_adr_value_segment_code VARCHAR2(30);
23297
23298 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23299 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23300 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23301 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23302
23303 -- 4262811 Variables ------------------------------------------------------------------------------------------
23304 l_entered_amt_idx NUMBER;
23305 l_accted_amt_idx NUMBER;
23306 l_acc_rev_flag VARCHAR2(1);
23307 l_accrual_line_num NUMBER;
23308 l_tmp_amt NUMBER;
23309 l_acc_rev_natural_side_code VARCHAR2(1);
23310
23311 l_num_entries NUMBER;
23312 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23313 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23314 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23315 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23316 l_recog_line_1 NUMBER;
23317 l_recog_line_2 NUMBER;
23318
23319 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23320 l_bflow_applied_to_amt NUMBER; -- 5132302
23321 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23322
23323 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23324
23325 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23326 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23327
23328 ---------------------------------------------------------------------------------------------------------------
23329
23330
23331 --
23332 -- bulk performance
23333 --
23334 l_balance_type_code VARCHAR2(1);
23335 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23336 l_log_module VARCHAR2(240);
23337
23338 --
23339 -- Upgrade strategy
23340 --
23341 l_actual_upg_option VARCHAR2(1);
23342 l_enc_upg_option VARCHAR2(1);
23343
23344 --
23345 BEGIN
23346 --
23347 IF g_log_enabled THEN
23348 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
23349 END IF;
23350 --
23351 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23352
23353 trace
23354 (p_msg => 'BEGIN of AcctLineType_62'
23355 ,p_level => C_LEVEL_PROCEDURE
23356 ,p_module => l_log_module);
23357
23358 END IF;
23359 --
23360 l_component_type := 'AMB_JLT';
23361 l_component_code := 'AP_CASH_CLEAR_PMT_AOS_BS';
23362 l_component_type_code := 'S';
23363 l_component_appl_id := 200;
23364 l_amb_context_code := 'DEFAULT';
23365 l_entity_code := 'AP_PAYMENTS';
23366 l_event_class_code := 'PAYMENTS';
23367 l_event_type_code := 'PAYMENTS_ALL';
23368 l_line_definition_owner_code := 'S';
23369 l_line_definition_code := 'CASH_PAYMENTS_ALL';
23370 --
23371 l_balance_type_code := 'A';
23372 l_segment := NULL;
23373 l_ccid := NULL;
23374 l_adr_transaction_coa_id := NULL;
23375 l_adr_accounting_coa_id := NULL;
23376 l_adr_flexfield_segment_code := NULL;
23377 l_adr_flex_value_set_id := NULL;
23378 l_adr_value_type_code := NULL;
23379 l_adr_value_combination_id := NULL;
23380 l_adr_value_segment_code := NULL;
23381
23382 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
23383 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
23384 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23385 l_budgetary_control_flag := 'N';
23386
23387 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23388 l_bflow_applied_to_amt := NULL; -- 5132302
23389 l_entered_amt_idx := NULL; -- 4262811
23390 l_accted_amt_idx := NULL; -- 4262811
23391 l_acc_rev_flag := NULL; -- 4262811
23392 l_accrual_line_num := NULL; -- 4262811
23393 l_tmp_amt := NULL; -- 4262811
23394 --
23395
23396 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23397 l_balance_type_code <> 'B' THEN
23398 IF NVL(p_source_38,'
23399 ') = 'ALWAYS_ALWAYS' AND
23400 (NVL(p_source_110,'
23401 ') = 'Y' AND
23405 NVL(p_source_39,'
23402 NVL(p_source_4,'
23403 ') = 'BALANCING_SEGMENT') AND
23404 p_source_111 IS NULL AND
23406 ') = 'CASH' AND
23407 NVL(p_source_60,'
23408 ') <> 'R' AND
23409 NVL(p_source_113,'
23410 ') <> 'PAYMENTCARD'
23411 THEN
23412
23413 --
23414 XLA_AE_LINES_PKG.SetNewLine;
23415
23416 p_balance_type_code := l_balance_type_code;
23417 -- set the flag so later we will know whether the gain loss line needs to be created
23418
23419 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23420 p_actual_flag :='A';
23421 END IF;
23422
23423 --
23424 -- bulk performance
23425 --
23426 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23427 p_header_num => 0); -- 4262811
23428 --
23429 -- set accounting line options
23430 --
23431 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23432 p_natural_side_code => 'C'
23433 , p_gain_or_loss_flag => 'N'
23434 , p_gl_transfer_mode_code => 'S'
23435 , p_acct_entry_type_code => 'A'
23436 , p_switch_side_flag => 'Y'
23437 , p_merge_duplicate_code => 'A'
23438 );
23439 --
23440 l_acc_rev_natural_side_code := 'D'; -- 4262811
23441 --
23442 --
23443 -- set accounting line type info
23444 --
23445 xla_ae_lines_pkg.SetAcctLineType
23446 (p_component_type => l_component_type
23447 ,p_event_type_code => l_event_type_code
23448 ,p_line_definition_owner_code => l_line_definition_owner_code
23449 ,p_line_definition_code => l_line_definition_code
23450 ,p_accounting_line_code => l_component_code
23451 ,p_accounting_line_type_code => l_component_type_code
23452 ,p_accounting_line_appl_id => l_component_appl_id
23453 ,p_amb_context_code => l_amb_context_code
23454 ,p_entity_code => l_entity_code
23455 ,p_event_class_code => l_event_class_code);
23456 --
23457 -- set accounting class
23458 --
23459 xla_ae_lines_pkg.SetAcctClass(
23460 p_accounting_class_code => 'CASH_CLEARING'
23461 , p_ae_header_id => l_ae_header_id
23462 );
23463
23464 --
23465 -- set rounding class
23466 --
23467 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23468 'CASH_CLEARING';
23469
23470 --
23471 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23472 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23473 --
23474 -- bulk performance
23475 --
23476 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23477
23478 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23479 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23480
23481 -- 4955764
23482 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23483 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23484
23485 -- 4458381 Public Sector Enh
23486
23487 --
23488 -- set accounting attributes for the line type
23489 --
23490 l_entered_amt_idx := 10;
23491 l_accted_amt_idx := 15;
23492 l_bflow_applied_to_amt_idx := 2; -- 5132302
23493 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23494 l_rec_acct_attrs.array_char_value(1) := p_source_40;
23495 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
23496 l_rec_acct_attrs.array_num_value(2) := p_source_61;
23497 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
23498 l_rec_acct_attrs.array_num_value(3) := p_source_42;
23499 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23500 l_rec_acct_attrs.array_char_value(4) := p_source_62;
23501 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
23502 l_rec_acct_attrs.array_char_value(5) := p_source_63;
23503 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
23504 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
23505 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23506 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
23507 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23508 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
23509 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23510 l_rec_acct_attrs.array_char_value(9) := p_source_48;
23511 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23512 l_rec_acct_attrs.array_num_value(10) := p_source_41;
23513 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23514 l_rec_acct_attrs.array_char_value(11) := p_source_49;
23515 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
23516 l_rec_acct_attrs.array_date_value(12) := p_source_114;
23517 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
23521 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
23518 l_rec_acct_attrs.array_num_value(13) := p_source_115;
23519 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
23520 l_rec_acct_attrs.array_char_value(14) := p_source_116;
23522 l_rec_acct_attrs.array_num_value(15) := p_source_9;
23523 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
23524 l_rec_acct_attrs.array_char_value(16) := p_source_53;
23525 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
23526 l_rec_acct_attrs.array_num_value(17) := p_source_54;
23527 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
23528 l_rec_acct_attrs.array_num_value(18) := p_source_55;
23529 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
23530 l_rec_acct_attrs.array_char_value(19) := p_source_56;
23531 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
23532 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
23533 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
23534 l_rec_acct_attrs.array_char_value(21) := p_source_48;
23535 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
23536 l_rec_acct_attrs.array_num_value(22) := p_source_58;
23537 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
23538 l_rec_acct_attrs.array_num_value(23) := p_source_66;
23539 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
23540 l_rec_acct_attrs.array_num_value(24) := p_source_59;
23541
23542 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23543 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23544
23545 ---------------------------------------------------------------------------------------------------------------
23546 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23547 ---------------------------------------------------------------------------------------------------------------
23548 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23549
23550 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23551 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23552
23553 IF xla_accounting_cache_pkg.GetValueChar
23554 (p_source_code => 'LEDGER_CATEGORY_CODE'
23555 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23556 AND l_bflow_method_code = 'PRIOR_ENTRY'
23557 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23558 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23559 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23560 )
23561 THEN
23562 xla_ae_lines_pkg.BflowUpgEntry
23563 (p_business_method_code => l_bflow_method_code
23564 ,p_business_class_code => l_bflow_class_code
23565 ,p_balance_type => l_balance_type_code);
23566 ELSE
23567 NULL;
23568 XLA_AE_LINES_PKG.business_flow_validation(
23569 p_business_method_code => l_bflow_method_code
23570 ,p_business_class_code => l_bflow_class_code
23571 ,p_inherit_description_flag => l_inherit_desc_flag);
23572 END IF;
23573
23574 --
23575 -- call analytical criteria
23576 --
23577
23578 --
23579 -- call description
23580 --
23581 -- No description or it is inherited.
23582 --
23583 -- call ADRs
23584 -- Bug 4922099
23585 --
23586 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23587 (NVL(l_actual_upg_option, 'N') = 'O') OR
23588 (NVL(l_enc_upg_option, 'N') = 'O')
23589 )
23590 THEN
23591 NULL;
23592 --
23593 --
23594
23595 l_ccid := AcctDerRule_28(
23596 p_application_id => p_application_id
23597 , p_ae_header_id => l_ae_header_id
23598 , p_source_21 => p_source_21
23599 , x_transaction_coa_id => l_adr_transaction_coa_id
23600 , x_accounting_coa_id => l_adr_accounting_coa_id
23601 , x_value_type_code => l_adr_value_type_code
23602 , p_side => 'NA'
23603 );
23604
23605 xla_ae_lines_pkg.set_ccid(
23606 p_code_combination_id => l_ccid
23607 , p_value_type_code => l_adr_value_type_code
23608 , p_transaction_coa_id => l_adr_transaction_coa_id
23609 , p_accounting_coa_id => l_adr_accounting_coa_id
23610 , p_adr_code => 'AP_PMT_CASH_CLEAR'
23611 , p_adr_type_code => 'S'
23612 , p_component_type => l_component_type
23613 , p_component_code => l_component_code
23614 , p_component_type_code => l_component_type_code
23615 , p_component_appl_id => l_component_appl_id
23616 , p_amb_context_code => l_amb_context_code
23617 , p_side => 'NA'
23618 );
23619
23620
23621 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
23622 p_to_segment_code => 'GL_BALANCING'
23623 , p_segment_value => C_CHAR
23624 , p_from_segment_code => NULL
23625 , p_from_combination_id => NULL
23626 , p_value_type_code => NULL
23630 , p_flex_value_set_id => NULL
23627 , p_transaction_coa_id => null
23628 , p_accounting_coa_id => null
23629 , p_flexfield_segment_code => NULL
23631 , p_adr_code => NULL
23632 , p_adr_type_code => NULL
23633 , p_component_type => l_component_type
23634 , p_component_code => l_component_code
23635 , p_component_type_code => l_component_type_code
23636 , p_component_appl_id => l_component_appl_id
23637 , p_amb_context_code => l_amb_context_code
23638 , p_entity_code => 'AP_PAYMENTS'
23639 , p_event_class_code => 'PAYMENTS'
23640 , p_side => 'NA'
23641 );
23642 --
23643
23644
23645 --
23646 --
23647 END IF;
23648 --
23649 -- Bug 4922099
23650 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23651 (NVL(l_enc_upg_option, 'N') = 'O')
23652 ) AND
23653 (l_bflow_method_code = 'PRIOR_ENTRY')
23654 )
23655 THEN
23656 IF
23657 --
23658 1 = 2
23659 --
23660 THEN
23661 xla_accounting_err_pkg.build_message
23662 (p_appli_s_name => 'XLA'
23663 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23664 ,p_token_1 => 'LINE_NUMBER'
23665 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23666 ,p_token_2 => 'LINE_TYPE_NAME'
23667 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23668 l_component_type
23669 ,l_component_code
23670 ,l_component_type_code
23671 ,l_component_appl_id
23672 ,l_amb_context_code
23673 ,l_entity_code
23674 ,l_event_class_code
23675 )
23676 ,p_token_3 => 'OWNER'
23677 ,p_value_3 => xla_lookups_pkg.get_meaning(
23678 p_lookup_type => 'XLA_OWNER_TYPE'
23679 ,p_lookup_code => l_component_type_code
23680 )
23681 ,p_token_4 => 'PRODUCT_NAME'
23682 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23683 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23684 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23685 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23686 ,p_ae_header_id => NULL
23687 );
23688
23689 IF (C_LEVEL_ERROR>= g_log_level) THEN
23690 trace
23691 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23692 ,p_level => C_LEVEL_ERROR
23693 ,p_module => l_log_module);
23694 END IF;
23695 END IF;
23696 END IF;
23697 --
23698 --
23699 ------------------------------------------------------------------------------------------------
23700 -- 4219869 Business Flow
23701 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23702 -- Prior Entry. Currently, the following code is always generated.
23703 ------------------------------------------------------------------------------------------------
23704 XLA_AE_LINES_PKG.ValidateCurrentLine;
23705
23706 ------------------------------------------------------------------------------------
23707 -- 4219869 Business Flow
23708 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23709 ------------------------------------------------------------------------------------
23710 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23711
23712 ----------------------------------------------------------------------------------
23713 -- 4219869 Business Flow
23714 -- Update journal entry status -- Need to generate this within IF <condition>
23715 ----------------------------------------------------------------------------------
23716 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23717 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23718 ,p_balance_type_code => l_balance_type_code
23719 );
23720
23721 -------------------------------------------------------------------------------------------
23722 -- 4262811 - Generate the Accrual Reversal lines
23723 -------------------------------------------------------------------------------------------
23724 BEGIN
23728 l_acc_rev_flag := 'N';
23725 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23726 (g_array_event(p_event_id).array_value_num('header_index'));
23727 IF l_acc_rev_flag IS NULL THEN
23729 END IF;
23730 EXCEPTION
23731 WHEN OTHERS THEN
23732 l_acc_rev_flag := 'N';
23733 END;
23734 --
23735 IF (l_acc_rev_flag = 'Y') THEN
23736
23737 -- 4645092 ------------------------------------------------------------------------------
23738 -- To allow MPA report to determine if it should generate report process
23739 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23740 ------------------------------------------------------------------------------------------
23741
23742 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23743 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23744 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23745 -- call ADRs
23746 -- Bug 4922099
23747 --
23748 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23749 (NVL(l_actual_upg_option, 'N') = 'O') OR
23750 (NVL(l_enc_upg_option, 'N') = 'O')
23751 )
23752 THEN
23753 NULL;
23754 --
23755 --
23756
23757 l_ccid := AcctDerRule_28(
23758 p_application_id => p_application_id
23759 , p_ae_header_id => l_ae_header_id
23760 , p_source_21 => p_source_21
23761 , x_transaction_coa_id => l_adr_transaction_coa_id
23762 , x_accounting_coa_id => l_adr_accounting_coa_id
23763 , x_value_type_code => l_adr_value_type_code
23764 , p_side => 'NA'
23765 );
23766
23767 xla_ae_lines_pkg.set_ccid(
23768 p_code_combination_id => l_ccid
23769 , p_value_type_code => l_adr_value_type_code
23770 , p_transaction_coa_id => l_adr_transaction_coa_id
23771 , p_accounting_coa_id => l_adr_accounting_coa_id
23772 , p_adr_code => 'AP_PMT_CASH_CLEAR'
23773 , p_adr_type_code => 'S'
23774 , p_component_type => l_component_type
23775 , p_component_code => l_component_code
23776 , p_component_type_code => l_component_type_code
23777 , p_component_appl_id => l_component_appl_id
23778 , p_amb_context_code => l_amb_context_code
23779 , p_side => 'NA'
23780 );
23781
23782
23783 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
23784 p_to_segment_code => 'GL_BALANCING'
23785 , p_segment_value => C_CHAR
23786 , p_from_segment_code => NULL
23787 , p_from_combination_id => NULL
23788 , p_value_type_code => NULL
23789 , p_transaction_coa_id => null
23790 , p_accounting_coa_id => null
23791 , p_flexfield_segment_code => NULL
23792 , p_flex_value_set_id => NULL
23793 , p_adr_code => NULL
23794 , p_adr_type_code => NULL
23795 , p_component_type => l_component_type
23796 , p_component_code => l_component_code
23797 , p_component_type_code => l_component_type_code
23798 , p_component_appl_id => l_component_appl_id
23799 , p_amb_context_code => l_amb_context_code
23800 , p_entity_code => 'AP_PAYMENTS'
23801 , p_event_class_code => 'PAYMENTS'
23802 , p_side => 'NA'
23803 );
23804 --
23805
23806
23807 --
23808 --
23809 END IF;
23810
23811 --
23812 -- Update the line information that should be overwritten
23813 --
23814 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23815 p_header_num => 1);
23816 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23817
23818 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23819
23820 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23821 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23822 END IF;
23823
23824 --
23825 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23826 --
23827 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23828 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23829 ELSE
23830 ---------------------------------------------------------------------------------------------------
23831 -- 4262811a Switch Sign
23832 ---------------------------------------------------------------------------------------------------
23833 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23834 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23835 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23836 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23837 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23841
23838 -- 5132302
23839 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23840 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23842 END IF;
23843
23844 -- 4955764
23845 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23846 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23847
23848
23849 XLA_AE_LINES_PKG.ValidateCurrentLine;
23850 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23851
23852 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23853 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23854 ,p_balance_type_code => l_balance_type_code);
23855
23856 END IF;
23857
23858 -----------------------------------------------------------------------------------------
23859 -- 4262811 Multiperiod Accounting
23860 -----------------------------------------------------------------------------------------
23861 -- No MPA option is assigned.
23862
23863
23864 END IF;
23865 END IF;
23866 --
23867
23868 --
23869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23870 trace
23871 (p_msg => 'END of AcctLineType_62'
23872 ,p_level => C_LEVEL_PROCEDURE
23873 ,p_module => l_log_module);
23874 END IF;
23875 --
23876 EXCEPTION
23877 WHEN xla_exceptions_pkg.application_exception THEN
23878 RAISE;
23879 WHEN OTHERS THEN
23880 xla_exceptions_pkg.raise_message
23881 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_62');
23882 END AcctLineType_62;
23883 --
23884
23885 ---------------------------------------
23886 --
23887 -- PRIVATE FUNCTION
23888 -- AcctLineType_63
23889 --
23890 ---------------------------------------
23891 PROCEDURE AcctLineType_63 (
23892 p_application_id IN NUMBER
23893 ,p_event_id IN NUMBER
23894 ,p_calculate_acctd_flag IN VARCHAR2
23895 ,p_calculate_g_l_flag IN VARCHAR2
23896 ,p_actual_flag IN OUT VARCHAR2
23897 ,p_balance_type_code OUT VARCHAR2
23898 ,p_gain_or_loss_ref OUT VARCHAR2
23899
23900 --Bank Cash Clearing Account
23901 , p_source_21 IN NUMBER
23902 --Automatic Offsets Flag
23903 , p_source_30 IN VARCHAR2
23904 , p_source_30_meaning IN VARCHAR2
23905 --When to Account for Payment Option
23906 , p_source_38 IN VARCHAR2
23907 --Payment Distribution Type
23908 , p_source_39 IN VARCHAR2
23909 , p_source_39_meaning IN VARCHAR2
23910 --Accounting Reversal Indicator
23911 , p_source_40 IN VARCHAR2
23912 --Payment Distribution Amount
23913 , p_source_41 IN NUMBER
23914 --Business Flow Accounts Payable Application Identifier
23915 , p_source_42 IN NUMBER
23916 --Business Flow Payment Distribution Type
23917 , p_source_43 IN VARCHAR2
23918 --Business Flow Payment Entity Code
23919 , p_source_44 IN VARCHAR2
23920 --Business Flow Payment Distribution Identifier
23921 , p_source_45 IN NUMBER
23922 --Business Flow Payment Identifier
23923 , p_source_46 IN NUMBER
23924 --Payment Distribution Identifier
23925 , p_source_47 IN NUMBER
23926 --Distribution Link Type
23927 , p_source_48 IN VARCHAR2
23928 --Payment Currency Code
23929 , p_source_49 IN VARCHAR2
23930 --Override Accounted Amount Indicator
23931 , p_source_53 IN VARCHAR2
23932 , p_source_53_meaning IN VARCHAR2
23933 --Payment Supplier Identifier
23934 , p_source_54 IN NUMBER
23935 --Payment Supplier Site Identifier
23936 , p_source_55 IN NUMBER
23937 --Third Party Type
23938 , p_source_56 IN VARCHAR2
23939 --Payment Distribution Reversed Identifier
23940 , p_source_57 IN NUMBER
23941 --Pooled Bank Account Option
23942 , p_source_110 IN VARCHAR2
23943 , p_source_110_meaning IN VARCHAR2
23944 --Payment Maturity Date
23945 , p_source_111 IN DATE
23946 --Payment Exchange Date
23947 , p_source_114 IN DATE
23948 --Payment Exchange Rate
23949 , p_source_115 IN NUMBER
23950 --Payment Exchange Rate Type
23951 , p_source_116 IN VARCHAR2
23952 --Payment Distribution (Matured Rate) Ledger Amount
23953 , p_source_117 IN NUMBER
23954 )
23955 IS
23956
23957 l_component_type VARCHAR2(80);
23958 l_component_code VARCHAR2(30);
23959 l_component_type_code VARCHAR2(1);
23960 l_component_appl_id INTEGER;
23961 l_amb_context_code VARCHAR2(30);
23962 l_entity_code VARCHAR2(30);
23963 l_event_class_code VARCHAR2(30);
23964 l_ae_header_id NUMBER;
23965 l_event_type_code VARCHAR2(30);
23966 l_line_definition_code VARCHAR2(30);
23967 l_line_definition_owner_code VARCHAR2(1);
23968 --
23969 -- adr variables
23970 l_segment VARCHAR2(30);
23971 l_ccid NUMBER;
23972 l_adr_transaction_coa_id NUMBER;
23973 l_adr_accounting_coa_id NUMBER;
23974 l_adr_flexfield_segment_code VARCHAR2(30);
23978 l_adr_value_segment_code VARCHAR2(30);
23975 l_adr_flex_value_set_id NUMBER;
23976 l_adr_value_type_code VARCHAR2(30);
23977 l_adr_value_combination_id NUMBER;
23979
23980 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23981 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23982 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23983 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23984
23985 -- 4262811 Variables ------------------------------------------------------------------------------------------
23986 l_entered_amt_idx NUMBER;
23987 l_accted_amt_idx NUMBER;
23988 l_acc_rev_flag VARCHAR2(1);
23989 l_accrual_line_num NUMBER;
23990 l_tmp_amt NUMBER;
23991 l_acc_rev_natural_side_code VARCHAR2(1);
23992
23993 l_num_entries NUMBER;
23994 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23995 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23996 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23997 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23998 l_recog_line_1 NUMBER;
23999 l_recog_line_2 NUMBER;
24000
24001 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24002 l_bflow_applied_to_amt NUMBER; -- 5132302
24003 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24004
24005 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24006
24007 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24008 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24009
24010 ---------------------------------------------------------------------------------------------------------------
24011
24012
24013 --
24014 -- bulk performance
24015 --
24016 l_balance_type_code VARCHAR2(1);
24017 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24018 l_log_module VARCHAR2(240);
24019
24020 --
24021 -- Upgrade strategy
24022 --
24023 l_actual_upg_option VARCHAR2(1);
24024 l_enc_upg_option VARCHAR2(1);
24025
24026 --
24027 BEGIN
24028 --
24029 IF g_log_enabled THEN
24030 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
24031 END IF;
24032 --
24033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24034
24035 trace
24036 (p_msg => 'BEGIN of AcctLineType_63'
24037 ,p_level => C_LEVEL_PROCEDURE
24038 ,p_module => l_log_module);
24039
24040 END IF;
24041 --
24042 l_component_type := 'AMB_JLT';
24043 l_component_code := 'AP_CASH_CLEAR_PMT_MAT';
24044 l_component_type_code := 'S';
24045 l_component_appl_id := 200;
24046 l_amb_context_code := 'DEFAULT';
24047 l_entity_code := 'AP_PAYMENTS';
24048 l_event_class_code := 'FUTURE DATED PAYMENTS';
24049 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
24050 l_line_definition_owner_code := 'S';
24051 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
24052 --
24053 l_balance_type_code := 'A';
24054 l_segment := NULL;
24055 l_ccid := NULL;
24056 l_adr_transaction_coa_id := NULL;
24057 l_adr_accounting_coa_id := NULL;
24058 l_adr_flexfield_segment_code := NULL;
24059 l_adr_flex_value_set_id := NULL;
24060 l_adr_value_type_code := NULL;
24061 l_adr_value_combination_id := NULL;
24062 l_adr_value_segment_code := NULL;
24063
24064 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24065 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
24066 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24067 l_budgetary_control_flag := 'N';
24068
24069 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24070 l_bflow_applied_to_amt := NULL; -- 5132302
24071 l_entered_amt_idx := NULL; -- 4262811
24072 l_accted_amt_idx := NULL; -- 4262811
24073 l_acc_rev_flag := NULL; -- 4262811
24074 l_accrual_line_num := NULL; -- 4262811
24075 l_tmp_amt := NULL; -- 4262811
24076 --
24077
24078 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24079 l_balance_type_code <> 'B' THEN
24080 IF (NVL(p_source_38,'
24081 ') = 'ALWAYS_ALWAYS' OR
24082 NVL(p_source_38,'
24083 ') = 'ALWAYS_ISSUE') AND
24084 (NVL(p_source_30,'
24085 ') <> 'Y' OR
24086 NVL(p_source_30,'
24087 ') = 'Y' AND
24088 NVL(p_source_110,'
24089 ') <> 'Y') AND
24090 p_source_111 IS NOT NULL AND
24091 NVL(p_source_39,'
24092 ') = 'CASH'
24093 THEN
24094
24095 --
24096 XLA_AE_LINES_PKG.SetNewLine;
24097
24098 p_balance_type_code := l_balance_type_code;
24099 -- set the flag so later we will know whether the gain loss line needs to be created
24100
24104
24101 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24102 p_actual_flag :='A';
24103 END IF;
24105 --
24106 -- bulk performance
24107 --
24108 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24109 p_header_num => 0); -- 4262811
24110 --
24111 -- set accounting line options
24112 --
24113 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24114 p_natural_side_code => 'C'
24115 , p_gain_or_loss_flag => 'N'
24116 , p_gl_transfer_mode_code => 'S'
24117 , p_acct_entry_type_code => 'A'
24118 , p_switch_side_flag => 'Y'
24119 , p_merge_duplicate_code => 'A'
24120 );
24121 --
24122 l_acc_rev_natural_side_code := 'D'; -- 4262811
24123 --
24124 --
24125 -- set accounting line type info
24126 --
24127 xla_ae_lines_pkg.SetAcctLineType
24128 (p_component_type => l_component_type
24129 ,p_event_type_code => l_event_type_code
24130 ,p_line_definition_owner_code => l_line_definition_owner_code
24131 ,p_line_definition_code => l_line_definition_code
24132 ,p_accounting_line_code => l_component_code
24133 ,p_accounting_line_type_code => l_component_type_code
24134 ,p_accounting_line_appl_id => l_component_appl_id
24135 ,p_amb_context_code => l_amb_context_code
24136 ,p_entity_code => l_entity_code
24137 ,p_event_class_code => l_event_class_code);
24138 --
24139 -- set accounting class
24140 --
24141 xla_ae_lines_pkg.SetAcctClass(
24142 p_accounting_class_code => 'CASH_CLEARING'
24143 , p_ae_header_id => l_ae_header_id
24144 );
24145
24146 --
24147 -- set rounding class
24148 --
24149 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24150 'CASH_CLEARING';
24151
24152 --
24153 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24154 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24155 --
24156 -- bulk performance
24157 --
24158 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24159
24160 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24161 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24162
24163 -- 4955764
24164 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24165 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24166
24167 -- 4458381 Public Sector Enh
24168
24169 --
24170 -- set accounting attributes for the line type
24171 --
24172 l_entered_amt_idx := 9;
24173 l_accted_amt_idx := 14;
24174 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24175 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24176 l_rec_acct_attrs.array_char_value(1) := p_source_40;
24177 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24178 l_rec_acct_attrs.array_num_value(2) := p_source_42;
24179 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24180 l_rec_acct_attrs.array_char_value(3) := p_source_43;
24181 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24182 l_rec_acct_attrs.array_char_value(4) := p_source_44;
24183 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24184 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
24185 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24186 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
24187 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24188 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
24189 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24190 l_rec_acct_attrs.array_char_value(8) := p_source_48;
24191 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24192 l_rec_acct_attrs.array_num_value(9) := p_source_41;
24193 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24194 l_rec_acct_attrs.array_char_value(10) := p_source_49;
24195 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24196 l_rec_acct_attrs.array_date_value(11) := p_source_114;
24197 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24198 l_rec_acct_attrs.array_num_value(12) := p_source_115;
24199 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24200 l_rec_acct_attrs.array_char_value(13) := p_source_116;
24201 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24202 l_rec_acct_attrs.array_num_value(14) := p_source_117;
24203 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24204 l_rec_acct_attrs.array_char_value(15) := p_source_53;
24205 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24206 l_rec_acct_attrs.array_num_value(16) := p_source_54;
24207 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24208 l_rec_acct_attrs.array_num_value(17) := p_source_55;
24209 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24210 l_rec_acct_attrs.array_char_value(18) := p_source_56;
24214 l_rec_acct_attrs.array_char_value(20) := p_source_48;
24211 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24212 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
24213 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24215
24216 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24217 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24218
24219 ---------------------------------------------------------------------------------------------------------------
24220 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24221 ---------------------------------------------------------------------------------------------------------------
24222 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24223
24224 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24225 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24226
24227 IF xla_accounting_cache_pkg.GetValueChar
24228 (p_source_code => 'LEDGER_CATEGORY_CODE'
24229 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24230 AND l_bflow_method_code = 'PRIOR_ENTRY'
24231 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24232 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24233 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24234 )
24235 THEN
24236 xla_ae_lines_pkg.BflowUpgEntry
24237 (p_business_method_code => l_bflow_method_code
24238 ,p_business_class_code => l_bflow_class_code
24239 ,p_balance_type => l_balance_type_code);
24240 ELSE
24241 NULL;
24242 -- No business flow processing for business flow method of NONE.
24243 END IF;
24244
24245 --
24246 -- call analytical criteria
24247 --
24248
24249 --
24250 -- call description
24251 --
24252 -- No description or it is inherited.
24253 --
24254 -- call ADRs
24255 -- Bug 4922099
24256 --
24257 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24258 (NVL(l_actual_upg_option, 'N') = 'O') OR
24259 (NVL(l_enc_upg_option, 'N') = 'O')
24260 )
24261 THEN
24262 NULL;
24263 --
24264 --
24265
24266 l_ccid := AcctDerRule_28(
24267 p_application_id => p_application_id
24268 , p_ae_header_id => l_ae_header_id
24269 , p_source_21 => p_source_21
24270 , x_transaction_coa_id => l_adr_transaction_coa_id
24271 , x_accounting_coa_id => l_adr_accounting_coa_id
24272 , x_value_type_code => l_adr_value_type_code
24273 , p_side => 'NA'
24274 );
24275
24276 xla_ae_lines_pkg.set_ccid(
24277 p_code_combination_id => l_ccid
24278 , p_value_type_code => l_adr_value_type_code
24279 , p_transaction_coa_id => l_adr_transaction_coa_id
24280 , p_accounting_coa_id => l_adr_accounting_coa_id
24281 , p_adr_code => 'AP_PMT_CASH_CLEAR'
24282 , p_adr_type_code => 'S'
24283 , p_component_type => l_component_type
24284 , p_component_code => l_component_code
24285 , p_component_type_code => l_component_type_code
24286 , p_component_appl_id => l_component_appl_id
24287 , p_amb_context_code => l_amb_context_code
24288 , p_side => 'NA'
24289 );
24290
24291
24292 --
24293 --
24294 END IF;
24295 --
24296 -- Bug 4922099
24297 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24298 (NVL(l_enc_upg_option, 'N') = 'O')
24299 ) AND
24300 (l_bflow_method_code = 'PRIOR_ENTRY')
24301 )
24302 THEN
24303 IF
24304 --
24305 1 = 2
24306 --
24307 THEN
24308 xla_accounting_err_pkg.build_message
24309 (p_appli_s_name => 'XLA'
24310 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24311 ,p_token_1 => 'LINE_NUMBER'
24312 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24313 ,p_token_2 => 'LINE_TYPE_NAME'
24314 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24315 l_component_type
24316 ,l_component_code
24317 ,l_component_type_code
24318 ,l_component_appl_id
24319 ,l_amb_context_code
24320 ,l_entity_code
24321 ,l_event_class_code
24322 )
24326 ,p_lookup_code => l_component_type_code
24323 ,p_token_3 => 'OWNER'
24324 ,p_value_3 => xla_lookups_pkg.get_meaning(
24325 p_lookup_type => 'XLA_OWNER_TYPE'
24327 )
24328 ,p_token_4 => 'PRODUCT_NAME'
24329 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24330 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24331 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24332 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24333 ,p_ae_header_id => NULL
24334 );
24335
24336 IF (C_LEVEL_ERROR>= g_log_level) THEN
24337 trace
24338 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24339 ,p_level => C_LEVEL_ERROR
24340 ,p_module => l_log_module);
24341 END IF;
24342 END IF;
24343 END IF;
24344 --
24345 --
24346 ------------------------------------------------------------------------------------------------
24347 -- 4219869 Business Flow
24348 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24349 -- Prior Entry. Currently, the following code is always generated.
24350 ------------------------------------------------------------------------------------------------
24351 XLA_AE_LINES_PKG.ValidateCurrentLine;
24352
24353 ------------------------------------------------------------------------------------
24354 -- 4219869 Business Flow
24355 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24356 ------------------------------------------------------------------------------------
24357 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24358
24359 ----------------------------------------------------------------------------------
24360 -- 4219869 Business Flow
24361 -- Update journal entry status -- Need to generate this within IF <condition>
24362 ----------------------------------------------------------------------------------
24363 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24364 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24365 ,p_balance_type_code => l_balance_type_code
24366 );
24367
24368 -------------------------------------------------------------------------------------------
24369 -- 4262811 - Generate the Accrual Reversal lines
24370 -------------------------------------------------------------------------------------------
24371 BEGIN
24372 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24373 (g_array_event(p_event_id).array_value_num('header_index'));
24374 IF l_acc_rev_flag IS NULL THEN
24375 l_acc_rev_flag := 'N';
24376 END IF;
24377 EXCEPTION
24378 WHEN OTHERS THEN
24379 l_acc_rev_flag := 'N';
24380 END;
24381 --
24382 IF (l_acc_rev_flag = 'Y') THEN
24383
24384 -- 4645092 ------------------------------------------------------------------------------
24385 -- To allow MPA report to determine if it should generate report process
24386 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24387 ------------------------------------------------------------------------------------------
24388
24389 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24390 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24391 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24392 -- call ADRs
24393 -- Bug 4922099
24394 --
24395 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24396 (NVL(l_actual_upg_option, 'N') = 'O') OR
24397 (NVL(l_enc_upg_option, 'N') = 'O')
24398 )
24399 THEN
24400 NULL;
24401 --
24402 --
24403
24404 l_ccid := AcctDerRule_28(
24405 p_application_id => p_application_id
24406 , p_ae_header_id => l_ae_header_id
24407 , p_source_21 => p_source_21
24408 , x_transaction_coa_id => l_adr_transaction_coa_id
24409 , x_accounting_coa_id => l_adr_accounting_coa_id
24410 , x_value_type_code => l_adr_value_type_code
24411 , p_side => 'NA'
24412 );
24413
24414 xla_ae_lines_pkg.set_ccid(
24415 p_code_combination_id => l_ccid
24416 , p_value_type_code => l_adr_value_type_code
24417 , p_transaction_coa_id => l_adr_transaction_coa_id
24418 , p_accounting_coa_id => l_adr_accounting_coa_id
24419 , p_adr_code => 'AP_PMT_CASH_CLEAR'
24420 , p_adr_type_code => 'S'
24421 , p_component_type => l_component_type
24422 , p_component_code => l_component_code
24423 , p_component_type_code => l_component_type_code
24427 );
24424 , p_component_appl_id => l_component_appl_id
24425 , p_amb_context_code => l_amb_context_code
24426 , p_side => 'NA'
24428
24429
24430 --
24431 --
24432 END IF;
24433
24434 --
24435 -- Update the line information that should be overwritten
24436 --
24437 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24438 p_header_num => 1);
24439 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24440
24441 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24442
24443 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24444 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24445 END IF;
24446
24447 --
24448 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24449 --
24450 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24451 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24452 ELSE
24453 ---------------------------------------------------------------------------------------------------
24454 -- 4262811a Switch Sign
24455 ---------------------------------------------------------------------------------------------------
24456 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24457 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24458 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24459 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24460 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24461 -- 5132302
24462 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24463 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24464
24465 END IF;
24466
24467 -- 4955764
24468 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24469 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24470
24471
24472 XLA_AE_LINES_PKG.ValidateCurrentLine;
24473 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24474
24475 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24476 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24477 ,p_balance_type_code => l_balance_type_code);
24478
24479 END IF;
24480
24481 -----------------------------------------------------------------------------------------
24482 -- 4262811 Multiperiod Accounting
24483 -----------------------------------------------------------------------------------------
24484 -- No MPA option is assigned.
24485
24486
24487 END IF;
24488 END IF;
24489 --
24490
24491 --
24492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24493 trace
24494 (p_msg => 'END of AcctLineType_63'
24495 ,p_level => C_LEVEL_PROCEDURE
24496 ,p_module => l_log_module);
24497 END IF;
24498 --
24499 EXCEPTION
24500 WHEN xla_exceptions_pkg.application_exception THEN
24501 RAISE;
24502 WHEN OTHERS THEN
24503 xla_exceptions_pkg.raise_message
24504 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_63');
24505 END AcctLineType_63;
24506 --
24507
24508 ---------------------------------------
24509 --
24510 -- PRIVATE FUNCTION
24511 -- AcctLineType_64
24512 --
24513 ---------------------------------------
24514 PROCEDURE AcctLineType_64 (
24515 p_application_id IN NUMBER
24516 ,p_event_id IN NUMBER
24517 ,p_calculate_acctd_flag IN VARCHAR2
24518 ,p_calculate_g_l_flag IN VARCHAR2
24519 ,p_actual_flag IN OUT VARCHAR2
24520 ,p_balance_type_code OUT VARCHAR2
24521 ,p_gain_or_loss_ref OUT VARCHAR2
24522
24523 --Automatic Offsets Value
24524 , p_source_4 IN VARCHAR2
24525 , p_source_4_meaning IN VARCHAR2
24526 --Bank Cash Clearing Account
24527 , p_source_21 IN NUMBER
24528 --When to Account for Payment Option
24529 , p_source_38 IN VARCHAR2
24530 --Payment Distribution Type
24531 , p_source_39 IN VARCHAR2
24532 , p_source_39_meaning IN VARCHAR2
24533 --Accounting Reversal Indicator
24534 , p_source_40 IN VARCHAR2
24535 --Payment Distribution Amount
24536 , p_source_41 IN NUMBER
24537 --Business Flow Accounts Payable Application Identifier
24538 , p_source_42 IN NUMBER
24539 --Business Flow Payment Distribution Type
24540 , p_source_43 IN VARCHAR2
24541 --Business Flow Payment Entity Code
24542 , p_source_44 IN VARCHAR2
24543 --Business Flow Payment Distribution Identifier
24544 , p_source_45 IN NUMBER
24545 --Business Flow Payment Identifier
24546 , p_source_46 IN NUMBER
24547 --Payment Distribution Identifier
24548 , p_source_47 IN NUMBER
24552 , p_source_49 IN VARCHAR2
24549 --Distribution Link Type
24550 , p_source_48 IN VARCHAR2
24551 --Payment Currency Code
24553 --Override Accounted Amount Indicator
24554 , p_source_53 IN VARCHAR2
24555 , p_source_53_meaning IN VARCHAR2
24556 --Payment Supplier Identifier
24557 , p_source_54 IN NUMBER
24558 --Payment Supplier Site Identifier
24559 , p_source_55 IN NUMBER
24560 --Third Party Type
24561 , p_source_56 IN VARCHAR2
24562 --Payment Distribution Reversed Identifier
24563 , p_source_57 IN NUMBER
24564 --Pooled Bank Account Option
24565 , p_source_110 IN VARCHAR2
24566 , p_source_110_meaning IN VARCHAR2
24567 --Payment Maturity Date
24568 , p_source_111 IN DATE
24569 --Payment Exchange Date
24570 , p_source_114 IN DATE
24571 --Payment Exchange Rate
24572 , p_source_115 IN NUMBER
24573 --Payment Exchange Rate Type
24574 , p_source_116 IN VARCHAR2
24575 --Payment Distribution (Matured Rate) Ledger Amount
24576 , p_source_117 IN NUMBER
24577 )
24578 IS
24579
24580 l_component_type VARCHAR2(80);
24581 l_component_code VARCHAR2(30);
24582 l_component_type_code VARCHAR2(1);
24583 l_component_appl_id INTEGER;
24584 l_amb_context_code VARCHAR2(30);
24585 l_entity_code VARCHAR2(30);
24586 l_event_class_code VARCHAR2(30);
24587 l_ae_header_id NUMBER;
24588 l_event_type_code VARCHAR2(30);
24589 l_line_definition_code VARCHAR2(30);
24590 l_line_definition_owner_code VARCHAR2(1);
24591 --
24592 -- adr variables
24593 l_segment VARCHAR2(30);
24594 l_ccid NUMBER;
24595 l_adr_transaction_coa_id NUMBER;
24596 l_adr_accounting_coa_id NUMBER;
24597 l_adr_flexfield_segment_code VARCHAR2(30);
24598 l_adr_flex_value_set_id NUMBER;
24599 l_adr_value_type_code VARCHAR2(30);
24600 l_adr_value_combination_id NUMBER;
24601 l_adr_value_segment_code VARCHAR2(30);
24602
24603 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24604 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24605 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24606 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24607
24608 -- 4262811 Variables ------------------------------------------------------------------------------------------
24609 l_entered_amt_idx NUMBER;
24610 l_accted_amt_idx NUMBER;
24611 l_acc_rev_flag VARCHAR2(1);
24612 l_accrual_line_num NUMBER;
24613 l_tmp_amt NUMBER;
24614 l_acc_rev_natural_side_code VARCHAR2(1);
24615
24616 l_num_entries NUMBER;
24617 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24618 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24619 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24620 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24621 l_recog_line_1 NUMBER;
24622 l_recog_line_2 NUMBER;
24623
24624 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24625 l_bflow_applied_to_amt NUMBER; -- 5132302
24626 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24627
24628 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24629
24630 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24631 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24632
24633 ---------------------------------------------------------------------------------------------------------------
24634
24635
24636 --
24637 -- bulk performance
24638 --
24639 l_balance_type_code VARCHAR2(1);
24640 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24641 l_log_module VARCHAR2(240);
24642
24643 --
24644 -- Upgrade strategy
24645 --
24646 l_actual_upg_option VARCHAR2(1);
24647 l_enc_upg_option VARCHAR2(1);
24648
24649 --
24650 BEGIN
24651 --
24652 IF g_log_enabled THEN
24653 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
24654 END IF;
24655 --
24656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24657
24658 trace
24659 (p_msg => 'BEGIN of AcctLineType_64'
24660 ,p_level => C_LEVEL_PROCEDURE
24661 ,p_module => l_log_module);
24662
24663 END IF;
24664 --
24665 l_component_type := 'AMB_JLT';
24666 l_component_code := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
24667 l_component_type_code := 'S';
24668 l_component_appl_id := 200;
24669 l_amb_context_code := 'DEFAULT';
24670 l_entity_code := 'AP_PAYMENTS';
24671 l_event_class_code := 'FUTURE DATED PAYMENTS';
24672 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
24673 l_line_definition_owner_code := 'S';
24674 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
24675 --
24676 l_balance_type_code := 'A';
24680 l_adr_accounting_coa_id := NULL;
24677 l_segment := NULL;
24678 l_ccid := NULL;
24679 l_adr_transaction_coa_id := NULL;
24681 l_adr_flexfield_segment_code := NULL;
24682 l_adr_flex_value_set_id := NULL;
24683 l_adr_value_type_code := NULL;
24684 l_adr_value_combination_id := NULL;
24685 l_adr_value_segment_code := NULL;
24686
24687 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
24688 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
24689 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24690 l_budgetary_control_flag := 'N';
24691
24692 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24693 l_bflow_applied_to_amt := NULL; -- 5132302
24694 l_entered_amt_idx := NULL; -- 4262811
24695 l_accted_amt_idx := NULL; -- 4262811
24696 l_acc_rev_flag := NULL; -- 4262811
24697 l_accrual_line_num := NULL; -- 4262811
24698 l_tmp_amt := NULL; -- 4262811
24699 --
24700
24701 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24702 l_balance_type_code <> 'B' THEN
24703 IF (NVL(p_source_38,'
24704 ') = 'ALWAYS_ALWAYS' OR
24705 NVL(p_source_38,'
24706 ') = 'ALWAYS_ISSUE') AND
24707 (NVL(p_source_110,'
24708 ') = 'Y' AND
24709 NVL(p_source_4,'
24710 ') = 'ACCOUNT_SEGMENT_VALUE') AND
24711 p_source_111 IS NOT NULL AND
24712 NVL(p_source_39,'
24713 ') = 'CASH'
24714 THEN
24715
24716 --
24717 XLA_AE_LINES_PKG.SetNewLine;
24718
24719 p_balance_type_code := l_balance_type_code;
24720 -- set the flag so later we will know whether the gain loss line needs to be created
24721
24722 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24723 p_actual_flag :='A';
24724 END IF;
24725
24726 --
24727 -- bulk performance
24728 --
24729 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24730 p_header_num => 0); -- 4262811
24731 --
24732 -- set accounting line options
24733 --
24734 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24735 p_natural_side_code => 'C'
24736 , p_gain_or_loss_flag => 'N'
24737 , p_gl_transfer_mode_code => 'S'
24738 , p_acct_entry_type_code => 'A'
24739 , p_switch_side_flag => 'Y'
24740 , p_merge_duplicate_code => 'A'
24741 );
24742 --
24743 l_acc_rev_natural_side_code := 'D'; -- 4262811
24744 --
24745 --
24746 -- set accounting line type info
24747 --
24748 xla_ae_lines_pkg.SetAcctLineType
24749 (p_component_type => l_component_type
24750 ,p_event_type_code => l_event_type_code
24751 ,p_line_definition_owner_code => l_line_definition_owner_code
24752 ,p_line_definition_code => l_line_definition_code
24753 ,p_accounting_line_code => l_component_code
24754 ,p_accounting_line_type_code => l_component_type_code
24755 ,p_accounting_line_appl_id => l_component_appl_id
24756 ,p_amb_context_code => l_amb_context_code
24757 ,p_entity_code => l_entity_code
24758 ,p_event_class_code => l_event_class_code);
24759 --
24760 -- set accounting class
24761 --
24762 xla_ae_lines_pkg.SetAcctClass(
24763 p_accounting_class_code => 'CASH_CLEARING'
24764 , p_ae_header_id => l_ae_header_id
24765 );
24766
24767 --
24768 -- set rounding class
24769 --
24770 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24771 'CASH_CLEARING';
24772
24773 --
24774 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24775 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24776 --
24777 -- bulk performance
24778 --
24779 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24780
24781 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24782 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24783
24784 -- 4955764
24785 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24786 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24787
24788 -- 4458381 Public Sector Enh
24789
24790 --
24791 -- set accounting attributes for the line type
24792 --
24793 l_entered_amt_idx := 9;
24794 l_accted_amt_idx := 14;
24795 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24796 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24797 l_rec_acct_attrs.array_char_value(1) := p_source_40;
24798 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24799 l_rec_acct_attrs.array_num_value(2) := p_source_42;
24800 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24801 l_rec_acct_attrs.array_char_value(3) := p_source_43;
24802 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24806 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24803 l_rec_acct_attrs.array_char_value(4) := p_source_44;
24804 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24805 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
24807 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
24808 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24809 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
24810 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24811 l_rec_acct_attrs.array_char_value(8) := p_source_48;
24812 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24813 l_rec_acct_attrs.array_num_value(9) := p_source_41;
24814 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24815 l_rec_acct_attrs.array_char_value(10) := p_source_49;
24816 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24817 l_rec_acct_attrs.array_date_value(11) := p_source_114;
24818 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24819 l_rec_acct_attrs.array_num_value(12) := p_source_115;
24820 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24821 l_rec_acct_attrs.array_char_value(13) := p_source_116;
24822 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24823 l_rec_acct_attrs.array_num_value(14) := p_source_117;
24824 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24825 l_rec_acct_attrs.array_char_value(15) := p_source_53;
24826 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24827 l_rec_acct_attrs.array_num_value(16) := p_source_54;
24828 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24829 l_rec_acct_attrs.array_num_value(17) := p_source_55;
24830 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24831 l_rec_acct_attrs.array_char_value(18) := p_source_56;
24832 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24833 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
24834 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24835 l_rec_acct_attrs.array_char_value(20) := p_source_48;
24836
24837 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24838 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24839
24840 ---------------------------------------------------------------------------------------------------------------
24841 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24842 ---------------------------------------------------------------------------------------------------------------
24843 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24844
24845 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24846 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24847
24848 IF xla_accounting_cache_pkg.GetValueChar
24849 (p_source_code => 'LEDGER_CATEGORY_CODE'
24850 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24851 AND l_bflow_method_code = 'PRIOR_ENTRY'
24852 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24853 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24854 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24855 )
24856 THEN
24857 xla_ae_lines_pkg.BflowUpgEntry
24858 (p_business_method_code => l_bflow_method_code
24859 ,p_business_class_code => l_bflow_class_code
24860 ,p_balance_type => l_balance_type_code);
24861 ELSE
24862 NULL;
24863 XLA_AE_LINES_PKG.business_flow_validation(
24864 p_business_method_code => l_bflow_method_code
24865 ,p_business_class_code => l_bflow_class_code
24866 ,p_inherit_description_flag => l_inherit_desc_flag);
24867 END IF;
24868
24869 --
24870 -- call analytical criteria
24871 --
24872
24873 --
24874 -- call description
24875 --
24876 -- No description or it is inherited.
24877 --
24878 -- call ADRs
24879 -- Bug 4922099
24880 --
24881 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24882 (NVL(l_actual_upg_option, 'N') = 'O') OR
24883 (NVL(l_enc_upg_option, 'N') = 'O')
24884 )
24885 THEN
24886 NULL;
24887 --
24888 --
24889
24890 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
24891 p_code_combination_id => TO_NUMBER(C_NUM)
24892 , p_value_type_code => NULL
24893 , p_transaction_coa_id => null
24894 , p_accounting_coa_id => null
24895 , p_adr_code => NULL
24896 , p_adr_type_code => NULL
24897 , p_component_type => l_component_type
24898 , p_component_code => l_component_code
24899 , p_component_type_code => l_component_type_code
24900 , p_component_appl_id => l_component_appl_id
24901 , p_amb_context_code => l_amb_context_code
24902 , p_side => NULL
24903 );
24904
24905
24906 -- initialise segments
24910 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24907 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24908 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24909 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24911 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24912 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24913 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24914 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24915 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24916 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24917 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24918 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24919 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24920 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24921 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24922 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24923 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24924 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24925 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24926 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24927 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24928 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24929 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24930 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24931 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24932 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24933 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24934 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24935 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24936 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24937 --
24938
24939 --
24940
24941
24942 l_segment := AcctDerRule_11(
24943 p_application_id => p_application_id
24944 , p_ae_header_id => l_ae_header_id
24945 , p_source_21 => p_source_21
24946 , x_transaction_coa_id => l_adr_transaction_coa_id
24947 , x_accounting_coa_id => l_adr_accounting_coa_id
24948 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24949 , x_flex_value_set_id => l_adr_flex_value_set_id
24950 , x_value_type_code => l_adr_value_type_code
24951 , x_value_combination_id => l_adr_value_combination_id
24952 , x_value_segment_code => l_adr_value_segment_code
24953 , p_side => 'NA'
24954 , p_override_seg_flag => 'Y'
24955 );
24956
24957 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24958
24959 xla_ae_lines_pkg.set_segment(
24960 p_to_segment_code => 'GL_ACCOUNT'
24961 , p_segment_value => l_segment
24962 , p_from_segment_code => l_adr_value_segment_code
24963 , p_from_combination_id => l_adr_value_combination_id
24964 , p_value_type_code => l_adr_value_type_code
24965 , p_transaction_coa_id => l_adr_transaction_coa_id
24966 , p_accounting_coa_id => l_adr_accounting_coa_id
24967 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24968 , p_flex_value_set_id => l_adr_flex_value_set_id
24969 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24970 , p_adr_type_code => 'S'
24971 , p_component_type => l_component_type
24972 , p_component_code => l_component_code
24973 , p_component_type_code => l_component_type_code
24974 , p_component_appl_id => l_component_appl_id
24975 , p_amb_context_code => l_amb_context_code
24976 , p_entity_code => 'AP_PAYMENTS'
24977 , p_event_class_code => 'FUTURE DATED PAYMENTS'
24978 , p_side => 'NA'
24979 );
24980
24981 END IF;
24982
24983 --
24984 --
24985 END IF;
24986 --
24987 -- Bug 4922099
24988 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24989 (NVL(l_enc_upg_option, 'N') = 'O')
24990 ) AND
24991 (l_bflow_method_code = 'PRIOR_ENTRY')
24992 )
24993 THEN
24994 IF
24995 --
24996 1 = 2
24997 --
24998 THEN
24999 xla_accounting_err_pkg.build_message
25000 (p_appli_s_name => 'XLA'
25001 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25002 ,p_token_1 => 'LINE_NUMBER'
25006 l_component_type
25003 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25004 ,p_token_2 => 'LINE_TYPE_NAME'
25005 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25007 ,l_component_code
25008 ,l_component_type_code
25009 ,l_component_appl_id
25010 ,l_amb_context_code
25011 ,l_entity_code
25012 ,l_event_class_code
25013 )
25014 ,p_token_3 => 'OWNER'
25015 ,p_value_3 => xla_lookups_pkg.get_meaning(
25016 p_lookup_type => 'XLA_OWNER_TYPE'
25017 ,p_lookup_code => l_component_type_code
25018 )
25019 ,p_token_4 => 'PRODUCT_NAME'
25020 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25021 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25022 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25023 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25024 ,p_ae_header_id => NULL
25025 );
25026
25027 IF (C_LEVEL_ERROR>= g_log_level) THEN
25028 trace
25029 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25030 ,p_level => C_LEVEL_ERROR
25031 ,p_module => l_log_module);
25032 END IF;
25033 END IF;
25034 END IF;
25035 --
25036 --
25037 ------------------------------------------------------------------------------------------------
25038 -- 4219869 Business Flow
25039 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25040 -- Prior Entry. Currently, the following code is always generated.
25041 ------------------------------------------------------------------------------------------------
25042 XLA_AE_LINES_PKG.ValidateCurrentLine;
25043
25044 ------------------------------------------------------------------------------------
25045 -- 4219869 Business Flow
25046 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25047 ------------------------------------------------------------------------------------
25048 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25049
25050 ----------------------------------------------------------------------------------
25051 -- 4219869 Business Flow
25052 -- Update journal entry status -- Need to generate this within IF <condition>
25053 ----------------------------------------------------------------------------------
25054 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25055 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25056 ,p_balance_type_code => l_balance_type_code
25057 );
25058
25059 -------------------------------------------------------------------------------------------
25060 -- 4262811 - Generate the Accrual Reversal lines
25061 -------------------------------------------------------------------------------------------
25062 BEGIN
25063 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25064 (g_array_event(p_event_id).array_value_num('header_index'));
25065 IF l_acc_rev_flag IS NULL THEN
25066 l_acc_rev_flag := 'N';
25067 END IF;
25068 EXCEPTION
25069 WHEN OTHERS THEN
25070 l_acc_rev_flag := 'N';
25071 END;
25072 --
25073 IF (l_acc_rev_flag = 'Y') THEN
25074
25075 -- 4645092 ------------------------------------------------------------------------------
25076 -- To allow MPA report to determine if it should generate report process
25077 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25078 ------------------------------------------------------------------------------------------
25079
25080 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25081 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25082 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25083 -- call ADRs
25084 -- Bug 4922099
25085 --
25086 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25087 (NVL(l_actual_upg_option, 'N') = 'O') OR
25088 (NVL(l_enc_upg_option, 'N') = 'O')
25089 )
25090 THEN
25091 NULL;
25092 --
25093 --
25094
25098 , p_transaction_coa_id => null
25095 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
25096 p_code_combination_id => TO_NUMBER(C_NUM)
25097 , p_value_type_code => NULL
25099 , p_accounting_coa_id => null
25100 , p_adr_code => NULL
25101 , p_adr_type_code => NULL
25102 , p_component_type => l_component_type
25103 , p_component_code => l_component_code
25104 , p_component_type_code => l_component_type_code
25105 , p_component_appl_id => l_component_appl_id
25106 , p_amb_context_code => l_amb_context_code
25107 , p_side => NULL
25108 );
25109
25110
25111 -- initialise segments
25112 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25113 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25114 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25115 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25116 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25117 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25118 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25119 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25120 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25121 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25122 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25123 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25124 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25125 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25126 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25127 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25128 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25129 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25130 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25131 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25132 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25133 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25134 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25135 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25136 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25137 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25138 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25139 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25140 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25141 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25142 --
25143
25144 --
25145
25146
25147 l_segment := AcctDerRule_11(
25148 p_application_id => p_application_id
25149 , p_ae_header_id => l_ae_header_id
25150 , p_source_21 => p_source_21
25151 , x_transaction_coa_id => l_adr_transaction_coa_id
25152 , x_accounting_coa_id => l_adr_accounting_coa_id
25153 , x_flexfield_segment_code => l_adr_flexfield_segment_code
25154 , x_flex_value_set_id => l_adr_flex_value_set_id
25155 , x_value_type_code => l_adr_value_type_code
25156 , x_value_combination_id => l_adr_value_combination_id
25157 , x_value_segment_code => l_adr_value_segment_code
25158 , p_side => 'NA'
25159 , p_override_seg_flag => 'Y'
25160 );
25161
25162 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
25163
25164 xla_ae_lines_pkg.set_segment(
25165 p_to_segment_code => 'GL_ACCOUNT'
25166 , p_segment_value => l_segment
25167 , p_from_segment_code => l_adr_value_segment_code
25168 , p_from_combination_id => l_adr_value_combination_id
25169 , p_value_type_code => l_adr_value_type_code
25170 , p_transaction_coa_id => l_adr_transaction_coa_id
25171 , p_accounting_coa_id => l_adr_accounting_coa_id
25172 , p_flexfield_segment_code => l_adr_flexfield_segment_code
25173 , p_flex_value_set_id => l_adr_flex_value_set_id
25174 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25175 , p_adr_type_code => 'S'
25176 , p_component_type => l_component_type
25177 , p_component_code => l_component_code
25178 , p_component_type_code => l_component_type_code
25179 , p_component_appl_id => l_component_appl_id
25180 , p_amb_context_code => l_amb_context_code
25181 , p_entity_code => 'AP_PAYMENTS'
25182 , p_event_class_code => 'FUTURE DATED PAYMENTS'
25186 END IF;
25183 , p_side => 'NA'
25184 );
25185
25187
25188 --
25189 --
25190 END IF;
25191
25192 --
25193 -- Update the line information that should be overwritten
25194 --
25195 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25196 p_header_num => 1);
25197 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25198
25199 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25200
25201 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25202 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25203 END IF;
25204
25205 --
25206 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25207 --
25208 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25209 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25210 ELSE
25211 ---------------------------------------------------------------------------------------------------
25212 -- 4262811a Switch Sign
25213 ---------------------------------------------------------------------------------------------------
25214 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25215 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25216 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25217 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25218 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25219 -- 5132302
25220 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25221 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25222
25223 END IF;
25224
25225 -- 4955764
25226 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25227 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25228
25229
25230 XLA_AE_LINES_PKG.ValidateCurrentLine;
25231 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25232
25233 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25234 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25235 ,p_balance_type_code => l_balance_type_code);
25236
25237 END IF;
25238
25239 -----------------------------------------------------------------------------------------
25240 -- 4262811 Multiperiod Accounting
25241 -----------------------------------------------------------------------------------------
25242 -- No MPA option is assigned.
25243
25244
25245 END IF;
25246 END IF;
25247 --
25248
25249 --
25250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25251 trace
25252 (p_msg => 'END of AcctLineType_64'
25253 ,p_level => C_LEVEL_PROCEDURE
25254 ,p_module => l_log_module);
25255 END IF;
25256 --
25257 EXCEPTION
25258 WHEN xla_exceptions_pkg.application_exception THEN
25259 RAISE;
25260 WHEN OTHERS THEN
25261 xla_exceptions_pkg.raise_message
25262 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_64');
25263 END AcctLineType_64;
25264 --
25265
25266 ---------------------------------------
25267 --
25268 -- PRIVATE FUNCTION
25269 -- AcctLineType_65
25270 --
25271 ---------------------------------------
25272 PROCEDURE AcctLineType_65 (
25273 p_application_id IN NUMBER
25274 ,p_event_id IN NUMBER
25275 ,p_calculate_acctd_flag IN VARCHAR2
25276 ,p_calculate_g_l_flag IN VARCHAR2
25277 ,p_actual_flag IN OUT VARCHAR2
25278 ,p_balance_type_code OUT VARCHAR2
25279 ,p_gain_or_loss_ref OUT VARCHAR2
25280
25281 --Automatic Offsets Value
25282 , p_source_4 IN VARCHAR2
25283 , p_source_4_meaning IN VARCHAR2
25284 --Bank Cash Clearing Account
25285 , p_source_21 IN NUMBER
25286 --When to Account for Payment Option
25287 , p_source_38 IN VARCHAR2
25288 --Payment Distribution Type
25289 , p_source_39 IN VARCHAR2
25290 , p_source_39_meaning IN VARCHAR2
25291 --Accounting Reversal Indicator
25292 , p_source_40 IN VARCHAR2
25293 --Payment Distribution Amount
25294 , p_source_41 IN NUMBER
25295 --Business Flow Accounts Payable Application Identifier
25296 , p_source_42 IN NUMBER
25297 --Business Flow Payment Distribution Type
25298 , p_source_43 IN VARCHAR2
25299 --Business Flow Payment Entity Code
25300 , p_source_44 IN VARCHAR2
25301 --Business Flow Payment Distribution Identifier
25302 , p_source_45 IN NUMBER
25303 --Business Flow Payment Identifier
25304 , p_source_46 IN NUMBER
25305 --Payment Distribution Identifier
25306 , p_source_47 IN NUMBER
25307 --Distribution Link Type
25308 , p_source_48 IN VARCHAR2
25309 --Payment Currency Code
25310 , p_source_49 IN VARCHAR2
25314 --Payment Supplier Identifier
25311 --Override Accounted Amount Indicator
25312 , p_source_53 IN VARCHAR2
25313 , p_source_53_meaning IN VARCHAR2
25315 , p_source_54 IN NUMBER
25316 --Payment Supplier Site Identifier
25317 , p_source_55 IN NUMBER
25318 --Third Party Type
25319 , p_source_56 IN VARCHAR2
25320 --Payment Distribution Reversed Identifier
25321 , p_source_57 IN NUMBER
25322 --Pooled Bank Account Option
25323 , p_source_110 IN VARCHAR2
25324 , p_source_110_meaning IN VARCHAR2
25325 --Payment Maturity Date
25326 , p_source_111 IN DATE
25327 --Payment Exchange Date
25328 , p_source_114 IN DATE
25329 --Payment Exchange Rate
25330 , p_source_115 IN NUMBER
25331 --Payment Exchange Rate Type
25332 , p_source_116 IN VARCHAR2
25333 --Payment Distribution (Matured Rate) Ledger Amount
25334 , p_source_117 IN NUMBER
25335 )
25336 IS
25337
25338 l_component_type VARCHAR2(80);
25339 l_component_code VARCHAR2(30);
25340 l_component_type_code VARCHAR2(1);
25341 l_component_appl_id INTEGER;
25342 l_amb_context_code VARCHAR2(30);
25343 l_entity_code VARCHAR2(30);
25344 l_event_class_code VARCHAR2(30);
25345 l_ae_header_id NUMBER;
25346 l_event_type_code VARCHAR2(30);
25347 l_line_definition_code VARCHAR2(30);
25348 l_line_definition_owner_code VARCHAR2(1);
25349 --
25350 -- adr variables
25351 l_segment VARCHAR2(30);
25352 l_ccid NUMBER;
25353 l_adr_transaction_coa_id NUMBER;
25354 l_adr_accounting_coa_id NUMBER;
25355 l_adr_flexfield_segment_code VARCHAR2(30);
25356 l_adr_flex_value_set_id NUMBER;
25357 l_adr_value_type_code VARCHAR2(30);
25358 l_adr_value_combination_id NUMBER;
25359 l_adr_value_segment_code VARCHAR2(30);
25360
25361 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25362 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25363 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25364 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25365
25366 -- 4262811 Variables ------------------------------------------------------------------------------------------
25367 l_entered_amt_idx NUMBER;
25368 l_accted_amt_idx NUMBER;
25369 l_acc_rev_flag VARCHAR2(1);
25370 l_accrual_line_num NUMBER;
25371 l_tmp_amt NUMBER;
25372 l_acc_rev_natural_side_code VARCHAR2(1);
25373
25374 l_num_entries NUMBER;
25375 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25376 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25377 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25378 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25379 l_recog_line_1 NUMBER;
25380 l_recog_line_2 NUMBER;
25381
25382 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25383 l_bflow_applied_to_amt NUMBER; -- 5132302
25384 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25385
25386 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25387
25388 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25389 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25390
25391 ---------------------------------------------------------------------------------------------------------------
25392
25393
25394 --
25395 -- bulk performance
25396 --
25397 l_balance_type_code VARCHAR2(1);
25398 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25399 l_log_module VARCHAR2(240);
25400
25401 --
25402 -- Upgrade strategy
25403 --
25404 l_actual_upg_option VARCHAR2(1);
25405 l_enc_upg_option VARCHAR2(1);
25406
25407 --
25408 BEGIN
25409 --
25410 IF g_log_enabled THEN
25411 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
25412 END IF;
25413 --
25414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25415
25416 trace
25417 (p_msg => 'BEGIN of AcctLineType_65'
25418 ,p_level => C_LEVEL_PROCEDURE
25419 ,p_module => l_log_module);
25420
25421 END IF;
25422 --
25423 l_component_type := 'AMB_JLT';
25424 l_component_code := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
25425 l_component_type_code := 'S';
25426 l_component_appl_id := 200;
25427 l_amb_context_code := 'DEFAULT';
25428 l_entity_code := 'AP_PAYMENTS';
25429 l_event_class_code := 'FUTURE DATED PAYMENTS';
25430 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
25431 l_line_definition_owner_code := 'S';
25432 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
25433 --
25434 l_balance_type_code := 'A';
25435 l_segment := NULL;
25436 l_ccid := NULL;
25437 l_adr_transaction_coa_id := NULL;
25438 l_adr_accounting_coa_id := NULL;
25439 l_adr_flexfield_segment_code := NULL;
25440 l_adr_flex_value_set_id := NULL;
25444
25441 l_adr_value_type_code := NULL;
25442 l_adr_value_combination_id := NULL;
25443 l_adr_value_segment_code := NULL;
25445 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
25446 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
25447 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25448 l_budgetary_control_flag := 'N';
25449
25450 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25451 l_bflow_applied_to_amt := NULL; -- 5132302
25452 l_entered_amt_idx := NULL; -- 4262811
25453 l_accted_amt_idx := NULL; -- 4262811
25454 l_acc_rev_flag := NULL; -- 4262811
25455 l_accrual_line_num := NULL; -- 4262811
25456 l_tmp_amt := NULL; -- 4262811
25457 --
25458
25459 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25460 l_balance_type_code <> 'B' THEN
25461 IF (NVL(p_source_38,'
25462 ') = 'ALWAYS_ALWAYS' OR
25463 NVL(p_source_38,'
25464 ') = 'ALWAYS_CLEAR' OR
25465 NVL(p_source_38,'
25466 ') = 'ALWAYS_ISSUE') AND
25467 (NVL(p_source_110,'
25468 ') = 'Y' AND
25469 NVL(p_source_4,'
25470 ') = 'BALANCING_SEGMENT') AND
25471 p_source_111 IS NOT NULL AND
25472 NVL(p_source_39,'
25473 ') = 'CASH'
25474 THEN
25475
25476 --
25477 XLA_AE_LINES_PKG.SetNewLine;
25478
25479 p_balance_type_code := l_balance_type_code;
25480 -- set the flag so later we will know whether the gain loss line needs to be created
25481
25482 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25483 p_actual_flag :='A';
25484 END IF;
25485
25486 --
25487 -- bulk performance
25488 --
25489 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25490 p_header_num => 0); -- 4262811
25491 --
25492 -- set accounting line options
25493 --
25494 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25495 p_natural_side_code => 'C'
25496 , p_gain_or_loss_flag => 'N'
25497 , p_gl_transfer_mode_code => 'S'
25498 , p_acct_entry_type_code => 'A'
25499 , p_switch_side_flag => 'Y'
25500 , p_merge_duplicate_code => 'A'
25501 );
25502 --
25503 l_acc_rev_natural_side_code := 'D'; -- 4262811
25504 --
25505 --
25506 -- set accounting line type info
25507 --
25508 xla_ae_lines_pkg.SetAcctLineType
25509 (p_component_type => l_component_type
25510 ,p_event_type_code => l_event_type_code
25511 ,p_line_definition_owner_code => l_line_definition_owner_code
25512 ,p_line_definition_code => l_line_definition_code
25513 ,p_accounting_line_code => l_component_code
25514 ,p_accounting_line_type_code => l_component_type_code
25515 ,p_accounting_line_appl_id => l_component_appl_id
25516 ,p_amb_context_code => l_amb_context_code
25517 ,p_entity_code => l_entity_code
25518 ,p_event_class_code => l_event_class_code);
25519 --
25520 -- set accounting class
25521 --
25522 xla_ae_lines_pkg.SetAcctClass(
25523 p_accounting_class_code => 'CASH_CLEARING'
25524 , p_ae_header_id => l_ae_header_id
25525 );
25526
25527 --
25528 -- set rounding class
25529 --
25530 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25531 'CASH_CLEARING';
25532
25533 --
25534 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25535 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25536 --
25537 -- bulk performance
25538 --
25539 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25540
25541 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25542 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25543
25544 -- 4955764
25545 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25546 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25547
25548 -- 4458381 Public Sector Enh
25549
25550 --
25551 -- set accounting attributes for the line type
25552 --
25553 l_entered_amt_idx := 9;
25554 l_accted_amt_idx := 14;
25555 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25556 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25557 l_rec_acct_attrs.array_char_value(1) := p_source_40;
25558 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
25559 l_rec_acct_attrs.array_num_value(2) := p_source_42;
25560 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25561 l_rec_acct_attrs.array_char_value(3) := p_source_43;
25562 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
25563 l_rec_acct_attrs.array_char_value(4) := p_source_44;
25564 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
25565 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
25569 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
25566 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25567 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
25568 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
25570 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
25571 l_rec_acct_attrs.array_char_value(8) := p_source_48;
25572 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
25573 l_rec_acct_attrs.array_num_value(9) := p_source_41;
25574 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
25575 l_rec_acct_attrs.array_char_value(10) := p_source_49;
25576 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
25577 l_rec_acct_attrs.array_date_value(11) := p_source_114;
25578 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
25579 l_rec_acct_attrs.array_num_value(12) := p_source_115;
25580 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
25581 l_rec_acct_attrs.array_char_value(13) := p_source_116;
25582 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
25583 l_rec_acct_attrs.array_num_value(14) := p_source_117;
25584 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
25585 l_rec_acct_attrs.array_char_value(15) := p_source_53;
25586 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
25587 l_rec_acct_attrs.array_num_value(16) := p_source_54;
25588 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
25589 l_rec_acct_attrs.array_num_value(17) := p_source_55;
25590 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
25591 l_rec_acct_attrs.array_char_value(18) := p_source_56;
25592 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
25593 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
25594 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
25595 l_rec_acct_attrs.array_char_value(20) := p_source_48;
25596
25597 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25598 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25599
25600 ---------------------------------------------------------------------------------------------------------------
25601 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25602 ---------------------------------------------------------------------------------------------------------------
25603 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25604
25605 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25606 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25607
25608 IF xla_accounting_cache_pkg.GetValueChar
25609 (p_source_code => 'LEDGER_CATEGORY_CODE'
25610 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25611 AND l_bflow_method_code = 'PRIOR_ENTRY'
25612 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25613 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25614 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25615 )
25616 THEN
25617 xla_ae_lines_pkg.BflowUpgEntry
25618 (p_business_method_code => l_bflow_method_code
25619 ,p_business_class_code => l_bflow_class_code
25620 ,p_balance_type => l_balance_type_code);
25621 ELSE
25622 NULL;
25623 XLA_AE_LINES_PKG.business_flow_validation(
25624 p_business_method_code => l_bflow_method_code
25625 ,p_business_class_code => l_bflow_class_code
25626 ,p_inherit_description_flag => l_inherit_desc_flag);
25627 END IF;
25628
25629 --
25630 -- call analytical criteria
25631 --
25632
25633 --
25634 -- call description
25635 --
25636 -- No description or it is inherited.
25637 --
25638 -- call ADRs
25639 -- Bug 4922099
25640 --
25641 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25642 (NVL(l_actual_upg_option, 'N') = 'O') OR
25643 (NVL(l_enc_upg_option, 'N') = 'O')
25644 )
25645 THEN
25646 NULL;
25647 --
25648 --
25649
25650 l_ccid := AcctDerRule_28(
25651 p_application_id => p_application_id
25652 , p_ae_header_id => l_ae_header_id
25653 , p_source_21 => p_source_21
25654 , x_transaction_coa_id => l_adr_transaction_coa_id
25655 , x_accounting_coa_id => l_adr_accounting_coa_id
25656 , x_value_type_code => l_adr_value_type_code
25657 , p_side => 'NA'
25658 );
25659
25660 xla_ae_lines_pkg.set_ccid(
25661 p_code_combination_id => l_ccid
25662 , p_value_type_code => l_adr_value_type_code
25663 , p_transaction_coa_id => l_adr_transaction_coa_id
25664 , p_accounting_coa_id => l_adr_accounting_coa_id
25665 , p_adr_code => 'AP_PMT_CASH_CLEAR'
25666 , p_adr_type_code => 'S'
25667 , p_component_type => l_component_type
25668 , p_component_code => l_component_code
25669 , p_component_type_code => l_component_type_code
25673 );
25670 , p_component_appl_id => l_component_appl_id
25671 , p_amb_context_code => l_amb_context_code
25672 , p_side => 'NA'
25674
25675
25676 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
25677 p_to_segment_code => 'GL_BALANCING'
25678 , p_segment_value => C_CHAR
25679 , p_from_segment_code => NULL
25680 , p_from_combination_id => NULL
25681 , p_value_type_code => NULL
25682 , p_transaction_coa_id => null
25683 , p_accounting_coa_id => null
25684 , p_flexfield_segment_code => NULL
25685 , p_flex_value_set_id => NULL
25686 , p_adr_code => NULL
25687 , p_adr_type_code => NULL
25688 , p_component_type => l_component_type
25689 , p_component_code => l_component_code
25690 , p_component_type_code => l_component_type_code
25691 , p_component_appl_id => l_component_appl_id
25692 , p_amb_context_code => l_amb_context_code
25693 , p_entity_code => 'AP_PAYMENTS'
25694 , p_event_class_code => 'FUTURE DATED PAYMENTS'
25695 , p_side => 'NA'
25696 );
25697 --
25698
25699
25700 --
25701 --
25702 END IF;
25703 --
25704 -- Bug 4922099
25705 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25706 (NVL(l_enc_upg_option, 'N') = 'O')
25707 ) AND
25708 (l_bflow_method_code = 'PRIOR_ENTRY')
25709 )
25710 THEN
25711 IF
25712 --
25713 1 = 2
25714 --
25715 THEN
25716 xla_accounting_err_pkg.build_message
25717 (p_appli_s_name => 'XLA'
25718 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25719 ,p_token_1 => 'LINE_NUMBER'
25720 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25721 ,p_token_2 => 'LINE_TYPE_NAME'
25722 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25723 l_component_type
25724 ,l_component_code
25725 ,l_component_type_code
25726 ,l_component_appl_id
25727 ,l_amb_context_code
25728 ,l_entity_code
25729 ,l_event_class_code
25730 )
25731 ,p_token_3 => 'OWNER'
25732 ,p_value_3 => xla_lookups_pkg.get_meaning(
25733 p_lookup_type => 'XLA_OWNER_TYPE'
25734 ,p_lookup_code => l_component_type_code
25735 )
25736 ,p_token_4 => 'PRODUCT_NAME'
25737 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25738 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25739 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25740 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25741 ,p_ae_header_id => NULL
25742 );
25743
25744 IF (C_LEVEL_ERROR>= g_log_level) THEN
25745 trace
25746 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25747 ,p_level => C_LEVEL_ERROR
25748 ,p_module => l_log_module);
25749 END IF;
25750 END IF;
25751 END IF;
25752 --
25753 --
25754 ------------------------------------------------------------------------------------------------
25755 -- 4219869 Business Flow
25756 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25757 -- Prior Entry. Currently, the following code is always generated.
25758 ------------------------------------------------------------------------------------------------
25759 XLA_AE_LINES_PKG.ValidateCurrentLine;
25760
25761 ------------------------------------------------------------------------------------
25762 -- 4219869 Business Flow
25763 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25764 ------------------------------------------------------------------------------------
25765 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25766
25767 ----------------------------------------------------------------------------------
25768 -- 4219869 Business Flow
25769 -- Update journal entry status -- Need to generate this within IF <condition>
25773 ,p_balance_type_code => l_balance_type_code
25770 ----------------------------------------------------------------------------------
25771 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25772 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25774 );
25775
25776 -------------------------------------------------------------------------------------------
25777 -- 4262811 - Generate the Accrual Reversal lines
25778 -------------------------------------------------------------------------------------------
25779 BEGIN
25780 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25781 (g_array_event(p_event_id).array_value_num('header_index'));
25782 IF l_acc_rev_flag IS NULL THEN
25783 l_acc_rev_flag := 'N';
25784 END IF;
25785 EXCEPTION
25786 WHEN OTHERS THEN
25787 l_acc_rev_flag := 'N';
25788 END;
25789 --
25790 IF (l_acc_rev_flag = 'Y') THEN
25791
25792 -- 4645092 ------------------------------------------------------------------------------
25793 -- To allow MPA report to determine if it should generate report process
25794 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25795 ------------------------------------------------------------------------------------------
25796
25797 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25798 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25799 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25800 -- call ADRs
25801 -- Bug 4922099
25802 --
25803 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25804 (NVL(l_actual_upg_option, 'N') = 'O') OR
25805 (NVL(l_enc_upg_option, 'N') = 'O')
25806 )
25807 THEN
25808 NULL;
25809 --
25810 --
25811
25812 l_ccid := AcctDerRule_28(
25813 p_application_id => p_application_id
25814 , p_ae_header_id => l_ae_header_id
25815 , p_source_21 => p_source_21
25816 , x_transaction_coa_id => l_adr_transaction_coa_id
25817 , x_accounting_coa_id => l_adr_accounting_coa_id
25818 , x_value_type_code => l_adr_value_type_code
25819 , p_side => 'NA'
25820 );
25821
25822 xla_ae_lines_pkg.set_ccid(
25823 p_code_combination_id => l_ccid
25824 , p_value_type_code => l_adr_value_type_code
25825 , p_transaction_coa_id => l_adr_transaction_coa_id
25826 , p_accounting_coa_id => l_adr_accounting_coa_id
25827 , p_adr_code => 'AP_PMT_CASH_CLEAR'
25828 , p_adr_type_code => 'S'
25829 , p_component_type => l_component_type
25830 , p_component_code => l_component_code
25831 , p_component_type_code => l_component_type_code
25832 , p_component_appl_id => l_component_appl_id
25833 , p_amb_context_code => l_amb_context_code
25834 , p_side => 'NA'
25835 );
25836
25837
25838 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
25839 p_to_segment_code => 'GL_BALANCING'
25840 , p_segment_value => C_CHAR
25841 , p_from_segment_code => NULL
25842 , p_from_combination_id => NULL
25843 , p_value_type_code => NULL
25844 , p_transaction_coa_id => null
25845 , p_accounting_coa_id => null
25846 , p_flexfield_segment_code => NULL
25847 , p_flex_value_set_id => NULL
25848 , p_adr_code => NULL
25849 , p_adr_type_code => NULL
25850 , p_component_type => l_component_type
25851 , p_component_code => l_component_code
25852 , p_component_type_code => l_component_type_code
25853 , p_component_appl_id => l_component_appl_id
25854 , p_amb_context_code => l_amb_context_code
25855 , p_entity_code => 'AP_PAYMENTS'
25856 , p_event_class_code => 'FUTURE DATED PAYMENTS'
25857 , p_side => 'NA'
25858 );
25859 --
25860
25861
25862 --
25863 --
25864 END IF;
25865
25866 --
25867 -- Update the line information that should be overwritten
25868 --
25869 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25870 p_header_num => 1);
25871 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25872
25873 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25874
25875 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25876 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25877 END IF;
25878
25879 --
25880 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25881 --
25882 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25883 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25884 ELSE
25885 ---------------------------------------------------------------------------------------------------
25886 -- 4262811a Switch Sign
25890 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25887 ---------------------------------------------------------------------------------------------------
25888 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25891 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25892 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25893 -- 5132302
25894 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25895 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25896
25897 END IF;
25898
25899 -- 4955764
25900 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25901 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25902
25903
25904 XLA_AE_LINES_PKG.ValidateCurrentLine;
25905 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25906
25907 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25908 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25909 ,p_balance_type_code => l_balance_type_code);
25910
25911 END IF;
25912
25913 -----------------------------------------------------------------------------------------
25914 -- 4262811 Multiperiod Accounting
25915 -----------------------------------------------------------------------------------------
25916 -- No MPA option is assigned.
25917
25918
25919 END IF;
25920 END IF;
25921 --
25922
25923 --
25924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25925 trace
25926 (p_msg => 'END of AcctLineType_65'
25927 ,p_level => C_LEVEL_PROCEDURE
25928 ,p_module => l_log_module);
25929 END IF;
25930 --
25931 EXCEPTION
25932 WHEN xla_exceptions_pkg.application_exception THEN
25933 RAISE;
25934 WHEN OTHERS THEN
25935 xla_exceptions_pkg.raise_message
25936 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_65');
25937 END AcctLineType_65;
25938 --
25939
25940 ---------------------------------------
25941 --
25942 -- PRIVATE FUNCTION
25943 -- AcctLineType_66
25944 --
25945 ---------------------------------------
25946 PROCEDURE AcctLineType_66 (
25947 p_application_id IN NUMBER
25948 ,p_event_id IN NUMBER
25949 ,p_calculate_acctd_flag IN VARCHAR2
25950 ,p_calculate_g_l_flag IN VARCHAR2
25951 ,p_actual_flag IN OUT VARCHAR2
25952 ,p_balance_type_code OUT VARCHAR2
25953 ,p_gain_or_loss_ref OUT VARCHAR2
25954
25955 --Payment Distribution (Payment Rate) Ledger Amount
25956 , p_source_9 IN NUMBER
25957 --Bank Cash Clearing Account
25958 , p_source_21 IN NUMBER
25959 --Automatic Offsets Flag
25960 , p_source_30 IN VARCHAR2
25961 , p_source_30_meaning IN VARCHAR2
25962 --When to Account for Payment Option
25963 , p_source_38 IN VARCHAR2
25964 --Payment Distribution Type
25965 , p_source_39 IN VARCHAR2
25966 , p_source_39_meaning IN VARCHAR2
25967 --Accounting Reversal Indicator
25968 , p_source_40 IN VARCHAR2
25969 --Payment Distribution Amount
25970 , p_source_41 IN NUMBER
25971 --Business Flow Accounts Payable Application Identifier
25972 , p_source_42 IN NUMBER
25973 --Payment Distribution Identifier
25974 , p_source_47 IN NUMBER
25975 --Distribution Link Type
25976 , p_source_48 IN VARCHAR2
25977 --Payment Currency Code
25978 , p_source_49 IN VARCHAR2
25979 --Override Accounted Amount Indicator
25980 , p_source_53 IN VARCHAR2
25981 , p_source_53_meaning IN VARCHAR2
25982 --Payment Supplier Identifier
25983 , p_source_54 IN NUMBER
25984 --Payment Supplier Site Identifier
25985 , p_source_55 IN NUMBER
25986 --Third Party Type
25987 , p_source_56 IN VARCHAR2
25988 --Payment Distribution Reversed Identifier
25989 , p_source_57 IN NUMBER
25990 --Invoice Distribution Tax Line Identifier
25991 , p_source_58 IN NUMBER
25992 --Invoice Distribution Summary Tax Line Identifier
25993 , p_source_59 IN NUMBER
25994 --Payment Type
25995 , p_source_60 IN VARCHAR2
25996 , p_source_60_meaning IN VARCHAR2
25997 --Business Flow Invoice Distribution Type
25998 , p_source_62 IN VARCHAR2
25999 --Business Flow Invoice Entity Code
26000 , p_source_63 IN VARCHAR2
26001 --Business Flow Invoice Distribution Identifier
26002 , p_source_64 IN NUMBER
26003 --Business Flow Invoice Identifier
26004 , p_source_65 IN NUMBER
26005 --Invoice Distribution Tax Distribution Identifier from Tax
26006 , p_source_66 IN NUMBER
26007 --Pooled Bank Account Option
26008 , p_source_110 IN VARCHAR2
26009 , p_source_110_meaning IN VARCHAR2
26010 --Payment Maturity Date
26011 , p_source_111 IN DATE
26012 --Payment Exchange Date
26013 , p_source_114 IN DATE
26014 --Payment Exchange Rate
26015 , p_source_115 IN NUMBER
26016 --Payment Exchange Rate Type
26017 , p_source_116 IN VARCHAR2
26021 l_component_type VARCHAR2(80);
26018 )
26019 IS
26020
26022 l_component_code VARCHAR2(30);
26023 l_component_type_code VARCHAR2(1);
26024 l_component_appl_id INTEGER;
26025 l_amb_context_code VARCHAR2(30);
26026 l_entity_code VARCHAR2(30);
26027 l_event_class_code VARCHAR2(30);
26028 l_ae_header_id NUMBER;
26029 l_event_type_code VARCHAR2(30);
26030 l_line_definition_code VARCHAR2(30);
26031 l_line_definition_owner_code VARCHAR2(1);
26032 --
26033 -- adr variables
26034 l_segment VARCHAR2(30);
26035 l_ccid NUMBER;
26036 l_adr_transaction_coa_id NUMBER;
26037 l_adr_accounting_coa_id NUMBER;
26038 l_adr_flexfield_segment_code VARCHAR2(30);
26039 l_adr_flex_value_set_id NUMBER;
26040 l_adr_value_type_code VARCHAR2(30);
26041 l_adr_value_combination_id NUMBER;
26042 l_adr_value_segment_code VARCHAR2(30);
26043
26044 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26045 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26046 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26047 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26048
26049 -- 4262811 Variables ------------------------------------------------------------------------------------------
26050 l_entered_amt_idx NUMBER;
26051 l_accted_amt_idx NUMBER;
26052 l_acc_rev_flag VARCHAR2(1);
26053 l_accrual_line_num NUMBER;
26054 l_tmp_amt NUMBER;
26055 l_acc_rev_natural_side_code VARCHAR2(1);
26056
26057 l_num_entries NUMBER;
26058 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26059 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26060 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26061 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26062 l_recog_line_1 NUMBER;
26063 l_recog_line_2 NUMBER;
26064
26065 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26066 l_bflow_applied_to_amt NUMBER; -- 5132302
26067 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26068
26069 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26070
26071 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26072 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26073
26074 ---------------------------------------------------------------------------------------------------------------
26075
26076
26077 --
26078 -- bulk performance
26079 --
26080 l_balance_type_code VARCHAR2(1);
26081 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26082 l_log_module VARCHAR2(240);
26083
26084 --
26085 -- Upgrade strategy
26086 --
26087 l_actual_upg_option VARCHAR2(1);
26088 l_enc_upg_option VARCHAR2(1);
26089
26090 --
26091 BEGIN
26092 --
26093 IF g_log_enabled THEN
26094 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
26095 END IF;
26096 --
26097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26098
26099 trace
26100 (p_msg => 'BEGIN of AcctLineType_66'
26101 ,p_level => C_LEVEL_PROCEDURE
26102 ,p_module => l_log_module);
26103
26104 END IF;
26105 --
26106 l_component_type := 'AMB_JLT';
26107 l_component_code := 'AP_CASH_CLEAR_REF';
26108 l_component_type_code := 'S';
26109 l_component_appl_id := 200;
26110 l_amb_context_code := 'DEFAULT';
26111 l_entity_code := 'AP_PAYMENTS';
26112 l_event_class_code := 'REFUNDS';
26113 l_event_type_code := 'REFUNDS_ALL';
26114 l_line_definition_owner_code := 'S';
26115 l_line_definition_code := 'CASH_REFUNDS_ALL';
26116 --
26117 l_balance_type_code := 'A';
26118 l_segment := NULL;
26119 l_ccid := NULL;
26120 l_adr_transaction_coa_id := NULL;
26121 l_adr_accounting_coa_id := NULL;
26122 l_adr_flexfield_segment_code := NULL;
26123 l_adr_flex_value_set_id := NULL;
26124 l_adr_value_type_code := NULL;
26125 l_adr_value_combination_id := NULL;
26126 l_adr_value_segment_code := NULL;
26127
26128 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26129 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
26130 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26131 l_budgetary_control_flag := 'N';
26132
26133 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26134 l_bflow_applied_to_amt := NULL; -- 5132302
26135 l_entered_amt_idx := NULL; -- 4262811
26136 l_accted_amt_idx := NULL; -- 4262811
26137 l_acc_rev_flag := NULL; -- 4262811
26138 l_accrual_line_num := NULL; -- 4262811
26139 l_tmp_amt := NULL; -- 4262811
26140 --
26141
26142 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26143 l_balance_type_code <> 'B' THEN
26144 IF NVL(p_source_38,'
26148 NVL(p_source_30,'
26145 ') = 'ALWAYS_ALWAYS' AND
26146 (NVL(p_source_30,'
26147 ') <> 'Y' OR
26149 ') = 'Y' AND
26150 NVL(p_source_110,'
26151 ') <> 'Y') AND
26152 p_source_111 IS NULL AND
26153 NVL(p_source_39,'
26154 ') = 'CASH' AND
26155 NVL(p_source_60,'
26156 ') = 'R'
26157 THEN
26158
26159 --
26160 XLA_AE_LINES_PKG.SetNewLine;
26161
26162 p_balance_type_code := l_balance_type_code;
26163 -- set the flag so later we will know whether the gain loss line needs to be created
26164
26165 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26166 p_actual_flag :='A';
26167 END IF;
26168
26169 --
26170 -- bulk performance
26171 --
26172 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26173 p_header_num => 0); -- 4262811
26174 --
26175 -- set accounting line options
26176 --
26177 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26178 p_natural_side_code => 'C'
26179 , p_gain_or_loss_flag => 'N'
26180 , p_gl_transfer_mode_code => 'S'
26181 , p_acct_entry_type_code => 'A'
26182 , p_switch_side_flag => 'Y'
26183 , p_merge_duplicate_code => 'A'
26184 );
26185 --
26186 l_acc_rev_natural_side_code := 'D'; -- 4262811
26187 --
26188 --
26189 -- set accounting line type info
26190 --
26191 xla_ae_lines_pkg.SetAcctLineType
26192 (p_component_type => l_component_type
26193 ,p_event_type_code => l_event_type_code
26194 ,p_line_definition_owner_code => l_line_definition_owner_code
26195 ,p_line_definition_code => l_line_definition_code
26196 ,p_accounting_line_code => l_component_code
26197 ,p_accounting_line_type_code => l_component_type_code
26198 ,p_accounting_line_appl_id => l_component_appl_id
26199 ,p_amb_context_code => l_amb_context_code
26200 ,p_entity_code => l_entity_code
26201 ,p_event_class_code => l_event_class_code);
26202 --
26203 -- set accounting class
26204 --
26205 xla_ae_lines_pkg.SetAcctClass(
26206 p_accounting_class_code => 'CASH_CLEARING'
26207 , p_ae_header_id => l_ae_header_id
26208 );
26209
26210 --
26211 -- set rounding class
26212 --
26213 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26214 'CASH_CLEARING';
26215
26216 --
26217 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26218 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26219 --
26220 -- bulk performance
26221 --
26222 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26223
26224 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26225 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26226
26227 -- 4955764
26228 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26229 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26230
26231 -- 4458381 Public Sector Enh
26232
26233 --
26234 -- set accounting attributes for the line type
26235 --
26236 l_entered_amt_idx := 9;
26237 l_accted_amt_idx := 14;
26238 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26239 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26240 l_rec_acct_attrs.array_char_value(1) := p_source_40;
26241 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26242 l_rec_acct_attrs.array_num_value(2) := p_source_42;
26243 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26244 l_rec_acct_attrs.array_char_value(3) := p_source_62;
26245 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26246 l_rec_acct_attrs.array_char_value(4) := p_source_63;
26247 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26248 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
26249 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26250 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
26251 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26252 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
26253 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26254 l_rec_acct_attrs.array_char_value(8) := p_source_48;
26255 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26256 l_rec_acct_attrs.array_num_value(9) := p_source_41;
26257 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26258 l_rec_acct_attrs.array_char_value(10) := p_source_49;
26259 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26260 l_rec_acct_attrs.array_date_value(11) := p_source_114;
26261 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26262 l_rec_acct_attrs.array_num_value(12) := p_source_115;
26263 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26264 l_rec_acct_attrs.array_char_value(13) := p_source_116;
26265 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26269 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26266 l_rec_acct_attrs.array_num_value(14) := p_source_9;
26267 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26268 l_rec_acct_attrs.array_char_value(15) := p_source_53;
26270 l_rec_acct_attrs.array_num_value(16) := p_source_54;
26271 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26272 l_rec_acct_attrs.array_num_value(17) := p_source_55;
26273 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26274 l_rec_acct_attrs.array_char_value(18) := p_source_56;
26275 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26276 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
26277 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26278 l_rec_acct_attrs.array_char_value(20) := p_source_48;
26279 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26280 l_rec_acct_attrs.array_num_value(21) := p_source_58;
26281 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26282 l_rec_acct_attrs.array_num_value(22) := p_source_66;
26283 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26284 l_rec_acct_attrs.array_num_value(23) := p_source_59;
26285
26286 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26287 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26288
26289 ---------------------------------------------------------------------------------------------------------------
26290 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26291 ---------------------------------------------------------------------------------------------------------------
26292 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26293
26294 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26295 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26296
26297 IF xla_accounting_cache_pkg.GetValueChar
26298 (p_source_code => 'LEDGER_CATEGORY_CODE'
26299 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26300 AND l_bflow_method_code = 'PRIOR_ENTRY'
26301 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26302 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26303 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26304 )
26305 THEN
26306 xla_ae_lines_pkg.BflowUpgEntry
26307 (p_business_method_code => l_bflow_method_code
26308 ,p_business_class_code => l_bflow_class_code
26309 ,p_balance_type => l_balance_type_code);
26310 ELSE
26311 NULL;
26312 -- No business flow processing for business flow method of NONE.
26313 END IF;
26314
26315 --
26316 -- call analytical criteria
26317 --
26318
26319 --
26320 -- call description
26321 --
26322 -- No description or it is inherited.
26323 --
26324 -- call ADRs
26325 -- Bug 4922099
26326 --
26327 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26328 (NVL(l_actual_upg_option, 'N') = 'O') OR
26329 (NVL(l_enc_upg_option, 'N') = 'O')
26330 )
26331 THEN
26332 NULL;
26333 --
26334 --
26335
26336 l_ccid := AcctDerRule_28(
26337 p_application_id => p_application_id
26338 , p_ae_header_id => l_ae_header_id
26339 , p_source_21 => p_source_21
26340 , x_transaction_coa_id => l_adr_transaction_coa_id
26341 , x_accounting_coa_id => l_adr_accounting_coa_id
26342 , x_value_type_code => l_adr_value_type_code
26343 , p_side => 'NA'
26344 );
26345
26346 xla_ae_lines_pkg.set_ccid(
26347 p_code_combination_id => l_ccid
26348 , p_value_type_code => l_adr_value_type_code
26349 , p_transaction_coa_id => l_adr_transaction_coa_id
26350 , p_accounting_coa_id => l_adr_accounting_coa_id
26351 , p_adr_code => 'AP_PMT_CASH_CLEAR'
26352 , p_adr_type_code => 'S'
26353 , p_component_type => l_component_type
26354 , p_component_code => l_component_code
26355 , p_component_type_code => l_component_type_code
26356 , p_component_appl_id => l_component_appl_id
26357 , p_amb_context_code => l_amb_context_code
26358 , p_side => 'NA'
26359 );
26360
26361
26362 --
26363 --
26364 END IF;
26365 --
26366 -- Bug 4922099
26367 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26368 (NVL(l_enc_upg_option, 'N') = 'O')
26369 ) AND
26370 (l_bflow_method_code = 'PRIOR_ENTRY')
26371 )
26372 THEN
26373 IF
26374 --
26375 1 = 2
26376 --
26377 THEN
26378 xla_accounting_err_pkg.build_message
26379 (p_appli_s_name => 'XLA'
26380 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26381 ,p_token_1 => 'LINE_NUMBER'
26385 l_component_type
26382 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26383 ,p_token_2 => 'LINE_TYPE_NAME'
26384 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26386 ,l_component_code
26387 ,l_component_type_code
26388 ,l_component_appl_id
26389 ,l_amb_context_code
26390 ,l_entity_code
26391 ,l_event_class_code
26392 )
26393 ,p_token_3 => 'OWNER'
26394 ,p_value_3 => xla_lookups_pkg.get_meaning(
26395 p_lookup_type => 'XLA_OWNER_TYPE'
26396 ,p_lookup_code => l_component_type_code
26397 )
26398 ,p_token_4 => 'PRODUCT_NAME'
26399 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26400 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26401 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26402 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26403 ,p_ae_header_id => NULL
26404 );
26405
26406 IF (C_LEVEL_ERROR>= g_log_level) THEN
26407 trace
26408 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26409 ,p_level => C_LEVEL_ERROR
26410 ,p_module => l_log_module);
26411 END IF;
26412 END IF;
26413 END IF;
26414 --
26415 --
26416 ------------------------------------------------------------------------------------------------
26417 -- 4219869 Business Flow
26418 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26419 -- Prior Entry. Currently, the following code is always generated.
26420 ------------------------------------------------------------------------------------------------
26421 XLA_AE_LINES_PKG.ValidateCurrentLine;
26422
26423 ------------------------------------------------------------------------------------
26424 -- 4219869 Business Flow
26425 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26426 ------------------------------------------------------------------------------------
26427 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26428
26429 ----------------------------------------------------------------------------------
26430 -- 4219869 Business Flow
26431 -- Update journal entry status -- Need to generate this within IF <condition>
26432 ----------------------------------------------------------------------------------
26433 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26434 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26435 ,p_balance_type_code => l_balance_type_code
26436 );
26437
26438 -------------------------------------------------------------------------------------------
26439 -- 4262811 - Generate the Accrual Reversal lines
26440 -------------------------------------------------------------------------------------------
26441 BEGIN
26442 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26443 (g_array_event(p_event_id).array_value_num('header_index'));
26444 IF l_acc_rev_flag IS NULL THEN
26445 l_acc_rev_flag := 'N';
26446 END IF;
26447 EXCEPTION
26448 WHEN OTHERS THEN
26449 l_acc_rev_flag := 'N';
26450 END;
26451 --
26452 IF (l_acc_rev_flag = 'Y') THEN
26453
26454 -- 4645092 ------------------------------------------------------------------------------
26455 -- To allow MPA report to determine if it should generate report process
26456 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26457 ------------------------------------------------------------------------------------------
26458
26459 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26460 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26461 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
26462 -- call ADRs
26463 -- Bug 4922099
26464 --
26465 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26466 (NVL(l_actual_upg_option, 'N') = 'O') OR
26467 (NVL(l_enc_upg_option, 'N') = 'O')
26468 )
26469 THEN
26470 NULL;
26471 --
26472 --
26473
26474 l_ccid := AcctDerRule_28(
26478 , x_transaction_coa_id => l_adr_transaction_coa_id
26475 p_application_id => p_application_id
26476 , p_ae_header_id => l_ae_header_id
26477 , p_source_21 => p_source_21
26479 , x_accounting_coa_id => l_adr_accounting_coa_id
26480 , x_value_type_code => l_adr_value_type_code
26481 , p_side => 'NA'
26482 );
26483
26484 xla_ae_lines_pkg.set_ccid(
26485 p_code_combination_id => l_ccid
26486 , p_value_type_code => l_adr_value_type_code
26487 , p_transaction_coa_id => l_adr_transaction_coa_id
26488 , p_accounting_coa_id => l_adr_accounting_coa_id
26489 , p_adr_code => 'AP_PMT_CASH_CLEAR'
26490 , p_adr_type_code => 'S'
26491 , p_component_type => l_component_type
26492 , p_component_code => l_component_code
26493 , p_component_type_code => l_component_type_code
26494 , p_component_appl_id => l_component_appl_id
26495 , p_amb_context_code => l_amb_context_code
26496 , p_side => 'NA'
26497 );
26498
26499
26500 --
26501 --
26502 END IF;
26503
26504 --
26505 -- Update the line information that should be overwritten
26506 --
26507 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26508 p_header_num => 1);
26509 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26510
26511 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26512
26513 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26514 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26515 END IF;
26516
26517 --
26518 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26519 --
26520 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26521 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26522 ELSE
26523 ---------------------------------------------------------------------------------------------------
26524 -- 4262811a Switch Sign
26525 ---------------------------------------------------------------------------------------------------
26526 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26527 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26528 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26529 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26530 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26531 -- 5132302
26532 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26533 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26534
26535 END IF;
26536
26537 -- 4955764
26538 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26539 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26540
26541
26542 XLA_AE_LINES_PKG.ValidateCurrentLine;
26543 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26544
26545 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26546 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26547 ,p_balance_type_code => l_balance_type_code);
26548
26549 END IF;
26550
26551 -----------------------------------------------------------------------------------------
26552 -- 4262811 Multiperiod Accounting
26553 -----------------------------------------------------------------------------------------
26554 -- No MPA option is assigned.
26555
26556
26557 END IF;
26558 END IF;
26559 --
26560
26561 --
26562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26563 trace
26564 (p_msg => 'END of AcctLineType_66'
26565 ,p_level => C_LEVEL_PROCEDURE
26566 ,p_module => l_log_module);
26567 END IF;
26568 --
26569 EXCEPTION
26570 WHEN xla_exceptions_pkg.application_exception THEN
26571 RAISE;
26572 WHEN OTHERS THEN
26573 xla_exceptions_pkg.raise_message
26574 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_66');
26575 END AcctLineType_66;
26576 --
26577
26578 ---------------------------------------
26579 --
26580 -- PRIVATE FUNCTION
26581 -- AcctLineType_67
26582 --
26583 ---------------------------------------
26584 PROCEDURE AcctLineType_67 (
26585 p_application_id IN NUMBER
26586 ,p_event_id IN NUMBER
26587 ,p_calculate_acctd_flag IN VARCHAR2
26588 ,p_calculate_g_l_flag IN VARCHAR2
26589 ,p_actual_flag IN OUT VARCHAR2
26590 ,p_balance_type_code OUT VARCHAR2
26591 ,p_gain_or_loss_ref OUT VARCHAR2
26592
26593 --Automatic Offsets Value
26594 , p_source_4 IN VARCHAR2
26598 --Bank Cash Clearing Account
26595 , p_source_4_meaning IN VARCHAR2
26596 --Payment Distribution (Payment Rate) Ledger Amount
26597 , p_source_9 IN NUMBER
26599 , p_source_21 IN NUMBER
26600 --When to Account for Payment Option
26601 , p_source_38 IN VARCHAR2
26602 --Payment Distribution Type
26603 , p_source_39 IN VARCHAR2
26604 , p_source_39_meaning IN VARCHAR2
26605 --Accounting Reversal Indicator
26606 , p_source_40 IN VARCHAR2
26607 --Payment Distribution Amount
26608 , p_source_41 IN NUMBER
26609 --Business Flow Accounts Payable Application Identifier
26610 , p_source_42 IN NUMBER
26611 --Payment Distribution Identifier
26612 , p_source_47 IN NUMBER
26613 --Distribution Link Type
26614 , p_source_48 IN VARCHAR2
26615 --Payment Currency Code
26616 , p_source_49 IN VARCHAR2
26617 --Override Accounted Amount Indicator
26618 , p_source_53 IN VARCHAR2
26619 , p_source_53_meaning IN VARCHAR2
26620 --Payment Supplier Identifier
26621 , p_source_54 IN NUMBER
26622 --Payment Supplier Site Identifier
26623 , p_source_55 IN NUMBER
26624 --Third Party Type
26625 , p_source_56 IN VARCHAR2
26626 --Payment Distribution Reversed Identifier
26627 , p_source_57 IN NUMBER
26628 --Invoice Distribution Tax Line Identifier
26629 , p_source_58 IN NUMBER
26630 --Invoice Distribution Summary Tax Line Identifier
26631 , p_source_59 IN NUMBER
26632 --Payment Type
26633 , p_source_60 IN VARCHAR2
26634 , p_source_60_meaning IN VARCHAR2
26635 --Business Flow Invoice Distribution Type
26636 , p_source_62 IN VARCHAR2
26637 --Business Flow Invoice Entity Code
26638 , p_source_63 IN VARCHAR2
26639 --Business Flow Invoice Distribution Identifier
26640 , p_source_64 IN NUMBER
26641 --Business Flow Invoice Identifier
26642 , p_source_65 IN NUMBER
26643 --Invoice Distribution Tax Distribution Identifier from Tax
26644 , p_source_66 IN NUMBER
26645 --Pooled Bank Account Option
26646 , p_source_110 IN VARCHAR2
26647 , p_source_110_meaning IN VARCHAR2
26648 --Payment Maturity Date
26649 , p_source_111 IN DATE
26650 --Payment Exchange Date
26651 , p_source_114 IN DATE
26652 --Payment Exchange Rate
26653 , p_source_115 IN NUMBER
26654 --Payment Exchange Rate Type
26655 , p_source_116 IN VARCHAR2
26656 )
26657 IS
26658
26659 l_component_type VARCHAR2(80);
26660 l_component_code VARCHAR2(30);
26661 l_component_type_code VARCHAR2(1);
26662 l_component_appl_id INTEGER;
26663 l_amb_context_code VARCHAR2(30);
26664 l_entity_code VARCHAR2(30);
26665 l_event_class_code VARCHAR2(30);
26666 l_ae_header_id NUMBER;
26667 l_event_type_code VARCHAR2(30);
26668 l_line_definition_code VARCHAR2(30);
26669 l_line_definition_owner_code VARCHAR2(1);
26670 --
26671 -- adr variables
26672 l_segment VARCHAR2(30);
26673 l_ccid NUMBER;
26674 l_adr_transaction_coa_id NUMBER;
26675 l_adr_accounting_coa_id NUMBER;
26676 l_adr_flexfield_segment_code VARCHAR2(30);
26677 l_adr_flex_value_set_id NUMBER;
26678 l_adr_value_type_code VARCHAR2(30);
26679 l_adr_value_combination_id NUMBER;
26680 l_adr_value_segment_code VARCHAR2(30);
26681
26682 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26683 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26684 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26685 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26686
26687 -- 4262811 Variables ------------------------------------------------------------------------------------------
26688 l_entered_amt_idx NUMBER;
26689 l_accted_amt_idx NUMBER;
26690 l_acc_rev_flag VARCHAR2(1);
26691 l_accrual_line_num NUMBER;
26692 l_tmp_amt NUMBER;
26693 l_acc_rev_natural_side_code VARCHAR2(1);
26694
26695 l_num_entries NUMBER;
26696 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26697 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26698 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26699 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26700 l_recog_line_1 NUMBER;
26701 l_recog_line_2 NUMBER;
26702
26703 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26704 l_bflow_applied_to_amt NUMBER; -- 5132302
26705 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26706
26707 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26708
26709 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26710 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26711
26712 ---------------------------------------------------------------------------------------------------------------
26713
26714
26715 --
26716 -- bulk performance
26717 --
26718 l_balance_type_code VARCHAR2(1);
26719 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26720 l_log_module VARCHAR2(240);
26724 --
26721
26722 --
26723 -- Upgrade strategy
26725 l_actual_upg_option VARCHAR2(1);
26726 l_enc_upg_option VARCHAR2(1);
26727
26728 --
26729 BEGIN
26730 --
26731 IF g_log_enabled THEN
26732 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
26733 END IF;
26734 --
26735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26736
26737 trace
26738 (p_msg => 'BEGIN of AcctLineType_67'
26739 ,p_level => C_LEVEL_PROCEDURE
26740 ,p_module => l_log_module);
26741
26742 END IF;
26743 --
26744 l_component_type := 'AMB_JLT';
26745 l_component_code := 'AP_CASH_CLEAR_REF_AOS_AS';
26746 l_component_type_code := 'S';
26747 l_component_appl_id := 200;
26748 l_amb_context_code := 'DEFAULT';
26749 l_entity_code := 'AP_PAYMENTS';
26750 l_event_class_code := 'REFUNDS';
26751 l_event_type_code := 'REFUNDS_ALL';
26752 l_line_definition_owner_code := 'S';
26753 l_line_definition_code := 'CASH_REFUNDS_ALL';
26754 --
26755 l_balance_type_code := 'A';
26756 l_segment := NULL;
26757 l_ccid := NULL;
26758 l_adr_transaction_coa_id := NULL;
26759 l_adr_accounting_coa_id := NULL;
26760 l_adr_flexfield_segment_code := NULL;
26761 l_adr_flex_value_set_id := NULL;
26762 l_adr_value_type_code := NULL;
26763 l_adr_value_combination_id := NULL;
26764 l_adr_value_segment_code := NULL;
26765
26766 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
26767 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
26768 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26769 l_budgetary_control_flag := 'N';
26770
26771 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26772 l_bflow_applied_to_amt := NULL; -- 5132302
26773 l_entered_amt_idx := NULL; -- 4262811
26774 l_accted_amt_idx := NULL; -- 4262811
26775 l_acc_rev_flag := NULL; -- 4262811
26776 l_accrual_line_num := NULL; -- 4262811
26777 l_tmp_amt := NULL; -- 4262811
26778 --
26779
26780 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26781 l_balance_type_code <> 'B' THEN
26782 IF NVL(p_source_38,'
26783 ') = 'ALWAYS_ALWAYS' AND
26784 (NVL(p_source_110,'
26785 ') = 'Y' AND
26786 NVL(p_source_4,'
26787 ') = 'ACCOUNT_SEGMENT_VALUE') AND
26788 p_source_111 IS NULL AND
26789 NVL(p_source_39,'
26790 ') = 'CASH' AND
26791 NVL(p_source_60,'
26792 ') = 'R'
26793 THEN
26794
26795 --
26796 XLA_AE_LINES_PKG.SetNewLine;
26797
26798 p_balance_type_code := l_balance_type_code;
26799 -- set the flag so later we will know whether the gain loss line needs to be created
26800
26801 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26802 p_actual_flag :='A';
26803 END IF;
26804
26805 --
26806 -- bulk performance
26807 --
26808 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26809 p_header_num => 0); -- 4262811
26810 --
26811 -- set accounting line options
26812 --
26813 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26814 p_natural_side_code => 'C'
26815 , p_gain_or_loss_flag => 'N'
26816 , p_gl_transfer_mode_code => 'S'
26817 , p_acct_entry_type_code => 'A'
26818 , p_switch_side_flag => 'Y'
26819 , p_merge_duplicate_code => 'A'
26820 );
26821 --
26822 l_acc_rev_natural_side_code := 'D'; -- 4262811
26823 --
26824 --
26825 -- set accounting line type info
26826 --
26827 xla_ae_lines_pkg.SetAcctLineType
26828 (p_component_type => l_component_type
26829 ,p_event_type_code => l_event_type_code
26830 ,p_line_definition_owner_code => l_line_definition_owner_code
26831 ,p_line_definition_code => l_line_definition_code
26832 ,p_accounting_line_code => l_component_code
26833 ,p_accounting_line_type_code => l_component_type_code
26834 ,p_accounting_line_appl_id => l_component_appl_id
26835 ,p_amb_context_code => l_amb_context_code
26836 ,p_entity_code => l_entity_code
26837 ,p_event_class_code => l_event_class_code);
26838 --
26839 -- set accounting class
26840 --
26841 xla_ae_lines_pkg.SetAcctClass(
26842 p_accounting_class_code => 'CASH_CLEARING'
26843 , p_ae_header_id => l_ae_header_id
26844 );
26845
26846 --
26847 -- set rounding class
26848 --
26849 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26850 'CASH_CLEARING';
26851
26852 --
26853 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26854 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26855 --
26856 -- bulk performance
26857 --
26858 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26862
26859
26860 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26861 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26863 -- 4955764
26864 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26865 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26866
26867 -- 4458381 Public Sector Enh
26868
26869 --
26870 -- set accounting attributes for the line type
26871 --
26872 l_entered_amt_idx := 9;
26873 l_accted_amt_idx := 14;
26874 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26875 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26876 l_rec_acct_attrs.array_char_value(1) := p_source_40;
26877 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26878 l_rec_acct_attrs.array_num_value(2) := p_source_42;
26879 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26880 l_rec_acct_attrs.array_char_value(3) := p_source_62;
26881 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26882 l_rec_acct_attrs.array_char_value(4) := p_source_63;
26883 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26884 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
26885 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26886 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
26887 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26888 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
26889 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26890 l_rec_acct_attrs.array_char_value(8) := p_source_48;
26891 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26892 l_rec_acct_attrs.array_num_value(9) := p_source_41;
26893 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26894 l_rec_acct_attrs.array_char_value(10) := p_source_49;
26895 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26896 l_rec_acct_attrs.array_date_value(11) := p_source_114;
26897 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26898 l_rec_acct_attrs.array_num_value(12) := p_source_115;
26899 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26900 l_rec_acct_attrs.array_char_value(13) := p_source_116;
26901 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26902 l_rec_acct_attrs.array_num_value(14) := p_source_9;
26903 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26904 l_rec_acct_attrs.array_char_value(15) := p_source_53;
26905 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26906 l_rec_acct_attrs.array_num_value(16) := p_source_54;
26907 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26908 l_rec_acct_attrs.array_num_value(17) := p_source_55;
26909 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26910 l_rec_acct_attrs.array_char_value(18) := p_source_56;
26911 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26912 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
26913 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26914 l_rec_acct_attrs.array_char_value(20) := p_source_48;
26915 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26916 l_rec_acct_attrs.array_num_value(21) := p_source_58;
26917 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26918 l_rec_acct_attrs.array_num_value(22) := p_source_66;
26919 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26920 l_rec_acct_attrs.array_num_value(23) := p_source_59;
26921
26922 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26923 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26924
26925 ---------------------------------------------------------------------------------------------------------------
26926 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26927 ---------------------------------------------------------------------------------------------------------------
26928 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26929
26930 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26931 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26932
26933 IF xla_accounting_cache_pkg.GetValueChar
26934 (p_source_code => 'LEDGER_CATEGORY_CODE'
26935 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26936 AND l_bflow_method_code = 'PRIOR_ENTRY'
26937 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26938 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26939 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26940 )
26941 THEN
26942 xla_ae_lines_pkg.BflowUpgEntry
26943 (p_business_method_code => l_bflow_method_code
26944 ,p_business_class_code => l_bflow_class_code
26945 ,p_balance_type => l_balance_type_code);
26946 ELSE
26947 NULL;
26948 XLA_AE_LINES_PKG.business_flow_validation(
26949 p_business_method_code => l_bflow_method_code
26950 ,p_business_class_code => l_bflow_class_code
26954 --
26951 ,p_inherit_description_flag => l_inherit_desc_flag);
26952 END IF;
26953
26955 -- call analytical criteria
26956 --
26957
26958 --
26959 -- call description
26960 --
26961 -- No description or it is inherited.
26962 --
26963 -- call ADRs
26964 -- Bug 4922099
26965 --
26966 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26967 (NVL(l_actual_upg_option, 'N') = 'O') OR
26968 (NVL(l_enc_upg_option, 'N') = 'O')
26969 )
26970 THEN
26971 NULL;
26972 --
26973 --
26974
26975 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
26976 p_code_combination_id => TO_NUMBER(C_NUM)
26977 , p_value_type_code => NULL
26978 , p_transaction_coa_id => null
26979 , p_accounting_coa_id => null
26980 , p_adr_code => NULL
26981 , p_adr_type_code => NULL
26982 , p_component_type => l_component_type
26983 , p_component_code => l_component_code
26984 , p_component_type_code => l_component_type_code
26985 , p_component_appl_id => l_component_appl_id
26986 , p_amb_context_code => l_amb_context_code
26987 , p_side => NULL
26988 );
26989
26990
26991 -- initialise segments
26992 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26993 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26994 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26995 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26996 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26997 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26998 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26999 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27000 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27001 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27002 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27003 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27004 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27005 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27006 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27007 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27008 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27009 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27010 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27011 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27012 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27013 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27014 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27015 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27016 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27017 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27018 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27019 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27020 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27021 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27022 --
27023
27024 --
27025
27026
27027 l_segment := AcctDerRule_11(
27028 p_application_id => p_application_id
27029 , p_ae_header_id => l_ae_header_id
27030 , p_source_21 => p_source_21
27031 , x_transaction_coa_id => l_adr_transaction_coa_id
27032 , x_accounting_coa_id => l_adr_accounting_coa_id
27033 , x_flexfield_segment_code => l_adr_flexfield_segment_code
27034 , x_flex_value_set_id => l_adr_flex_value_set_id
27035 , x_value_type_code => l_adr_value_type_code
27036 , x_value_combination_id => l_adr_value_combination_id
27037 , x_value_segment_code => l_adr_value_segment_code
27038 , p_side => 'NA'
27039 , p_override_seg_flag => 'Y'
27040 );
27041
27042 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
27043
27044 xla_ae_lines_pkg.set_segment(
27045 p_to_segment_code => 'GL_ACCOUNT'
27046 , p_segment_value => l_segment
27047 , p_from_segment_code => l_adr_value_segment_code
27048 , p_from_combination_id => l_adr_value_combination_id
27049 , p_value_type_code => l_adr_value_type_code
27050 , p_transaction_coa_id => l_adr_transaction_coa_id
27054 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27051 , p_accounting_coa_id => l_adr_accounting_coa_id
27052 , p_flexfield_segment_code => l_adr_flexfield_segment_code
27053 , p_flex_value_set_id => l_adr_flex_value_set_id
27055 , p_adr_type_code => 'S'
27056 , p_component_type => l_component_type
27057 , p_component_code => l_component_code
27058 , p_component_type_code => l_component_type_code
27059 , p_component_appl_id => l_component_appl_id
27060 , p_amb_context_code => l_amb_context_code
27061 , p_entity_code => 'AP_PAYMENTS'
27062 , p_event_class_code => 'REFUNDS'
27063 , p_side => 'NA'
27064 );
27065
27066 END IF;
27067
27068 --
27069 --
27070 END IF;
27071 --
27072 -- Bug 4922099
27073 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27074 (NVL(l_enc_upg_option, 'N') = 'O')
27075 ) AND
27076 (l_bflow_method_code = 'PRIOR_ENTRY')
27077 )
27078 THEN
27079 IF
27080 --
27081 1 = 2
27082 --
27083 THEN
27084 xla_accounting_err_pkg.build_message
27085 (p_appli_s_name => 'XLA'
27086 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27087 ,p_token_1 => 'LINE_NUMBER'
27088 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27089 ,p_token_2 => 'LINE_TYPE_NAME'
27090 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27091 l_component_type
27092 ,l_component_code
27093 ,l_component_type_code
27094 ,l_component_appl_id
27095 ,l_amb_context_code
27096 ,l_entity_code
27097 ,l_event_class_code
27098 )
27099 ,p_token_3 => 'OWNER'
27100 ,p_value_3 => xla_lookups_pkg.get_meaning(
27101 p_lookup_type => 'XLA_OWNER_TYPE'
27102 ,p_lookup_code => l_component_type_code
27103 )
27104 ,p_token_4 => 'PRODUCT_NAME'
27105 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27106 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27107 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27108 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27109 ,p_ae_header_id => NULL
27110 );
27111
27112 IF (C_LEVEL_ERROR>= g_log_level) THEN
27113 trace
27114 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27115 ,p_level => C_LEVEL_ERROR
27116 ,p_module => l_log_module);
27117 END IF;
27118 END IF;
27119 END IF;
27120 --
27121 --
27122 ------------------------------------------------------------------------------------------------
27123 -- 4219869 Business Flow
27124 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27125 -- Prior Entry. Currently, the following code is always generated.
27126 ------------------------------------------------------------------------------------------------
27127 XLA_AE_LINES_PKG.ValidateCurrentLine;
27128
27129 ------------------------------------------------------------------------------------
27130 -- 4219869 Business Flow
27131 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27132 ------------------------------------------------------------------------------------
27133 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27134
27135 ----------------------------------------------------------------------------------
27136 -- 4219869 Business Flow
27137 -- Update journal entry status -- Need to generate this within IF <condition>
27138 ----------------------------------------------------------------------------------
27139 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27140 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27141 ,p_balance_type_code => l_balance_type_code
27142 );
27143
27144 -------------------------------------------------------------------------------------------
27145 -- 4262811 - Generate the Accrual Reversal lines
27149 (g_array_event(p_event_id).array_value_num('header_index'));
27146 -------------------------------------------------------------------------------------------
27147 BEGIN
27148 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27150 IF l_acc_rev_flag IS NULL THEN
27151 l_acc_rev_flag := 'N';
27152 END IF;
27153 EXCEPTION
27154 WHEN OTHERS THEN
27155 l_acc_rev_flag := 'N';
27156 END;
27157 --
27158 IF (l_acc_rev_flag = 'Y') THEN
27159
27160 -- 4645092 ------------------------------------------------------------------------------
27161 -- To allow MPA report to determine if it should generate report process
27162 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27163 ------------------------------------------------------------------------------------------
27164
27165 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27166 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27167 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27168 -- call ADRs
27169 -- Bug 4922099
27170 --
27171 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27172 (NVL(l_actual_upg_option, 'N') = 'O') OR
27173 (NVL(l_enc_upg_option, 'N') = 'O')
27174 )
27175 THEN
27176 NULL;
27177 --
27178 --
27179
27180 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
27181 p_code_combination_id => TO_NUMBER(C_NUM)
27182 , p_value_type_code => NULL
27183 , p_transaction_coa_id => null
27184 , p_accounting_coa_id => null
27185 , p_adr_code => NULL
27186 , p_adr_type_code => NULL
27187 , p_component_type => l_component_type
27188 , p_component_code => l_component_code
27189 , p_component_type_code => l_component_type_code
27190 , p_component_appl_id => l_component_appl_id
27191 , p_amb_context_code => l_amb_context_code
27192 , p_side => NULL
27193 );
27194
27195
27196 -- initialise segments
27197 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27198 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27199 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27200 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27201 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27202 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27203 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27204 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27205 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27206 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27207 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27208 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27209 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27210 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27211 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27212 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27213 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27214 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27215 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27216 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27217 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27218 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27219 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27220 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27221 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27222 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27223 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27224 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27225 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27226 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27227 --
27228
27229 --
27230
27231
27232 l_segment := AcctDerRule_11(
27233 p_application_id => p_application_id
27234 , p_ae_header_id => l_ae_header_id
27235 , p_source_21 => p_source_21
27236 , x_transaction_coa_id => l_adr_transaction_coa_id
27237 , x_accounting_coa_id => l_adr_accounting_coa_id
27238 , x_flexfield_segment_code => l_adr_flexfield_segment_code
27239 , x_flex_value_set_id => l_adr_flex_value_set_id
27240 , x_value_type_code => l_adr_value_type_code
27241 , x_value_combination_id => l_adr_value_combination_id
27245 );
27242 , x_value_segment_code => l_adr_value_segment_code
27243 , p_side => 'NA'
27244 , p_override_seg_flag => 'Y'
27246
27247 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
27248
27249 xla_ae_lines_pkg.set_segment(
27250 p_to_segment_code => 'GL_ACCOUNT'
27251 , p_segment_value => l_segment
27252 , p_from_segment_code => l_adr_value_segment_code
27253 , p_from_combination_id => l_adr_value_combination_id
27254 , p_value_type_code => l_adr_value_type_code
27255 , p_transaction_coa_id => l_adr_transaction_coa_id
27256 , p_accounting_coa_id => l_adr_accounting_coa_id
27257 , p_flexfield_segment_code => l_adr_flexfield_segment_code
27258 , p_flex_value_set_id => l_adr_flex_value_set_id
27259 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27260 , p_adr_type_code => 'S'
27261 , p_component_type => l_component_type
27262 , p_component_code => l_component_code
27263 , p_component_type_code => l_component_type_code
27264 , p_component_appl_id => l_component_appl_id
27265 , p_amb_context_code => l_amb_context_code
27266 , p_entity_code => 'AP_PAYMENTS'
27267 , p_event_class_code => 'REFUNDS'
27268 , p_side => 'NA'
27269 );
27270
27271 END IF;
27272
27273 --
27274 --
27275 END IF;
27276
27277 --
27278 -- Update the line information that should be overwritten
27279 --
27280 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27281 p_header_num => 1);
27282 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27283
27284 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27285
27286 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27287 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27288 END IF;
27289
27290 --
27291 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27292 --
27293 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27294 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27295 ELSE
27296 ---------------------------------------------------------------------------------------------------
27297 -- 4262811a Switch Sign
27298 ---------------------------------------------------------------------------------------------------
27299 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27300 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27301 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27302 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27303 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27304 -- 5132302
27305 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27306 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27307
27308 END IF;
27309
27310 -- 4955764
27311 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27312 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27313
27314
27315 XLA_AE_LINES_PKG.ValidateCurrentLine;
27316 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27317
27318 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27319 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27320 ,p_balance_type_code => l_balance_type_code);
27321
27322 END IF;
27323
27324 -----------------------------------------------------------------------------------------
27325 -- 4262811 Multiperiod Accounting
27326 -----------------------------------------------------------------------------------------
27327 -- No MPA option is assigned.
27328
27329
27330 END IF;
27331 END IF;
27332 --
27333
27334 --
27335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27336 trace
27337 (p_msg => 'END of AcctLineType_67'
27338 ,p_level => C_LEVEL_PROCEDURE
27339 ,p_module => l_log_module);
27340 END IF;
27341 --
27342 EXCEPTION
27343 WHEN xla_exceptions_pkg.application_exception THEN
27344 RAISE;
27345 WHEN OTHERS THEN
27346 xla_exceptions_pkg.raise_message
27347 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_67');
27348 END AcctLineType_67;
27349 --
27350
27351 ---------------------------------------
27352 --
27353 -- PRIVATE FUNCTION
27354 -- AcctLineType_68
27355 --
27356 ---------------------------------------
27357 PROCEDURE AcctLineType_68 (
27358 p_application_id IN NUMBER
27359 ,p_event_id IN NUMBER
27360 ,p_calculate_acctd_flag IN VARCHAR2
27364 ,p_gain_or_loss_ref OUT VARCHAR2
27361 ,p_calculate_g_l_flag IN VARCHAR2
27362 ,p_actual_flag IN OUT VARCHAR2
27363 ,p_balance_type_code OUT VARCHAR2
27365
27366 --Automatic Offsets Value
27367 , p_source_4 IN VARCHAR2
27368 , p_source_4_meaning IN VARCHAR2
27369 --Payment Distribution (Payment Rate) Ledger Amount
27370 , p_source_9 IN NUMBER
27371 --Bank Cash Clearing Account
27372 , p_source_21 IN NUMBER
27373 --When to Account for Payment Option
27374 , p_source_38 IN VARCHAR2
27375 --Payment Distribution Type
27376 , p_source_39 IN VARCHAR2
27377 , p_source_39_meaning IN VARCHAR2
27378 --Accounting Reversal Indicator
27379 , p_source_40 IN VARCHAR2
27380 --Payment Distribution Amount
27381 , p_source_41 IN NUMBER
27382 --Business Flow Accounts Payable Application Identifier
27383 , p_source_42 IN NUMBER
27384 --Payment Distribution Identifier
27385 , p_source_47 IN NUMBER
27386 --Distribution Link Type
27387 , p_source_48 IN VARCHAR2
27388 --Payment Currency Code
27389 , p_source_49 IN VARCHAR2
27390 --Override Accounted Amount Indicator
27391 , p_source_53 IN VARCHAR2
27392 , p_source_53_meaning IN VARCHAR2
27393 --Payment Supplier Identifier
27394 , p_source_54 IN NUMBER
27395 --Payment Supplier Site Identifier
27396 , p_source_55 IN NUMBER
27397 --Third Party Type
27398 , p_source_56 IN VARCHAR2
27399 --Payment Distribution Reversed Identifier
27400 , p_source_57 IN NUMBER
27401 --Invoice Distribution Tax Line Identifier
27402 , p_source_58 IN NUMBER
27403 --Invoice Distribution Summary Tax Line Identifier
27404 , p_source_59 IN NUMBER
27405 --Payment Type
27406 , p_source_60 IN VARCHAR2
27407 , p_source_60_meaning IN VARCHAR2
27408 --Business Flow Invoice Distribution Type
27409 , p_source_62 IN VARCHAR2
27410 --Business Flow Invoice Entity Code
27411 , p_source_63 IN VARCHAR2
27412 --Business Flow Invoice Distribution Identifier
27413 , p_source_64 IN NUMBER
27414 --Business Flow Invoice Identifier
27415 , p_source_65 IN NUMBER
27416 --Invoice Distribution Tax Distribution Identifier from Tax
27417 , p_source_66 IN NUMBER
27418 --Pooled Bank Account Option
27419 , p_source_110 IN VARCHAR2
27420 , p_source_110_meaning IN VARCHAR2
27421 --Payment Maturity Date
27422 , p_source_111 IN DATE
27423 --Payment Exchange Date
27424 , p_source_114 IN DATE
27425 --Payment Exchange Rate
27426 , p_source_115 IN NUMBER
27427 --Payment Exchange Rate Type
27428 , p_source_116 IN VARCHAR2
27429 )
27430 IS
27431
27432 l_component_type VARCHAR2(80);
27433 l_component_code VARCHAR2(30);
27434 l_component_type_code VARCHAR2(1);
27435 l_component_appl_id INTEGER;
27436 l_amb_context_code VARCHAR2(30);
27437 l_entity_code VARCHAR2(30);
27438 l_event_class_code VARCHAR2(30);
27439 l_ae_header_id NUMBER;
27440 l_event_type_code VARCHAR2(30);
27441 l_line_definition_code VARCHAR2(30);
27442 l_line_definition_owner_code VARCHAR2(1);
27443 --
27444 -- adr variables
27445 l_segment VARCHAR2(30);
27446 l_ccid NUMBER;
27447 l_adr_transaction_coa_id NUMBER;
27448 l_adr_accounting_coa_id NUMBER;
27449 l_adr_flexfield_segment_code VARCHAR2(30);
27450 l_adr_flex_value_set_id NUMBER;
27451 l_adr_value_type_code VARCHAR2(30);
27452 l_adr_value_combination_id NUMBER;
27453 l_adr_value_segment_code VARCHAR2(30);
27454
27455 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27456 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27457 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27458 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27459
27460 -- 4262811 Variables ------------------------------------------------------------------------------------------
27461 l_entered_amt_idx NUMBER;
27462 l_accted_amt_idx NUMBER;
27463 l_acc_rev_flag VARCHAR2(1);
27464 l_accrual_line_num NUMBER;
27465 l_tmp_amt NUMBER;
27466 l_acc_rev_natural_side_code VARCHAR2(1);
27467
27468 l_num_entries NUMBER;
27469 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27470 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27471 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27472 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27473 l_recog_line_1 NUMBER;
27474 l_recog_line_2 NUMBER;
27475
27476 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27477 l_bflow_applied_to_amt NUMBER; -- 5132302
27478 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27479
27480 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27481
27482 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27483 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27484
27488 --
27485 ---------------------------------------------------------------------------------------------------------------
27486
27487
27489 -- bulk performance
27490 --
27491 l_balance_type_code VARCHAR2(1);
27492 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27493 l_log_module VARCHAR2(240);
27494
27495 --
27496 -- Upgrade strategy
27497 --
27498 l_actual_upg_option VARCHAR2(1);
27499 l_enc_upg_option VARCHAR2(1);
27500
27501 --
27502 BEGIN
27503 --
27504 IF g_log_enabled THEN
27505 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
27506 END IF;
27507 --
27508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27509
27510 trace
27511 (p_msg => 'BEGIN of AcctLineType_68'
27512 ,p_level => C_LEVEL_PROCEDURE
27513 ,p_module => l_log_module);
27514
27515 END IF;
27516 --
27517 l_component_type := 'AMB_JLT';
27518 l_component_code := 'AP_CASH_CLEAR_REF_AOS_BS';
27519 l_component_type_code := 'S';
27520 l_component_appl_id := 200;
27521 l_amb_context_code := 'DEFAULT';
27522 l_entity_code := 'AP_PAYMENTS';
27523 l_event_class_code := 'REFUNDS';
27524 l_event_type_code := 'REFUNDS_ALL';
27525 l_line_definition_owner_code := 'S';
27526 l_line_definition_code := 'CASH_REFUNDS_ALL';
27527 --
27528 l_balance_type_code := 'A';
27529 l_segment := NULL;
27530 l_ccid := NULL;
27531 l_adr_transaction_coa_id := NULL;
27532 l_adr_accounting_coa_id := NULL;
27533 l_adr_flexfield_segment_code := NULL;
27534 l_adr_flex_value_set_id := NULL;
27535 l_adr_value_type_code := NULL;
27536 l_adr_value_combination_id := NULL;
27537 l_adr_value_segment_code := NULL;
27538
27539 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
27540 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
27541 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27542 l_budgetary_control_flag := 'N';
27543
27544 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27545 l_bflow_applied_to_amt := NULL; -- 5132302
27546 l_entered_amt_idx := NULL; -- 4262811
27547 l_accted_amt_idx := NULL; -- 4262811
27548 l_acc_rev_flag := NULL; -- 4262811
27549 l_accrual_line_num := NULL; -- 4262811
27550 l_tmp_amt := NULL; -- 4262811
27551 --
27552
27553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27554 l_balance_type_code <> 'B' THEN
27555 IF NVL(p_source_38,'
27556 ') = 'ALWAYS_ALWAYS' AND
27557 (NVL(p_source_110,'
27558 ') = 'Y' AND
27559 NVL(p_source_4,'
27560 ') = 'BALANCING_SEGMENT') AND
27561 p_source_111 IS NULL AND
27562 NVL(p_source_39,'
27563 ') = 'CASH' AND
27564 NVL(p_source_60,'
27565 ') = 'R'
27566 THEN
27567
27568 --
27569 XLA_AE_LINES_PKG.SetNewLine;
27570
27571 p_balance_type_code := l_balance_type_code;
27572 -- set the flag so later we will know whether the gain loss line needs to be created
27573
27574 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27575 p_actual_flag :='A';
27576 END IF;
27577
27578 --
27579 -- bulk performance
27580 --
27581 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27582 p_header_num => 0); -- 4262811
27583 --
27584 -- set accounting line options
27585 --
27586 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27587 p_natural_side_code => 'C'
27588 , p_gain_or_loss_flag => 'N'
27589 , p_gl_transfer_mode_code => 'S'
27590 , p_acct_entry_type_code => 'A'
27591 , p_switch_side_flag => 'Y'
27592 , p_merge_duplicate_code => 'A'
27593 );
27594 --
27595 l_acc_rev_natural_side_code := 'D'; -- 4262811
27596 --
27597 --
27598 -- set accounting line type info
27599 --
27600 xla_ae_lines_pkg.SetAcctLineType
27601 (p_component_type => l_component_type
27602 ,p_event_type_code => l_event_type_code
27603 ,p_line_definition_owner_code => l_line_definition_owner_code
27604 ,p_line_definition_code => l_line_definition_code
27605 ,p_accounting_line_code => l_component_code
27606 ,p_accounting_line_type_code => l_component_type_code
27607 ,p_accounting_line_appl_id => l_component_appl_id
27608 ,p_amb_context_code => l_amb_context_code
27609 ,p_entity_code => l_entity_code
27610 ,p_event_class_code => l_event_class_code);
27611 --
27612 -- set accounting class
27613 --
27614 xla_ae_lines_pkg.SetAcctClass(
27615 p_accounting_class_code => 'CASH_CLEARING'
27616 , p_ae_header_id => l_ae_header_id
27617 );
27618
27619 --
27620 -- set rounding class
27621 --
27622 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27623 'CASH_CLEARING';
27624
27625 --
27629 -- bulk performance
27626 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27627 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27628 --
27630 --
27631 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27632
27633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27634 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27635
27636 -- 4955764
27637 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27638 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27639
27640 -- 4458381 Public Sector Enh
27641
27642 --
27643 -- set accounting attributes for the line type
27644 --
27645 l_entered_amt_idx := 9;
27646 l_accted_amt_idx := 14;
27647 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27648 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27649 l_rec_acct_attrs.array_char_value(1) := p_source_40;
27650 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
27651 l_rec_acct_attrs.array_num_value(2) := p_source_42;
27652 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27653 l_rec_acct_attrs.array_char_value(3) := p_source_62;
27654 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
27655 l_rec_acct_attrs.array_char_value(4) := p_source_63;
27656 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
27657 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
27658 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27659 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
27660 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
27661 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
27662 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
27663 l_rec_acct_attrs.array_char_value(8) := p_source_48;
27664 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
27665 l_rec_acct_attrs.array_num_value(9) := p_source_41;
27666 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
27667 l_rec_acct_attrs.array_char_value(10) := p_source_49;
27668 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
27669 l_rec_acct_attrs.array_date_value(11) := p_source_114;
27670 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
27671 l_rec_acct_attrs.array_num_value(12) := p_source_115;
27672 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
27673 l_rec_acct_attrs.array_char_value(13) := p_source_116;
27674 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
27675 l_rec_acct_attrs.array_num_value(14) := p_source_9;
27676 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
27677 l_rec_acct_attrs.array_char_value(15) := p_source_53;
27678 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
27679 l_rec_acct_attrs.array_num_value(16) := p_source_54;
27680 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
27681 l_rec_acct_attrs.array_num_value(17) := p_source_55;
27682 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
27683 l_rec_acct_attrs.array_char_value(18) := p_source_56;
27684 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
27685 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
27686 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
27687 l_rec_acct_attrs.array_char_value(20) := p_source_48;
27688 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
27689 l_rec_acct_attrs.array_num_value(21) := p_source_58;
27690 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
27691 l_rec_acct_attrs.array_num_value(22) := p_source_66;
27692 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
27693 l_rec_acct_attrs.array_num_value(23) := p_source_59;
27694
27695 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27696 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27697
27698 ---------------------------------------------------------------------------------------------------------------
27699 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27700 ---------------------------------------------------------------------------------------------------------------
27701 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27702
27703 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27704 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27705
27706 IF xla_accounting_cache_pkg.GetValueChar
27707 (p_source_code => 'LEDGER_CATEGORY_CODE'
27708 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27709 AND l_bflow_method_code = 'PRIOR_ENTRY'
27710 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27711 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27712 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27713 )
27714 THEN
27718 ,p_balance_type => l_balance_type_code);
27715 xla_ae_lines_pkg.BflowUpgEntry
27716 (p_business_method_code => l_bflow_method_code
27717 ,p_business_class_code => l_bflow_class_code
27719 ELSE
27720 NULL;
27721 XLA_AE_LINES_PKG.business_flow_validation(
27722 p_business_method_code => l_bflow_method_code
27723 ,p_business_class_code => l_bflow_class_code
27724 ,p_inherit_description_flag => l_inherit_desc_flag);
27725 END IF;
27726
27727 --
27728 -- call analytical criteria
27729 --
27730
27731 --
27732 -- call description
27733 --
27734 -- No description or it is inherited.
27735 --
27736 -- call ADRs
27737 -- Bug 4922099
27738 --
27739 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27740 (NVL(l_actual_upg_option, 'N') = 'O') OR
27741 (NVL(l_enc_upg_option, 'N') = 'O')
27742 )
27743 THEN
27744 NULL;
27745 --
27746 --
27747
27748 l_ccid := AcctDerRule_28(
27749 p_application_id => p_application_id
27750 , p_ae_header_id => l_ae_header_id
27751 , p_source_21 => p_source_21
27752 , x_transaction_coa_id => l_adr_transaction_coa_id
27753 , x_accounting_coa_id => l_adr_accounting_coa_id
27754 , x_value_type_code => l_adr_value_type_code
27755 , p_side => 'NA'
27756 );
27757
27758 xla_ae_lines_pkg.set_ccid(
27759 p_code_combination_id => l_ccid
27760 , p_value_type_code => l_adr_value_type_code
27761 , p_transaction_coa_id => l_adr_transaction_coa_id
27762 , p_accounting_coa_id => l_adr_accounting_coa_id
27763 , p_adr_code => 'AP_PMT_CASH_CLEAR'
27764 , p_adr_type_code => 'S'
27765 , p_component_type => l_component_type
27766 , p_component_code => l_component_code
27767 , p_component_type_code => l_component_type_code
27768 , p_component_appl_id => l_component_appl_id
27769 , p_amb_context_code => l_amb_context_code
27770 , p_side => 'NA'
27771 );
27772
27773
27774 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
27775 p_to_segment_code => 'GL_BALANCING'
27776 , p_segment_value => C_CHAR
27777 , p_from_segment_code => NULL
27778 , p_from_combination_id => NULL
27779 , p_value_type_code => NULL
27780 , p_transaction_coa_id => null
27781 , p_accounting_coa_id => null
27782 , p_flexfield_segment_code => NULL
27783 , p_flex_value_set_id => NULL
27784 , p_adr_code => NULL
27785 , p_adr_type_code => NULL
27786 , p_component_type => l_component_type
27787 , p_component_code => l_component_code
27788 , p_component_type_code => l_component_type_code
27789 , p_component_appl_id => l_component_appl_id
27790 , p_amb_context_code => l_amb_context_code
27791 , p_entity_code => 'AP_PAYMENTS'
27792 , p_event_class_code => 'REFUNDS'
27793 , p_side => 'NA'
27794 );
27795 --
27796
27797
27798 --
27799 --
27800 END IF;
27801 --
27802 -- Bug 4922099
27803 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27804 (NVL(l_enc_upg_option, 'N') = 'O')
27805 ) AND
27806 (l_bflow_method_code = 'PRIOR_ENTRY')
27807 )
27808 THEN
27809 IF
27810 --
27811 1 = 2
27812 --
27813 THEN
27814 xla_accounting_err_pkg.build_message
27815 (p_appli_s_name => 'XLA'
27816 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27817 ,p_token_1 => 'LINE_NUMBER'
27818 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27819 ,p_token_2 => 'LINE_TYPE_NAME'
27820 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27821 l_component_type
27822 ,l_component_code
27823 ,l_component_type_code
27824 ,l_component_appl_id
27825 ,l_amb_context_code
27826 ,l_entity_code
27827 ,l_event_class_code
27828 )
27829 ,p_token_3 => 'OWNER'
27830 ,p_value_3 => xla_lookups_pkg.get_meaning(
27831 p_lookup_type => 'XLA_OWNER_TYPE'
27835 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27832 ,p_lookup_code => l_component_type_code
27833 )
27834 ,p_token_4 => 'PRODUCT_NAME'
27836 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27837 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27838 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27839 ,p_ae_header_id => NULL
27840 );
27841
27842 IF (C_LEVEL_ERROR>= g_log_level) THEN
27843 trace
27844 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27845 ,p_level => C_LEVEL_ERROR
27846 ,p_module => l_log_module);
27847 END IF;
27848 END IF;
27849 END IF;
27850 --
27851 --
27852 ------------------------------------------------------------------------------------------------
27853 -- 4219869 Business Flow
27854 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27855 -- Prior Entry. Currently, the following code is always generated.
27856 ------------------------------------------------------------------------------------------------
27857 XLA_AE_LINES_PKG.ValidateCurrentLine;
27858
27859 ------------------------------------------------------------------------------------
27860 -- 4219869 Business Flow
27861 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27862 ------------------------------------------------------------------------------------
27863 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27864
27865 ----------------------------------------------------------------------------------
27866 -- 4219869 Business Flow
27867 -- Update journal entry status -- Need to generate this within IF <condition>
27868 ----------------------------------------------------------------------------------
27869 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27870 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27871 ,p_balance_type_code => l_balance_type_code
27872 );
27873
27874 -------------------------------------------------------------------------------------------
27875 -- 4262811 - Generate the Accrual Reversal lines
27876 -------------------------------------------------------------------------------------------
27877 BEGIN
27878 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27879 (g_array_event(p_event_id).array_value_num('header_index'));
27880 IF l_acc_rev_flag IS NULL THEN
27881 l_acc_rev_flag := 'N';
27882 END IF;
27883 EXCEPTION
27884 WHEN OTHERS THEN
27885 l_acc_rev_flag := 'N';
27886 END;
27887 --
27888 IF (l_acc_rev_flag = 'Y') THEN
27889
27890 -- 4645092 ------------------------------------------------------------------------------
27891 -- To allow MPA report to determine if it should generate report process
27892 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27893 ------------------------------------------------------------------------------------------
27894
27895 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27896 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27897 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27898 -- call ADRs
27899 -- Bug 4922099
27900 --
27901 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27902 (NVL(l_actual_upg_option, 'N') = 'O') OR
27903 (NVL(l_enc_upg_option, 'N') = 'O')
27904 )
27905 THEN
27906 NULL;
27907 --
27908 --
27909
27910 l_ccid := AcctDerRule_28(
27911 p_application_id => p_application_id
27912 , p_ae_header_id => l_ae_header_id
27913 , p_source_21 => p_source_21
27914 , x_transaction_coa_id => l_adr_transaction_coa_id
27915 , x_accounting_coa_id => l_adr_accounting_coa_id
27916 , x_value_type_code => l_adr_value_type_code
27917 , p_side => 'NA'
27918 );
27919
27920 xla_ae_lines_pkg.set_ccid(
27921 p_code_combination_id => l_ccid
27922 , p_value_type_code => l_adr_value_type_code
27923 , p_transaction_coa_id => l_adr_transaction_coa_id
27924 , p_accounting_coa_id => l_adr_accounting_coa_id
27925 , p_adr_code => 'AP_PMT_CASH_CLEAR'
27926 , p_adr_type_code => 'S'
27927 , p_component_type => l_component_type
27928 , p_component_code => l_component_code
27929 , p_component_type_code => l_component_type_code
27930 , p_component_appl_id => l_component_appl_id
27931 , p_amb_context_code => l_amb_context_code
27932 , p_side => 'NA'
27933 );
27934
27935
27936 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
27937 p_to_segment_code => 'GL_BALANCING'
27941 , p_value_type_code => NULL
27938 , p_segment_value => C_CHAR
27939 , p_from_segment_code => NULL
27940 , p_from_combination_id => NULL
27942 , p_transaction_coa_id => null
27943 , p_accounting_coa_id => null
27944 , p_flexfield_segment_code => NULL
27945 , p_flex_value_set_id => NULL
27946 , p_adr_code => NULL
27947 , p_adr_type_code => NULL
27948 , p_component_type => l_component_type
27949 , p_component_code => l_component_code
27950 , p_component_type_code => l_component_type_code
27951 , p_component_appl_id => l_component_appl_id
27952 , p_amb_context_code => l_amb_context_code
27953 , p_entity_code => 'AP_PAYMENTS'
27954 , p_event_class_code => 'REFUNDS'
27955 , p_side => 'NA'
27956 );
27957 --
27958
27959
27960 --
27961 --
27962 END IF;
27963
27964 --
27965 -- Update the line information that should be overwritten
27966 --
27967 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27968 p_header_num => 1);
27969 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27970
27971 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27972
27973 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27974 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27975 END IF;
27976
27977 --
27978 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27979 --
27980 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27981 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27982 ELSE
27983 ---------------------------------------------------------------------------------------------------
27984 -- 4262811a Switch Sign
27985 ---------------------------------------------------------------------------------------------------
27986 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27987 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27988 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27989 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27990 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27991 -- 5132302
27992 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27993 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27994
27995 END IF;
27996
27997 -- 4955764
27998 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27999 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28000
28001
28002 XLA_AE_LINES_PKG.ValidateCurrentLine;
28003 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28004
28005 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28006 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28007 ,p_balance_type_code => l_balance_type_code);
28008
28009 END IF;
28010
28011 -----------------------------------------------------------------------------------------
28012 -- 4262811 Multiperiod Accounting
28013 -----------------------------------------------------------------------------------------
28014 -- No MPA option is assigned.
28015
28016
28017 END IF;
28018 END IF;
28019 --
28020
28021 --
28022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28023 trace
28024 (p_msg => 'END of AcctLineType_68'
28025 ,p_level => C_LEVEL_PROCEDURE
28026 ,p_module => l_log_module);
28027 END IF;
28028 --
28029 EXCEPTION
28030 WHEN xla_exceptions_pkg.application_exception THEN
28031 RAISE;
28032 WHEN OTHERS THEN
28033 xla_exceptions_pkg.raise_message
28034 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_68');
28035 END AcctLineType_68;
28036 --
28037
28038 ---------------------------------------
28039 --
28040 -- PRIVATE FUNCTION
28041 -- AcctLineType_69
28042 --
28043 ---------------------------------------
28044 PROCEDURE AcctLineType_69 (
28045 p_application_id IN NUMBER
28046 ,p_event_id IN NUMBER
28047 ,p_calculate_acctd_flag IN VARCHAR2
28048 ,p_calculate_g_l_flag IN VARCHAR2
28049 ,p_actual_flag IN OUT VARCHAR2
28050 ,p_balance_type_code OUT VARCHAR2
28051 ,p_gain_or_loss_ref OUT VARCHAR2
28052
28053 --Bank Cash Account
28054 , p_source_1 IN NUMBER
28055 --Payment Distribution (Payment Rate) Ledger Amount
28056 , p_source_9 IN NUMBER
28057 --Automatic Offsets Flag
28058 , p_source_30 IN VARCHAR2
28059 , p_source_30_meaning IN VARCHAR2
28060 --When to Account for Payment Option
28061 , p_source_38 IN VARCHAR2
28062 --Payment Distribution Type
28066 , p_source_40 IN VARCHAR2
28063 , p_source_39 IN VARCHAR2
28064 , p_source_39_meaning IN VARCHAR2
28065 --Accounting Reversal Indicator
28067 --Payment Distribution Amount
28068 , p_source_41 IN NUMBER
28069 --Business Flow Accounts Payable Application Identifier
28070 , p_source_42 IN NUMBER
28071 --Payment Distribution Identifier
28072 , p_source_47 IN NUMBER
28073 --Distribution Link Type
28074 , p_source_48 IN VARCHAR2
28075 --Payment Currency Code
28076 , p_source_49 IN VARCHAR2
28077 --Override Accounted Amount Indicator
28078 , p_source_53 IN VARCHAR2
28079 , p_source_53_meaning IN VARCHAR2
28080 --Payment Supplier Identifier
28081 , p_source_54 IN NUMBER
28082 --Payment Supplier Site Identifier
28083 , p_source_55 IN NUMBER
28084 --Third Party Type
28085 , p_source_56 IN VARCHAR2
28086 --Payment Distribution Reversed Identifier
28087 , p_source_57 IN NUMBER
28088 --Invoice Distribution Tax Line Identifier
28089 , p_source_58 IN NUMBER
28090 --Invoice Distribution Summary Tax Line Identifier
28091 , p_source_59 IN NUMBER
28092 --Payment Type
28093 , p_source_60 IN VARCHAR2
28094 , p_source_60_meaning IN VARCHAR2
28095 --Invoice Distribution Amount of the Payment Distribution
28096 , p_source_61 IN NUMBER
28097 --Business Flow Invoice Distribution Type
28098 , p_source_62 IN VARCHAR2
28099 --Business Flow Invoice Entity Code
28100 , p_source_63 IN VARCHAR2
28101 --Business Flow Invoice Distribution Identifier
28102 , p_source_64 IN NUMBER
28103 --Business Flow Invoice Identifier
28104 , p_source_65 IN NUMBER
28105 --Invoice Distribution Tax Distribution Identifier from Tax
28106 , p_source_66 IN NUMBER
28107 --Pooled Bank Account Option
28108 , p_source_110 IN VARCHAR2
28109 , p_source_110_meaning IN VARCHAR2
28110 --Payment Maturity Date
28111 , p_source_111 IN DATE
28112 --Payment Processing Type
28113 , p_source_113 IN VARCHAR2
28114 --Payment Exchange Date
28115 , p_source_114 IN DATE
28116 --Payment Exchange Rate
28117 , p_source_115 IN NUMBER
28118 --Payment Exchange Rate Type
28119 , p_source_116 IN VARCHAR2
28120 )
28121 IS
28122
28123 l_component_type VARCHAR2(80);
28124 l_component_code VARCHAR2(30);
28125 l_component_type_code VARCHAR2(1);
28126 l_component_appl_id INTEGER;
28127 l_amb_context_code VARCHAR2(30);
28128 l_entity_code VARCHAR2(30);
28129 l_event_class_code VARCHAR2(30);
28130 l_ae_header_id NUMBER;
28131 l_event_type_code VARCHAR2(30);
28132 l_line_definition_code VARCHAR2(30);
28133 l_line_definition_owner_code VARCHAR2(1);
28134 --
28135 -- adr variables
28136 l_segment VARCHAR2(30);
28137 l_ccid NUMBER;
28138 l_adr_transaction_coa_id NUMBER;
28139 l_adr_accounting_coa_id NUMBER;
28140 l_adr_flexfield_segment_code VARCHAR2(30);
28141 l_adr_flex_value_set_id NUMBER;
28142 l_adr_value_type_code VARCHAR2(30);
28143 l_adr_value_combination_id NUMBER;
28144 l_adr_value_segment_code VARCHAR2(30);
28145
28146 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28147 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28148 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28149 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28150
28151 -- 4262811 Variables ------------------------------------------------------------------------------------------
28152 l_entered_amt_idx NUMBER;
28153 l_accted_amt_idx NUMBER;
28154 l_acc_rev_flag VARCHAR2(1);
28155 l_accrual_line_num NUMBER;
28156 l_tmp_amt NUMBER;
28157 l_acc_rev_natural_side_code VARCHAR2(1);
28158
28159 l_num_entries NUMBER;
28160 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28161 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28162 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28163 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28164 l_recog_line_1 NUMBER;
28165 l_recog_line_2 NUMBER;
28166
28167 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28168 l_bflow_applied_to_amt NUMBER; -- 5132302
28169 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28170
28171 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28172
28173 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28174 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28175
28176 ---------------------------------------------------------------------------------------------------------------
28177
28178
28179 --
28180 -- bulk performance
28181 --
28182 l_balance_type_code VARCHAR2(1);
28183 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28184 l_log_module VARCHAR2(240);
28185
28186 --
28187 -- Upgrade strategy
28188 --
28192 --
28189 l_actual_upg_option VARCHAR2(1);
28190 l_enc_upg_option VARCHAR2(1);
28191
28193 BEGIN
28194 --
28195 IF g_log_enabled THEN
28196 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
28197 END IF;
28198 --
28199 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28200
28201 trace
28202 (p_msg => 'BEGIN of AcctLineType_69'
28203 ,p_level => C_LEVEL_PROCEDURE
28204 ,p_module => l_log_module);
28205
28206 END IF;
28207 --
28208 l_component_type := 'AMB_JLT';
28209 l_component_code := 'AP_CASH_PMT';
28210 l_component_type_code := 'S';
28211 l_component_appl_id := 200;
28212 l_amb_context_code := 'DEFAULT';
28213 l_entity_code := 'AP_PAYMENTS';
28214 l_event_class_code := 'PAYMENTS';
28215 l_event_type_code := 'PAYMENTS_ALL';
28216 l_line_definition_owner_code := 'S';
28217 l_line_definition_code := 'CASH_PAYMENTS_ALL';
28218 --
28219 l_balance_type_code := 'A';
28220 l_segment := NULL;
28221 l_ccid := NULL;
28222 l_adr_transaction_coa_id := NULL;
28223 l_adr_accounting_coa_id := NULL;
28224 l_adr_flexfield_segment_code := NULL;
28225 l_adr_flex_value_set_id := NULL;
28226 l_adr_value_type_code := NULL;
28227 l_adr_value_combination_id := NULL;
28228 l_adr_value_segment_code := NULL;
28229
28230 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28231 l_bflow_class_code := ''; -- 4219869 Business Flow
28232 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28233 l_budgetary_control_flag := 'N';
28234
28235 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28236 l_bflow_applied_to_amt := NULL; -- 5132302
28237 l_entered_amt_idx := NULL; -- 4262811
28238 l_accted_amt_idx := NULL; -- 4262811
28239 l_acc_rev_flag := NULL; -- 4262811
28240 l_accrual_line_num := NULL; -- 4262811
28241 l_tmp_amt := NULL; -- 4262811
28242 --
28243
28244 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28245 l_balance_type_code <> 'B' THEN
28246 IF NVL(p_source_38,'
28247 ') = 'ISSUE_ISSUE' AND
28248 (NVL(p_source_30,'
28249 ') <> 'Y' OR
28250 NVL(p_source_30,'
28251 ') = 'Y' AND
28252 NVL(p_source_110,'
28253 ') <> 'Y') AND
28254 p_source_111 IS NULL AND
28255 NVL(p_source_39,'
28256 ') = 'CASH' AND
28257 NVL(p_source_60,'
28258 ') <> 'R' AND
28259 NVL(p_source_113,'
28260 ') <> 'PAYMENTCARD'
28261 THEN
28262
28263 --
28264 XLA_AE_LINES_PKG.SetNewLine;
28265
28266 p_balance_type_code := l_balance_type_code;
28267 -- set the flag so later we will know whether the gain loss line needs to be created
28268
28269 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28270 p_actual_flag :='A';
28271 END IF;
28272
28273 --
28274 -- bulk performance
28275 --
28276 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28277 p_header_num => 0); -- 4262811
28278 --
28279 -- set accounting line options
28280 --
28281 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28282 p_natural_side_code => 'C'
28283 , p_gain_or_loss_flag => 'N'
28284 , p_gl_transfer_mode_code => 'S'
28285 , p_acct_entry_type_code => 'A'
28286 , p_switch_side_flag => 'Y'
28287 , p_merge_duplicate_code => 'A'
28288 );
28289 --
28290 l_acc_rev_natural_side_code := 'D'; -- 4262811
28291 --
28292 --
28293 -- set accounting line type info
28294 --
28295 xla_ae_lines_pkg.SetAcctLineType
28296 (p_component_type => l_component_type
28297 ,p_event_type_code => l_event_type_code
28298 ,p_line_definition_owner_code => l_line_definition_owner_code
28299 ,p_line_definition_code => l_line_definition_code
28300 ,p_accounting_line_code => l_component_code
28301 ,p_accounting_line_type_code => l_component_type_code
28302 ,p_accounting_line_appl_id => l_component_appl_id
28303 ,p_amb_context_code => l_amb_context_code
28304 ,p_entity_code => l_entity_code
28305 ,p_event_class_code => l_event_class_code);
28306 --
28307 -- set accounting class
28308 --
28309 xla_ae_lines_pkg.SetAcctClass(
28310 p_accounting_class_code => 'CASH'
28311 , p_ae_header_id => l_ae_header_id
28312 );
28313
28314 --
28315 -- set rounding class
28316 --
28317 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28318 'CASH';
28319
28320 --
28321 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28322 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28323 --
28324 -- bulk performance
28325 --
28326 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28327
28331 -- 4955764
28328 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28329 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28330
28332 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28333 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28334
28335 -- 4458381 Public Sector Enh
28336
28337 --
28338 -- set accounting attributes for the line type
28339 --
28340 l_entered_amt_idx := 10;
28341 l_accted_amt_idx := 15;
28342 l_bflow_applied_to_amt_idx := 2; -- 5132302
28343 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28344 l_rec_acct_attrs.array_char_value(1) := p_source_40;
28345 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28346 l_rec_acct_attrs.array_num_value(2) := p_source_61;
28347 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28348 l_rec_acct_attrs.array_num_value(3) := p_source_42;
28349 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28350 l_rec_acct_attrs.array_char_value(4) := p_source_62;
28351 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28352 l_rec_acct_attrs.array_char_value(5) := p_source_63;
28353 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28354 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
28355 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28356 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
28357 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28358 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
28359 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28360 l_rec_acct_attrs.array_char_value(9) := p_source_48;
28361 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28362 l_rec_acct_attrs.array_num_value(10) := p_source_41;
28363 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28364 l_rec_acct_attrs.array_char_value(11) := p_source_49;
28365 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28366 l_rec_acct_attrs.array_date_value(12) := p_source_114;
28367 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28368 l_rec_acct_attrs.array_num_value(13) := p_source_115;
28369 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28370 l_rec_acct_attrs.array_char_value(14) := p_source_116;
28371 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28372 l_rec_acct_attrs.array_num_value(15) := p_source_9;
28373 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28374 l_rec_acct_attrs.array_char_value(16) := p_source_53;
28375 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28376 l_rec_acct_attrs.array_num_value(17) := p_source_54;
28377 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28378 l_rec_acct_attrs.array_num_value(18) := p_source_55;
28379 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28380 l_rec_acct_attrs.array_char_value(19) := p_source_56;
28381 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28382 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
28383 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28384 l_rec_acct_attrs.array_char_value(21) := p_source_48;
28385 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28386 l_rec_acct_attrs.array_num_value(22) := p_source_58;
28387 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28388 l_rec_acct_attrs.array_num_value(23) := p_source_66;
28389 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28390 l_rec_acct_attrs.array_num_value(24) := p_source_59;
28391
28392 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28393 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28394
28395 ---------------------------------------------------------------------------------------------------------------
28396 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28397 ---------------------------------------------------------------------------------------------------------------
28398 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28399
28400 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28401 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28402
28403 IF xla_accounting_cache_pkg.GetValueChar
28404 (p_source_code => 'LEDGER_CATEGORY_CODE'
28405 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28406 AND l_bflow_method_code = 'PRIOR_ENTRY'
28407 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28408 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28409 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28410 )
28411 THEN
28412 xla_ae_lines_pkg.BflowUpgEntry
28413 (p_business_method_code => l_bflow_method_code
28414 ,p_business_class_code => l_bflow_class_code
28415 ,p_balance_type => l_balance_type_code);
28416 ELSE
28417 NULL;
28421 --
28418 -- No business flow processing for business flow method of NONE.
28419 END IF;
28420
28422 -- call analytical criteria
28423 --
28424
28425 --
28426 -- call description
28427 --
28428 -- No description or it is inherited.
28429 --
28430 -- call ADRs
28431 -- Bug 4922099
28432 --
28433 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28434 (NVL(l_actual_upg_option, 'N') = 'O') OR
28435 (NVL(l_enc_upg_option, 'N') = 'O')
28436 )
28437 THEN
28438 NULL;
28439 --
28440 --
28441
28442 l_ccid := AcctDerRule_20(
28443 p_application_id => p_application_id
28444 , p_ae_header_id => l_ae_header_id
28445 , p_source_1 => p_source_1
28446 , x_transaction_coa_id => l_adr_transaction_coa_id
28447 , x_accounting_coa_id => l_adr_accounting_coa_id
28448 , x_value_type_code => l_adr_value_type_code
28449 , p_side => 'NA'
28450 );
28451
28452 xla_ae_lines_pkg.set_ccid(
28453 p_code_combination_id => l_ccid
28454 , p_value_type_code => l_adr_value_type_code
28455 , p_transaction_coa_id => l_adr_transaction_coa_id
28456 , p_accounting_coa_id => l_adr_accounting_coa_id
28457 , p_adr_code => 'AP_CASH'
28458 , p_adr_type_code => 'S'
28459 , p_component_type => l_component_type
28460 , p_component_code => l_component_code
28461 , p_component_type_code => l_component_type_code
28462 , p_component_appl_id => l_component_appl_id
28463 , p_amb_context_code => l_amb_context_code
28464 , p_side => 'NA'
28465 );
28466
28467
28468 --
28469 --
28470 END IF;
28471 --
28472 -- Bug 4922099
28473 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28474 (NVL(l_enc_upg_option, 'N') = 'O')
28475 ) AND
28476 (l_bflow_method_code = 'PRIOR_ENTRY')
28477 )
28478 THEN
28479 IF
28480 --
28481 1 = 2
28482 --
28483 THEN
28484 xla_accounting_err_pkg.build_message
28485 (p_appli_s_name => 'XLA'
28486 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28487 ,p_token_1 => 'LINE_NUMBER'
28488 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28489 ,p_token_2 => 'LINE_TYPE_NAME'
28490 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28491 l_component_type
28492 ,l_component_code
28493 ,l_component_type_code
28494 ,l_component_appl_id
28495 ,l_amb_context_code
28496 ,l_entity_code
28497 ,l_event_class_code
28498 )
28499 ,p_token_3 => 'OWNER'
28500 ,p_value_3 => xla_lookups_pkg.get_meaning(
28501 p_lookup_type => 'XLA_OWNER_TYPE'
28502 ,p_lookup_code => l_component_type_code
28503 )
28504 ,p_token_4 => 'PRODUCT_NAME'
28505 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28506 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28507 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28508 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28509 ,p_ae_header_id => NULL
28510 );
28511
28512 IF (C_LEVEL_ERROR>= g_log_level) THEN
28513 trace
28514 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28515 ,p_level => C_LEVEL_ERROR
28516 ,p_module => l_log_module);
28517 END IF;
28518 END IF;
28519 END IF;
28520 --
28521 --
28522 ------------------------------------------------------------------------------------------------
28523 -- 4219869 Business Flow
28524 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28525 -- Prior Entry. Currently, the following code is always generated.
28526 ------------------------------------------------------------------------------------------------
28527 XLA_AE_LINES_PKG.ValidateCurrentLine;
28531 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28528
28529 ------------------------------------------------------------------------------------
28530 -- 4219869 Business Flow
28532 ------------------------------------------------------------------------------------
28533 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28534
28535 ----------------------------------------------------------------------------------
28536 -- 4219869 Business Flow
28537 -- Update journal entry status -- Need to generate this within IF <condition>
28538 ----------------------------------------------------------------------------------
28539 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28540 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28541 ,p_balance_type_code => l_balance_type_code
28542 );
28543
28544 -------------------------------------------------------------------------------------------
28545 -- 4262811 - Generate the Accrual Reversal lines
28546 -------------------------------------------------------------------------------------------
28547 BEGIN
28548 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28549 (g_array_event(p_event_id).array_value_num('header_index'));
28550 IF l_acc_rev_flag IS NULL THEN
28551 l_acc_rev_flag := 'N';
28552 END IF;
28553 EXCEPTION
28554 WHEN OTHERS THEN
28555 l_acc_rev_flag := 'N';
28556 END;
28557 --
28558 IF (l_acc_rev_flag = 'Y') THEN
28559
28560 -- 4645092 ------------------------------------------------------------------------------
28561 -- To allow MPA report to determine if it should generate report process
28562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28563 ------------------------------------------------------------------------------------------
28564
28565 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28566 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28567 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28568 -- call ADRs
28569 -- Bug 4922099
28570 --
28571 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28572 (NVL(l_actual_upg_option, 'N') = 'O') OR
28573 (NVL(l_enc_upg_option, 'N') = 'O')
28574 )
28575 THEN
28576 NULL;
28577 --
28578 --
28579
28580 l_ccid := AcctDerRule_20(
28581 p_application_id => p_application_id
28582 , p_ae_header_id => l_ae_header_id
28583 , p_source_1 => p_source_1
28584 , x_transaction_coa_id => l_adr_transaction_coa_id
28585 , x_accounting_coa_id => l_adr_accounting_coa_id
28586 , x_value_type_code => l_adr_value_type_code
28587 , p_side => 'NA'
28588 );
28589
28590 xla_ae_lines_pkg.set_ccid(
28591 p_code_combination_id => l_ccid
28592 , p_value_type_code => l_adr_value_type_code
28593 , p_transaction_coa_id => l_adr_transaction_coa_id
28594 , p_accounting_coa_id => l_adr_accounting_coa_id
28595 , p_adr_code => 'AP_CASH'
28596 , p_adr_type_code => 'S'
28597 , p_component_type => l_component_type
28598 , p_component_code => l_component_code
28599 , p_component_type_code => l_component_type_code
28600 , p_component_appl_id => l_component_appl_id
28601 , p_amb_context_code => l_amb_context_code
28602 , p_side => 'NA'
28603 );
28604
28605
28606 --
28607 --
28608 END IF;
28609
28610 --
28611 -- Update the line information that should be overwritten
28612 --
28613 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28614 p_header_num => 1);
28615 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28616
28617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28618
28619 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28620 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28621 END IF;
28622
28623 --
28624 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28625 --
28626 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28627 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28628 ELSE
28629 ---------------------------------------------------------------------------------------------------
28630 -- 4262811a Switch Sign
28631 ---------------------------------------------------------------------------------------------------
28632 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28635 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28636 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28640
28637 -- 5132302
28638 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28639 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28641 END IF;
28642
28643 -- 4955764
28644 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28645 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28646
28647
28648 XLA_AE_LINES_PKG.ValidateCurrentLine;
28649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28650
28651 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28652 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28653 ,p_balance_type_code => l_balance_type_code);
28654
28655 END IF;
28656
28657 -----------------------------------------------------------------------------------------
28658 -- 4262811 Multiperiod Accounting
28659 -----------------------------------------------------------------------------------------
28660 -- No MPA option is assigned.
28661
28662
28663 END IF;
28664 END IF;
28665 --
28666
28667 --
28668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28669 trace
28670 (p_msg => 'END of AcctLineType_69'
28671 ,p_level => C_LEVEL_PROCEDURE
28672 ,p_module => l_log_module);
28673 END IF;
28674 --
28675 EXCEPTION
28676 WHEN xla_exceptions_pkg.application_exception THEN
28677 RAISE;
28678 WHEN OTHERS THEN
28679 xla_exceptions_pkg.raise_message
28680 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_69');
28681 END AcctLineType_69;
28682 --
28683
28684 ---------------------------------------
28685 --
28686 -- PRIVATE FUNCTION
28687 -- AcctLineType_70
28688 --
28689 ---------------------------------------
28690 PROCEDURE AcctLineType_70 (
28691 p_application_id IN NUMBER
28692 ,p_event_id IN NUMBER
28693 ,p_calculate_acctd_flag IN VARCHAR2
28694 ,p_calculate_g_l_flag IN VARCHAR2
28695 ,p_actual_flag IN OUT VARCHAR2
28696 ,p_balance_type_code OUT VARCHAR2
28697 ,p_gain_or_loss_ref OUT VARCHAR2
28698
28699 --Bank Cash Account
28700 , p_source_1 IN NUMBER
28701 --Automatic Offsets Value
28702 , p_source_4 IN VARCHAR2
28703 , p_source_4_meaning IN VARCHAR2
28704 --Payment Distribution (Payment Rate) Ledger Amount
28705 , p_source_9 IN NUMBER
28706 --When to Account for Payment Option
28707 , p_source_38 IN VARCHAR2
28708 --Payment Distribution Type
28709 , p_source_39 IN VARCHAR2
28710 , p_source_39_meaning IN VARCHAR2
28711 --Accounting Reversal Indicator
28712 , p_source_40 IN VARCHAR2
28713 --Payment Distribution Amount
28714 , p_source_41 IN NUMBER
28715 --Business Flow Accounts Payable Application Identifier
28716 , p_source_42 IN NUMBER
28717 --Payment Distribution Identifier
28718 , p_source_47 IN NUMBER
28719 --Distribution Link Type
28720 , p_source_48 IN VARCHAR2
28721 --Payment Currency Code
28722 , p_source_49 IN VARCHAR2
28723 --Override Accounted Amount Indicator
28724 , p_source_53 IN VARCHAR2
28725 , p_source_53_meaning IN VARCHAR2
28726 --Payment Supplier Identifier
28727 , p_source_54 IN NUMBER
28728 --Payment Supplier Site Identifier
28729 , p_source_55 IN NUMBER
28730 --Third Party Type
28731 , p_source_56 IN VARCHAR2
28732 --Payment Distribution Reversed Identifier
28733 , p_source_57 IN NUMBER
28734 --Invoice Distribution Tax Line Identifier
28735 , p_source_58 IN NUMBER
28736 --Invoice Distribution Summary Tax Line Identifier
28737 , p_source_59 IN NUMBER
28738 --Payment Type
28739 , p_source_60 IN VARCHAR2
28740 , p_source_60_meaning IN VARCHAR2
28741 --Invoice Distribution Amount of the Payment Distribution
28742 , p_source_61 IN NUMBER
28743 --Business Flow Invoice Distribution Type
28744 , p_source_62 IN VARCHAR2
28745 --Business Flow Invoice Entity Code
28746 , p_source_63 IN VARCHAR2
28747 --Business Flow Invoice Distribution Identifier
28748 , p_source_64 IN NUMBER
28749 --Business Flow Invoice Identifier
28750 , p_source_65 IN NUMBER
28751 --Invoice Distribution Tax Distribution Identifier from Tax
28752 , p_source_66 IN NUMBER
28753 --Pooled Bank Account Option
28754 , p_source_110 IN VARCHAR2
28755 , p_source_110_meaning IN VARCHAR2
28756 --Payment Maturity Date
28757 , p_source_111 IN DATE
28758 --Payment Processing Type
28759 , p_source_113 IN VARCHAR2
28760 --Payment Exchange Date
28761 , p_source_114 IN DATE
28762 --Payment Exchange Rate
28763 , p_source_115 IN NUMBER
28764 --Payment Exchange Rate Type
28765 , p_source_116 IN VARCHAR2
28766 )
28767 IS
28768
28769 l_component_type VARCHAR2(80);
28770 l_component_code VARCHAR2(30);
28771 l_component_type_code VARCHAR2(1);
28772 l_component_appl_id INTEGER;
28773 l_amb_context_code VARCHAR2(30);
28774 l_entity_code VARCHAR2(30);
28778 l_line_definition_code VARCHAR2(30);
28775 l_event_class_code VARCHAR2(30);
28776 l_ae_header_id NUMBER;
28777 l_event_type_code VARCHAR2(30);
28779 l_line_definition_owner_code VARCHAR2(1);
28780 --
28781 -- adr variables
28782 l_segment VARCHAR2(30);
28783 l_ccid NUMBER;
28784 l_adr_transaction_coa_id NUMBER;
28785 l_adr_accounting_coa_id NUMBER;
28786 l_adr_flexfield_segment_code VARCHAR2(30);
28787 l_adr_flex_value_set_id NUMBER;
28788 l_adr_value_type_code VARCHAR2(30);
28789 l_adr_value_combination_id NUMBER;
28790 l_adr_value_segment_code VARCHAR2(30);
28791
28792 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28793 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28794 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28795 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28796
28797 -- 4262811 Variables ------------------------------------------------------------------------------------------
28798 l_entered_amt_idx NUMBER;
28799 l_accted_amt_idx NUMBER;
28800 l_acc_rev_flag VARCHAR2(1);
28801 l_accrual_line_num NUMBER;
28802 l_tmp_amt NUMBER;
28803 l_acc_rev_natural_side_code VARCHAR2(1);
28804
28805 l_num_entries NUMBER;
28806 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28807 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28808 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28809 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28810 l_recog_line_1 NUMBER;
28811 l_recog_line_2 NUMBER;
28812
28813 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28814 l_bflow_applied_to_amt NUMBER; -- 5132302
28815 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28816
28817 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28818
28819 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28820 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28821
28822 ---------------------------------------------------------------------------------------------------------------
28823
28824
28825 --
28826 -- bulk performance
28827 --
28828 l_balance_type_code VARCHAR2(1);
28829 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28830 l_log_module VARCHAR2(240);
28831
28832 --
28833 -- Upgrade strategy
28834 --
28835 l_actual_upg_option VARCHAR2(1);
28836 l_enc_upg_option VARCHAR2(1);
28837
28838 --
28839 BEGIN
28840 --
28841 IF g_log_enabled THEN
28842 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
28843 END IF;
28844 --
28845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28846
28847 trace
28848 (p_msg => 'BEGIN of AcctLineType_70'
28849 ,p_level => C_LEVEL_PROCEDURE
28850 ,p_module => l_log_module);
28851
28852 END IF;
28853 --
28854 l_component_type := 'AMB_JLT';
28855 l_component_code := 'AP_CASH_PMT_AOS_AS';
28856 l_component_type_code := 'S';
28857 l_component_appl_id := 200;
28858 l_amb_context_code := 'DEFAULT';
28859 l_entity_code := 'AP_PAYMENTS';
28860 l_event_class_code := 'PAYMENTS';
28861 l_event_type_code := 'PAYMENTS_ALL';
28862 l_line_definition_owner_code := 'S';
28863 l_line_definition_code := 'CASH_PAYMENTS_ALL';
28864 --
28865 l_balance_type_code := 'A';
28866 l_segment := NULL;
28867 l_ccid := NULL;
28868 l_adr_transaction_coa_id := NULL;
28869 l_adr_accounting_coa_id := NULL;
28870 l_adr_flexfield_segment_code := NULL;
28871 l_adr_flex_value_set_id := NULL;
28872 l_adr_value_type_code := NULL;
28873 l_adr_value_combination_id := NULL;
28874 l_adr_value_segment_code := NULL;
28875
28876 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
28877 l_bflow_class_code := ''; -- 4219869 Business Flow
28878 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28879 l_budgetary_control_flag := 'N';
28880
28881 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28882 l_bflow_applied_to_amt := NULL; -- 5132302
28883 l_entered_amt_idx := NULL; -- 4262811
28884 l_accted_amt_idx := NULL; -- 4262811
28885 l_acc_rev_flag := NULL; -- 4262811
28886 l_accrual_line_num := NULL; -- 4262811
28887 l_tmp_amt := NULL; -- 4262811
28888 --
28889
28890 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28891 l_balance_type_code <> 'B' THEN
28892 IF NVL(p_source_38,'
28893 ') = 'ISSUE_ISSUE' AND
28894 (NVL(p_source_110,'
28895 ') = 'Y' AND
28896 NVL(p_source_4,'
28897 ') = 'ACCOUNT_SEGMENT_VALUE') AND
28898 p_source_111 IS NULL AND
28899 NVL(p_source_39,'
28900 ') = 'CASH' AND
28901 NVL(p_source_60,'
28902 ') <> 'R' AND
28903 NVL(p_source_113,'
28904 ') <> 'PAYMENTCARD'
28905 THEN
28906
28907 --
28908 XLA_AE_LINES_PKG.SetNewLine;
28909
28913 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28910 p_balance_type_code := l_balance_type_code;
28911 -- set the flag so later we will know whether the gain loss line needs to be created
28912
28914 p_actual_flag :='A';
28915 END IF;
28916
28917 --
28918 -- bulk performance
28919 --
28920 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28921 p_header_num => 0); -- 4262811
28922 --
28923 -- set accounting line options
28924 --
28925 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28926 p_natural_side_code => 'C'
28927 , p_gain_or_loss_flag => 'N'
28928 , p_gl_transfer_mode_code => 'S'
28929 , p_acct_entry_type_code => 'A'
28930 , p_switch_side_flag => 'Y'
28931 , p_merge_duplicate_code => 'A'
28932 );
28933 --
28934 l_acc_rev_natural_side_code := 'D'; -- 4262811
28935 --
28936 --
28937 -- set accounting line type info
28938 --
28939 xla_ae_lines_pkg.SetAcctLineType
28940 (p_component_type => l_component_type
28941 ,p_event_type_code => l_event_type_code
28942 ,p_line_definition_owner_code => l_line_definition_owner_code
28943 ,p_line_definition_code => l_line_definition_code
28944 ,p_accounting_line_code => l_component_code
28945 ,p_accounting_line_type_code => l_component_type_code
28946 ,p_accounting_line_appl_id => l_component_appl_id
28947 ,p_amb_context_code => l_amb_context_code
28948 ,p_entity_code => l_entity_code
28949 ,p_event_class_code => l_event_class_code);
28950 --
28951 -- set accounting class
28952 --
28953 xla_ae_lines_pkg.SetAcctClass(
28954 p_accounting_class_code => 'CASH'
28955 , p_ae_header_id => l_ae_header_id
28956 );
28957
28958 --
28959 -- set rounding class
28960 --
28961 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28962 'CASH';
28963
28964 --
28965 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28966 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28967 --
28968 -- bulk performance
28969 --
28970 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28971
28972 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28973 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28974
28975 -- 4955764
28976 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28977 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28978
28979 -- 4458381 Public Sector Enh
28980
28981 --
28982 -- set accounting attributes for the line type
28983 --
28984 l_entered_amt_idx := 10;
28985 l_accted_amt_idx := 15;
28986 l_bflow_applied_to_amt_idx := 2; -- 5132302
28987 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28988 l_rec_acct_attrs.array_char_value(1) := p_source_40;
28989 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28990 l_rec_acct_attrs.array_num_value(2) := p_source_61;
28991 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28992 l_rec_acct_attrs.array_num_value(3) := p_source_42;
28993 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28994 l_rec_acct_attrs.array_char_value(4) := p_source_62;
28995 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28996 l_rec_acct_attrs.array_char_value(5) := p_source_63;
28997 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28998 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
28999 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29000 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
29001 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29002 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
29003 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29004 l_rec_acct_attrs.array_char_value(9) := p_source_48;
29005 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29006 l_rec_acct_attrs.array_num_value(10) := p_source_41;
29007 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29008 l_rec_acct_attrs.array_char_value(11) := p_source_49;
29009 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29010 l_rec_acct_attrs.array_date_value(12) := p_source_114;
29011 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29012 l_rec_acct_attrs.array_num_value(13) := p_source_115;
29013 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29014 l_rec_acct_attrs.array_char_value(14) := p_source_116;
29015 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29016 l_rec_acct_attrs.array_num_value(15) := p_source_9;
29017 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29018 l_rec_acct_attrs.array_char_value(16) := p_source_53;
29019 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29023 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29020 l_rec_acct_attrs.array_num_value(17) := p_source_54;
29021 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29022 l_rec_acct_attrs.array_num_value(18) := p_source_55;
29024 l_rec_acct_attrs.array_char_value(19) := p_source_56;
29025 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29026 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
29027 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29028 l_rec_acct_attrs.array_char_value(21) := p_source_48;
29029 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29030 l_rec_acct_attrs.array_num_value(22) := p_source_58;
29031 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29032 l_rec_acct_attrs.array_num_value(23) := p_source_66;
29033 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29034 l_rec_acct_attrs.array_num_value(24) := p_source_59;
29035
29036 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29037 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29038
29039 ---------------------------------------------------------------------------------------------------------------
29040 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29041 ---------------------------------------------------------------------------------------------------------------
29042 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29043
29044 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29045 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29046
29047 IF xla_accounting_cache_pkg.GetValueChar
29048 (p_source_code => 'LEDGER_CATEGORY_CODE'
29049 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29050 AND l_bflow_method_code = 'PRIOR_ENTRY'
29051 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29052 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29053 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29054 )
29055 THEN
29056 xla_ae_lines_pkg.BflowUpgEntry
29057 (p_business_method_code => l_bflow_method_code
29058 ,p_business_class_code => l_bflow_class_code
29059 ,p_balance_type => l_balance_type_code);
29060 ELSE
29061 NULL;
29062 XLA_AE_LINES_PKG.business_flow_validation(
29063 p_business_method_code => l_bflow_method_code
29064 ,p_business_class_code => l_bflow_class_code
29065 ,p_inherit_description_flag => l_inherit_desc_flag);
29066 END IF;
29067
29068 --
29069 -- call analytical criteria
29070 --
29071
29072 --
29073 -- call description
29074 --
29075 -- No description or it is inherited.
29076 --
29077 -- call ADRs
29078 -- Bug 4922099
29079 --
29080 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29081 (NVL(l_actual_upg_option, 'N') = 'O') OR
29082 (NVL(l_enc_upg_option, 'N') = 'O')
29083 )
29084 THEN
29085 NULL;
29086 --
29087 --
29088
29089 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
29090 p_code_combination_id => TO_NUMBER(C_NUM)
29091 , p_value_type_code => NULL
29092 , p_transaction_coa_id => null
29093 , p_accounting_coa_id => null
29094 , p_adr_code => NULL
29095 , p_adr_type_code => NULL
29096 , p_component_type => l_component_type
29097 , p_component_code => l_component_code
29098 , p_component_type_code => l_component_type_code
29099 , p_component_appl_id => l_component_appl_id
29100 , p_amb_context_code => l_amb_context_code
29101 , p_side => NULL
29102 );
29103
29104
29105 -- initialise segments
29106 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29107 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29108 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29109 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29110 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29111 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29112 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29113 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29114 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29115 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29116 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29117 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29118 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29119 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29123 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29120 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29121 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29122 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29124 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29125 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29126 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29127 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29128 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29129 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29130 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29131 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29132 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29133 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29134 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29135 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29136 --
29137
29138 --
29139
29140
29141 l_segment := AcctDerRule_1(
29142 p_application_id => p_application_id
29143 , p_ae_header_id => l_ae_header_id
29144 , p_source_1 => p_source_1
29145 , x_transaction_coa_id => l_adr_transaction_coa_id
29146 , x_accounting_coa_id => l_adr_accounting_coa_id
29147 , x_flexfield_segment_code => l_adr_flexfield_segment_code
29148 , x_flex_value_set_id => l_adr_flex_value_set_id
29149 , x_value_type_code => l_adr_value_type_code
29150 , x_value_combination_id => l_adr_value_combination_id
29151 , x_value_segment_code => l_adr_value_segment_code
29152 , p_side => 'NA'
29153 , p_override_seg_flag => 'Y'
29154 );
29155
29156 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
29157
29158 xla_ae_lines_pkg.set_segment(
29159 p_to_segment_code => 'GL_ACCOUNT'
29160 , p_segment_value => l_segment
29161 , p_from_segment_code => l_adr_value_segment_code
29162 , p_from_combination_id => l_adr_value_combination_id
29163 , p_value_type_code => l_adr_value_type_code
29164 , p_transaction_coa_id => l_adr_transaction_coa_id
29165 , p_accounting_coa_id => l_adr_accounting_coa_id
29166 , p_flexfield_segment_code => l_adr_flexfield_segment_code
29167 , p_flex_value_set_id => l_adr_flex_value_set_id
29168 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
29169 , p_adr_type_code => 'S'
29170 , p_component_type => l_component_type
29171 , p_component_code => l_component_code
29172 , p_component_type_code => l_component_type_code
29173 , p_component_appl_id => l_component_appl_id
29174 , p_amb_context_code => l_amb_context_code
29175 , p_entity_code => 'AP_PAYMENTS'
29176 , p_event_class_code => 'PAYMENTS'
29177 , p_side => 'NA'
29178 );
29179
29180 END IF;
29181
29182 --
29183 --
29184 END IF;
29185 --
29186 -- Bug 4922099
29187 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29188 (NVL(l_enc_upg_option, 'N') = 'O')
29189 ) AND
29190 (l_bflow_method_code = 'PRIOR_ENTRY')
29191 )
29192 THEN
29193 IF
29194 --
29195 1 = 2
29196 --
29197 THEN
29198 xla_accounting_err_pkg.build_message
29199 (p_appli_s_name => 'XLA'
29200 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29201 ,p_token_1 => 'LINE_NUMBER'
29202 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29203 ,p_token_2 => 'LINE_TYPE_NAME'
29204 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29205 l_component_type
29206 ,l_component_code
29207 ,l_component_type_code
29208 ,l_component_appl_id
29209 ,l_amb_context_code
29210 ,l_entity_code
29211 ,l_event_class_code
29212 )
29213 ,p_token_3 => 'OWNER'
29214 ,p_value_3 => xla_lookups_pkg.get_meaning(
29218 ,p_token_4 => 'PRODUCT_NAME'
29215 p_lookup_type => 'XLA_OWNER_TYPE'
29216 ,p_lookup_code => l_component_type_code
29217 )
29219 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29220 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29221 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29222 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29223 ,p_ae_header_id => NULL
29224 );
29225
29226 IF (C_LEVEL_ERROR>= g_log_level) THEN
29227 trace
29228 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29229 ,p_level => C_LEVEL_ERROR
29230 ,p_module => l_log_module);
29231 END IF;
29232 END IF;
29233 END IF;
29234 --
29235 --
29236 ------------------------------------------------------------------------------------------------
29237 -- 4219869 Business Flow
29238 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29239 -- Prior Entry. Currently, the following code is always generated.
29240 ------------------------------------------------------------------------------------------------
29241 XLA_AE_LINES_PKG.ValidateCurrentLine;
29242
29243 ------------------------------------------------------------------------------------
29244 -- 4219869 Business Flow
29245 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29246 ------------------------------------------------------------------------------------
29247 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29248
29249 ----------------------------------------------------------------------------------
29250 -- 4219869 Business Flow
29251 -- Update journal entry status -- Need to generate this within IF <condition>
29252 ----------------------------------------------------------------------------------
29253 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29254 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29255 ,p_balance_type_code => l_balance_type_code
29256 );
29257
29258 -------------------------------------------------------------------------------------------
29259 -- 4262811 - Generate the Accrual Reversal lines
29260 -------------------------------------------------------------------------------------------
29261 BEGIN
29262 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29263 (g_array_event(p_event_id).array_value_num('header_index'));
29264 IF l_acc_rev_flag IS NULL THEN
29265 l_acc_rev_flag := 'N';
29266 END IF;
29267 EXCEPTION
29268 WHEN OTHERS THEN
29269 l_acc_rev_flag := 'N';
29270 END;
29271 --
29272 IF (l_acc_rev_flag = 'Y') THEN
29273
29274 -- 4645092 ------------------------------------------------------------------------------
29275 -- To allow MPA report to determine if it should generate report process
29276 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29277 ------------------------------------------------------------------------------------------
29278
29279 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29280 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29281 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29282 -- call ADRs
29283 -- Bug 4922099
29284 --
29285 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29286 (NVL(l_actual_upg_option, 'N') = 'O') OR
29287 (NVL(l_enc_upg_option, 'N') = 'O')
29288 )
29289 THEN
29290 NULL;
29291 --
29292 --
29293
29294 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
29295 p_code_combination_id => TO_NUMBER(C_NUM)
29296 , p_value_type_code => NULL
29297 , p_transaction_coa_id => null
29298 , p_accounting_coa_id => null
29299 , p_adr_code => NULL
29300 , p_adr_type_code => NULL
29301 , p_component_type => l_component_type
29302 , p_component_code => l_component_code
29303 , p_component_type_code => l_component_type_code
29304 , p_component_appl_id => l_component_appl_id
29305 , p_amb_context_code => l_amb_context_code
29306 , p_side => NULL
29307 );
29308
29309
29310 -- initialise segments
29311 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29312 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29313 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29314 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29315 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29316 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29320 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29317 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29318 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29319 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29321 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29322 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29323 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29324 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29325 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29326 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29327 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29328 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29329 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29330 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29331 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29332 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29333 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29334 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29335 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29336 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29337 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29338 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29339 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29340 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29341 --
29342
29343 --
29344
29345
29346 l_segment := AcctDerRule_1(
29347 p_application_id => p_application_id
29348 , p_ae_header_id => l_ae_header_id
29349 , p_source_1 => p_source_1
29350 , x_transaction_coa_id => l_adr_transaction_coa_id
29351 , x_accounting_coa_id => l_adr_accounting_coa_id
29352 , x_flexfield_segment_code => l_adr_flexfield_segment_code
29353 , x_flex_value_set_id => l_adr_flex_value_set_id
29354 , x_value_type_code => l_adr_value_type_code
29355 , x_value_combination_id => l_adr_value_combination_id
29356 , x_value_segment_code => l_adr_value_segment_code
29357 , p_side => 'NA'
29358 , p_override_seg_flag => 'Y'
29359 );
29360
29361 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
29362
29363 xla_ae_lines_pkg.set_segment(
29364 p_to_segment_code => 'GL_ACCOUNT'
29365 , p_segment_value => l_segment
29366 , p_from_segment_code => l_adr_value_segment_code
29367 , p_from_combination_id => l_adr_value_combination_id
29368 , p_value_type_code => l_adr_value_type_code
29369 , p_transaction_coa_id => l_adr_transaction_coa_id
29370 , p_accounting_coa_id => l_adr_accounting_coa_id
29371 , p_flexfield_segment_code => l_adr_flexfield_segment_code
29372 , p_flex_value_set_id => l_adr_flex_value_set_id
29373 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
29374 , p_adr_type_code => 'S'
29375 , p_component_type => l_component_type
29376 , p_component_code => l_component_code
29377 , p_component_type_code => l_component_type_code
29378 , p_component_appl_id => l_component_appl_id
29379 , p_amb_context_code => l_amb_context_code
29380 , p_entity_code => 'AP_PAYMENTS'
29381 , p_event_class_code => 'PAYMENTS'
29382 , p_side => 'NA'
29383 );
29384
29385 END IF;
29386
29387 --
29388 --
29389 END IF;
29390
29391 --
29392 -- Update the line information that should be overwritten
29393 --
29394 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29395 p_header_num => 1);
29396 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29397
29398 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29399
29400 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29401 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29402 END IF;
29403
29404 --
29405 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29406 --
29407 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29408 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29409 ELSE
29410 ---------------------------------------------------------------------------------------------------
29411 -- 4262811a Switch Sign
29415 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29412 ---------------------------------------------------------------------------------------------------
29413 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29414 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29416 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29417 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29418 -- 5132302
29419 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29420 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29421
29422 END IF;
29423
29424 -- 4955764
29425 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29426 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29427
29428
29429 XLA_AE_LINES_PKG.ValidateCurrentLine;
29430 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29431
29432 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29433 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29434 ,p_balance_type_code => l_balance_type_code);
29435
29436 END IF;
29437
29438 -----------------------------------------------------------------------------------------
29439 -- 4262811 Multiperiod Accounting
29440 -----------------------------------------------------------------------------------------
29441 -- No MPA option is assigned.
29442
29443
29444 END IF;
29445 END IF;
29446 --
29447
29448 --
29449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29450 trace
29451 (p_msg => 'END of AcctLineType_70'
29452 ,p_level => C_LEVEL_PROCEDURE
29453 ,p_module => l_log_module);
29454 END IF;
29455 --
29456 EXCEPTION
29457 WHEN xla_exceptions_pkg.application_exception THEN
29458 RAISE;
29459 WHEN OTHERS THEN
29460 xla_exceptions_pkg.raise_message
29461 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_70');
29462 END AcctLineType_70;
29463 --
29464
29465 ---------------------------------------
29466 --
29467 -- PRIVATE FUNCTION
29468 -- AcctLineType_71
29469 --
29470 ---------------------------------------
29471 PROCEDURE AcctLineType_71 (
29472 p_application_id IN NUMBER
29473 ,p_event_id IN NUMBER
29474 ,p_calculate_acctd_flag IN VARCHAR2
29475 ,p_calculate_g_l_flag IN VARCHAR2
29476 ,p_actual_flag IN OUT VARCHAR2
29477 ,p_balance_type_code OUT VARCHAR2
29478 ,p_gain_or_loss_ref OUT VARCHAR2
29479
29480 --Bank Cash Account
29481 , p_source_1 IN NUMBER
29482 --Automatic Offsets Value
29483 , p_source_4 IN VARCHAR2
29484 , p_source_4_meaning IN VARCHAR2
29485 --Payment Distribution (Payment Rate) Ledger Amount
29486 , p_source_9 IN NUMBER
29487 --When to Account for Payment Option
29488 , p_source_38 IN VARCHAR2
29489 --Payment Distribution Type
29490 , p_source_39 IN VARCHAR2
29491 , p_source_39_meaning IN VARCHAR2
29492 --Accounting Reversal Indicator
29493 , p_source_40 IN VARCHAR2
29494 --Payment Distribution Amount
29495 , p_source_41 IN NUMBER
29496 --Business Flow Accounts Payable Application Identifier
29497 , p_source_42 IN NUMBER
29498 --Payment Distribution Identifier
29499 , p_source_47 IN NUMBER
29500 --Distribution Link Type
29501 , p_source_48 IN VARCHAR2
29502 --Payment Currency Code
29503 , p_source_49 IN VARCHAR2
29504 --Override Accounted Amount Indicator
29505 , p_source_53 IN VARCHAR2
29506 , p_source_53_meaning IN VARCHAR2
29507 --Payment Supplier Identifier
29508 , p_source_54 IN NUMBER
29509 --Payment Supplier Site Identifier
29510 , p_source_55 IN NUMBER
29511 --Third Party Type
29512 , p_source_56 IN VARCHAR2
29513 --Payment Distribution Reversed Identifier
29514 , p_source_57 IN NUMBER
29515 --Invoice Distribution Tax Line Identifier
29516 , p_source_58 IN NUMBER
29517 --Invoice Distribution Summary Tax Line Identifier
29518 , p_source_59 IN NUMBER
29519 --Payment Type
29520 , p_source_60 IN VARCHAR2
29521 , p_source_60_meaning IN VARCHAR2
29522 --Invoice Distribution Amount of the Payment Distribution
29523 , p_source_61 IN NUMBER
29524 --Business Flow Invoice Distribution Type
29525 , p_source_62 IN VARCHAR2
29526 --Business Flow Invoice Entity Code
29527 , p_source_63 IN VARCHAR2
29528 --Business Flow Invoice Distribution Identifier
29529 , p_source_64 IN NUMBER
29530 --Business Flow Invoice Identifier
29531 , p_source_65 IN NUMBER
29532 --Invoice Distribution Tax Distribution Identifier from Tax
29533 , p_source_66 IN NUMBER
29534 --Pooled Bank Account Option
29535 , p_source_110 IN VARCHAR2
29536 , p_source_110_meaning IN VARCHAR2
29537 --Payment Maturity Date
29538 , p_source_111 IN DATE
29539 --Payment Processing Type
29543 --Payment Exchange Rate
29540 , p_source_113 IN VARCHAR2
29541 --Payment Exchange Date
29542 , p_source_114 IN DATE
29544 , p_source_115 IN NUMBER
29545 --Payment Exchange Rate Type
29546 , p_source_116 IN VARCHAR2
29547 )
29548 IS
29549
29550 l_component_type VARCHAR2(80);
29551 l_component_code VARCHAR2(30);
29552 l_component_type_code VARCHAR2(1);
29553 l_component_appl_id INTEGER;
29554 l_amb_context_code VARCHAR2(30);
29555 l_entity_code VARCHAR2(30);
29556 l_event_class_code VARCHAR2(30);
29557 l_ae_header_id NUMBER;
29558 l_event_type_code VARCHAR2(30);
29559 l_line_definition_code VARCHAR2(30);
29560 l_line_definition_owner_code VARCHAR2(1);
29561 --
29562 -- adr variables
29563 l_segment VARCHAR2(30);
29564 l_ccid NUMBER;
29565 l_adr_transaction_coa_id NUMBER;
29566 l_adr_accounting_coa_id NUMBER;
29567 l_adr_flexfield_segment_code VARCHAR2(30);
29568 l_adr_flex_value_set_id NUMBER;
29569 l_adr_value_type_code VARCHAR2(30);
29570 l_adr_value_combination_id NUMBER;
29571 l_adr_value_segment_code VARCHAR2(30);
29572
29573 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29574 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29575 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29576 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29577
29578 -- 4262811 Variables ------------------------------------------------------------------------------------------
29579 l_entered_amt_idx NUMBER;
29580 l_accted_amt_idx NUMBER;
29581 l_acc_rev_flag VARCHAR2(1);
29582 l_accrual_line_num NUMBER;
29583 l_tmp_amt NUMBER;
29584 l_acc_rev_natural_side_code VARCHAR2(1);
29585
29586 l_num_entries NUMBER;
29587 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29588 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29589 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29590 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29591 l_recog_line_1 NUMBER;
29592 l_recog_line_2 NUMBER;
29593
29594 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29595 l_bflow_applied_to_amt NUMBER; -- 5132302
29596 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29597
29598 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29599
29600 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29601 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29602
29603 ---------------------------------------------------------------------------------------------------------------
29604
29605
29606 --
29607 -- bulk performance
29608 --
29609 l_balance_type_code VARCHAR2(1);
29610 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29611 l_log_module VARCHAR2(240);
29612
29613 --
29614 -- Upgrade strategy
29615 --
29616 l_actual_upg_option VARCHAR2(1);
29617 l_enc_upg_option VARCHAR2(1);
29618
29619 --
29620 BEGIN
29621 --
29622 IF g_log_enabled THEN
29623 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
29624 END IF;
29625 --
29626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29627
29628 trace
29629 (p_msg => 'BEGIN of AcctLineType_71'
29630 ,p_level => C_LEVEL_PROCEDURE
29631 ,p_module => l_log_module);
29632
29633 END IF;
29634 --
29635 l_component_type := 'AMB_JLT';
29636 l_component_code := 'AP_CASH_PMT_AOS_BS';
29637 l_component_type_code := 'S';
29638 l_component_appl_id := 200;
29639 l_amb_context_code := 'DEFAULT';
29640 l_entity_code := 'AP_PAYMENTS';
29641 l_event_class_code := 'PAYMENTS';
29642 l_event_type_code := 'PAYMENTS_ALL';
29643 l_line_definition_owner_code := 'S';
29644 l_line_definition_code := 'CASH_PAYMENTS_ALL';
29645 --
29646 l_balance_type_code := 'A';
29647 l_segment := NULL;
29648 l_ccid := NULL;
29649 l_adr_transaction_coa_id := NULL;
29650 l_adr_accounting_coa_id := NULL;
29651 l_adr_flexfield_segment_code := NULL;
29652 l_adr_flex_value_set_id := NULL;
29653 l_adr_value_type_code := NULL;
29654 l_adr_value_combination_id := NULL;
29655 l_adr_value_segment_code := NULL;
29656
29657 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
29658 l_bflow_class_code := ''; -- 4219869 Business Flow
29659 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29660 l_budgetary_control_flag := 'N';
29661
29662 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29663 l_bflow_applied_to_amt := NULL; -- 5132302
29664 l_entered_amt_idx := NULL; -- 4262811
29665 l_accted_amt_idx := NULL; -- 4262811
29666 l_acc_rev_flag := NULL; -- 4262811
29667 l_accrual_line_num := NULL; -- 4262811
29668 l_tmp_amt := NULL; -- 4262811
29669 --
29670
29674 ') = 'ISSUE_ISSUE' AND
29671 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29672 l_balance_type_code <> 'B' THEN
29673 IF NVL(p_source_38,'
29675 (NVL(p_source_110,'
29676 ') = 'Y' AND
29677 NVL(p_source_4,'
29678 ') = 'BALANCING_SEGMENT') AND
29679 p_source_111 IS NULL AND
29680 NVL(p_source_39,'
29681 ') = 'CASH' AND
29682 NVL(p_source_60,'
29683 ') <> 'R' AND
29684 NVL(p_source_113,'
29685 ') <> 'PAYMENTCARD'
29686 THEN
29687
29688 --
29689 XLA_AE_LINES_PKG.SetNewLine;
29690
29691 p_balance_type_code := l_balance_type_code;
29692 -- set the flag so later we will know whether the gain loss line needs to be created
29693
29694 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29695 p_actual_flag :='A';
29696 END IF;
29697
29698 --
29699 -- bulk performance
29700 --
29701 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29702 p_header_num => 0); -- 4262811
29703 --
29704 -- set accounting line options
29705 --
29706 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29707 p_natural_side_code => 'C'
29708 , p_gain_or_loss_flag => 'N'
29709 , p_gl_transfer_mode_code => 'S'
29710 , p_acct_entry_type_code => 'A'
29711 , p_switch_side_flag => 'Y'
29712 , p_merge_duplicate_code => 'A'
29713 );
29714 --
29715 l_acc_rev_natural_side_code := 'D'; -- 4262811
29716 --
29717 --
29718 -- set accounting line type info
29719 --
29720 xla_ae_lines_pkg.SetAcctLineType
29721 (p_component_type => l_component_type
29722 ,p_event_type_code => l_event_type_code
29723 ,p_line_definition_owner_code => l_line_definition_owner_code
29724 ,p_line_definition_code => l_line_definition_code
29725 ,p_accounting_line_code => l_component_code
29726 ,p_accounting_line_type_code => l_component_type_code
29727 ,p_accounting_line_appl_id => l_component_appl_id
29728 ,p_amb_context_code => l_amb_context_code
29729 ,p_entity_code => l_entity_code
29730 ,p_event_class_code => l_event_class_code);
29731 --
29732 -- set accounting class
29733 --
29734 xla_ae_lines_pkg.SetAcctClass(
29735 p_accounting_class_code => 'CASH'
29736 , p_ae_header_id => l_ae_header_id
29737 );
29738
29739 --
29740 -- set rounding class
29741 --
29742 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29743 'CASH';
29744
29745 --
29746 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29747 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29748 --
29749 -- bulk performance
29750 --
29751 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29752
29753 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29754 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29755
29756 -- 4955764
29757 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29758 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29759
29760 -- 4458381 Public Sector Enh
29761
29762 --
29763 -- set accounting attributes for the line type
29764 --
29765 l_entered_amt_idx := 10;
29766 l_accted_amt_idx := 15;
29767 l_bflow_applied_to_amt_idx := 2; -- 5132302
29768 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29769 l_rec_acct_attrs.array_char_value(1) := p_source_40;
29770 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
29771 l_rec_acct_attrs.array_num_value(2) := p_source_61;
29772 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
29773 l_rec_acct_attrs.array_num_value(3) := p_source_42;
29774 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29775 l_rec_acct_attrs.array_char_value(4) := p_source_62;
29776 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
29777 l_rec_acct_attrs.array_char_value(5) := p_source_63;
29778 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
29779 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
29780 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29781 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
29782 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29783 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
29784 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29785 l_rec_acct_attrs.array_char_value(9) := p_source_48;
29786 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29787 l_rec_acct_attrs.array_num_value(10) := p_source_41;
29788 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29789 l_rec_acct_attrs.array_char_value(11) := p_source_49;
29790 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29794 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29791 l_rec_acct_attrs.array_date_value(12) := p_source_114;
29792 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29793 l_rec_acct_attrs.array_num_value(13) := p_source_115;
29795 l_rec_acct_attrs.array_char_value(14) := p_source_116;
29796 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29797 l_rec_acct_attrs.array_num_value(15) := p_source_9;
29798 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29799 l_rec_acct_attrs.array_char_value(16) := p_source_53;
29800 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29801 l_rec_acct_attrs.array_num_value(17) := p_source_54;
29802 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29803 l_rec_acct_attrs.array_num_value(18) := p_source_55;
29804 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29805 l_rec_acct_attrs.array_char_value(19) := p_source_56;
29806 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29807 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
29808 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29809 l_rec_acct_attrs.array_char_value(21) := p_source_48;
29810 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29811 l_rec_acct_attrs.array_num_value(22) := p_source_58;
29812 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29813 l_rec_acct_attrs.array_num_value(23) := p_source_66;
29814 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29815 l_rec_acct_attrs.array_num_value(24) := p_source_59;
29816
29817 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29818 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29819
29820 ---------------------------------------------------------------------------------------------------------------
29821 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29822 ---------------------------------------------------------------------------------------------------------------
29823 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29824
29825 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29826 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29827
29828 IF xla_accounting_cache_pkg.GetValueChar
29829 (p_source_code => 'LEDGER_CATEGORY_CODE'
29830 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29831 AND l_bflow_method_code = 'PRIOR_ENTRY'
29832 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29833 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29834 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29835 )
29836 THEN
29837 xla_ae_lines_pkg.BflowUpgEntry
29838 (p_business_method_code => l_bflow_method_code
29839 ,p_business_class_code => l_bflow_class_code
29840 ,p_balance_type => l_balance_type_code);
29841 ELSE
29842 NULL;
29843 XLA_AE_LINES_PKG.business_flow_validation(
29844 p_business_method_code => l_bflow_method_code
29845 ,p_business_class_code => l_bflow_class_code
29846 ,p_inherit_description_flag => l_inherit_desc_flag);
29847 END IF;
29848
29849 --
29850 -- call analytical criteria
29851 --
29852
29853 --
29854 -- call description
29855 --
29856 -- No description or it is inherited.
29857 --
29858 -- call ADRs
29859 -- Bug 4922099
29860 --
29861 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29862 (NVL(l_actual_upg_option, 'N') = 'O') OR
29863 (NVL(l_enc_upg_option, 'N') = 'O')
29864 )
29865 THEN
29866 NULL;
29867 --
29868 --
29869
29870 l_ccid := AcctDerRule_20(
29871 p_application_id => p_application_id
29872 , p_ae_header_id => l_ae_header_id
29873 , p_source_1 => p_source_1
29874 , x_transaction_coa_id => l_adr_transaction_coa_id
29875 , x_accounting_coa_id => l_adr_accounting_coa_id
29876 , x_value_type_code => l_adr_value_type_code
29877 , p_side => 'NA'
29878 );
29879
29880 xla_ae_lines_pkg.set_ccid(
29881 p_code_combination_id => l_ccid
29882 , p_value_type_code => l_adr_value_type_code
29883 , p_transaction_coa_id => l_adr_transaction_coa_id
29884 , p_accounting_coa_id => l_adr_accounting_coa_id
29885 , p_adr_code => 'AP_CASH'
29886 , p_adr_type_code => 'S'
29887 , p_component_type => l_component_type
29888 , p_component_code => l_component_code
29889 , p_component_type_code => l_component_type_code
29890 , p_component_appl_id => l_component_appl_id
29891 , p_amb_context_code => l_amb_context_code
29892 , p_side => 'NA'
29893 );
29894
29895
29896 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
29900 , p_from_combination_id => NULL
29897 p_to_segment_code => 'GL_BALANCING'
29898 , p_segment_value => C_CHAR
29899 , p_from_segment_code => NULL
29901 , p_value_type_code => NULL
29902 , p_transaction_coa_id => null
29903 , p_accounting_coa_id => null
29904 , p_flexfield_segment_code => NULL
29905 , p_flex_value_set_id => NULL
29906 , p_adr_code => NULL
29907 , p_adr_type_code => NULL
29908 , p_component_type => l_component_type
29909 , p_component_code => l_component_code
29910 , p_component_type_code => l_component_type_code
29911 , p_component_appl_id => l_component_appl_id
29912 , p_amb_context_code => l_amb_context_code
29913 , p_entity_code => 'AP_PAYMENTS'
29914 , p_event_class_code => 'PAYMENTS'
29915 , p_side => 'NA'
29916 );
29917 --
29918
29919
29920 --
29921 --
29922 END IF;
29923 --
29924 -- Bug 4922099
29925 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29926 (NVL(l_enc_upg_option, 'N') = 'O')
29927 ) AND
29928 (l_bflow_method_code = 'PRIOR_ENTRY')
29929 )
29930 THEN
29931 IF
29932 --
29933 1 = 2
29934 --
29935 THEN
29936 xla_accounting_err_pkg.build_message
29937 (p_appli_s_name => 'XLA'
29938 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29939 ,p_token_1 => 'LINE_NUMBER'
29940 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29941 ,p_token_2 => 'LINE_TYPE_NAME'
29942 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29943 l_component_type
29944 ,l_component_code
29945 ,l_component_type_code
29946 ,l_component_appl_id
29947 ,l_amb_context_code
29948 ,l_entity_code
29949 ,l_event_class_code
29950 )
29951 ,p_token_3 => 'OWNER'
29952 ,p_value_3 => xla_lookups_pkg.get_meaning(
29953 p_lookup_type => 'XLA_OWNER_TYPE'
29954 ,p_lookup_code => l_component_type_code
29955 )
29956 ,p_token_4 => 'PRODUCT_NAME'
29957 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29958 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29959 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29960 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29961 ,p_ae_header_id => NULL
29962 );
29963
29964 IF (C_LEVEL_ERROR>= g_log_level) THEN
29965 trace
29966 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29967 ,p_level => C_LEVEL_ERROR
29968 ,p_module => l_log_module);
29969 END IF;
29970 END IF;
29971 END IF;
29972 --
29973 --
29974 ------------------------------------------------------------------------------------------------
29975 -- 4219869 Business Flow
29976 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29977 -- Prior Entry. Currently, the following code is always generated.
29978 ------------------------------------------------------------------------------------------------
29979 XLA_AE_LINES_PKG.ValidateCurrentLine;
29980
29981 ------------------------------------------------------------------------------------
29982 -- 4219869 Business Flow
29983 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29984 ------------------------------------------------------------------------------------
29985 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29986
29987 ----------------------------------------------------------------------------------
29988 -- 4219869 Business Flow
29989 -- Update journal entry status -- Need to generate this within IF <condition>
29990 ----------------------------------------------------------------------------------
29991 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29992 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29996 -------------------------------------------------------------------------------------------
29993 ,p_balance_type_code => l_balance_type_code
29994 );
29995
29997 -- 4262811 - Generate the Accrual Reversal lines
29998 -------------------------------------------------------------------------------------------
29999 BEGIN
30000 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30001 (g_array_event(p_event_id).array_value_num('header_index'));
30002 IF l_acc_rev_flag IS NULL THEN
30003 l_acc_rev_flag := 'N';
30004 END IF;
30005 EXCEPTION
30006 WHEN OTHERS THEN
30007 l_acc_rev_flag := 'N';
30008 END;
30009 --
30010 IF (l_acc_rev_flag = 'Y') THEN
30011
30012 -- 4645092 ------------------------------------------------------------------------------
30013 -- To allow MPA report to determine if it should generate report process
30014 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30015 ------------------------------------------------------------------------------------------
30016
30017 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30018 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30019 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30020 -- call ADRs
30021 -- Bug 4922099
30022 --
30023 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30024 (NVL(l_actual_upg_option, 'N') = 'O') OR
30025 (NVL(l_enc_upg_option, 'N') = 'O')
30026 )
30027 THEN
30028 NULL;
30029 --
30030 --
30031
30032 l_ccid := AcctDerRule_20(
30033 p_application_id => p_application_id
30034 , p_ae_header_id => l_ae_header_id
30035 , p_source_1 => p_source_1
30036 , x_transaction_coa_id => l_adr_transaction_coa_id
30037 , x_accounting_coa_id => l_adr_accounting_coa_id
30038 , x_value_type_code => l_adr_value_type_code
30039 , p_side => 'NA'
30040 );
30041
30042 xla_ae_lines_pkg.set_ccid(
30043 p_code_combination_id => l_ccid
30044 , p_value_type_code => l_adr_value_type_code
30045 , p_transaction_coa_id => l_adr_transaction_coa_id
30046 , p_accounting_coa_id => l_adr_accounting_coa_id
30047 , p_adr_code => 'AP_CASH'
30048 , p_adr_type_code => 'S'
30049 , p_component_type => l_component_type
30050 , p_component_code => l_component_code
30051 , p_component_type_code => l_component_type_code
30052 , p_component_appl_id => l_component_appl_id
30053 , p_amb_context_code => l_amb_context_code
30054 , p_side => 'NA'
30055 );
30056
30057
30058 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
30059 p_to_segment_code => 'GL_BALANCING'
30060 , p_segment_value => C_CHAR
30061 , p_from_segment_code => NULL
30062 , p_from_combination_id => NULL
30063 , p_value_type_code => NULL
30064 , p_transaction_coa_id => null
30065 , p_accounting_coa_id => null
30066 , p_flexfield_segment_code => NULL
30067 , p_flex_value_set_id => NULL
30068 , p_adr_code => NULL
30069 , p_adr_type_code => NULL
30070 , p_component_type => l_component_type
30071 , p_component_code => l_component_code
30072 , p_component_type_code => l_component_type_code
30073 , p_component_appl_id => l_component_appl_id
30074 , p_amb_context_code => l_amb_context_code
30075 , p_entity_code => 'AP_PAYMENTS'
30076 , p_event_class_code => 'PAYMENTS'
30077 , p_side => 'NA'
30078 );
30079 --
30080
30081
30082 --
30083 --
30084 END IF;
30085
30086 --
30087 -- Update the line information that should be overwritten
30088 --
30089 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30090 p_header_num => 1);
30091 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30092
30093 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30094
30095 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30096 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30097 END IF;
30098
30099 --
30100 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30101 --
30102 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30103 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30104 ELSE
30105 ---------------------------------------------------------------------------------------------------
30106 -- 4262811a Switch Sign
30107 ---------------------------------------------------------------------------------------------------
30108 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30109 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30113 -- 5132302
30110 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30111 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30112 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30114 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30115 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30116
30117 END IF;
30118
30119 -- 4955764
30120 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30121 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30122
30123
30124 XLA_AE_LINES_PKG.ValidateCurrentLine;
30125 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30126
30127 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30128 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30129 ,p_balance_type_code => l_balance_type_code);
30130
30131 END IF;
30132
30133 -----------------------------------------------------------------------------------------
30134 -- 4262811 Multiperiod Accounting
30135 -----------------------------------------------------------------------------------------
30136 -- No MPA option is assigned.
30137
30138
30139 END IF;
30140 END IF;
30141 --
30142
30143 --
30144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30145 trace
30146 (p_msg => 'END of AcctLineType_71'
30147 ,p_level => C_LEVEL_PROCEDURE
30148 ,p_module => l_log_module);
30149 END IF;
30150 --
30151 EXCEPTION
30152 WHEN xla_exceptions_pkg.application_exception THEN
30153 RAISE;
30154 WHEN OTHERS THEN
30155 xla_exceptions_pkg.raise_message
30156 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_71');
30157 END AcctLineType_71;
30158 --
30159
30160 ---------------------------------------
30161 --
30162 -- PRIVATE FUNCTION
30163 -- AcctLineType_72
30164 --
30165 ---------------------------------------
30166 PROCEDURE AcctLineType_72 (
30167 p_application_id IN NUMBER
30168 ,p_event_id IN NUMBER
30169 ,p_calculate_acctd_flag IN VARCHAR2
30170 ,p_calculate_g_l_flag IN VARCHAR2
30171 ,p_actual_flag IN OUT VARCHAR2
30172 ,p_balance_type_code OUT VARCHAR2
30173 ,p_gain_or_loss_ref OUT VARCHAR2
30174
30175 --Bank Cash Account
30176 , p_source_1 IN NUMBER
30177 --Automatic Offsets Flag
30178 , p_source_30 IN VARCHAR2
30179 , p_source_30_meaning IN VARCHAR2
30180 --When to Account for Payment Option
30181 , p_source_38 IN VARCHAR2
30182 --Payment Distribution Type
30183 , p_source_39 IN VARCHAR2
30184 , p_source_39_meaning IN VARCHAR2
30185 --Accounting Reversal Indicator
30186 , p_source_40 IN VARCHAR2
30187 --Payment Distribution Amount
30188 , p_source_41 IN NUMBER
30189 --Business Flow Accounts Payable Application Identifier
30190 , p_source_42 IN NUMBER
30191 --Business Flow Payment Distribution Type
30192 , p_source_43 IN VARCHAR2
30193 --Business Flow Payment Entity Code
30194 , p_source_44 IN VARCHAR2
30195 --Business Flow Payment Distribution Identifier
30196 , p_source_45 IN NUMBER
30197 --Business Flow Payment Identifier
30198 , p_source_46 IN NUMBER
30199 --Payment Distribution Identifier
30200 , p_source_47 IN NUMBER
30201 --Distribution Link Type
30202 , p_source_48 IN VARCHAR2
30203 --Payment Currency Code
30204 , p_source_49 IN VARCHAR2
30205 --Override Accounted Amount Indicator
30206 , p_source_53 IN VARCHAR2
30207 , p_source_53_meaning IN VARCHAR2
30208 --Payment Supplier Identifier
30209 , p_source_54 IN NUMBER
30210 --Payment Supplier Site Identifier
30211 , p_source_55 IN NUMBER
30212 --Third Party Type
30213 , p_source_56 IN VARCHAR2
30214 --Payment Distribution Reversed Identifier
30215 , p_source_57 IN NUMBER
30216 --Pooled Bank Account Option
30217 , p_source_110 IN VARCHAR2
30218 , p_source_110_meaning IN VARCHAR2
30219 --Payment Maturity Date
30220 , p_source_111 IN DATE
30221 --Payment Exchange Date
30222 , p_source_114 IN DATE
30223 --Payment Exchange Rate
30224 , p_source_115 IN NUMBER
30225 --Payment Exchange Rate Type
30226 , p_source_116 IN VARCHAR2
30227 --Payment Distribution (Matured Rate) Ledger Amount
30228 , p_source_117 IN NUMBER
30229 )
30230 IS
30231
30232 l_component_type VARCHAR2(80);
30233 l_component_code VARCHAR2(30);
30234 l_component_type_code VARCHAR2(1);
30235 l_component_appl_id INTEGER;
30236 l_amb_context_code VARCHAR2(30);
30237 l_entity_code VARCHAR2(30);
30238 l_event_class_code VARCHAR2(30);
30239 l_ae_header_id NUMBER;
30240 l_event_type_code VARCHAR2(30);
30241 l_line_definition_code VARCHAR2(30);
30242 l_line_definition_owner_code VARCHAR2(1);
30243 --
30244 -- adr variables
30245 l_segment VARCHAR2(30);
30249 l_adr_flexfield_segment_code VARCHAR2(30);
30246 l_ccid NUMBER;
30247 l_adr_transaction_coa_id NUMBER;
30248 l_adr_accounting_coa_id NUMBER;
30250 l_adr_flex_value_set_id NUMBER;
30251 l_adr_value_type_code VARCHAR2(30);
30252 l_adr_value_combination_id NUMBER;
30253 l_adr_value_segment_code VARCHAR2(30);
30254
30255 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30256 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30257 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30258 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30259
30260 -- 4262811 Variables ------------------------------------------------------------------------------------------
30261 l_entered_amt_idx NUMBER;
30262 l_accted_amt_idx NUMBER;
30263 l_acc_rev_flag VARCHAR2(1);
30264 l_accrual_line_num NUMBER;
30265 l_tmp_amt NUMBER;
30266 l_acc_rev_natural_side_code VARCHAR2(1);
30267
30268 l_num_entries NUMBER;
30269 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30270 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30271 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30272 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30273 l_recog_line_1 NUMBER;
30274 l_recog_line_2 NUMBER;
30275
30276 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30277 l_bflow_applied_to_amt NUMBER; -- 5132302
30278 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30279
30280 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30281
30282 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30283 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30284
30285 ---------------------------------------------------------------------------------------------------------------
30286
30287
30288 --
30289 -- bulk performance
30290 --
30291 l_balance_type_code VARCHAR2(1);
30292 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30293 l_log_module VARCHAR2(240);
30294
30295 --
30296 -- Upgrade strategy
30297 --
30298 l_actual_upg_option VARCHAR2(1);
30299 l_enc_upg_option VARCHAR2(1);
30300
30301 --
30302 BEGIN
30303 --
30304 IF g_log_enabled THEN
30305 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
30306 END IF;
30307 --
30308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30309
30310 trace
30311 (p_msg => 'BEGIN of AcctLineType_72'
30312 ,p_level => C_LEVEL_PROCEDURE
30313 ,p_module => l_log_module);
30314
30315 END IF;
30316 --
30317 l_component_type := 'AMB_JLT';
30318 l_component_code := 'AP_CASH_PMT_MAT';
30319 l_component_type_code := 'S';
30320 l_component_appl_id := 200;
30321 l_amb_context_code := 'DEFAULT';
30322 l_entity_code := 'AP_PAYMENTS';
30323 l_event_class_code := 'FUTURE DATED PAYMENTS';
30324 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
30325 l_line_definition_owner_code := 'S';
30326 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
30327 --
30328 l_balance_type_code := 'A';
30329 l_segment := NULL;
30330 l_ccid := NULL;
30331 l_adr_transaction_coa_id := NULL;
30332 l_adr_accounting_coa_id := NULL;
30333 l_adr_flexfield_segment_code := NULL;
30334 l_adr_flex_value_set_id := NULL;
30335 l_adr_value_type_code := NULL;
30336 l_adr_value_combination_id := NULL;
30337 l_adr_value_segment_code := NULL;
30338
30339 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30340 l_bflow_class_code := ''; -- 4219869 Business Flow
30341 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30342 l_budgetary_control_flag := 'N';
30343
30344 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30345 l_bflow_applied_to_amt := NULL; -- 5132302
30346 l_entered_amt_idx := NULL; -- 4262811
30347 l_accted_amt_idx := NULL; -- 4262811
30348 l_acc_rev_flag := NULL; -- 4262811
30349 l_accrual_line_num := NULL; -- 4262811
30350 l_tmp_amt := NULL; -- 4262811
30351 --
30352
30353 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30354 l_balance_type_code <> 'B' THEN
30355 IF NVL(p_source_38,'
30356 ') = 'ISSUE_ISSUE' AND
30357 (NVL(p_source_30,'
30358 ') <> 'Y' OR
30359 NVL(p_source_30,'
30360 ') = 'Y' AND
30361 NVL(p_source_110,'
30362 ') <> 'Y') AND
30363 p_source_111 IS NOT NULL AND
30364 NVL(p_source_39,'
30365 ') = 'CASH'
30366 THEN
30367
30368 --
30369 XLA_AE_LINES_PKG.SetNewLine;
30370
30371 p_balance_type_code := l_balance_type_code;
30372 -- set the flag so later we will know whether the gain loss line needs to be created
30373
30374 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30375 p_actual_flag :='A';
30379 -- bulk performance
30376 END IF;
30377
30378 --
30380 --
30381 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30382 p_header_num => 0); -- 4262811
30383 --
30384 -- set accounting line options
30385 --
30386 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30387 p_natural_side_code => 'C'
30388 , p_gain_or_loss_flag => 'N'
30389 , p_gl_transfer_mode_code => 'S'
30390 , p_acct_entry_type_code => 'A'
30391 , p_switch_side_flag => 'Y'
30392 , p_merge_duplicate_code => 'A'
30393 );
30394 --
30395 l_acc_rev_natural_side_code := 'D'; -- 4262811
30396 --
30397 --
30398 -- set accounting line type info
30399 --
30400 xla_ae_lines_pkg.SetAcctLineType
30401 (p_component_type => l_component_type
30402 ,p_event_type_code => l_event_type_code
30403 ,p_line_definition_owner_code => l_line_definition_owner_code
30404 ,p_line_definition_code => l_line_definition_code
30405 ,p_accounting_line_code => l_component_code
30406 ,p_accounting_line_type_code => l_component_type_code
30407 ,p_accounting_line_appl_id => l_component_appl_id
30408 ,p_amb_context_code => l_amb_context_code
30409 ,p_entity_code => l_entity_code
30410 ,p_event_class_code => l_event_class_code);
30411 --
30412 -- set accounting class
30413 --
30414 xla_ae_lines_pkg.SetAcctClass(
30415 p_accounting_class_code => 'CASH'
30416 , p_ae_header_id => l_ae_header_id
30417 );
30418
30419 --
30420 -- set rounding class
30421 --
30422 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30423 'CASH';
30424
30425 --
30426 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30427 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30428 --
30429 -- bulk performance
30430 --
30431 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30432
30433 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30434 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30435
30436 -- 4955764
30437 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30438 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30439
30440 -- 4458381 Public Sector Enh
30441
30442 --
30443 -- set accounting attributes for the line type
30444 --
30445 l_entered_amt_idx := 9;
30446 l_accted_amt_idx := 14;
30447 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30448 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30449 l_rec_acct_attrs.array_char_value(1) := p_source_40;
30450 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30451 l_rec_acct_attrs.array_num_value(2) := p_source_42;
30452 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30453 l_rec_acct_attrs.array_char_value(3) := p_source_43;
30454 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30455 l_rec_acct_attrs.array_char_value(4) := p_source_44;
30456 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30457 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
30458 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30459 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
30460 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30461 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
30462 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30463 l_rec_acct_attrs.array_char_value(8) := p_source_48;
30464 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30465 l_rec_acct_attrs.array_num_value(9) := p_source_41;
30466 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30467 l_rec_acct_attrs.array_char_value(10) := p_source_49;
30468 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30469 l_rec_acct_attrs.array_date_value(11) := p_source_114;
30470 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30471 l_rec_acct_attrs.array_num_value(12) := p_source_115;
30472 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30473 l_rec_acct_attrs.array_char_value(13) := p_source_116;
30474 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30475 l_rec_acct_attrs.array_num_value(14) := p_source_117;
30476 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30477 l_rec_acct_attrs.array_char_value(15) := p_source_53;
30478 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30479 l_rec_acct_attrs.array_num_value(16) := p_source_54;
30480 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30481 l_rec_acct_attrs.array_num_value(17) := p_source_55;
30482 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30483 l_rec_acct_attrs.array_char_value(18) := p_source_56;
30484 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30485 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
30489 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30486 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30487 l_rec_acct_attrs.array_char_value(20) := p_source_48;
30488
30490 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30491
30492 ---------------------------------------------------------------------------------------------------------------
30493 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30494 ---------------------------------------------------------------------------------------------------------------
30495 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30496
30497 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30498 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30499
30500 IF xla_accounting_cache_pkg.GetValueChar
30501 (p_source_code => 'LEDGER_CATEGORY_CODE'
30502 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30503 AND l_bflow_method_code = 'PRIOR_ENTRY'
30504 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30505 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30506 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30507 )
30508 THEN
30509 xla_ae_lines_pkg.BflowUpgEntry
30510 (p_business_method_code => l_bflow_method_code
30511 ,p_business_class_code => l_bflow_class_code
30512 ,p_balance_type => l_balance_type_code);
30513 ELSE
30514 NULL;
30515 -- No business flow processing for business flow method of NONE.
30516 END IF;
30517
30518 --
30519 -- call analytical criteria
30520 --
30521
30522 --
30523 -- call description
30524 --
30525 -- No description or it is inherited.
30526 --
30527 -- call ADRs
30528 -- Bug 4922099
30529 --
30530 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30531 (NVL(l_actual_upg_option, 'N') = 'O') OR
30532 (NVL(l_enc_upg_option, 'N') = 'O')
30533 )
30534 THEN
30535 NULL;
30536 --
30537 --
30538
30539 l_ccid := AcctDerRule_20(
30540 p_application_id => p_application_id
30541 , p_ae_header_id => l_ae_header_id
30542 , p_source_1 => p_source_1
30543 , x_transaction_coa_id => l_adr_transaction_coa_id
30544 , x_accounting_coa_id => l_adr_accounting_coa_id
30545 , x_value_type_code => l_adr_value_type_code
30546 , p_side => 'NA'
30547 );
30548
30549 xla_ae_lines_pkg.set_ccid(
30550 p_code_combination_id => l_ccid
30551 , p_value_type_code => l_adr_value_type_code
30552 , p_transaction_coa_id => l_adr_transaction_coa_id
30553 , p_accounting_coa_id => l_adr_accounting_coa_id
30554 , p_adr_code => 'AP_CASH'
30555 , p_adr_type_code => 'S'
30556 , p_component_type => l_component_type
30557 , p_component_code => l_component_code
30558 , p_component_type_code => l_component_type_code
30559 , p_component_appl_id => l_component_appl_id
30560 , p_amb_context_code => l_amb_context_code
30561 , p_side => 'NA'
30562 );
30563
30564
30565 --
30566 --
30567 END IF;
30568 --
30569 -- Bug 4922099
30570 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30571 (NVL(l_enc_upg_option, 'N') = 'O')
30572 ) AND
30573 (l_bflow_method_code = 'PRIOR_ENTRY')
30574 )
30575 THEN
30576 IF
30577 --
30578 1 = 2
30579 --
30580 THEN
30581 xla_accounting_err_pkg.build_message
30582 (p_appli_s_name => 'XLA'
30583 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30584 ,p_token_1 => 'LINE_NUMBER'
30585 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30586 ,p_token_2 => 'LINE_TYPE_NAME'
30587 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30588 l_component_type
30589 ,l_component_code
30590 ,l_component_type_code
30591 ,l_component_appl_id
30592 ,l_amb_context_code
30593 ,l_entity_code
30594 ,l_event_class_code
30595 )
30596 ,p_token_3 => 'OWNER'
30597 ,p_value_3 => xla_lookups_pkg.get_meaning(
30601 ,p_token_4 => 'PRODUCT_NAME'
30598 p_lookup_type => 'XLA_OWNER_TYPE'
30599 ,p_lookup_code => l_component_type_code
30600 )
30602 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30603 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30604 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30605 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30606 ,p_ae_header_id => NULL
30607 );
30608
30609 IF (C_LEVEL_ERROR>= g_log_level) THEN
30610 trace
30611 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30612 ,p_level => C_LEVEL_ERROR
30613 ,p_module => l_log_module);
30614 END IF;
30615 END IF;
30616 END IF;
30617 --
30618 --
30619 ------------------------------------------------------------------------------------------------
30620 -- 4219869 Business Flow
30621 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30622 -- Prior Entry. Currently, the following code is always generated.
30623 ------------------------------------------------------------------------------------------------
30624 XLA_AE_LINES_PKG.ValidateCurrentLine;
30625
30626 ------------------------------------------------------------------------------------
30627 -- 4219869 Business Flow
30628 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30629 ------------------------------------------------------------------------------------
30630 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30631
30632 ----------------------------------------------------------------------------------
30633 -- 4219869 Business Flow
30634 -- Update journal entry status -- Need to generate this within IF <condition>
30635 ----------------------------------------------------------------------------------
30636 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30637 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30638 ,p_balance_type_code => l_balance_type_code
30639 );
30640
30641 -------------------------------------------------------------------------------------------
30642 -- 4262811 - Generate the Accrual Reversal lines
30643 -------------------------------------------------------------------------------------------
30644 BEGIN
30645 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30646 (g_array_event(p_event_id).array_value_num('header_index'));
30647 IF l_acc_rev_flag IS NULL THEN
30648 l_acc_rev_flag := 'N';
30649 END IF;
30650 EXCEPTION
30651 WHEN OTHERS THEN
30652 l_acc_rev_flag := 'N';
30653 END;
30654 --
30655 IF (l_acc_rev_flag = 'Y') THEN
30656
30657 -- 4645092 ------------------------------------------------------------------------------
30658 -- To allow MPA report to determine if it should generate report process
30659 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30660 ------------------------------------------------------------------------------------------
30661
30662 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30663 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30664 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30665 -- call ADRs
30666 -- Bug 4922099
30667 --
30668 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30669 (NVL(l_actual_upg_option, 'N') = 'O') OR
30670 (NVL(l_enc_upg_option, 'N') = 'O')
30671 )
30672 THEN
30673 NULL;
30674 --
30675 --
30676
30677 l_ccid := AcctDerRule_20(
30678 p_application_id => p_application_id
30679 , p_ae_header_id => l_ae_header_id
30680 , p_source_1 => p_source_1
30681 , x_transaction_coa_id => l_adr_transaction_coa_id
30682 , x_accounting_coa_id => l_adr_accounting_coa_id
30683 , x_value_type_code => l_adr_value_type_code
30684 , p_side => 'NA'
30685 );
30686
30687 xla_ae_lines_pkg.set_ccid(
30688 p_code_combination_id => l_ccid
30689 , p_value_type_code => l_adr_value_type_code
30690 , p_transaction_coa_id => l_adr_transaction_coa_id
30691 , p_accounting_coa_id => l_adr_accounting_coa_id
30692 , p_adr_code => 'AP_CASH'
30693 , p_adr_type_code => 'S'
30694 , p_component_type => l_component_type
30695 , p_component_code => l_component_code
30696 , p_component_type_code => l_component_type_code
30697 , p_component_appl_id => l_component_appl_id
30698 , p_amb_context_code => l_amb_context_code
30699 , p_side => 'NA'
30700 );
30701
30702
30703 --
30704 --
30708 -- Update the line information that should be overwritten
30705 END IF;
30706
30707 --
30709 --
30710 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30711 p_header_num => 1);
30712 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30713
30714 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30715
30716 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30717 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30718 END IF;
30719
30720 --
30721 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30722 --
30723 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30724 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30725 ELSE
30726 ---------------------------------------------------------------------------------------------------
30727 -- 4262811a Switch Sign
30728 ---------------------------------------------------------------------------------------------------
30729 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30730 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30731 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30732 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30733 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30734 -- 5132302
30735 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30736 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30737
30738 END IF;
30739
30740 -- 4955764
30741 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30742 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30743
30744
30745 XLA_AE_LINES_PKG.ValidateCurrentLine;
30746 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30747
30748 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30749 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30750 ,p_balance_type_code => l_balance_type_code);
30751
30752 END IF;
30753
30754 -----------------------------------------------------------------------------------------
30755 -- 4262811 Multiperiod Accounting
30756 -----------------------------------------------------------------------------------------
30757 -- No MPA option is assigned.
30758
30759
30760 END IF;
30761 END IF;
30762 --
30763
30764 --
30765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30766 trace
30767 (p_msg => 'END of AcctLineType_72'
30768 ,p_level => C_LEVEL_PROCEDURE
30769 ,p_module => l_log_module);
30770 END IF;
30771 --
30772 EXCEPTION
30773 WHEN xla_exceptions_pkg.application_exception THEN
30774 RAISE;
30775 WHEN OTHERS THEN
30776 xla_exceptions_pkg.raise_message
30777 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_72');
30778 END AcctLineType_72;
30779 --
30780
30781 ---------------------------------------
30782 --
30783 -- PRIVATE FUNCTION
30784 -- AcctLineType_73
30785 --
30786 ---------------------------------------
30787 PROCEDURE AcctLineType_73 (
30788 p_application_id IN NUMBER
30789 ,p_event_id IN NUMBER
30790 ,p_calculate_acctd_flag IN VARCHAR2
30791 ,p_calculate_g_l_flag IN VARCHAR2
30792 ,p_actual_flag IN OUT VARCHAR2
30793 ,p_balance_type_code OUT VARCHAR2
30794 ,p_gain_or_loss_ref OUT VARCHAR2
30795
30796 --Bank Cash Account
30797 , p_source_1 IN NUMBER
30798 --Automatic Offsets Value
30799 , p_source_4 IN VARCHAR2
30800 , p_source_4_meaning IN VARCHAR2
30801 --When to Account for Payment Option
30802 , p_source_38 IN VARCHAR2
30803 --Payment Distribution Type
30804 , p_source_39 IN VARCHAR2
30805 , p_source_39_meaning IN VARCHAR2
30806 --Accounting Reversal Indicator
30807 , p_source_40 IN VARCHAR2
30808 --Payment Distribution Amount
30809 , p_source_41 IN NUMBER
30810 --Business Flow Accounts Payable Application Identifier
30811 , p_source_42 IN NUMBER
30812 --Business Flow Payment Distribution Type
30813 , p_source_43 IN VARCHAR2
30814 --Business Flow Payment Entity Code
30815 , p_source_44 IN VARCHAR2
30816 --Business Flow Payment Distribution Identifier
30817 , p_source_45 IN NUMBER
30818 --Business Flow Payment Identifier
30819 , p_source_46 IN NUMBER
30820 --Payment Distribution Identifier
30821 , p_source_47 IN NUMBER
30822 --Distribution Link Type
30823 , p_source_48 IN VARCHAR2
30824 --Payment Currency Code
30825 , p_source_49 IN VARCHAR2
30826 --Override Accounted Amount Indicator
30830 , p_source_54 IN NUMBER
30827 , p_source_53 IN VARCHAR2
30828 , p_source_53_meaning IN VARCHAR2
30829 --Payment Supplier Identifier
30831 --Payment Supplier Site Identifier
30832 , p_source_55 IN NUMBER
30833 --Third Party Type
30834 , p_source_56 IN VARCHAR2
30835 --Payment Distribution Reversed Identifier
30836 , p_source_57 IN NUMBER
30837 --Pooled Bank Account Option
30838 , p_source_110 IN VARCHAR2
30839 , p_source_110_meaning IN VARCHAR2
30840 --Payment Maturity Date
30841 , p_source_111 IN DATE
30842 --Payment Exchange Date
30843 , p_source_114 IN DATE
30844 --Payment Exchange Rate
30845 , p_source_115 IN NUMBER
30846 --Payment Exchange Rate Type
30847 , p_source_116 IN VARCHAR2
30848 --Payment Distribution (Matured Rate) Ledger Amount
30849 , p_source_117 IN NUMBER
30850 )
30851 IS
30852
30853 l_component_type VARCHAR2(80);
30854 l_component_code VARCHAR2(30);
30855 l_component_type_code VARCHAR2(1);
30856 l_component_appl_id INTEGER;
30857 l_amb_context_code VARCHAR2(30);
30858 l_entity_code VARCHAR2(30);
30859 l_event_class_code VARCHAR2(30);
30860 l_ae_header_id NUMBER;
30861 l_event_type_code VARCHAR2(30);
30862 l_line_definition_code VARCHAR2(30);
30863 l_line_definition_owner_code VARCHAR2(1);
30864 --
30865 -- adr variables
30866 l_segment VARCHAR2(30);
30867 l_ccid NUMBER;
30868 l_adr_transaction_coa_id NUMBER;
30869 l_adr_accounting_coa_id NUMBER;
30870 l_adr_flexfield_segment_code VARCHAR2(30);
30871 l_adr_flex_value_set_id NUMBER;
30872 l_adr_value_type_code VARCHAR2(30);
30873 l_adr_value_combination_id NUMBER;
30874 l_adr_value_segment_code VARCHAR2(30);
30875
30876 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30877 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30878 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30879 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30880
30881 -- 4262811 Variables ------------------------------------------------------------------------------------------
30882 l_entered_amt_idx NUMBER;
30883 l_accted_amt_idx NUMBER;
30884 l_acc_rev_flag VARCHAR2(1);
30885 l_accrual_line_num NUMBER;
30886 l_tmp_amt NUMBER;
30887 l_acc_rev_natural_side_code VARCHAR2(1);
30888
30889 l_num_entries NUMBER;
30890 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30891 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30892 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30893 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30894 l_recog_line_1 NUMBER;
30895 l_recog_line_2 NUMBER;
30896
30897 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30898 l_bflow_applied_to_amt NUMBER; -- 5132302
30899 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30900
30901 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30902
30903 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30904 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30905
30906 ---------------------------------------------------------------------------------------------------------------
30907
30908
30909 --
30910 -- bulk performance
30911 --
30912 l_balance_type_code VARCHAR2(1);
30913 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30914 l_log_module VARCHAR2(240);
30915
30916 --
30917 -- Upgrade strategy
30918 --
30919 l_actual_upg_option VARCHAR2(1);
30920 l_enc_upg_option VARCHAR2(1);
30921
30922 --
30923 BEGIN
30924 --
30925 IF g_log_enabled THEN
30926 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
30927 END IF;
30928 --
30929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30930
30931 trace
30932 (p_msg => 'BEGIN of AcctLineType_73'
30933 ,p_level => C_LEVEL_PROCEDURE
30934 ,p_module => l_log_module);
30935
30936 END IF;
30937 --
30938 l_component_type := 'AMB_JLT';
30939 l_component_code := 'AP_CASH_PMT_MAT_AOS_AS';
30940 l_component_type_code := 'S';
30941 l_component_appl_id := 200;
30942 l_amb_context_code := 'DEFAULT';
30943 l_entity_code := 'AP_PAYMENTS';
30944 l_event_class_code := 'FUTURE DATED PAYMENTS';
30945 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
30946 l_line_definition_owner_code := 'S';
30947 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
30948 --
30949 l_balance_type_code := 'A';
30950 l_segment := NULL;
30951 l_ccid := NULL;
30952 l_adr_transaction_coa_id := NULL;
30953 l_adr_accounting_coa_id := NULL;
30954 l_adr_flexfield_segment_code := NULL;
30955 l_adr_flex_value_set_id := NULL;
30956 l_adr_value_type_code := NULL;
30957 l_adr_value_combination_id := NULL;
30961 l_bflow_class_code := ''; -- 4219869 Business Flow
30958 l_adr_value_segment_code := NULL;
30959
30960 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
30962 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30963 l_budgetary_control_flag := 'N';
30964
30965 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30966 l_bflow_applied_to_amt := NULL; -- 5132302
30967 l_entered_amt_idx := NULL; -- 4262811
30968 l_accted_amt_idx := NULL; -- 4262811
30969 l_acc_rev_flag := NULL; -- 4262811
30970 l_accrual_line_num := NULL; -- 4262811
30971 l_tmp_amt := NULL; -- 4262811
30972 --
30973
30974 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30975 l_balance_type_code <> 'B' THEN
30976 IF NVL(p_source_38,'
30977 ') = 'ISSUE_ISSUE' AND
30978 (NVL(p_source_110,'
30979 ') = 'Y' AND
30980 NVL(p_source_4,'
30981 ') = 'ACCOUNT_SEGMENT_VALUE') AND
30982 p_source_111 IS NOT NULL AND
30983 NVL(p_source_39,'
30984 ') = 'CASH'
30985 THEN
30986
30987 --
30988 XLA_AE_LINES_PKG.SetNewLine;
30989
30990 p_balance_type_code := l_balance_type_code;
30991 -- set the flag so later we will know whether the gain loss line needs to be created
30992
30993 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30994 p_actual_flag :='A';
30995 END IF;
30996
30997 --
30998 -- bulk performance
30999 --
31000 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31001 p_header_num => 0); -- 4262811
31002 --
31003 -- set accounting line options
31004 --
31005 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31006 p_natural_side_code => 'C'
31007 , p_gain_or_loss_flag => 'N'
31008 , p_gl_transfer_mode_code => 'S'
31009 , p_acct_entry_type_code => 'A'
31010 , p_switch_side_flag => 'Y'
31011 , p_merge_duplicate_code => 'A'
31012 );
31013 --
31014 l_acc_rev_natural_side_code := 'D'; -- 4262811
31015 --
31016 --
31017 -- set accounting line type info
31018 --
31019 xla_ae_lines_pkg.SetAcctLineType
31020 (p_component_type => l_component_type
31021 ,p_event_type_code => l_event_type_code
31022 ,p_line_definition_owner_code => l_line_definition_owner_code
31023 ,p_line_definition_code => l_line_definition_code
31024 ,p_accounting_line_code => l_component_code
31025 ,p_accounting_line_type_code => l_component_type_code
31026 ,p_accounting_line_appl_id => l_component_appl_id
31027 ,p_amb_context_code => l_amb_context_code
31028 ,p_entity_code => l_entity_code
31029 ,p_event_class_code => l_event_class_code);
31030 --
31031 -- set accounting class
31032 --
31033 xla_ae_lines_pkg.SetAcctClass(
31034 p_accounting_class_code => 'CASH'
31035 , p_ae_header_id => l_ae_header_id
31036 );
31037
31038 --
31039 -- set rounding class
31040 --
31041 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31042 'CASH';
31043
31044 --
31045 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31046 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31047 --
31048 -- bulk performance
31049 --
31050 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31051
31052 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31053 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31054
31055 -- 4955764
31056 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31057 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31058
31059 -- 4458381 Public Sector Enh
31060
31061 --
31062 -- set accounting attributes for the line type
31063 --
31064 l_entered_amt_idx := 9;
31065 l_accted_amt_idx := 14;
31066 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31067 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31068 l_rec_acct_attrs.array_char_value(1) := p_source_40;
31069 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31070 l_rec_acct_attrs.array_num_value(2) := p_source_42;
31071 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31072 l_rec_acct_attrs.array_char_value(3) := p_source_43;
31073 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31074 l_rec_acct_attrs.array_char_value(4) := p_source_44;
31075 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31076 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
31077 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31078 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
31079 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31080 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
31084 l_rec_acct_attrs.array_num_value(9) := p_source_41;
31081 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31082 l_rec_acct_attrs.array_char_value(8) := p_source_48;
31083 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31085 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31086 l_rec_acct_attrs.array_char_value(10) := p_source_49;
31087 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31088 l_rec_acct_attrs.array_date_value(11) := p_source_114;
31089 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31090 l_rec_acct_attrs.array_num_value(12) := p_source_115;
31091 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31092 l_rec_acct_attrs.array_char_value(13) := p_source_116;
31093 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31094 l_rec_acct_attrs.array_num_value(14) := p_source_117;
31095 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31096 l_rec_acct_attrs.array_char_value(15) := p_source_53;
31097 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31098 l_rec_acct_attrs.array_num_value(16) := p_source_54;
31099 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31100 l_rec_acct_attrs.array_num_value(17) := p_source_55;
31101 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31102 l_rec_acct_attrs.array_char_value(18) := p_source_56;
31103 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31104 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
31105 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31106 l_rec_acct_attrs.array_char_value(20) := p_source_48;
31107
31108 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31109 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31110
31111 ---------------------------------------------------------------------------------------------------------------
31112 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31113 ---------------------------------------------------------------------------------------------------------------
31114 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31115
31116 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31117 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31118
31119 IF xla_accounting_cache_pkg.GetValueChar
31120 (p_source_code => 'LEDGER_CATEGORY_CODE'
31121 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31122 AND l_bflow_method_code = 'PRIOR_ENTRY'
31123 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31124 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31125 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31126 )
31127 THEN
31128 xla_ae_lines_pkg.BflowUpgEntry
31129 (p_business_method_code => l_bflow_method_code
31130 ,p_business_class_code => l_bflow_class_code
31131 ,p_balance_type => l_balance_type_code);
31132 ELSE
31133 NULL;
31134 XLA_AE_LINES_PKG.business_flow_validation(
31135 p_business_method_code => l_bflow_method_code
31136 ,p_business_class_code => l_bflow_class_code
31137 ,p_inherit_description_flag => l_inherit_desc_flag);
31138 END IF;
31139
31140 --
31141 -- call analytical criteria
31142 --
31143
31144 --
31145 -- call description
31146 --
31147 -- No description or it is inherited.
31148 --
31149 -- call ADRs
31150 -- Bug 4922099
31151 --
31152 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31153 (NVL(l_actual_upg_option, 'N') = 'O') OR
31154 (NVL(l_enc_upg_option, 'N') = 'O')
31155 )
31156 THEN
31157 NULL;
31158 --
31159 --
31160
31161 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
31162 p_code_combination_id => TO_NUMBER(C_NUM)
31163 , p_value_type_code => NULL
31164 , p_transaction_coa_id => null
31165 , p_accounting_coa_id => null
31166 , p_adr_code => NULL
31167 , p_adr_type_code => NULL
31168 , p_component_type => l_component_type
31169 , p_component_code => l_component_code
31170 , p_component_type_code => l_component_type_code
31171 , p_component_appl_id => l_component_appl_id
31172 , p_amb_context_code => l_amb_context_code
31173 , p_side => NULL
31174 );
31175
31176
31177 -- initialise segments
31178 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31179 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31180 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31181 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31182 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31183 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31184 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31188 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31185 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31186 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31187 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31189 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31190 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31191 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31192 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31193 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31194 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31195 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31196 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31197 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31198 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31199 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31200 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31201 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31202 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31203 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31204 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31205 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31206 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31207 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31208 --
31209
31210 --
31211
31212
31213 l_segment := AcctDerRule_1(
31214 p_application_id => p_application_id
31215 , p_ae_header_id => l_ae_header_id
31216 , p_source_1 => p_source_1
31217 , x_transaction_coa_id => l_adr_transaction_coa_id
31218 , x_accounting_coa_id => l_adr_accounting_coa_id
31219 , x_flexfield_segment_code => l_adr_flexfield_segment_code
31220 , x_flex_value_set_id => l_adr_flex_value_set_id
31221 , x_value_type_code => l_adr_value_type_code
31222 , x_value_combination_id => l_adr_value_combination_id
31223 , x_value_segment_code => l_adr_value_segment_code
31224 , p_side => 'NA'
31225 , p_override_seg_flag => 'Y'
31226 );
31227
31228 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
31229
31230 xla_ae_lines_pkg.set_segment(
31231 p_to_segment_code => 'GL_ACCOUNT'
31232 , p_segment_value => l_segment
31233 , p_from_segment_code => l_adr_value_segment_code
31234 , p_from_combination_id => l_adr_value_combination_id
31235 , p_value_type_code => l_adr_value_type_code
31236 , p_transaction_coa_id => l_adr_transaction_coa_id
31237 , p_accounting_coa_id => l_adr_accounting_coa_id
31238 , p_flexfield_segment_code => l_adr_flexfield_segment_code
31239 , p_flex_value_set_id => l_adr_flex_value_set_id
31240 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
31241 , p_adr_type_code => 'S'
31242 , p_component_type => l_component_type
31243 , p_component_code => l_component_code
31244 , p_component_type_code => l_component_type_code
31245 , p_component_appl_id => l_component_appl_id
31246 , p_amb_context_code => l_amb_context_code
31247 , p_entity_code => 'AP_PAYMENTS'
31248 , p_event_class_code => 'FUTURE DATED PAYMENTS'
31249 , p_side => 'NA'
31250 );
31251
31252 END IF;
31253
31254 --
31255 --
31256 END IF;
31257 --
31258 -- Bug 4922099
31259 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31260 (NVL(l_enc_upg_option, 'N') = 'O')
31261 ) AND
31262 (l_bflow_method_code = 'PRIOR_ENTRY')
31263 )
31264 THEN
31265 IF
31266 --
31267 1 = 2
31268 --
31269 THEN
31270 xla_accounting_err_pkg.build_message
31271 (p_appli_s_name => 'XLA'
31272 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31273 ,p_token_1 => 'LINE_NUMBER'
31274 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31275 ,p_token_2 => 'LINE_TYPE_NAME'
31276 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31277 l_component_type
31278 ,l_component_code
31279 ,l_component_type_code
31283 ,l_event_class_code
31280 ,l_component_appl_id
31281 ,l_amb_context_code
31282 ,l_entity_code
31284 )
31285 ,p_token_3 => 'OWNER'
31286 ,p_value_3 => xla_lookups_pkg.get_meaning(
31287 p_lookup_type => 'XLA_OWNER_TYPE'
31288 ,p_lookup_code => l_component_type_code
31289 )
31290 ,p_token_4 => 'PRODUCT_NAME'
31291 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31292 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31293 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31294 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31295 ,p_ae_header_id => NULL
31296 );
31297
31298 IF (C_LEVEL_ERROR>= g_log_level) THEN
31299 trace
31300 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31301 ,p_level => C_LEVEL_ERROR
31302 ,p_module => l_log_module);
31303 END IF;
31304 END IF;
31305 END IF;
31306 --
31307 --
31308 ------------------------------------------------------------------------------------------------
31309 -- 4219869 Business Flow
31310 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31311 -- Prior Entry. Currently, the following code is always generated.
31312 ------------------------------------------------------------------------------------------------
31313 XLA_AE_LINES_PKG.ValidateCurrentLine;
31314
31315 ------------------------------------------------------------------------------------
31316 -- 4219869 Business Flow
31317 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31318 ------------------------------------------------------------------------------------
31319 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31320
31321 ----------------------------------------------------------------------------------
31322 -- 4219869 Business Flow
31323 -- Update journal entry status -- Need to generate this within IF <condition>
31324 ----------------------------------------------------------------------------------
31325 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31326 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31327 ,p_balance_type_code => l_balance_type_code
31328 );
31329
31330 -------------------------------------------------------------------------------------------
31331 -- 4262811 - Generate the Accrual Reversal lines
31332 -------------------------------------------------------------------------------------------
31333 BEGIN
31334 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31335 (g_array_event(p_event_id).array_value_num('header_index'));
31336 IF l_acc_rev_flag IS NULL THEN
31337 l_acc_rev_flag := 'N';
31338 END IF;
31339 EXCEPTION
31340 WHEN OTHERS THEN
31341 l_acc_rev_flag := 'N';
31342 END;
31343 --
31344 IF (l_acc_rev_flag = 'Y') THEN
31345
31346 -- 4645092 ------------------------------------------------------------------------------
31347 -- To allow MPA report to determine if it should generate report process
31348 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31349 ------------------------------------------------------------------------------------------
31350
31351 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31352 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31353 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
31354 -- call ADRs
31355 -- Bug 4922099
31356 --
31357 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31358 (NVL(l_actual_upg_option, 'N') = 'O') OR
31359 (NVL(l_enc_upg_option, 'N') = 'O')
31360 )
31361 THEN
31362 NULL;
31363 --
31364 --
31365
31366 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
31367 p_code_combination_id => TO_NUMBER(C_NUM)
31368 , p_value_type_code => NULL
31369 , p_transaction_coa_id => null
31370 , p_accounting_coa_id => null
31371 , p_adr_code => NULL
31372 , p_adr_type_code => NULL
31373 , p_component_type => l_component_type
31374 , p_component_code => l_component_code
31375 , p_component_type_code => l_component_type_code
31376 , p_component_appl_id => l_component_appl_id
31377 , p_amb_context_code => l_amb_context_code
31381
31378 , p_side => NULL
31379 );
31380
31382 -- initialise segments
31383 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31384 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31385 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31386 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31387 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31388 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31389 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31390 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31391 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31392 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31393 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31394 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31395 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31396 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31397 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31398 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31399 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31400 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31401 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31402 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31403 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31404 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31405 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31406 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31407 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31408 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31409 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31410 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31411 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31412 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31413 --
31414
31415 --
31416
31417
31418 l_segment := AcctDerRule_1(
31419 p_application_id => p_application_id
31420 , p_ae_header_id => l_ae_header_id
31421 , p_source_1 => p_source_1
31422 , x_transaction_coa_id => l_adr_transaction_coa_id
31423 , x_accounting_coa_id => l_adr_accounting_coa_id
31424 , x_flexfield_segment_code => l_adr_flexfield_segment_code
31425 , x_flex_value_set_id => l_adr_flex_value_set_id
31426 , x_value_type_code => l_adr_value_type_code
31427 , x_value_combination_id => l_adr_value_combination_id
31428 , x_value_segment_code => l_adr_value_segment_code
31429 , p_side => 'NA'
31430 , p_override_seg_flag => 'Y'
31431 );
31432
31433 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
31434
31435 xla_ae_lines_pkg.set_segment(
31436 p_to_segment_code => 'GL_ACCOUNT'
31437 , p_segment_value => l_segment
31438 , p_from_segment_code => l_adr_value_segment_code
31439 , p_from_combination_id => l_adr_value_combination_id
31440 , p_value_type_code => l_adr_value_type_code
31441 , p_transaction_coa_id => l_adr_transaction_coa_id
31442 , p_accounting_coa_id => l_adr_accounting_coa_id
31443 , p_flexfield_segment_code => l_adr_flexfield_segment_code
31444 , p_flex_value_set_id => l_adr_flex_value_set_id
31445 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
31446 , p_adr_type_code => 'S'
31447 , p_component_type => l_component_type
31448 , p_component_code => l_component_code
31449 , p_component_type_code => l_component_type_code
31450 , p_component_appl_id => l_component_appl_id
31451 , p_amb_context_code => l_amb_context_code
31452 , p_entity_code => 'AP_PAYMENTS'
31453 , p_event_class_code => 'FUTURE DATED PAYMENTS'
31454 , p_side => 'NA'
31455 );
31456
31457 END IF;
31458
31459 --
31460 --
31461 END IF;
31462
31463 --
31464 -- Update the line information that should be overwritten
31465 --
31466 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31467 p_header_num => 1);
31468 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31469
31470 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31471
31472 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31476 --
31473 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31474 END IF;
31475
31477 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31478 --
31479 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31480 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31481 ELSE
31482 ---------------------------------------------------------------------------------------------------
31483 -- 4262811a Switch Sign
31484 ---------------------------------------------------------------------------------------------------
31485 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31486 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31487 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31488 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31489 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31490 -- 5132302
31491 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31492 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31493
31494 END IF;
31495
31496 -- 4955764
31497 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31498 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31499
31500
31501 XLA_AE_LINES_PKG.ValidateCurrentLine;
31502 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31503
31504 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31505 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31506 ,p_balance_type_code => l_balance_type_code);
31507
31508 END IF;
31509
31510 -----------------------------------------------------------------------------------------
31511 -- 4262811 Multiperiod Accounting
31512 -----------------------------------------------------------------------------------------
31513 -- No MPA option is assigned.
31514
31515
31516 END IF;
31517 END IF;
31518 --
31519
31520 --
31521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31522 trace
31523 (p_msg => 'END of AcctLineType_73'
31524 ,p_level => C_LEVEL_PROCEDURE
31525 ,p_module => l_log_module);
31526 END IF;
31527 --
31528 EXCEPTION
31529 WHEN xla_exceptions_pkg.application_exception THEN
31530 RAISE;
31531 WHEN OTHERS THEN
31532 xla_exceptions_pkg.raise_message
31533 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_73');
31534 END AcctLineType_73;
31535 --
31536
31537 ---------------------------------------
31538 --
31539 -- PRIVATE FUNCTION
31540 -- AcctLineType_74
31541 --
31542 ---------------------------------------
31543 PROCEDURE AcctLineType_74 (
31544 p_application_id IN NUMBER
31545 ,p_event_id IN NUMBER
31546 ,p_calculate_acctd_flag IN VARCHAR2
31547 ,p_calculate_g_l_flag IN VARCHAR2
31548 ,p_actual_flag IN OUT VARCHAR2
31549 ,p_balance_type_code OUT VARCHAR2
31550 ,p_gain_or_loss_ref OUT VARCHAR2
31551
31552 --Bank Cash Account
31553 , p_source_1 IN NUMBER
31554 --Automatic Offsets Value
31555 , p_source_4 IN VARCHAR2
31556 , p_source_4_meaning IN VARCHAR2
31557 --When to Account for Payment Option
31558 , p_source_38 IN VARCHAR2
31559 --Payment Distribution Type
31560 , p_source_39 IN VARCHAR2
31561 , p_source_39_meaning IN VARCHAR2
31562 --Accounting Reversal Indicator
31563 , p_source_40 IN VARCHAR2
31564 --Payment Distribution Amount
31565 , p_source_41 IN NUMBER
31566 --Business Flow Accounts Payable Application Identifier
31567 , p_source_42 IN NUMBER
31568 --Business Flow Payment Distribution Type
31569 , p_source_43 IN VARCHAR2
31570 --Business Flow Payment Entity Code
31571 , p_source_44 IN VARCHAR2
31572 --Business Flow Payment Distribution Identifier
31573 , p_source_45 IN NUMBER
31574 --Business Flow Payment Identifier
31575 , p_source_46 IN NUMBER
31576 --Payment Distribution Identifier
31577 , p_source_47 IN NUMBER
31578 --Distribution Link Type
31579 , p_source_48 IN VARCHAR2
31580 --Payment Currency Code
31581 , p_source_49 IN VARCHAR2
31582 --Override Accounted Amount Indicator
31583 , p_source_53 IN VARCHAR2
31584 , p_source_53_meaning IN VARCHAR2
31585 --Payment Supplier Identifier
31586 , p_source_54 IN NUMBER
31587 --Payment Supplier Site Identifier
31588 , p_source_55 IN NUMBER
31589 --Third Party Type
31590 , p_source_56 IN VARCHAR2
31591 --Payment Distribution Reversed Identifier
31592 , p_source_57 IN NUMBER
31593 --Pooled Bank Account Option
31594 , p_source_110 IN VARCHAR2
31595 , p_source_110_meaning IN VARCHAR2
31596 --Payment Maturity Date
31597 , p_source_111 IN DATE
31601 , p_source_115 IN NUMBER
31598 --Payment Exchange Date
31599 , p_source_114 IN DATE
31600 --Payment Exchange Rate
31602 --Payment Exchange Rate Type
31603 , p_source_116 IN VARCHAR2
31604 --Payment Distribution (Matured Rate) Ledger Amount
31605 , p_source_117 IN NUMBER
31606 )
31607 IS
31608
31609 l_component_type VARCHAR2(80);
31610 l_component_code VARCHAR2(30);
31611 l_component_type_code VARCHAR2(1);
31612 l_component_appl_id INTEGER;
31613 l_amb_context_code VARCHAR2(30);
31614 l_entity_code VARCHAR2(30);
31615 l_event_class_code VARCHAR2(30);
31616 l_ae_header_id NUMBER;
31617 l_event_type_code VARCHAR2(30);
31618 l_line_definition_code VARCHAR2(30);
31619 l_line_definition_owner_code VARCHAR2(1);
31620 --
31621 -- adr variables
31622 l_segment VARCHAR2(30);
31623 l_ccid NUMBER;
31624 l_adr_transaction_coa_id NUMBER;
31625 l_adr_accounting_coa_id NUMBER;
31626 l_adr_flexfield_segment_code VARCHAR2(30);
31627 l_adr_flex_value_set_id NUMBER;
31628 l_adr_value_type_code VARCHAR2(30);
31629 l_adr_value_combination_id NUMBER;
31630 l_adr_value_segment_code VARCHAR2(30);
31631
31632 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31633 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31634 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31635 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31636
31637 -- 4262811 Variables ------------------------------------------------------------------------------------------
31638 l_entered_amt_idx NUMBER;
31639 l_accted_amt_idx NUMBER;
31640 l_acc_rev_flag VARCHAR2(1);
31641 l_accrual_line_num NUMBER;
31642 l_tmp_amt NUMBER;
31643 l_acc_rev_natural_side_code VARCHAR2(1);
31644
31645 l_num_entries NUMBER;
31646 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31647 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31648 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31649 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31650 l_recog_line_1 NUMBER;
31651 l_recog_line_2 NUMBER;
31652
31653 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31654 l_bflow_applied_to_amt NUMBER; -- 5132302
31655 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31656
31657 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31658
31659 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31660 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31661
31662 ---------------------------------------------------------------------------------------------------------------
31663
31664
31665 --
31666 -- bulk performance
31667 --
31668 l_balance_type_code VARCHAR2(1);
31669 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31670 l_log_module VARCHAR2(240);
31671
31672 --
31673 -- Upgrade strategy
31674 --
31675 l_actual_upg_option VARCHAR2(1);
31676 l_enc_upg_option VARCHAR2(1);
31677
31678 --
31679 BEGIN
31680 --
31681 IF g_log_enabled THEN
31682 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
31683 END IF;
31684 --
31685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31686
31687 trace
31688 (p_msg => 'BEGIN of AcctLineType_74'
31689 ,p_level => C_LEVEL_PROCEDURE
31690 ,p_module => l_log_module);
31691
31692 END IF;
31693 --
31694 l_component_type := 'AMB_JLT';
31695 l_component_code := 'AP_CASH_PMT_MAT_AOS_BS';
31696 l_component_type_code := 'S';
31697 l_component_appl_id := 200;
31698 l_amb_context_code := 'DEFAULT';
31699 l_entity_code := 'AP_PAYMENTS';
31700 l_event_class_code := 'FUTURE DATED PAYMENTS';
31701 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
31702 l_line_definition_owner_code := 'S';
31703 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
31704 --
31705 l_balance_type_code := 'A';
31706 l_segment := NULL;
31707 l_ccid := NULL;
31708 l_adr_transaction_coa_id := NULL;
31709 l_adr_accounting_coa_id := NULL;
31710 l_adr_flexfield_segment_code := NULL;
31711 l_adr_flex_value_set_id := NULL;
31712 l_adr_value_type_code := NULL;
31713 l_adr_value_combination_id := NULL;
31714 l_adr_value_segment_code := NULL;
31715
31716 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
31717 l_bflow_class_code := ''; -- 4219869 Business Flow
31718 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31719 l_budgetary_control_flag := 'N';
31720
31721 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31722 l_bflow_applied_to_amt := NULL; -- 5132302
31723 l_entered_amt_idx := NULL; -- 4262811
31724 l_accted_amt_idx := NULL; -- 4262811
31725 l_acc_rev_flag := NULL; -- 4262811
31729
31726 l_accrual_line_num := NULL; -- 4262811
31727 l_tmp_amt := NULL; -- 4262811
31728 --
31730 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31731 l_balance_type_code <> 'B' THEN
31732 IF NVL(p_source_38,'
31733 ') = 'ISSUE_ISSUE' AND
31734 (NVL(p_source_110,'
31735 ') = 'Y' AND
31736 NVL(p_source_4,'
31737 ') = 'BALANCING_SEGMENT') AND
31738 p_source_111 IS NOT NULL AND
31739 NVL(p_source_39,'
31740 ') = 'CASH'
31741 THEN
31742
31743 --
31744 XLA_AE_LINES_PKG.SetNewLine;
31745
31746 p_balance_type_code := l_balance_type_code;
31747 -- set the flag so later we will know whether the gain loss line needs to be created
31748
31749 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31750 p_actual_flag :='A';
31751 END IF;
31752
31753 --
31754 -- bulk performance
31755 --
31756 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31757 p_header_num => 0); -- 4262811
31758 --
31759 -- set accounting line options
31760 --
31761 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31762 p_natural_side_code => 'C'
31763 , p_gain_or_loss_flag => 'N'
31764 , p_gl_transfer_mode_code => 'S'
31765 , p_acct_entry_type_code => 'A'
31766 , p_switch_side_flag => 'Y'
31767 , p_merge_duplicate_code => 'A'
31768 );
31769 --
31770 l_acc_rev_natural_side_code := 'D'; -- 4262811
31771 --
31772 --
31773 -- set accounting line type info
31774 --
31775 xla_ae_lines_pkg.SetAcctLineType
31776 (p_component_type => l_component_type
31777 ,p_event_type_code => l_event_type_code
31778 ,p_line_definition_owner_code => l_line_definition_owner_code
31779 ,p_line_definition_code => l_line_definition_code
31780 ,p_accounting_line_code => l_component_code
31781 ,p_accounting_line_type_code => l_component_type_code
31782 ,p_accounting_line_appl_id => l_component_appl_id
31783 ,p_amb_context_code => l_amb_context_code
31784 ,p_entity_code => l_entity_code
31785 ,p_event_class_code => l_event_class_code);
31786 --
31787 -- set accounting class
31788 --
31789 xla_ae_lines_pkg.SetAcctClass(
31790 p_accounting_class_code => 'CASH'
31791 , p_ae_header_id => l_ae_header_id
31792 );
31793
31794 --
31795 -- set rounding class
31796 --
31797 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31798 'CASH';
31799
31800 --
31801 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31802 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31803 --
31804 -- bulk performance
31805 --
31806 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31807
31808 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31809 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31810
31811 -- 4955764
31812 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31813 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31814
31815 -- 4458381 Public Sector Enh
31816
31817 --
31818 -- set accounting attributes for the line type
31819 --
31820 l_entered_amt_idx := 9;
31821 l_accted_amt_idx := 14;
31822 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31823 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31824 l_rec_acct_attrs.array_char_value(1) := p_source_40;
31825 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31826 l_rec_acct_attrs.array_num_value(2) := p_source_42;
31827 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31828 l_rec_acct_attrs.array_char_value(3) := p_source_43;
31829 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31830 l_rec_acct_attrs.array_char_value(4) := p_source_44;
31831 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31832 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
31833 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31834 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
31835 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31836 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
31837 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31838 l_rec_acct_attrs.array_char_value(8) := p_source_48;
31839 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31840 l_rec_acct_attrs.array_num_value(9) := p_source_41;
31841 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31842 l_rec_acct_attrs.array_char_value(10) := p_source_49;
31843 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31844 l_rec_acct_attrs.array_date_value(11) := p_source_114;
31848 l_rec_acct_attrs.array_char_value(13) := p_source_116;
31845 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31846 l_rec_acct_attrs.array_num_value(12) := p_source_115;
31847 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31849 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31850 l_rec_acct_attrs.array_num_value(14) := p_source_117;
31851 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31852 l_rec_acct_attrs.array_char_value(15) := p_source_53;
31853 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31854 l_rec_acct_attrs.array_num_value(16) := p_source_54;
31855 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31856 l_rec_acct_attrs.array_num_value(17) := p_source_55;
31857 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31858 l_rec_acct_attrs.array_char_value(18) := p_source_56;
31859 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31860 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
31861 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31862 l_rec_acct_attrs.array_char_value(20) := p_source_48;
31863
31864 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31865 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31866
31867 ---------------------------------------------------------------------------------------------------------------
31868 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31869 ---------------------------------------------------------------------------------------------------------------
31870 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31871
31872 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31873 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31874
31875 IF xla_accounting_cache_pkg.GetValueChar
31876 (p_source_code => 'LEDGER_CATEGORY_CODE'
31877 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31878 AND l_bflow_method_code = 'PRIOR_ENTRY'
31879 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31880 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31881 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31882 )
31883 THEN
31884 xla_ae_lines_pkg.BflowUpgEntry
31885 (p_business_method_code => l_bflow_method_code
31886 ,p_business_class_code => l_bflow_class_code
31887 ,p_balance_type => l_balance_type_code);
31888 ELSE
31889 NULL;
31890 XLA_AE_LINES_PKG.business_flow_validation(
31891 p_business_method_code => l_bflow_method_code
31892 ,p_business_class_code => l_bflow_class_code
31893 ,p_inherit_description_flag => l_inherit_desc_flag);
31894 END IF;
31895
31896 --
31897 -- call analytical criteria
31898 --
31899
31900 --
31901 -- call description
31902 --
31903 -- No description or it is inherited.
31904 --
31905 -- call ADRs
31906 -- Bug 4922099
31907 --
31908 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31909 (NVL(l_actual_upg_option, 'N') = 'O') OR
31910 (NVL(l_enc_upg_option, 'N') = 'O')
31911 )
31912 THEN
31913 NULL;
31914 --
31915 --
31916
31917 l_ccid := AcctDerRule_20(
31918 p_application_id => p_application_id
31919 , p_ae_header_id => l_ae_header_id
31920 , p_source_1 => p_source_1
31921 , x_transaction_coa_id => l_adr_transaction_coa_id
31922 , x_accounting_coa_id => l_adr_accounting_coa_id
31923 , x_value_type_code => l_adr_value_type_code
31924 , p_side => 'NA'
31925 );
31926
31927 xla_ae_lines_pkg.set_ccid(
31928 p_code_combination_id => l_ccid
31929 , p_value_type_code => l_adr_value_type_code
31930 , p_transaction_coa_id => l_adr_transaction_coa_id
31931 , p_accounting_coa_id => l_adr_accounting_coa_id
31932 , p_adr_code => 'AP_CASH'
31933 , p_adr_type_code => 'S'
31934 , p_component_type => l_component_type
31935 , p_component_code => l_component_code
31936 , p_component_type_code => l_component_type_code
31937 , p_component_appl_id => l_component_appl_id
31938 , p_amb_context_code => l_amb_context_code
31939 , p_side => 'NA'
31940 );
31941
31942
31943 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
31944 p_to_segment_code => 'GL_BALANCING'
31945 , p_segment_value => C_CHAR
31946 , p_from_segment_code => NULL
31947 , p_from_combination_id => NULL
31948 , p_value_type_code => NULL
31949 , p_transaction_coa_id => null
31950 , p_accounting_coa_id => null
31951 , p_flexfield_segment_code => NULL
31952 , p_flex_value_set_id => NULL
31953 , p_adr_code => NULL
31954 , p_adr_type_code => NULL
31958 , p_component_appl_id => l_component_appl_id
31955 , p_component_type => l_component_type
31956 , p_component_code => l_component_code
31957 , p_component_type_code => l_component_type_code
31959 , p_amb_context_code => l_amb_context_code
31960 , p_entity_code => 'AP_PAYMENTS'
31961 , p_event_class_code => 'FUTURE DATED PAYMENTS'
31962 , p_side => 'NA'
31963 );
31964 --
31965
31966
31967 --
31968 --
31969 END IF;
31970 --
31971 -- Bug 4922099
31972 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31973 (NVL(l_enc_upg_option, 'N') = 'O')
31974 ) AND
31975 (l_bflow_method_code = 'PRIOR_ENTRY')
31976 )
31977 THEN
31978 IF
31979 --
31980 1 = 2
31981 --
31982 THEN
31983 xla_accounting_err_pkg.build_message
31984 (p_appli_s_name => 'XLA'
31985 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31986 ,p_token_1 => 'LINE_NUMBER'
31987 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31988 ,p_token_2 => 'LINE_TYPE_NAME'
31989 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31990 l_component_type
31991 ,l_component_code
31992 ,l_component_type_code
31993 ,l_component_appl_id
31994 ,l_amb_context_code
31995 ,l_entity_code
31996 ,l_event_class_code
31997 )
31998 ,p_token_3 => 'OWNER'
31999 ,p_value_3 => xla_lookups_pkg.get_meaning(
32000 p_lookup_type => 'XLA_OWNER_TYPE'
32001 ,p_lookup_code => l_component_type_code
32002 )
32003 ,p_token_4 => 'PRODUCT_NAME'
32004 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32005 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32006 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32007 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32008 ,p_ae_header_id => NULL
32009 );
32010
32011 IF (C_LEVEL_ERROR>= g_log_level) THEN
32012 trace
32013 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32014 ,p_level => C_LEVEL_ERROR
32015 ,p_module => l_log_module);
32016 END IF;
32017 END IF;
32018 END IF;
32019 --
32020 --
32021 ------------------------------------------------------------------------------------------------
32022 -- 4219869 Business Flow
32023 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32024 -- Prior Entry. Currently, the following code is always generated.
32025 ------------------------------------------------------------------------------------------------
32026 XLA_AE_LINES_PKG.ValidateCurrentLine;
32027
32028 ------------------------------------------------------------------------------------
32029 -- 4219869 Business Flow
32030 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32031 ------------------------------------------------------------------------------------
32032 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32033
32034 ----------------------------------------------------------------------------------
32035 -- 4219869 Business Flow
32036 -- Update journal entry status -- Need to generate this within IF <condition>
32037 ----------------------------------------------------------------------------------
32038 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32039 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32040 ,p_balance_type_code => l_balance_type_code
32041 );
32042
32043 -------------------------------------------------------------------------------------------
32044 -- 4262811 - Generate the Accrual Reversal lines
32045 -------------------------------------------------------------------------------------------
32046 BEGIN
32047 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32048 (g_array_event(p_event_id).array_value_num('header_index'));
32049 IF l_acc_rev_flag IS NULL THEN
32050 l_acc_rev_flag := 'N';
32051 END IF;
32052 EXCEPTION
32053 WHEN OTHERS THEN
32057 IF (l_acc_rev_flag = 'Y') THEN
32054 l_acc_rev_flag := 'N';
32055 END;
32056 --
32058
32059 -- 4645092 ------------------------------------------------------------------------------
32060 -- To allow MPA report to determine if it should generate report process
32061 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32062 ------------------------------------------------------------------------------------------
32063
32064 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32065 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32066 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32067 -- call ADRs
32068 -- Bug 4922099
32069 --
32070 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32071 (NVL(l_actual_upg_option, 'N') = 'O') OR
32072 (NVL(l_enc_upg_option, 'N') = 'O')
32073 )
32074 THEN
32075 NULL;
32076 --
32077 --
32078
32079 l_ccid := AcctDerRule_20(
32080 p_application_id => p_application_id
32081 , p_ae_header_id => l_ae_header_id
32082 , p_source_1 => p_source_1
32083 , x_transaction_coa_id => l_adr_transaction_coa_id
32084 , x_accounting_coa_id => l_adr_accounting_coa_id
32085 , x_value_type_code => l_adr_value_type_code
32086 , p_side => 'NA'
32087 );
32088
32089 xla_ae_lines_pkg.set_ccid(
32090 p_code_combination_id => l_ccid
32091 , p_value_type_code => l_adr_value_type_code
32092 , p_transaction_coa_id => l_adr_transaction_coa_id
32093 , p_accounting_coa_id => l_adr_accounting_coa_id
32094 , p_adr_code => 'AP_CASH'
32095 , p_adr_type_code => 'S'
32096 , p_component_type => l_component_type
32097 , p_component_code => l_component_code
32098 , p_component_type_code => l_component_type_code
32099 , p_component_appl_id => l_component_appl_id
32100 , p_amb_context_code => l_amb_context_code
32101 , p_side => 'NA'
32102 );
32103
32104
32105 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
32106 p_to_segment_code => 'GL_BALANCING'
32107 , p_segment_value => C_CHAR
32108 , p_from_segment_code => NULL
32109 , p_from_combination_id => NULL
32110 , p_value_type_code => NULL
32111 , p_transaction_coa_id => null
32112 , p_accounting_coa_id => null
32113 , p_flexfield_segment_code => NULL
32114 , p_flex_value_set_id => NULL
32115 , p_adr_code => NULL
32116 , p_adr_type_code => NULL
32117 , p_component_type => l_component_type
32118 , p_component_code => l_component_code
32119 , p_component_type_code => l_component_type_code
32120 , p_component_appl_id => l_component_appl_id
32121 , p_amb_context_code => l_amb_context_code
32122 , p_entity_code => 'AP_PAYMENTS'
32123 , p_event_class_code => 'FUTURE DATED PAYMENTS'
32124 , p_side => 'NA'
32125 );
32126 --
32127
32128
32129 --
32130 --
32131 END IF;
32132
32133 --
32134 -- Update the line information that should be overwritten
32135 --
32136 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32137 p_header_num => 1);
32138 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32139
32140 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32141
32142 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32143 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32144 END IF;
32145
32146 --
32147 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32148 --
32149 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32150 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32151 ELSE
32152 ---------------------------------------------------------------------------------------------------
32153 -- 4262811a Switch Sign
32154 ---------------------------------------------------------------------------------------------------
32155 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32156 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32157 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32158 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32159 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32160 -- 5132302
32161 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32162 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32163
32164 END IF;
32165
32166 -- 4955764
32170
32167 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32168 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32169
32171 XLA_AE_LINES_PKG.ValidateCurrentLine;
32172 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32173
32174 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32175 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32176 ,p_balance_type_code => l_balance_type_code);
32177
32178 END IF;
32179
32180 -----------------------------------------------------------------------------------------
32181 -- 4262811 Multiperiod Accounting
32182 -----------------------------------------------------------------------------------------
32183 -- No MPA option is assigned.
32184
32185
32186 END IF;
32187 END IF;
32188 --
32189
32190 --
32191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32192 trace
32193 (p_msg => 'END of AcctLineType_74'
32194 ,p_level => C_LEVEL_PROCEDURE
32195 ,p_module => l_log_module);
32196 END IF;
32197 --
32198 EXCEPTION
32199 WHEN xla_exceptions_pkg.application_exception THEN
32200 RAISE;
32201 WHEN OTHERS THEN
32202 xla_exceptions_pkg.raise_message
32203 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_74');
32204 END AcctLineType_74;
32205 --
32206
32207 ---------------------------------------
32208 --
32209 -- PRIVATE FUNCTION
32210 -- AcctLineType_75
32211 --
32212 ---------------------------------------
32213 PROCEDURE AcctLineType_75 (
32214 p_application_id IN NUMBER
32215 ,p_event_id IN NUMBER
32216 ,p_calculate_acctd_flag IN VARCHAR2
32217 ,p_calculate_g_l_flag IN VARCHAR2
32218 ,p_actual_flag IN OUT VARCHAR2
32219 ,p_balance_type_code OUT VARCHAR2
32220 ,p_gain_or_loss_ref OUT VARCHAR2
32221
32222 --Bank Cash Account
32223 , p_source_1 IN NUMBER
32224 --Payment Distribution (Payment Rate) Ledger Amount
32225 , p_source_9 IN NUMBER
32226 --Automatic Offsets Flag
32227 , p_source_30 IN VARCHAR2
32228 , p_source_30_meaning IN VARCHAR2
32229 --When to Account for Payment Option
32230 , p_source_38 IN VARCHAR2
32231 --Payment Distribution Type
32232 , p_source_39 IN VARCHAR2
32233 , p_source_39_meaning IN VARCHAR2
32234 --Accounting Reversal Indicator
32235 , p_source_40 IN VARCHAR2
32236 --Payment Distribution Amount
32237 , p_source_41 IN NUMBER
32238 --Business Flow Accounts Payable Application Identifier
32239 , p_source_42 IN NUMBER
32240 --Payment Distribution Identifier
32241 , p_source_47 IN NUMBER
32242 --Distribution Link Type
32243 , p_source_48 IN VARCHAR2
32244 --Payment Currency Code
32245 , p_source_49 IN VARCHAR2
32246 --Override Accounted Amount Indicator
32247 , p_source_53 IN VARCHAR2
32248 , p_source_53_meaning IN VARCHAR2
32249 --Payment Supplier Identifier
32250 , p_source_54 IN NUMBER
32251 --Payment Supplier Site Identifier
32252 , p_source_55 IN NUMBER
32253 --Third Party Type
32254 , p_source_56 IN VARCHAR2
32255 --Payment Distribution Reversed Identifier
32256 , p_source_57 IN NUMBER
32257 --Invoice Distribution Tax Line Identifier
32258 , p_source_58 IN NUMBER
32259 --Invoice Distribution Summary Tax Line Identifier
32260 , p_source_59 IN NUMBER
32261 --Payment Type
32262 , p_source_60 IN VARCHAR2
32263 , p_source_60_meaning IN VARCHAR2
32264 --Business Flow Invoice Distribution Type
32265 , p_source_62 IN VARCHAR2
32266 --Business Flow Invoice Entity Code
32267 , p_source_63 IN VARCHAR2
32268 --Business Flow Invoice Distribution Identifier
32269 , p_source_64 IN NUMBER
32270 --Business Flow Invoice Identifier
32271 , p_source_65 IN NUMBER
32272 --Invoice Distribution Tax Distribution Identifier from Tax
32273 , p_source_66 IN NUMBER
32274 --Pooled Bank Account Option
32275 , p_source_110 IN VARCHAR2
32276 , p_source_110_meaning IN VARCHAR2
32277 --Payment Maturity Date
32278 , p_source_111 IN DATE
32279 --Payment Exchange Date
32280 , p_source_114 IN DATE
32281 --Payment Exchange Rate
32282 , p_source_115 IN NUMBER
32283 --Payment Exchange Rate Type
32284 , p_source_116 IN VARCHAR2
32285 )
32286 IS
32287
32288 l_component_type VARCHAR2(80);
32289 l_component_code VARCHAR2(30);
32290 l_component_type_code VARCHAR2(1);
32291 l_component_appl_id INTEGER;
32292 l_amb_context_code VARCHAR2(30);
32293 l_entity_code VARCHAR2(30);
32294 l_event_class_code VARCHAR2(30);
32295 l_ae_header_id NUMBER;
32296 l_event_type_code VARCHAR2(30);
32297 l_line_definition_code VARCHAR2(30);
32298 l_line_definition_owner_code VARCHAR2(1);
32299 --
32300 -- adr variables
32301 l_segment VARCHAR2(30);
32302 l_ccid NUMBER;
32303 l_adr_transaction_coa_id NUMBER;
32304 l_adr_accounting_coa_id NUMBER;
32305 l_adr_flexfield_segment_code VARCHAR2(30);
32309 l_adr_value_segment_code VARCHAR2(30);
32306 l_adr_flex_value_set_id NUMBER;
32307 l_adr_value_type_code VARCHAR2(30);
32308 l_adr_value_combination_id NUMBER;
32310
32311 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32312 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32313 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32314 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32315
32316 -- 4262811 Variables ------------------------------------------------------------------------------------------
32317 l_entered_amt_idx NUMBER;
32318 l_accted_amt_idx NUMBER;
32319 l_acc_rev_flag VARCHAR2(1);
32320 l_accrual_line_num NUMBER;
32321 l_tmp_amt NUMBER;
32322 l_acc_rev_natural_side_code VARCHAR2(1);
32323
32324 l_num_entries NUMBER;
32325 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32326 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32327 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32328 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32329 l_recog_line_1 NUMBER;
32330 l_recog_line_2 NUMBER;
32331
32332 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32333 l_bflow_applied_to_amt NUMBER; -- 5132302
32334 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32335
32336 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32337
32338 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32339 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32340
32341 ---------------------------------------------------------------------------------------------------------------
32342
32343
32344 --
32345 -- bulk performance
32346 --
32347 l_balance_type_code VARCHAR2(1);
32348 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32349 l_log_module VARCHAR2(240);
32350
32351 --
32352 -- Upgrade strategy
32353 --
32354 l_actual_upg_option VARCHAR2(1);
32355 l_enc_upg_option VARCHAR2(1);
32356
32357 --
32358 BEGIN
32359 --
32360 IF g_log_enabled THEN
32361 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
32362 END IF;
32363 --
32364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32365
32366 trace
32367 (p_msg => 'BEGIN of AcctLineType_75'
32368 ,p_level => C_LEVEL_PROCEDURE
32369 ,p_module => l_log_module);
32370
32371 END IF;
32372 --
32373 l_component_type := 'AMB_JLT';
32374 l_component_code := 'AP_CASH_REF';
32375 l_component_type_code := 'S';
32376 l_component_appl_id := 200;
32377 l_amb_context_code := 'DEFAULT';
32378 l_entity_code := 'AP_PAYMENTS';
32379 l_event_class_code := 'REFUNDS';
32380 l_event_type_code := 'REFUNDS_ALL';
32381 l_line_definition_owner_code := 'S';
32382 l_line_definition_code := 'CASH_REFUNDS_ALL';
32383 --
32384 l_balance_type_code := 'A';
32385 l_segment := NULL;
32386 l_ccid := NULL;
32387 l_adr_transaction_coa_id := NULL;
32388 l_adr_accounting_coa_id := NULL;
32389 l_adr_flexfield_segment_code := NULL;
32390 l_adr_flex_value_set_id := NULL;
32391 l_adr_value_type_code := NULL;
32392 l_adr_value_combination_id := NULL;
32393 l_adr_value_segment_code := NULL;
32394
32395 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32396 l_bflow_class_code := ''; -- 4219869 Business Flow
32397 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32398 l_budgetary_control_flag := 'N';
32399
32400 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32401 l_bflow_applied_to_amt := NULL; -- 5132302
32402 l_entered_amt_idx := NULL; -- 4262811
32403 l_accted_amt_idx := NULL; -- 4262811
32404 l_acc_rev_flag := NULL; -- 4262811
32405 l_accrual_line_num := NULL; -- 4262811
32406 l_tmp_amt := NULL; -- 4262811
32407 --
32408
32409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32410 l_balance_type_code <> 'B' THEN
32411 IF NVL(p_source_38,'
32412 ') = 'ISSUE_ISSUE' AND
32413 (NVL(p_source_30,'
32414 ') <> 'Y' OR
32415 NVL(p_source_30,'
32416 ') = 'Y' AND
32417 NVL(p_source_110,'
32418 ') <> 'Y') AND
32419 p_source_111 IS NULL AND
32420 NVL(p_source_39,'
32421 ') = 'CASH' AND
32422 NVL(p_source_60,'
32423 ') = 'R'
32424 THEN
32425
32426 --
32427 XLA_AE_LINES_PKG.SetNewLine;
32428
32429 p_balance_type_code := l_balance_type_code;
32430 -- set the flag so later we will know whether the gain loss line needs to be created
32431
32432 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32433 p_actual_flag :='A';
32434 END IF;
32435
32436 --
32437 -- bulk performance
32438 --
32442 -- set accounting line options
32439 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32440 p_header_num => 0); -- 4262811
32441 --
32443 --
32444 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32445 p_natural_side_code => 'C'
32446 , p_gain_or_loss_flag => 'N'
32447 , p_gl_transfer_mode_code => 'S'
32448 , p_acct_entry_type_code => 'A'
32449 , p_switch_side_flag => 'Y'
32450 , p_merge_duplicate_code => 'A'
32451 );
32452 --
32453 l_acc_rev_natural_side_code := 'D'; -- 4262811
32454 --
32455 --
32456 -- set accounting line type info
32457 --
32458 xla_ae_lines_pkg.SetAcctLineType
32459 (p_component_type => l_component_type
32460 ,p_event_type_code => l_event_type_code
32461 ,p_line_definition_owner_code => l_line_definition_owner_code
32462 ,p_line_definition_code => l_line_definition_code
32463 ,p_accounting_line_code => l_component_code
32464 ,p_accounting_line_type_code => l_component_type_code
32465 ,p_accounting_line_appl_id => l_component_appl_id
32466 ,p_amb_context_code => l_amb_context_code
32467 ,p_entity_code => l_entity_code
32468 ,p_event_class_code => l_event_class_code);
32469 --
32470 -- set accounting class
32471 --
32472 xla_ae_lines_pkg.SetAcctClass(
32473 p_accounting_class_code => 'CASH'
32474 , p_ae_header_id => l_ae_header_id
32475 );
32476
32477 --
32478 -- set rounding class
32479 --
32480 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32481 'CASH';
32482
32483 --
32484 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32485 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32486 --
32487 -- bulk performance
32488 --
32489 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32490
32491 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32492 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32493
32494 -- 4955764
32495 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32496 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32497
32498 -- 4458381 Public Sector Enh
32499
32500 --
32501 -- set accounting attributes for the line type
32502 --
32503 l_entered_amt_idx := 9;
32504 l_accted_amt_idx := 14;
32505 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32506 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32507 l_rec_acct_attrs.array_char_value(1) := p_source_40;
32508 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32509 l_rec_acct_attrs.array_num_value(2) := p_source_42;
32510 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32511 l_rec_acct_attrs.array_char_value(3) := p_source_62;
32512 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32513 l_rec_acct_attrs.array_char_value(4) := p_source_63;
32514 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32515 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
32516 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32517 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
32518 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32519 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
32520 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32521 l_rec_acct_attrs.array_char_value(8) := p_source_48;
32522 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32523 l_rec_acct_attrs.array_num_value(9) := p_source_41;
32524 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32525 l_rec_acct_attrs.array_char_value(10) := p_source_49;
32526 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32527 l_rec_acct_attrs.array_date_value(11) := p_source_114;
32528 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32529 l_rec_acct_attrs.array_num_value(12) := p_source_115;
32530 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32531 l_rec_acct_attrs.array_char_value(13) := p_source_116;
32532 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32533 l_rec_acct_attrs.array_num_value(14) := p_source_9;
32534 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32535 l_rec_acct_attrs.array_char_value(15) := p_source_53;
32536 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32537 l_rec_acct_attrs.array_num_value(16) := p_source_54;
32538 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32539 l_rec_acct_attrs.array_num_value(17) := p_source_55;
32540 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32541 l_rec_acct_attrs.array_char_value(18) := p_source_56;
32542 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32543 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
32547 l_rec_acct_attrs.array_num_value(21) := p_source_58;
32544 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32545 l_rec_acct_attrs.array_char_value(20) := p_source_48;
32546 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32548 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32549 l_rec_acct_attrs.array_num_value(22) := p_source_66;
32550 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32551 l_rec_acct_attrs.array_num_value(23) := p_source_59;
32552
32553 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32554 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32555
32556 ---------------------------------------------------------------------------------------------------------------
32557 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32558 ---------------------------------------------------------------------------------------------------------------
32559 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32560
32561 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32562 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32563
32564 IF xla_accounting_cache_pkg.GetValueChar
32565 (p_source_code => 'LEDGER_CATEGORY_CODE'
32566 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32567 AND l_bflow_method_code = 'PRIOR_ENTRY'
32568 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32569 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32570 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32571 )
32572 THEN
32573 xla_ae_lines_pkg.BflowUpgEntry
32574 (p_business_method_code => l_bflow_method_code
32575 ,p_business_class_code => l_bflow_class_code
32576 ,p_balance_type => l_balance_type_code);
32577 ELSE
32578 NULL;
32579 -- No business flow processing for business flow method of NONE.
32580 END IF;
32581
32582 --
32583 -- call analytical criteria
32584 --
32585
32586 --
32587 -- call description
32588 --
32589 -- No description or it is inherited.
32590 --
32591 -- call ADRs
32592 -- Bug 4922099
32593 --
32594 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32595 (NVL(l_actual_upg_option, 'N') = 'O') OR
32596 (NVL(l_enc_upg_option, 'N') = 'O')
32597 )
32598 THEN
32599 NULL;
32600 --
32601 --
32602
32603 l_ccid := AcctDerRule_20(
32604 p_application_id => p_application_id
32605 , p_ae_header_id => l_ae_header_id
32606 , p_source_1 => p_source_1
32607 , x_transaction_coa_id => l_adr_transaction_coa_id
32608 , x_accounting_coa_id => l_adr_accounting_coa_id
32609 , x_value_type_code => l_adr_value_type_code
32610 , p_side => 'NA'
32611 );
32612
32613 xla_ae_lines_pkg.set_ccid(
32614 p_code_combination_id => l_ccid
32615 , p_value_type_code => l_adr_value_type_code
32616 , p_transaction_coa_id => l_adr_transaction_coa_id
32617 , p_accounting_coa_id => l_adr_accounting_coa_id
32618 , p_adr_code => 'AP_CASH'
32619 , p_adr_type_code => 'S'
32620 , p_component_type => l_component_type
32621 , p_component_code => l_component_code
32622 , p_component_type_code => l_component_type_code
32623 , p_component_appl_id => l_component_appl_id
32624 , p_amb_context_code => l_amb_context_code
32625 , p_side => 'NA'
32626 );
32627
32628
32629 --
32630 --
32631 END IF;
32632 --
32633 -- Bug 4922099
32634 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32635 (NVL(l_enc_upg_option, 'N') = 'O')
32636 ) AND
32637 (l_bflow_method_code = 'PRIOR_ENTRY')
32638 )
32639 THEN
32640 IF
32641 --
32642 1 = 2
32643 --
32644 THEN
32645 xla_accounting_err_pkg.build_message
32646 (p_appli_s_name => 'XLA'
32647 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32648 ,p_token_1 => 'LINE_NUMBER'
32649 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32650 ,p_token_2 => 'LINE_TYPE_NAME'
32651 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32652 l_component_type
32653 ,l_component_code
32654 ,l_component_type_code
32655 ,l_component_appl_id
32656 ,l_amb_context_code
32657 ,l_entity_code
32661 ,p_value_3 => xla_lookups_pkg.get_meaning(
32658 ,l_event_class_code
32659 )
32660 ,p_token_3 => 'OWNER'
32662 p_lookup_type => 'XLA_OWNER_TYPE'
32663 ,p_lookup_code => l_component_type_code
32664 )
32665 ,p_token_4 => 'PRODUCT_NAME'
32666 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32667 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32668 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32669 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32670 ,p_ae_header_id => NULL
32671 );
32672
32673 IF (C_LEVEL_ERROR>= g_log_level) THEN
32674 trace
32675 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32676 ,p_level => C_LEVEL_ERROR
32677 ,p_module => l_log_module);
32678 END IF;
32679 END IF;
32680 END IF;
32681 --
32682 --
32683 ------------------------------------------------------------------------------------------------
32684 -- 4219869 Business Flow
32685 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32686 -- Prior Entry. Currently, the following code is always generated.
32687 ------------------------------------------------------------------------------------------------
32688 XLA_AE_LINES_PKG.ValidateCurrentLine;
32689
32690 ------------------------------------------------------------------------------------
32691 -- 4219869 Business Flow
32692 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32693 ------------------------------------------------------------------------------------
32694 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32695
32696 ----------------------------------------------------------------------------------
32697 -- 4219869 Business Flow
32698 -- Update journal entry status -- Need to generate this within IF <condition>
32699 ----------------------------------------------------------------------------------
32700 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32701 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32702 ,p_balance_type_code => l_balance_type_code
32703 );
32704
32705 -------------------------------------------------------------------------------------------
32706 -- 4262811 - Generate the Accrual Reversal lines
32707 -------------------------------------------------------------------------------------------
32708 BEGIN
32709 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32710 (g_array_event(p_event_id).array_value_num('header_index'));
32711 IF l_acc_rev_flag IS NULL THEN
32712 l_acc_rev_flag := 'N';
32713 END IF;
32714 EXCEPTION
32715 WHEN OTHERS THEN
32716 l_acc_rev_flag := 'N';
32717 END;
32718 --
32719 IF (l_acc_rev_flag = 'Y') THEN
32720
32721 -- 4645092 ------------------------------------------------------------------------------
32722 -- To allow MPA report to determine if it should generate report process
32723 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32724 ------------------------------------------------------------------------------------------
32725
32726 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32727 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32728 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32729 -- call ADRs
32730 -- Bug 4922099
32731 --
32732 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32733 (NVL(l_actual_upg_option, 'N') = 'O') OR
32734 (NVL(l_enc_upg_option, 'N') = 'O')
32735 )
32736 THEN
32737 NULL;
32738 --
32739 --
32740
32741 l_ccid := AcctDerRule_20(
32742 p_application_id => p_application_id
32743 , p_ae_header_id => l_ae_header_id
32744 , p_source_1 => p_source_1
32745 , x_transaction_coa_id => l_adr_transaction_coa_id
32746 , x_accounting_coa_id => l_adr_accounting_coa_id
32747 , x_value_type_code => l_adr_value_type_code
32748 , p_side => 'NA'
32749 );
32750
32751 xla_ae_lines_pkg.set_ccid(
32752 p_code_combination_id => l_ccid
32753 , p_value_type_code => l_adr_value_type_code
32754 , p_transaction_coa_id => l_adr_transaction_coa_id
32755 , p_accounting_coa_id => l_adr_accounting_coa_id
32756 , p_adr_code => 'AP_CASH'
32757 , p_adr_type_code => 'S'
32758 , p_component_type => l_component_type
32762 , p_amb_context_code => l_amb_context_code
32759 , p_component_code => l_component_code
32760 , p_component_type_code => l_component_type_code
32761 , p_component_appl_id => l_component_appl_id
32763 , p_side => 'NA'
32764 );
32765
32766
32767 --
32768 --
32769 END IF;
32770
32771 --
32772 -- Update the line information that should be overwritten
32773 --
32774 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32775 p_header_num => 1);
32776 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32777
32778 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32779
32780 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32781 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32782 END IF;
32783
32784 --
32785 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32786 --
32787 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32788 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32789 ELSE
32790 ---------------------------------------------------------------------------------------------------
32791 -- 4262811a Switch Sign
32792 ---------------------------------------------------------------------------------------------------
32793 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32794 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32795 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32796 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32797 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32798 -- 5132302
32799 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32800 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32801
32802 END IF;
32803
32804 -- 4955764
32805 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32806 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32807
32808
32809 XLA_AE_LINES_PKG.ValidateCurrentLine;
32810 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32811
32812 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32813 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32814 ,p_balance_type_code => l_balance_type_code);
32815
32816 END IF;
32817
32818 -----------------------------------------------------------------------------------------
32819 -- 4262811 Multiperiod Accounting
32820 -----------------------------------------------------------------------------------------
32821 -- No MPA option is assigned.
32822
32823
32824 END IF;
32825 END IF;
32826 --
32827
32828 --
32829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32830 trace
32831 (p_msg => 'END of AcctLineType_75'
32832 ,p_level => C_LEVEL_PROCEDURE
32833 ,p_module => l_log_module);
32834 END IF;
32835 --
32836 EXCEPTION
32837 WHEN xla_exceptions_pkg.application_exception THEN
32838 RAISE;
32839 WHEN OTHERS THEN
32840 xla_exceptions_pkg.raise_message
32841 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_75');
32842 END AcctLineType_75;
32843 --
32844
32845 ---------------------------------------
32846 --
32847 -- PRIVATE FUNCTION
32848 -- AcctLineType_76
32849 --
32850 ---------------------------------------
32851 PROCEDURE AcctLineType_76 (
32852 p_application_id IN NUMBER
32853 ,p_event_id IN NUMBER
32854 ,p_calculate_acctd_flag IN VARCHAR2
32855 ,p_calculate_g_l_flag IN VARCHAR2
32856 ,p_actual_flag IN OUT VARCHAR2
32857 ,p_balance_type_code OUT VARCHAR2
32858 ,p_gain_or_loss_ref OUT VARCHAR2
32859
32860 --Bank Cash Account
32861 , p_source_1 IN NUMBER
32862 --Automatic Offsets Value
32863 , p_source_4 IN VARCHAR2
32864 , p_source_4_meaning IN VARCHAR2
32865 --Payment Distribution (Payment Rate) Ledger Amount
32866 , p_source_9 IN NUMBER
32867 --When to Account for Payment Option
32868 , p_source_38 IN VARCHAR2
32869 --Payment Distribution Type
32870 , p_source_39 IN VARCHAR2
32871 , p_source_39_meaning IN VARCHAR2
32872 --Accounting Reversal Indicator
32873 , p_source_40 IN VARCHAR2
32874 --Payment Distribution Amount
32875 , p_source_41 IN NUMBER
32876 --Business Flow Accounts Payable Application Identifier
32877 , p_source_42 IN NUMBER
32878 --Payment Distribution Identifier
32879 , p_source_47 IN NUMBER
32880 --Distribution Link Type
32881 , p_source_48 IN VARCHAR2
32882 --Payment Currency Code
32883 , p_source_49 IN VARCHAR2
32887 --Payment Supplier Identifier
32884 --Override Accounted Amount Indicator
32885 , p_source_53 IN VARCHAR2
32886 , p_source_53_meaning IN VARCHAR2
32888 , p_source_54 IN NUMBER
32889 --Payment Supplier Site Identifier
32890 , p_source_55 IN NUMBER
32891 --Third Party Type
32892 , p_source_56 IN VARCHAR2
32893 --Payment Distribution Reversed Identifier
32894 , p_source_57 IN NUMBER
32895 --Invoice Distribution Tax Line Identifier
32896 , p_source_58 IN NUMBER
32897 --Invoice Distribution Summary Tax Line Identifier
32898 , p_source_59 IN NUMBER
32899 --Payment Type
32900 , p_source_60 IN VARCHAR2
32901 , p_source_60_meaning IN VARCHAR2
32902 --Business Flow Invoice Distribution Type
32903 , p_source_62 IN VARCHAR2
32904 --Business Flow Invoice Entity Code
32905 , p_source_63 IN VARCHAR2
32906 --Business Flow Invoice Distribution Identifier
32907 , p_source_64 IN NUMBER
32908 --Business Flow Invoice Identifier
32909 , p_source_65 IN NUMBER
32910 --Invoice Distribution Tax Distribution Identifier from Tax
32911 , p_source_66 IN NUMBER
32912 --Pooled Bank Account Option
32913 , p_source_110 IN VARCHAR2
32914 , p_source_110_meaning IN VARCHAR2
32915 --Payment Maturity Date
32916 , p_source_111 IN DATE
32917 --Payment Exchange Date
32918 , p_source_114 IN DATE
32919 --Payment Exchange Rate
32920 , p_source_115 IN NUMBER
32921 --Payment Exchange Rate Type
32922 , p_source_116 IN VARCHAR2
32923 )
32924 IS
32925
32926 l_component_type VARCHAR2(80);
32927 l_component_code VARCHAR2(30);
32928 l_component_type_code VARCHAR2(1);
32929 l_component_appl_id INTEGER;
32930 l_amb_context_code VARCHAR2(30);
32931 l_entity_code VARCHAR2(30);
32932 l_event_class_code VARCHAR2(30);
32933 l_ae_header_id NUMBER;
32934 l_event_type_code VARCHAR2(30);
32935 l_line_definition_code VARCHAR2(30);
32936 l_line_definition_owner_code VARCHAR2(1);
32937 --
32938 -- adr variables
32939 l_segment VARCHAR2(30);
32940 l_ccid NUMBER;
32941 l_adr_transaction_coa_id NUMBER;
32942 l_adr_accounting_coa_id NUMBER;
32943 l_adr_flexfield_segment_code VARCHAR2(30);
32944 l_adr_flex_value_set_id NUMBER;
32945 l_adr_value_type_code VARCHAR2(30);
32946 l_adr_value_combination_id NUMBER;
32947 l_adr_value_segment_code VARCHAR2(30);
32948
32949 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32950 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32951 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32952 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32953
32954 -- 4262811 Variables ------------------------------------------------------------------------------------------
32955 l_entered_amt_idx NUMBER;
32956 l_accted_amt_idx NUMBER;
32957 l_acc_rev_flag VARCHAR2(1);
32958 l_accrual_line_num NUMBER;
32959 l_tmp_amt NUMBER;
32960 l_acc_rev_natural_side_code VARCHAR2(1);
32961
32962 l_num_entries NUMBER;
32963 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32964 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32965 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32966 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32967 l_recog_line_1 NUMBER;
32968 l_recog_line_2 NUMBER;
32969
32970 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32971 l_bflow_applied_to_amt NUMBER; -- 5132302
32972 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32973
32974 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32975
32976 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32977 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32978
32979 ---------------------------------------------------------------------------------------------------------------
32980
32981
32982 --
32983 -- bulk performance
32984 --
32985 l_balance_type_code VARCHAR2(1);
32986 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32987 l_log_module VARCHAR2(240);
32988
32989 --
32990 -- Upgrade strategy
32991 --
32992 l_actual_upg_option VARCHAR2(1);
32993 l_enc_upg_option VARCHAR2(1);
32994
32995 --
32996 BEGIN
32997 --
32998 IF g_log_enabled THEN
32999 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
33000 END IF;
33001 --
33002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33003
33004 trace
33005 (p_msg => 'BEGIN of AcctLineType_76'
33006 ,p_level => C_LEVEL_PROCEDURE
33007 ,p_module => l_log_module);
33008
33009 END IF;
33010 --
33011 l_component_type := 'AMB_JLT';
33012 l_component_code := 'AP_CASH_REF_AOS_AS';
33013 l_component_type_code := 'S';
33017 l_event_class_code := 'REFUNDS';
33014 l_component_appl_id := 200;
33015 l_amb_context_code := 'DEFAULT';
33016 l_entity_code := 'AP_PAYMENTS';
33018 l_event_type_code := 'REFUNDS_ALL';
33019 l_line_definition_owner_code := 'S';
33020 l_line_definition_code := 'CASH_REFUNDS_ALL';
33021 --
33022 l_balance_type_code := 'A';
33023 l_segment := NULL;
33024 l_ccid := NULL;
33025 l_adr_transaction_coa_id := NULL;
33026 l_adr_accounting_coa_id := NULL;
33027 l_adr_flexfield_segment_code := NULL;
33028 l_adr_flex_value_set_id := NULL;
33029 l_adr_value_type_code := NULL;
33030 l_adr_value_combination_id := NULL;
33031 l_adr_value_segment_code := NULL;
33032
33033 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
33034 l_bflow_class_code := ''; -- 4219869 Business Flow
33035 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33036 l_budgetary_control_flag := 'N';
33037
33038 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33039 l_bflow_applied_to_amt := NULL; -- 5132302
33040 l_entered_amt_idx := NULL; -- 4262811
33041 l_accted_amt_idx := NULL; -- 4262811
33042 l_acc_rev_flag := NULL; -- 4262811
33043 l_accrual_line_num := NULL; -- 4262811
33044 l_tmp_amt := NULL; -- 4262811
33045 --
33046
33047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33048 l_balance_type_code <> 'B' THEN
33049 IF NVL(p_source_38,'
33050 ') = 'ISSUE_ISSUE' AND
33051 (NVL(p_source_110,'
33052 ') = 'Y' AND
33053 NVL(p_source_4,'
33054 ') = 'ACCOUNT_SEGMENT_VALUE') AND
33055 p_source_111 IS NULL AND
33056 NVL(p_source_39,'
33057 ') = 'CASH' AND
33058 NVL(p_source_60,'
33059 ') = 'R'
33060 THEN
33061
33062 --
33063 XLA_AE_LINES_PKG.SetNewLine;
33064
33065 p_balance_type_code := l_balance_type_code;
33066 -- set the flag so later we will know whether the gain loss line needs to be created
33067
33068 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33069 p_actual_flag :='A';
33070 END IF;
33071
33072 --
33073 -- bulk performance
33074 --
33075 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33076 p_header_num => 0); -- 4262811
33077 --
33078 -- set accounting line options
33079 --
33080 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33081 p_natural_side_code => 'C'
33082 , p_gain_or_loss_flag => 'N'
33083 , p_gl_transfer_mode_code => 'S'
33084 , p_acct_entry_type_code => 'A'
33085 , p_switch_side_flag => 'Y'
33086 , p_merge_duplicate_code => 'A'
33087 );
33088 --
33089 l_acc_rev_natural_side_code := 'D'; -- 4262811
33090 --
33091 --
33092 -- set accounting line type info
33093 --
33094 xla_ae_lines_pkg.SetAcctLineType
33095 (p_component_type => l_component_type
33096 ,p_event_type_code => l_event_type_code
33097 ,p_line_definition_owner_code => l_line_definition_owner_code
33098 ,p_line_definition_code => l_line_definition_code
33099 ,p_accounting_line_code => l_component_code
33100 ,p_accounting_line_type_code => l_component_type_code
33101 ,p_accounting_line_appl_id => l_component_appl_id
33102 ,p_amb_context_code => l_amb_context_code
33103 ,p_entity_code => l_entity_code
33104 ,p_event_class_code => l_event_class_code);
33105 --
33106 -- set accounting class
33107 --
33108 xla_ae_lines_pkg.SetAcctClass(
33109 p_accounting_class_code => 'CASH'
33110 , p_ae_header_id => l_ae_header_id
33111 );
33112
33113 --
33114 -- set rounding class
33115 --
33116 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33117 'CASH';
33118
33119 --
33120 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33121 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33122 --
33123 -- bulk performance
33124 --
33125 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33126
33127 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33128 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33129
33130 -- 4955764
33131 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33132 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33133
33134 -- 4458381 Public Sector Enh
33135
33136 --
33137 -- set accounting attributes for the line type
33138 --
33139 l_entered_amt_idx := 9;
33140 l_accted_amt_idx := 14;
33141 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33145 l_rec_acct_attrs.array_num_value(2) := p_source_42;
33142 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33143 l_rec_acct_attrs.array_char_value(1) := p_source_40;
33144 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33146 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33147 l_rec_acct_attrs.array_char_value(3) := p_source_62;
33148 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33149 l_rec_acct_attrs.array_char_value(4) := p_source_63;
33150 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33151 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
33152 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33153 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
33154 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33155 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
33156 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33157 l_rec_acct_attrs.array_char_value(8) := p_source_48;
33158 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33159 l_rec_acct_attrs.array_num_value(9) := p_source_41;
33160 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33161 l_rec_acct_attrs.array_char_value(10) := p_source_49;
33162 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33163 l_rec_acct_attrs.array_date_value(11) := p_source_114;
33164 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33165 l_rec_acct_attrs.array_num_value(12) := p_source_115;
33166 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33167 l_rec_acct_attrs.array_char_value(13) := p_source_116;
33168 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33169 l_rec_acct_attrs.array_num_value(14) := p_source_9;
33170 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33171 l_rec_acct_attrs.array_char_value(15) := p_source_53;
33172 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33173 l_rec_acct_attrs.array_num_value(16) := p_source_54;
33174 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33175 l_rec_acct_attrs.array_num_value(17) := p_source_55;
33176 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33177 l_rec_acct_attrs.array_char_value(18) := p_source_56;
33178 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33179 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
33180 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33181 l_rec_acct_attrs.array_char_value(20) := p_source_48;
33182 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33183 l_rec_acct_attrs.array_num_value(21) := p_source_58;
33184 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33185 l_rec_acct_attrs.array_num_value(22) := p_source_66;
33186 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33187 l_rec_acct_attrs.array_num_value(23) := p_source_59;
33188
33189 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33190 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33191
33192 ---------------------------------------------------------------------------------------------------------------
33193 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33194 ---------------------------------------------------------------------------------------------------------------
33195 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33196
33197 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33198 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33199
33200 IF xla_accounting_cache_pkg.GetValueChar
33201 (p_source_code => 'LEDGER_CATEGORY_CODE'
33202 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33203 AND l_bflow_method_code = 'PRIOR_ENTRY'
33204 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33205 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33206 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33207 )
33208 THEN
33209 xla_ae_lines_pkg.BflowUpgEntry
33210 (p_business_method_code => l_bflow_method_code
33211 ,p_business_class_code => l_bflow_class_code
33212 ,p_balance_type => l_balance_type_code);
33213 ELSE
33214 NULL;
33215 XLA_AE_LINES_PKG.business_flow_validation(
33216 p_business_method_code => l_bflow_method_code
33217 ,p_business_class_code => l_bflow_class_code
33218 ,p_inherit_description_flag => l_inherit_desc_flag);
33219 END IF;
33220
33221 --
33222 -- call analytical criteria
33223 --
33224
33225 --
33226 -- call description
33227 --
33228 -- No description or it is inherited.
33229 --
33230 -- call ADRs
33231 -- Bug 4922099
33232 --
33233 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33234 (NVL(l_actual_upg_option, 'N') = 'O') OR
33235 (NVL(l_enc_upg_option, 'N') = 'O')
33236 )
33237 THEN
33238 NULL;
33239 --
33240 --
33241
33245 , p_transaction_coa_id => null
33242 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
33243 p_code_combination_id => TO_NUMBER(C_NUM)
33244 , p_value_type_code => NULL
33246 , p_accounting_coa_id => null
33247 , p_adr_code => NULL
33248 , p_adr_type_code => NULL
33249 , p_component_type => l_component_type
33250 , p_component_code => l_component_code
33251 , p_component_type_code => l_component_type_code
33252 , p_component_appl_id => l_component_appl_id
33253 , p_amb_context_code => l_amb_context_code
33254 , p_side => NULL
33255 );
33256
33257
33258 -- initialise segments
33259 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33260 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33261 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33262 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33263 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33264 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33265 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33266 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33267 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33268 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33269 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33270 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33271 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33272 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33273 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33274 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33275 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33276 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33277 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33278 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33279 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33280 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33281 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33282 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33283 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33284 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33285 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33286 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33287 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33288 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33289 --
33290
33291 --
33292
33293
33294 l_segment := AcctDerRule_1(
33295 p_application_id => p_application_id
33296 , p_ae_header_id => l_ae_header_id
33297 , p_source_1 => p_source_1
33298 , x_transaction_coa_id => l_adr_transaction_coa_id
33299 , x_accounting_coa_id => l_adr_accounting_coa_id
33300 , x_flexfield_segment_code => l_adr_flexfield_segment_code
33301 , x_flex_value_set_id => l_adr_flex_value_set_id
33302 , x_value_type_code => l_adr_value_type_code
33303 , x_value_combination_id => l_adr_value_combination_id
33304 , x_value_segment_code => l_adr_value_segment_code
33305 , p_side => 'NA'
33306 , p_override_seg_flag => 'Y'
33307 );
33308
33309 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
33310
33311 xla_ae_lines_pkg.set_segment(
33312 p_to_segment_code => 'GL_ACCOUNT'
33313 , p_segment_value => l_segment
33314 , p_from_segment_code => l_adr_value_segment_code
33315 , p_from_combination_id => l_adr_value_combination_id
33316 , p_value_type_code => l_adr_value_type_code
33317 , p_transaction_coa_id => l_adr_transaction_coa_id
33318 , p_accounting_coa_id => l_adr_accounting_coa_id
33319 , p_flexfield_segment_code => l_adr_flexfield_segment_code
33320 , p_flex_value_set_id => l_adr_flex_value_set_id
33321 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
33322 , p_adr_type_code => 'S'
33323 , p_component_type => l_component_type
33324 , p_component_code => l_component_code
33325 , p_component_type_code => l_component_type_code
33326 , p_component_appl_id => l_component_appl_id
33327 , p_amb_context_code => l_amb_context_code
33328 , p_entity_code => 'AP_PAYMENTS'
33329 , p_event_class_code => 'REFUNDS'
33330 , p_side => 'NA'
33331 );
33332
33333 END IF;
33334
33338 --
33335 --
33336 --
33337 END IF;
33339 -- Bug 4922099
33340 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33341 (NVL(l_enc_upg_option, 'N') = 'O')
33342 ) AND
33343 (l_bflow_method_code = 'PRIOR_ENTRY')
33344 )
33345 THEN
33346 IF
33347 --
33348 1 = 2
33349 --
33350 THEN
33351 xla_accounting_err_pkg.build_message
33352 (p_appli_s_name => 'XLA'
33353 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33354 ,p_token_1 => 'LINE_NUMBER'
33355 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33356 ,p_token_2 => 'LINE_TYPE_NAME'
33357 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33358 l_component_type
33359 ,l_component_code
33360 ,l_component_type_code
33361 ,l_component_appl_id
33362 ,l_amb_context_code
33363 ,l_entity_code
33364 ,l_event_class_code
33365 )
33366 ,p_token_3 => 'OWNER'
33367 ,p_value_3 => xla_lookups_pkg.get_meaning(
33368 p_lookup_type => 'XLA_OWNER_TYPE'
33369 ,p_lookup_code => l_component_type_code
33370 )
33371 ,p_token_4 => 'PRODUCT_NAME'
33372 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33373 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33374 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33375 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33376 ,p_ae_header_id => NULL
33377 );
33378
33379 IF (C_LEVEL_ERROR>= g_log_level) THEN
33380 trace
33381 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33382 ,p_level => C_LEVEL_ERROR
33383 ,p_module => l_log_module);
33384 END IF;
33385 END IF;
33386 END IF;
33387 --
33388 --
33389 ------------------------------------------------------------------------------------------------
33390 -- 4219869 Business Flow
33391 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33392 -- Prior Entry. Currently, the following code is always generated.
33393 ------------------------------------------------------------------------------------------------
33394 XLA_AE_LINES_PKG.ValidateCurrentLine;
33395
33396 ------------------------------------------------------------------------------------
33397 -- 4219869 Business Flow
33398 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33399 ------------------------------------------------------------------------------------
33400 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33401
33402 ----------------------------------------------------------------------------------
33403 -- 4219869 Business Flow
33404 -- Update journal entry status -- Need to generate this within IF <condition>
33405 ----------------------------------------------------------------------------------
33406 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33407 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33408 ,p_balance_type_code => l_balance_type_code
33409 );
33410
33411 -------------------------------------------------------------------------------------------
33412 -- 4262811 - Generate the Accrual Reversal lines
33413 -------------------------------------------------------------------------------------------
33414 BEGIN
33415 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33416 (g_array_event(p_event_id).array_value_num('header_index'));
33417 IF l_acc_rev_flag IS NULL THEN
33418 l_acc_rev_flag := 'N';
33419 END IF;
33420 EXCEPTION
33421 WHEN OTHERS THEN
33422 l_acc_rev_flag := 'N';
33423 END;
33424 --
33425 IF (l_acc_rev_flag = 'Y') THEN
33426
33427 -- 4645092 ------------------------------------------------------------------------------
33428 -- To allow MPA report to determine if it should generate report process
33429 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33433 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33430 ------------------------------------------------------------------------------------------
33431
33432 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33434 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33435 -- call ADRs
33436 -- Bug 4922099
33437 --
33438 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33439 (NVL(l_actual_upg_option, 'N') = 'O') OR
33440 (NVL(l_enc_upg_option, 'N') = 'O')
33441 )
33442 THEN
33443 NULL;
33444 --
33445 --
33446
33447 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
33448 p_code_combination_id => TO_NUMBER(C_NUM)
33449 , p_value_type_code => NULL
33450 , p_transaction_coa_id => null
33451 , p_accounting_coa_id => null
33452 , p_adr_code => NULL
33453 , p_adr_type_code => NULL
33454 , p_component_type => l_component_type
33455 , p_component_code => l_component_code
33456 , p_component_type_code => l_component_type_code
33457 , p_component_appl_id => l_component_appl_id
33458 , p_amb_context_code => l_amb_context_code
33459 , p_side => NULL
33460 );
33461
33462
33463 -- initialise segments
33464 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33465 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33466 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33467 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33468 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33469 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33470 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33471 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33472 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33473 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33474 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33475 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33476 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33477 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33478 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33479 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33480 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33481 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33482 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33483 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33484 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33485 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33486 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33487 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33488 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33489 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33490 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33491 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33492 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33493 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33494 --
33495
33496 --
33497
33498
33499 l_segment := AcctDerRule_1(
33500 p_application_id => p_application_id
33501 , p_ae_header_id => l_ae_header_id
33502 , p_source_1 => p_source_1
33503 , x_transaction_coa_id => l_adr_transaction_coa_id
33504 , x_accounting_coa_id => l_adr_accounting_coa_id
33505 , x_flexfield_segment_code => l_adr_flexfield_segment_code
33506 , x_flex_value_set_id => l_adr_flex_value_set_id
33507 , x_value_type_code => l_adr_value_type_code
33508 , x_value_combination_id => l_adr_value_combination_id
33509 , x_value_segment_code => l_adr_value_segment_code
33510 , p_side => 'NA'
33511 , p_override_seg_flag => 'Y'
33512 );
33513
33514 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
33515
33516 xla_ae_lines_pkg.set_segment(
33517 p_to_segment_code => 'GL_ACCOUNT'
33518 , p_segment_value => l_segment
33519 , p_from_segment_code => l_adr_value_segment_code
33520 , p_from_combination_id => l_adr_value_combination_id
33521 , p_value_type_code => l_adr_value_type_code
33522 , p_transaction_coa_id => l_adr_transaction_coa_id
33523 , p_accounting_coa_id => l_adr_accounting_coa_id
33527 , p_adr_type_code => 'S'
33524 , p_flexfield_segment_code => l_adr_flexfield_segment_code
33525 , p_flex_value_set_id => l_adr_flex_value_set_id
33526 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
33528 , p_component_type => l_component_type
33529 , p_component_code => l_component_code
33530 , p_component_type_code => l_component_type_code
33531 , p_component_appl_id => l_component_appl_id
33532 , p_amb_context_code => l_amb_context_code
33533 , p_entity_code => 'AP_PAYMENTS'
33534 , p_event_class_code => 'REFUNDS'
33535 , p_side => 'NA'
33536 );
33537
33538 END IF;
33539
33540 --
33541 --
33542 END IF;
33543
33544 --
33545 -- Update the line information that should be overwritten
33546 --
33547 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33548 p_header_num => 1);
33549 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33550
33551 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33552
33553 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33554 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33555 END IF;
33556
33557 --
33558 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33559 --
33560 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33561 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33562 ELSE
33563 ---------------------------------------------------------------------------------------------------
33564 -- 4262811a Switch Sign
33565 ---------------------------------------------------------------------------------------------------
33566 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33567 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33568 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33569 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33570 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33571 -- 5132302
33572 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33573 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33574
33575 END IF;
33576
33577 -- 4955764
33578 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33579 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33580
33581
33582 XLA_AE_LINES_PKG.ValidateCurrentLine;
33583 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33584
33585 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33586 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33587 ,p_balance_type_code => l_balance_type_code);
33588
33589 END IF;
33590
33591 -----------------------------------------------------------------------------------------
33592 -- 4262811 Multiperiod Accounting
33593 -----------------------------------------------------------------------------------------
33594 -- No MPA option is assigned.
33595
33596
33597 END IF;
33598 END IF;
33599 --
33600
33601 --
33602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33603 trace
33604 (p_msg => 'END of AcctLineType_76'
33605 ,p_level => C_LEVEL_PROCEDURE
33606 ,p_module => l_log_module);
33607 END IF;
33608 --
33609 EXCEPTION
33610 WHEN xla_exceptions_pkg.application_exception THEN
33611 RAISE;
33612 WHEN OTHERS THEN
33613 xla_exceptions_pkg.raise_message
33614 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_76');
33615 END AcctLineType_76;
33616 --
33617
33618 ---------------------------------------
33619 --
33620 -- PRIVATE FUNCTION
33621 -- AcctLineType_77
33622 --
33623 ---------------------------------------
33624 PROCEDURE AcctLineType_77 (
33625 p_application_id IN NUMBER
33626 ,p_event_id IN NUMBER
33627 ,p_calculate_acctd_flag IN VARCHAR2
33628 ,p_calculate_g_l_flag IN VARCHAR2
33629 ,p_actual_flag IN OUT VARCHAR2
33630 ,p_balance_type_code OUT VARCHAR2
33631 ,p_gain_or_loss_ref OUT VARCHAR2
33632
33633 --Bank Cash Account
33634 , p_source_1 IN NUMBER
33635 --Automatic Offsets Value
33636 , p_source_4 IN VARCHAR2
33637 , p_source_4_meaning IN VARCHAR2
33638 --Payment Distribution (Payment Rate) Ledger Amount
33639 , p_source_9 IN NUMBER
33640 --When to Account for Payment Option
33641 , p_source_38 IN VARCHAR2
33642 --Payment Distribution Type
33643 , p_source_39 IN VARCHAR2
33644 , p_source_39_meaning IN VARCHAR2
33648 , p_source_41 IN NUMBER
33645 --Accounting Reversal Indicator
33646 , p_source_40 IN VARCHAR2
33647 --Payment Distribution Amount
33649 --Business Flow Accounts Payable Application Identifier
33650 , p_source_42 IN NUMBER
33651 --Payment Distribution Identifier
33652 , p_source_47 IN NUMBER
33653 --Distribution Link Type
33654 , p_source_48 IN VARCHAR2
33655 --Payment Currency Code
33656 , p_source_49 IN VARCHAR2
33657 --Override Accounted Amount Indicator
33658 , p_source_53 IN VARCHAR2
33659 , p_source_53_meaning IN VARCHAR2
33660 --Payment Supplier Identifier
33661 , p_source_54 IN NUMBER
33662 --Payment Supplier Site Identifier
33663 , p_source_55 IN NUMBER
33664 --Third Party Type
33665 , p_source_56 IN VARCHAR2
33666 --Payment Distribution Reversed Identifier
33667 , p_source_57 IN NUMBER
33668 --Invoice Distribution Tax Line Identifier
33669 , p_source_58 IN NUMBER
33670 --Invoice Distribution Summary Tax Line Identifier
33671 , p_source_59 IN NUMBER
33672 --Payment Type
33673 , p_source_60 IN VARCHAR2
33674 , p_source_60_meaning IN VARCHAR2
33675 --Business Flow Invoice Distribution Type
33676 , p_source_62 IN VARCHAR2
33677 --Business Flow Invoice Entity Code
33678 , p_source_63 IN VARCHAR2
33679 --Business Flow Invoice Distribution Identifier
33680 , p_source_64 IN NUMBER
33681 --Business Flow Invoice Identifier
33682 , p_source_65 IN NUMBER
33683 --Invoice Distribution Tax Distribution Identifier from Tax
33684 , p_source_66 IN NUMBER
33685 --Pooled Bank Account Option
33686 , p_source_110 IN VARCHAR2
33687 , p_source_110_meaning IN VARCHAR2
33688 --Payment Maturity Date
33689 , p_source_111 IN DATE
33690 --Payment Exchange Date
33691 , p_source_114 IN DATE
33692 --Payment Exchange Rate
33693 , p_source_115 IN NUMBER
33694 --Payment Exchange Rate Type
33695 , p_source_116 IN VARCHAR2
33696 )
33697 IS
33698
33699 l_component_type VARCHAR2(80);
33700 l_component_code VARCHAR2(30);
33701 l_component_type_code VARCHAR2(1);
33702 l_component_appl_id INTEGER;
33703 l_amb_context_code VARCHAR2(30);
33704 l_entity_code VARCHAR2(30);
33705 l_event_class_code VARCHAR2(30);
33706 l_ae_header_id NUMBER;
33707 l_event_type_code VARCHAR2(30);
33708 l_line_definition_code VARCHAR2(30);
33709 l_line_definition_owner_code VARCHAR2(1);
33710 --
33711 -- adr variables
33712 l_segment VARCHAR2(30);
33713 l_ccid NUMBER;
33714 l_adr_transaction_coa_id NUMBER;
33715 l_adr_accounting_coa_id NUMBER;
33716 l_adr_flexfield_segment_code VARCHAR2(30);
33717 l_adr_flex_value_set_id NUMBER;
33718 l_adr_value_type_code VARCHAR2(30);
33719 l_adr_value_combination_id NUMBER;
33720 l_adr_value_segment_code VARCHAR2(30);
33721
33722 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33723 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33724 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33725 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33726
33727 -- 4262811 Variables ------------------------------------------------------------------------------------------
33728 l_entered_amt_idx NUMBER;
33729 l_accted_amt_idx NUMBER;
33730 l_acc_rev_flag VARCHAR2(1);
33731 l_accrual_line_num NUMBER;
33732 l_tmp_amt NUMBER;
33733 l_acc_rev_natural_side_code VARCHAR2(1);
33734
33735 l_num_entries NUMBER;
33736 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33737 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33738 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33739 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33740 l_recog_line_1 NUMBER;
33741 l_recog_line_2 NUMBER;
33742
33743 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33744 l_bflow_applied_to_amt NUMBER; -- 5132302
33745 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33746
33747 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33748
33749 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33750 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33751
33752 ---------------------------------------------------------------------------------------------------------------
33753
33754
33755 --
33756 -- bulk performance
33757 --
33758 l_balance_type_code VARCHAR2(1);
33759 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33760 l_log_module VARCHAR2(240);
33761
33762 --
33763 -- Upgrade strategy
33764 --
33765 l_actual_upg_option VARCHAR2(1);
33766 l_enc_upg_option VARCHAR2(1);
33767
33768 --
33769 BEGIN
33770 --
33771 IF g_log_enabled THEN
33772 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
33773 END IF;
33774 --
33775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33776
33780 ,p_module => l_log_module);
33777 trace
33778 (p_msg => 'BEGIN of AcctLineType_77'
33779 ,p_level => C_LEVEL_PROCEDURE
33781
33782 END IF;
33783 --
33784 l_component_type := 'AMB_JLT';
33785 l_component_code := 'AP_CASH_REF_AOS_BS';
33786 l_component_type_code := 'S';
33787 l_component_appl_id := 200;
33788 l_amb_context_code := 'DEFAULT';
33789 l_entity_code := 'AP_PAYMENTS';
33790 l_event_class_code := 'REFUNDS';
33791 l_event_type_code := 'REFUNDS_ALL';
33792 l_line_definition_owner_code := 'S';
33793 l_line_definition_code := 'CASH_REFUNDS_ALL';
33794 --
33795 l_balance_type_code := 'A';
33796 l_segment := NULL;
33797 l_ccid := NULL;
33798 l_adr_transaction_coa_id := NULL;
33799 l_adr_accounting_coa_id := NULL;
33800 l_adr_flexfield_segment_code := NULL;
33801 l_adr_flex_value_set_id := NULL;
33802 l_adr_value_type_code := NULL;
33803 l_adr_value_combination_id := NULL;
33804 l_adr_value_segment_code := NULL;
33805
33806 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
33807 l_bflow_class_code := ''; -- 4219869 Business Flow
33808 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33809 l_budgetary_control_flag := 'N';
33810
33811 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33812 l_bflow_applied_to_amt := NULL; -- 5132302
33813 l_entered_amt_idx := NULL; -- 4262811
33814 l_accted_amt_idx := NULL; -- 4262811
33815 l_acc_rev_flag := NULL; -- 4262811
33816 l_accrual_line_num := NULL; -- 4262811
33817 l_tmp_amt := NULL; -- 4262811
33818 --
33819
33820 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33821 l_balance_type_code <> 'B' THEN
33822 IF NVL(p_source_38,'
33823 ') = 'ISSUE_ISSUE' AND
33824 (NVL(p_source_110,'
33825 ') = 'Y' AND
33826 NVL(p_source_4,'
33827 ') = 'BALANCING_SEGMENT') AND
33828 p_source_111 IS NULL AND
33829 NVL(p_source_39,'
33830 ') = 'CASH' AND
33831 NVL(p_source_60,'
33832 ') = 'R'
33833 THEN
33834
33835 --
33836 XLA_AE_LINES_PKG.SetNewLine;
33837
33838 p_balance_type_code := l_balance_type_code;
33839 -- set the flag so later we will know whether the gain loss line needs to be created
33840
33841 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33842 p_actual_flag :='A';
33843 END IF;
33844
33845 --
33846 -- bulk performance
33847 --
33848 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33849 p_header_num => 0); -- 4262811
33850 --
33851 -- set accounting line options
33852 --
33853 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33854 p_natural_side_code => 'C'
33855 , p_gain_or_loss_flag => 'N'
33856 , p_gl_transfer_mode_code => 'S'
33857 , p_acct_entry_type_code => 'A'
33858 , p_switch_side_flag => 'Y'
33859 , p_merge_duplicate_code => 'A'
33860 );
33861 --
33862 l_acc_rev_natural_side_code := 'D'; -- 4262811
33863 --
33864 --
33865 -- set accounting line type info
33866 --
33867 xla_ae_lines_pkg.SetAcctLineType
33868 (p_component_type => l_component_type
33869 ,p_event_type_code => l_event_type_code
33870 ,p_line_definition_owner_code => l_line_definition_owner_code
33871 ,p_line_definition_code => l_line_definition_code
33872 ,p_accounting_line_code => l_component_code
33873 ,p_accounting_line_type_code => l_component_type_code
33874 ,p_accounting_line_appl_id => l_component_appl_id
33875 ,p_amb_context_code => l_amb_context_code
33876 ,p_entity_code => l_entity_code
33877 ,p_event_class_code => l_event_class_code);
33878 --
33879 -- set accounting class
33880 --
33881 xla_ae_lines_pkg.SetAcctClass(
33882 p_accounting_class_code => 'CASH'
33883 , p_ae_header_id => l_ae_header_id
33884 );
33885
33886 --
33887 -- set rounding class
33888 --
33889 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33890 'CASH';
33891
33892 --
33893 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33894 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33895 --
33896 -- bulk performance
33897 --
33898 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33899
33900 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33901 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33902
33903 -- 4955764
33904 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33905 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33906
33907 -- 4458381 Public Sector Enh
33908
33912 l_entered_amt_idx := 9;
33909 --
33910 -- set accounting attributes for the line type
33911 --
33913 l_accted_amt_idx := 14;
33914 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33915 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33916 l_rec_acct_attrs.array_char_value(1) := p_source_40;
33917 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33918 l_rec_acct_attrs.array_num_value(2) := p_source_42;
33919 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33920 l_rec_acct_attrs.array_char_value(3) := p_source_62;
33921 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33922 l_rec_acct_attrs.array_char_value(4) := p_source_63;
33923 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33924 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
33925 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33926 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
33927 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33928 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
33929 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33930 l_rec_acct_attrs.array_char_value(8) := p_source_48;
33931 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33932 l_rec_acct_attrs.array_num_value(9) := p_source_41;
33933 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33934 l_rec_acct_attrs.array_char_value(10) := p_source_49;
33935 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33936 l_rec_acct_attrs.array_date_value(11) := p_source_114;
33937 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33938 l_rec_acct_attrs.array_num_value(12) := p_source_115;
33939 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33940 l_rec_acct_attrs.array_char_value(13) := p_source_116;
33941 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33942 l_rec_acct_attrs.array_num_value(14) := p_source_9;
33943 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33944 l_rec_acct_attrs.array_char_value(15) := p_source_53;
33945 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33946 l_rec_acct_attrs.array_num_value(16) := p_source_54;
33947 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33948 l_rec_acct_attrs.array_num_value(17) := p_source_55;
33949 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33950 l_rec_acct_attrs.array_char_value(18) := p_source_56;
33951 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33952 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
33953 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33954 l_rec_acct_attrs.array_char_value(20) := p_source_48;
33955 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33956 l_rec_acct_attrs.array_num_value(21) := p_source_58;
33957 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33958 l_rec_acct_attrs.array_num_value(22) := p_source_66;
33959 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33960 l_rec_acct_attrs.array_num_value(23) := p_source_59;
33961
33962 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33963 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33964
33965 ---------------------------------------------------------------------------------------------------------------
33966 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33967 ---------------------------------------------------------------------------------------------------------------
33968 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33969
33970 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33971 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33972
33973 IF xla_accounting_cache_pkg.GetValueChar
33974 (p_source_code => 'LEDGER_CATEGORY_CODE'
33975 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33976 AND l_bflow_method_code = 'PRIOR_ENTRY'
33977 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33978 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33979 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33980 )
33981 THEN
33982 xla_ae_lines_pkg.BflowUpgEntry
33983 (p_business_method_code => l_bflow_method_code
33984 ,p_business_class_code => l_bflow_class_code
33985 ,p_balance_type => l_balance_type_code);
33986 ELSE
33987 NULL;
33988 XLA_AE_LINES_PKG.business_flow_validation(
33989 p_business_method_code => l_bflow_method_code
33990 ,p_business_class_code => l_bflow_class_code
33991 ,p_inherit_description_flag => l_inherit_desc_flag);
33992 END IF;
33993
33994 --
33995 -- call analytical criteria
33996 --
33997
33998 --
33999 -- call description
34000 --
34001 -- No description or it is inherited.
34002 --
34003 -- call ADRs
34004 -- Bug 4922099
34005 --
34006 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34010 THEN
34007 (NVL(l_actual_upg_option, 'N') = 'O') OR
34008 (NVL(l_enc_upg_option, 'N') = 'O')
34009 )
34011 NULL;
34012 --
34013 --
34014
34015 l_ccid := AcctDerRule_20(
34016 p_application_id => p_application_id
34017 , p_ae_header_id => l_ae_header_id
34018 , p_source_1 => p_source_1
34019 , x_transaction_coa_id => l_adr_transaction_coa_id
34020 , x_accounting_coa_id => l_adr_accounting_coa_id
34021 , x_value_type_code => l_adr_value_type_code
34022 , p_side => 'NA'
34023 );
34024
34025 xla_ae_lines_pkg.set_ccid(
34026 p_code_combination_id => l_ccid
34027 , p_value_type_code => l_adr_value_type_code
34028 , p_transaction_coa_id => l_adr_transaction_coa_id
34029 , p_accounting_coa_id => l_adr_accounting_coa_id
34030 , p_adr_code => 'AP_CASH'
34031 , p_adr_type_code => 'S'
34032 , p_component_type => l_component_type
34033 , p_component_code => l_component_code
34034 , p_component_type_code => l_component_type_code
34035 , p_component_appl_id => l_component_appl_id
34036 , p_amb_context_code => l_amb_context_code
34037 , p_side => 'NA'
34038 );
34039
34040
34041 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
34042 p_to_segment_code => 'GL_BALANCING'
34043 , p_segment_value => C_CHAR
34044 , p_from_segment_code => NULL
34045 , p_from_combination_id => NULL
34046 , p_value_type_code => NULL
34047 , p_transaction_coa_id => null
34048 , p_accounting_coa_id => null
34049 , p_flexfield_segment_code => NULL
34050 , p_flex_value_set_id => NULL
34051 , p_adr_code => NULL
34052 , p_adr_type_code => NULL
34053 , p_component_type => l_component_type
34054 , p_component_code => l_component_code
34055 , p_component_type_code => l_component_type_code
34056 , p_component_appl_id => l_component_appl_id
34057 , p_amb_context_code => l_amb_context_code
34058 , p_entity_code => 'AP_PAYMENTS'
34059 , p_event_class_code => 'REFUNDS'
34060 , p_side => 'NA'
34061 );
34062 --
34063
34064
34065 --
34066 --
34067 END IF;
34068 --
34069 -- Bug 4922099
34070 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34071 (NVL(l_enc_upg_option, 'N') = 'O')
34072 ) AND
34073 (l_bflow_method_code = 'PRIOR_ENTRY')
34074 )
34075 THEN
34076 IF
34077 --
34078 1 = 2
34079 --
34080 THEN
34081 xla_accounting_err_pkg.build_message
34082 (p_appli_s_name => 'XLA'
34083 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34084 ,p_token_1 => 'LINE_NUMBER'
34085 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34086 ,p_token_2 => 'LINE_TYPE_NAME'
34087 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34088 l_component_type
34089 ,l_component_code
34090 ,l_component_type_code
34091 ,l_component_appl_id
34092 ,l_amb_context_code
34093 ,l_entity_code
34094 ,l_event_class_code
34095 )
34096 ,p_token_3 => 'OWNER'
34097 ,p_value_3 => xla_lookups_pkg.get_meaning(
34098 p_lookup_type => 'XLA_OWNER_TYPE'
34099 ,p_lookup_code => l_component_type_code
34100 )
34101 ,p_token_4 => 'PRODUCT_NAME'
34102 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34103 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34104 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34105 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34106 ,p_ae_header_id => NULL
34107 );
34108
34109 IF (C_LEVEL_ERROR>= g_log_level) THEN
34110 trace
34111 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34115 END IF;
34112 ,p_level => C_LEVEL_ERROR
34113 ,p_module => l_log_module);
34114 END IF;
34116 END IF;
34117 --
34118 --
34119 ------------------------------------------------------------------------------------------------
34120 -- 4219869 Business Flow
34121 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34122 -- Prior Entry. Currently, the following code is always generated.
34123 ------------------------------------------------------------------------------------------------
34124 XLA_AE_LINES_PKG.ValidateCurrentLine;
34125
34126 ------------------------------------------------------------------------------------
34127 -- 4219869 Business Flow
34128 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34129 ------------------------------------------------------------------------------------
34130 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34131
34132 ----------------------------------------------------------------------------------
34133 -- 4219869 Business Flow
34134 -- Update journal entry status -- Need to generate this within IF <condition>
34135 ----------------------------------------------------------------------------------
34136 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34137 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34138 ,p_balance_type_code => l_balance_type_code
34139 );
34140
34141 -------------------------------------------------------------------------------------------
34142 -- 4262811 - Generate the Accrual Reversal lines
34143 -------------------------------------------------------------------------------------------
34144 BEGIN
34145 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34146 (g_array_event(p_event_id).array_value_num('header_index'));
34147 IF l_acc_rev_flag IS NULL THEN
34148 l_acc_rev_flag := 'N';
34149 END IF;
34150 EXCEPTION
34151 WHEN OTHERS THEN
34152 l_acc_rev_flag := 'N';
34153 END;
34154 --
34155 IF (l_acc_rev_flag = 'Y') THEN
34156
34157 -- 4645092 ------------------------------------------------------------------------------
34158 -- To allow MPA report to determine if it should generate report process
34159 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34160 ------------------------------------------------------------------------------------------
34161
34162 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34163 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34164 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34165 -- call ADRs
34166 -- Bug 4922099
34167 --
34168 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34169 (NVL(l_actual_upg_option, 'N') = 'O') OR
34170 (NVL(l_enc_upg_option, 'N') = 'O')
34171 )
34172 THEN
34173 NULL;
34174 --
34175 --
34176
34177 l_ccid := AcctDerRule_20(
34178 p_application_id => p_application_id
34179 , p_ae_header_id => l_ae_header_id
34180 , p_source_1 => p_source_1
34181 , x_transaction_coa_id => l_adr_transaction_coa_id
34182 , x_accounting_coa_id => l_adr_accounting_coa_id
34183 , x_value_type_code => l_adr_value_type_code
34184 , p_side => 'NA'
34185 );
34186
34187 xla_ae_lines_pkg.set_ccid(
34188 p_code_combination_id => l_ccid
34189 , p_value_type_code => l_adr_value_type_code
34190 , p_transaction_coa_id => l_adr_transaction_coa_id
34191 , p_accounting_coa_id => l_adr_accounting_coa_id
34192 , p_adr_code => 'AP_CASH'
34193 , p_adr_type_code => 'S'
34194 , p_component_type => l_component_type
34195 , p_component_code => l_component_code
34196 , p_component_type_code => l_component_type_code
34197 , p_component_appl_id => l_component_appl_id
34198 , p_amb_context_code => l_amb_context_code
34199 , p_side => 'NA'
34200 );
34201
34202
34203 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
34204 p_to_segment_code => 'GL_BALANCING'
34205 , p_segment_value => C_CHAR
34206 , p_from_segment_code => NULL
34207 , p_from_combination_id => NULL
34208 , p_value_type_code => NULL
34209 , p_transaction_coa_id => null
34210 , p_accounting_coa_id => null
34211 , p_flexfield_segment_code => NULL
34212 , p_flex_value_set_id => NULL
34213 , p_adr_code => NULL
34214 , p_adr_type_code => NULL
34215 , p_component_type => l_component_type
34216 , p_component_code => l_component_code
34217 , p_component_type_code => l_component_type_code
34218 , p_component_appl_id => l_component_appl_id
34219 , p_amb_context_code => l_amb_context_code
34220 , p_entity_code => 'AP_PAYMENTS'
34221 , p_event_class_code => 'REFUNDS'
34222 , p_side => 'NA'
34223 );
34224 --
34225
34226
34227 --
34228 --
34232 -- Update the line information that should be overwritten
34229 END IF;
34230
34231 --
34233 --
34234 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34235 p_header_num => 1);
34236 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34237
34238 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34239
34240 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34241 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34242 END IF;
34243
34244 --
34245 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34246 --
34247 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34248 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34249 ELSE
34250 ---------------------------------------------------------------------------------------------------
34251 -- 4262811a Switch Sign
34252 ---------------------------------------------------------------------------------------------------
34253 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34254 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34255 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34256 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34257 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34258 -- 5132302
34259 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34260 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34261
34262 END IF;
34263
34264 -- 4955764
34265 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34266 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34267
34268
34269 XLA_AE_LINES_PKG.ValidateCurrentLine;
34270 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34271
34272 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34273 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34274 ,p_balance_type_code => l_balance_type_code);
34275
34276 END IF;
34277
34278 -----------------------------------------------------------------------------------------
34279 -- 4262811 Multiperiod Accounting
34280 -----------------------------------------------------------------------------------------
34281 -- No MPA option is assigned.
34282
34283
34284 END IF;
34285 END IF;
34286 --
34287
34288 --
34289 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34290 trace
34291 (p_msg => 'END of AcctLineType_77'
34292 ,p_level => C_LEVEL_PROCEDURE
34293 ,p_module => l_log_module);
34294 END IF;
34295 --
34296 EXCEPTION
34297 WHEN xla_exceptions_pkg.application_exception THEN
34298 RAISE;
34299 WHEN OTHERS THEN
34300 xla_exceptions_pkg.raise_message
34301 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_77');
34302 END AcctLineType_77;
34303 --
34304
34305 ---------------------------------------
34306 --
34307 -- PRIVATE FUNCTION
34308 -- AcctLineType_78
34309 --
34310 ---------------------------------------
34311 PROCEDURE AcctLineType_78 (
34312 p_application_id IN NUMBER
34313 ,p_event_id IN NUMBER
34314 ,p_calculate_acctd_flag IN VARCHAR2
34315 ,p_calculate_g_l_flag IN VARCHAR2
34316 ,p_actual_flag IN OUT VARCHAR2
34317 ,p_balance_type_code OUT VARCHAR2
34318 ,p_gain_or_loss_ref OUT VARCHAR2
34319
34320 --System Discount Account
34321 , p_source_2 IN NUMBER
34322 --Discount Distribution Method
34323 , p_source_3 IN VARCHAR2
34324 , p_source_3_meaning IN VARCHAR2
34325 --Automatic Offsets Value
34326 , p_source_4 IN VARCHAR2
34327 , p_source_4_meaning IN VARCHAR2
34328 --Payment Distribution (Payment Rate) Ledger Amount
34329 , p_source_9 IN NUMBER
34330 --Invoice Distribution Account
34331 , p_source_17 IN NUMBER
34332 --Invoice Distribution Type
34333 , p_source_20 IN VARCHAR2
34334 , p_source_20_meaning IN VARCHAR2
34335 --Discount Account
34336 , p_source_27 IN NUMBER
34337 --Purchase Order Charge Account
34338 , p_source_28 IN NUMBER
34339 --Purchase Order Variance Account
34340 , p_source_29 IN NUMBER
34341 --When to Account for Payment Option
34342 , p_source_38 IN VARCHAR2
34343 --Payment Distribution Type
34344 , p_source_39 IN VARCHAR2
34345 , p_source_39_meaning IN VARCHAR2
34346 --Accounting Reversal Indicator
34347 , p_source_40 IN VARCHAR2
34348 --Payment Distribution Amount
34349 , p_source_41 IN NUMBER
34350 --Business Flow Accounts Payable Application Identifier
34351 , p_source_42 IN NUMBER
34352 --Business Flow Payment Distribution Type
34356 --Business Flow Payment Distribution Identifier
34353 , p_source_43 IN VARCHAR2
34354 --Business Flow Payment Entity Code
34355 , p_source_44 IN VARCHAR2
34357 , p_source_45 IN NUMBER
34358 --Business Flow Payment Identifier
34359 , p_source_46 IN NUMBER
34360 --Payment Distribution Identifier
34361 , p_source_47 IN NUMBER
34362 --Distribution Link Type
34363 , p_source_48 IN VARCHAR2
34364 --Payment Currency Code
34365 , p_source_49 IN VARCHAR2
34366 --Override Accounted Amount Indicator
34367 , p_source_53 IN VARCHAR2
34368 , p_source_53_meaning IN VARCHAR2
34369 --Payment Supplier Identifier
34370 , p_source_54 IN NUMBER
34371 --Payment Supplier Site Identifier
34372 , p_source_55 IN NUMBER
34373 --Third Party Type
34374 , p_source_56 IN VARCHAR2
34375 --Payment Distribution Reversed Identifier
34376 , p_source_57 IN NUMBER
34377 --Invoice Distribution Tax Line Identifier
34378 , p_source_58 IN NUMBER
34379 --Invoice Distribution Summary Tax Line Identifier
34380 , p_source_59 IN NUMBER
34381 --Payment Exchange Date
34382 , p_source_114 IN DATE
34383 --Payment Exchange Rate
34384 , p_source_115 IN NUMBER
34385 --Payment Exchange Rate Type
34386 , p_source_116 IN VARCHAR2
34387 )
34388 IS
34389
34390 l_component_type VARCHAR2(80);
34391 l_component_code VARCHAR2(30);
34392 l_component_type_code VARCHAR2(1);
34393 l_component_appl_id INTEGER;
34394 l_amb_context_code VARCHAR2(30);
34395 l_entity_code VARCHAR2(30);
34396 l_event_class_code VARCHAR2(30);
34397 l_ae_header_id NUMBER;
34398 l_event_type_code VARCHAR2(30);
34399 l_line_definition_code VARCHAR2(30);
34400 l_line_definition_owner_code VARCHAR2(1);
34401 --
34402 -- adr variables
34403 l_segment VARCHAR2(30);
34404 l_ccid NUMBER;
34405 l_adr_transaction_coa_id NUMBER;
34406 l_adr_accounting_coa_id NUMBER;
34407 l_adr_flexfield_segment_code VARCHAR2(30);
34408 l_adr_flex_value_set_id NUMBER;
34409 l_adr_value_type_code VARCHAR2(30);
34410 l_adr_value_combination_id NUMBER;
34411 l_adr_value_segment_code VARCHAR2(30);
34412
34413 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34414 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34415 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34416 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34417
34418 -- 4262811 Variables ------------------------------------------------------------------------------------------
34419 l_entered_amt_idx NUMBER;
34420 l_accted_amt_idx NUMBER;
34421 l_acc_rev_flag VARCHAR2(1);
34422 l_accrual_line_num NUMBER;
34423 l_tmp_amt NUMBER;
34424 l_acc_rev_natural_side_code VARCHAR2(1);
34425
34426 l_num_entries NUMBER;
34427 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34428 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34429 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34430 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34431 l_recog_line_1 NUMBER;
34432 l_recog_line_2 NUMBER;
34433
34434 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34435 l_bflow_applied_to_amt NUMBER; -- 5132302
34436 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34437
34438 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34439
34440 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34441 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34442
34443 ---------------------------------------------------------------------------------------------------------------
34444
34445
34446 --
34447 -- bulk performance
34448 --
34449 l_balance_type_code VARCHAR2(1);
34450 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34451 l_log_module VARCHAR2(240);
34452
34453 --
34454 -- Upgrade strategy
34455 --
34456 l_actual_upg_option VARCHAR2(1);
34457 l_enc_upg_option VARCHAR2(1);
34458
34459 --
34460 BEGIN
34461 --
34462 IF g_log_enabled THEN
34463 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
34464 END IF;
34465 --
34466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34467
34468 trace
34469 (p_msg => 'BEGIN of AcctLineType_78'
34470 ,p_level => C_LEVEL_PROCEDURE
34471 ,p_module => l_log_module);
34472
34473 END IF;
34474 --
34475 l_component_type := 'AMB_JLT';
34476 l_component_code := 'AP_DISCOUNT_CASH_CLEAR';
34477 l_component_type_code := 'S';
34478 l_component_appl_id := 200;
34479 l_amb_context_code := 'DEFAULT';
34480 l_entity_code := 'AP_PAYMENTS';
34481 l_event_class_code := 'RECONCILED PAYMENTS';
34482 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
34483 l_line_definition_owner_code := 'S';
34487 l_segment := NULL;
34484 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
34485 --
34486 l_balance_type_code := 'A';
34488 l_ccid := NULL;
34489 l_adr_transaction_coa_id := NULL;
34490 l_adr_accounting_coa_id := NULL;
34491 l_adr_flexfield_segment_code := NULL;
34492 l_adr_flex_value_set_id := NULL;
34493 l_adr_value_type_code := NULL;
34494 l_adr_value_combination_id := NULL;
34495 l_adr_value_segment_code := NULL;
34496
34497 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34498 l_bflow_class_code := ''; -- 4219869 Business Flow
34499 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34500 l_budgetary_control_flag := 'N';
34501
34502 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34503 l_bflow_applied_to_amt := NULL; -- 5132302
34504 l_entered_amt_idx := NULL; -- 4262811
34505 l_accted_amt_idx := NULL; -- 4262811
34506 l_acc_rev_flag := NULL; -- 4262811
34507 l_accrual_line_num := NULL; -- 4262811
34508 l_tmp_amt := NULL; -- 4262811
34509 --
34510
34511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34512 l_balance_type_code <> 'B' THEN
34513 IF NVL(p_source_38,'
34514 ') = 'CLEAR_CLEAR' AND
34515 NVL(p_source_39,'
34516 ') = 'DISCOUNT' AND
34517 (NVL(p_source_20,'
34518 ') = 'ITEM' OR
34519 NVL(p_source_20,'
34520 ') = 'MISCELLANEOUS' OR
34521 NVL(p_source_20,'
34522 ') = 'FREIGHT' OR
34523 NVL(p_source_20,'
34524 ') = 'REC_TAX' OR
34525 NVL(p_source_20,'
34526 ') = 'NONREC_TAX' OR
34527 NVL(p_source_20,'
34528 ') = 'TIPV' OR
34529 NVL(p_source_20,'
34530 ') = 'TRV' OR
34531 NVL(p_source_20,'
34532 ') = 'IPV' OR
34533 NVL(p_source_20,'
34534 ') = 'ACCRUAL' OR
34535 NVL(p_source_20,'
34536 ') = 'RETROACCRUAL' OR
34537 NVL(p_source_20,'
34538 ') = 'RETROEXPENSE')
34539 THEN
34540
34541 --
34542 XLA_AE_LINES_PKG.SetNewLine;
34543
34544 p_balance_type_code := l_balance_type_code;
34545 -- set the flag so later we will know whether the gain loss line needs to be created
34546
34547 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34548 p_actual_flag :='A';
34549 END IF;
34550
34551 --
34552 -- bulk performance
34553 --
34554 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34555 p_header_num => 0); -- 4262811
34556 --
34557 -- set accounting line options
34558 --
34559 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34560 p_natural_side_code => 'C'
34561 , p_gain_or_loss_flag => 'N'
34562 , p_gl_transfer_mode_code => 'S'
34563 , p_acct_entry_type_code => 'A'
34564 , p_switch_side_flag => 'Y'
34565 , p_merge_duplicate_code => 'A'
34566 );
34567 --
34568 l_acc_rev_natural_side_code := 'D'; -- 4262811
34569 --
34570 --
34571 -- set accounting line type info
34572 --
34573 xla_ae_lines_pkg.SetAcctLineType
34574 (p_component_type => l_component_type
34575 ,p_event_type_code => l_event_type_code
34576 ,p_line_definition_owner_code => l_line_definition_owner_code
34577 ,p_line_definition_code => l_line_definition_code
34578 ,p_accounting_line_code => l_component_code
34579 ,p_accounting_line_type_code => l_component_type_code
34580 ,p_accounting_line_appl_id => l_component_appl_id
34581 ,p_amb_context_code => l_amb_context_code
34582 ,p_entity_code => l_entity_code
34583 ,p_event_class_code => l_event_class_code);
34584 --
34585 -- set accounting class
34586 --
34587 xla_ae_lines_pkg.SetAcctClass(
34588 p_accounting_class_code => 'DISCOUNT'
34589 , p_ae_header_id => l_ae_header_id
34590 );
34591
34592 --
34593 -- set rounding class
34594 --
34595 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34596 'DISCOUNT';
34597
34598 --
34599 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34600 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34601 --
34602 -- bulk performance
34603 --
34604 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34605
34606 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34607 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34608
34609 -- 4955764
34610 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34611 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34612
34613 -- 4458381 Public Sector Enh
34614
34615 --
34616 -- set accounting attributes for the line type
34617 --
34618 l_entered_amt_idx := 10;
34619 l_accted_amt_idx := 15;
34623 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
34620 l_bflow_applied_to_amt_idx := 2; -- 5132302
34621 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34622 l_rec_acct_attrs.array_char_value(1) := p_source_40;
34624 l_rec_acct_attrs.array_num_value(2) := p_source_41;
34625 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
34626 l_rec_acct_attrs.array_num_value(3) := p_source_42;
34627 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34628 l_rec_acct_attrs.array_char_value(4) := p_source_43;
34629 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
34630 l_rec_acct_attrs.array_char_value(5) := p_source_44;
34631 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
34632 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
34633 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34634 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
34635 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
34636 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
34637 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
34638 l_rec_acct_attrs.array_char_value(9) := p_source_48;
34639 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
34640 l_rec_acct_attrs.array_num_value(10) := p_source_41;
34641 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
34642 l_rec_acct_attrs.array_char_value(11) := p_source_49;
34643 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
34644 l_rec_acct_attrs.array_date_value(12) := p_source_114;
34645 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
34646 l_rec_acct_attrs.array_num_value(13) := p_source_115;
34647 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
34648 l_rec_acct_attrs.array_char_value(14) := p_source_116;
34649 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
34650 l_rec_acct_attrs.array_num_value(15) := p_source_9;
34651 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
34652 l_rec_acct_attrs.array_char_value(16) := p_source_53;
34653 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
34654 l_rec_acct_attrs.array_num_value(17) := p_source_54;
34655 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
34656 l_rec_acct_attrs.array_num_value(18) := p_source_55;
34657 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
34658 l_rec_acct_attrs.array_char_value(19) := p_source_56;
34659 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
34660 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
34661 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
34662 l_rec_acct_attrs.array_char_value(21) := p_source_48;
34663 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
34664 l_rec_acct_attrs.array_num_value(22) := p_source_58;
34665 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
34666 l_rec_acct_attrs.array_num_value(23) := p_source_58;
34667 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
34668 l_rec_acct_attrs.array_num_value(24) := p_source_59;
34669
34670 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34671 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34672
34673 ---------------------------------------------------------------------------------------------------------------
34674 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34675 ---------------------------------------------------------------------------------------------------------------
34676 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34677
34678 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34679 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34680
34681 IF xla_accounting_cache_pkg.GetValueChar
34682 (p_source_code => 'LEDGER_CATEGORY_CODE'
34683 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34684 AND l_bflow_method_code = 'PRIOR_ENTRY'
34685 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34686 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34687 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34688 )
34689 THEN
34690 xla_ae_lines_pkg.BflowUpgEntry
34691 (p_business_method_code => l_bflow_method_code
34692 ,p_business_class_code => l_bflow_class_code
34693 ,p_balance_type => l_balance_type_code);
34694 ELSE
34695 NULL;
34696 -- No business flow processing for business flow method of NONE.
34697 END IF;
34698
34699 --
34700 -- call analytical criteria
34701 --
34702
34703 --
34704 -- call description
34705 --
34706 -- No description or it is inherited.
34707 --
34708 -- call ADRs
34709 -- Bug 4922099
34710 --
34711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34712 (NVL(l_actual_upg_option, 'N') = 'O') OR
34713 (NVL(l_enc_upg_option, 'N') = 'O')
34714 )
34715 THEN
34716 NULL;
34717 --
34718 --
34719
34723 , p_source_2 => p_source_2
34720 l_ccid := AcctDerRule_21(
34721 p_application_id => p_application_id
34722 , p_ae_header_id => l_ae_header_id
34724 , p_source_3 => p_source_3
34725 , p_source_3_meaning => p_source_3_meaning
34726 , p_source_4 => p_source_4
34727 , p_source_4_meaning => p_source_4_meaning
34728 , p_source_17 => p_source_17
34729 , p_source_20 => p_source_20
34730 , p_source_20_meaning => p_source_20_meaning
34731 , p_source_27 => p_source_27
34732 , p_source_28 => p_source_28
34733 , p_source_29 => p_source_29
34734 , x_transaction_coa_id => l_adr_transaction_coa_id
34735 , x_accounting_coa_id => l_adr_accounting_coa_id
34736 , x_value_type_code => l_adr_value_type_code
34737 , p_side => 'NA'
34738 );
34739
34740 xla_ae_lines_pkg.set_ccid(
34741 p_code_combination_id => l_ccid
34742 , p_value_type_code => l_adr_value_type_code
34743 , p_transaction_coa_id => l_adr_transaction_coa_id
34744 , p_accounting_coa_id => l_adr_accounting_coa_id
34745 , p_adr_code => 'AP_DISCOUNT'
34746 , p_adr_type_code => 'S'
34747 , p_component_type => l_component_type
34748 , p_component_code => l_component_code
34749 , p_component_type_code => l_component_type_code
34750 , p_component_appl_id => l_component_appl_id
34751 , p_amb_context_code => l_amb_context_code
34752 , p_side => 'NA'
34753 );
34754
34755
34756 l_segment := AcctDerRule_2(
34757 p_application_id => p_application_id
34758 , p_ae_header_id => l_ae_header_id
34759 , p_source_2 => p_source_2
34760 , p_source_3 => p_source_3
34761 , p_source_3_meaning => p_source_3_meaning
34762 , p_source_4 => p_source_4
34763 , p_source_4_meaning => p_source_4_meaning
34764 , x_transaction_coa_id => l_adr_transaction_coa_id
34765 , x_accounting_coa_id => l_adr_accounting_coa_id
34766 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34767 , x_flex_value_set_id => l_adr_flex_value_set_id
34768 , x_value_type_code => l_adr_value_type_code
34769 , x_value_combination_id => l_adr_value_combination_id
34770 , x_value_segment_code => l_adr_value_segment_code
34771 , p_side => 'NA'
34772 , p_override_seg_flag => 'Y'
34773 );
34774
34775 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34776
34777 xla_ae_lines_pkg.set_segment(
34778 p_to_segment_code => 'GL_ACCOUNT'
34779 , p_segment_value => l_segment
34780 , p_from_segment_code => l_adr_value_segment_code
34781 , p_from_combination_id => l_adr_value_combination_id
34782 , p_value_type_code => l_adr_value_type_code
34783 , p_transaction_coa_id => l_adr_transaction_coa_id
34784 , p_accounting_coa_id => l_adr_accounting_coa_id
34785 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34786 , p_flex_value_set_id => l_adr_flex_value_set_id
34787 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
34788 , p_adr_type_code => 'S'
34789 , p_component_type => l_component_type
34790 , p_component_code => l_component_code
34791 , p_component_type_code => l_component_type_code
34792 , p_component_appl_id => l_component_appl_id
34793 , p_amb_context_code => l_amb_context_code
34794 , p_entity_code => 'AP_PAYMENTS'
34795 , p_event_class_code => 'RECONCILED PAYMENTS'
34796 , p_side => 'NA'
34797 );
34798
34799 END IF;
34800
34801 l_segment := AcctDerRule_14(
34802 p_application_id => p_application_id
34803 , p_ae_header_id => l_ae_header_id
34804 , p_source_4 => p_source_4
34805 , p_source_4_meaning => p_source_4_meaning
34806 , p_source_17 => p_source_17
34807 , x_transaction_coa_id => l_adr_transaction_coa_id
34808 , x_accounting_coa_id => l_adr_accounting_coa_id
34809 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34810 , x_flex_value_set_id => l_adr_flex_value_set_id
34811 , x_value_type_code => l_adr_value_type_code
34812 , x_value_combination_id => l_adr_value_combination_id
34813 , x_value_segment_code => l_adr_value_segment_code
34814 , p_side => 'NA'
34815 , p_override_seg_flag => 'Y'
34816 );
34817
34818 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34819
34820 xla_ae_lines_pkg.set_segment(
34821 p_to_segment_code => 'GL_BALANCING'
34822 , p_segment_value => l_segment
34823 , p_from_segment_code => l_adr_value_segment_code
34824 , p_from_combination_id => l_adr_value_combination_id
34825 , p_value_type_code => l_adr_value_type_code
34826 , p_transaction_coa_id => l_adr_transaction_coa_id
34827 , p_accounting_coa_id => l_adr_accounting_coa_id
34828 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34829 , p_flex_value_set_id => l_adr_flex_value_set_id
34833 , p_component_code => l_component_code
34830 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
34831 , p_adr_type_code => 'S'
34832 , p_component_type => l_component_type
34834 , p_component_type_code => l_component_type_code
34835 , p_component_appl_id => l_component_appl_id
34836 , p_amb_context_code => l_amb_context_code
34837 , p_entity_code => 'AP_PAYMENTS'
34838 , p_event_class_code => 'RECONCILED PAYMENTS'
34839 , p_side => 'NA'
34840 );
34841
34842 END IF;
34843
34844 --
34845 --
34846 END IF;
34847 --
34848 -- Bug 4922099
34849 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34850 (NVL(l_enc_upg_option, 'N') = 'O')
34851 ) AND
34852 (l_bflow_method_code = 'PRIOR_ENTRY')
34853 )
34854 THEN
34855 IF
34856 --
34857 1 = 2
34858 --
34859 THEN
34860 xla_accounting_err_pkg.build_message
34861 (p_appli_s_name => 'XLA'
34862 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34863 ,p_token_1 => 'LINE_NUMBER'
34864 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34865 ,p_token_2 => 'LINE_TYPE_NAME'
34866 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34867 l_component_type
34868 ,l_component_code
34869 ,l_component_type_code
34870 ,l_component_appl_id
34871 ,l_amb_context_code
34872 ,l_entity_code
34873 ,l_event_class_code
34874 )
34875 ,p_token_3 => 'OWNER'
34876 ,p_value_3 => xla_lookups_pkg.get_meaning(
34877 p_lookup_type => 'XLA_OWNER_TYPE'
34878 ,p_lookup_code => l_component_type_code
34879 )
34880 ,p_token_4 => 'PRODUCT_NAME'
34881 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34882 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34883 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34884 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34885 ,p_ae_header_id => NULL
34886 );
34887
34888 IF (C_LEVEL_ERROR>= g_log_level) THEN
34889 trace
34890 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34891 ,p_level => C_LEVEL_ERROR
34892 ,p_module => l_log_module);
34893 END IF;
34894 END IF;
34895 END IF;
34896 --
34897 --
34898 ------------------------------------------------------------------------------------------------
34899 -- 4219869 Business Flow
34900 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34901 -- Prior Entry. Currently, the following code is always generated.
34902 ------------------------------------------------------------------------------------------------
34903 XLA_AE_LINES_PKG.ValidateCurrentLine;
34904
34905 ------------------------------------------------------------------------------------
34906 -- 4219869 Business Flow
34907 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34908 ------------------------------------------------------------------------------------
34909 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34910
34911 ----------------------------------------------------------------------------------
34912 -- 4219869 Business Flow
34913 -- Update journal entry status -- Need to generate this within IF <condition>
34914 ----------------------------------------------------------------------------------
34915 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34916 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34917 ,p_balance_type_code => l_balance_type_code
34918 );
34919
34920 -------------------------------------------------------------------------------------------
34921 -- 4262811 - Generate the Accrual Reversal lines
34922 -------------------------------------------------------------------------------------------
34923 BEGIN
34924 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34925 (g_array_event(p_event_id).array_value_num('header_index'));
34929 EXCEPTION
34926 IF l_acc_rev_flag IS NULL THEN
34927 l_acc_rev_flag := 'N';
34928 END IF;
34930 WHEN OTHERS THEN
34931 l_acc_rev_flag := 'N';
34932 END;
34933 --
34934 IF (l_acc_rev_flag = 'Y') THEN
34935
34936 -- 4645092 ------------------------------------------------------------------------------
34937 -- To allow MPA report to determine if it should generate report process
34938 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34939 ------------------------------------------------------------------------------------------
34940
34941 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34942 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34943 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34944 -- call ADRs
34945 -- Bug 4922099
34946 --
34947 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34948 (NVL(l_actual_upg_option, 'N') = 'O') OR
34949 (NVL(l_enc_upg_option, 'N') = 'O')
34950 )
34951 THEN
34952 NULL;
34953 --
34954 --
34955
34956 l_ccid := AcctDerRule_21(
34957 p_application_id => p_application_id
34958 , p_ae_header_id => l_ae_header_id
34959 , p_source_2 => p_source_2
34960 , p_source_3 => p_source_3
34961 , p_source_3_meaning => p_source_3_meaning
34962 , p_source_4 => p_source_4
34963 , p_source_4_meaning => p_source_4_meaning
34964 , p_source_17 => p_source_17
34965 , p_source_20 => p_source_20
34966 , p_source_20_meaning => p_source_20_meaning
34967 , p_source_27 => p_source_27
34968 , p_source_28 => p_source_28
34969 , p_source_29 => p_source_29
34970 , x_transaction_coa_id => l_adr_transaction_coa_id
34971 , x_accounting_coa_id => l_adr_accounting_coa_id
34972 , x_value_type_code => l_adr_value_type_code
34973 , p_side => 'NA'
34974 );
34975
34976 xla_ae_lines_pkg.set_ccid(
34977 p_code_combination_id => l_ccid
34978 , p_value_type_code => l_adr_value_type_code
34979 , p_transaction_coa_id => l_adr_transaction_coa_id
34980 , p_accounting_coa_id => l_adr_accounting_coa_id
34981 , p_adr_code => 'AP_DISCOUNT'
34982 , p_adr_type_code => 'S'
34983 , p_component_type => l_component_type
34984 , p_component_code => l_component_code
34985 , p_component_type_code => l_component_type_code
34986 , p_component_appl_id => l_component_appl_id
34987 , p_amb_context_code => l_amb_context_code
34988 , p_side => 'NA'
34989 );
34990
34991
34992 l_segment := AcctDerRule_2(
34993 p_application_id => p_application_id
34994 , p_ae_header_id => l_ae_header_id
34995 , p_source_2 => p_source_2
34996 , p_source_3 => p_source_3
34997 , p_source_3_meaning => p_source_3_meaning
34998 , p_source_4 => p_source_4
34999 , p_source_4_meaning => p_source_4_meaning
35000 , x_transaction_coa_id => l_adr_transaction_coa_id
35001 , x_accounting_coa_id => l_adr_accounting_coa_id
35002 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35003 , x_flex_value_set_id => l_adr_flex_value_set_id
35004 , x_value_type_code => l_adr_value_type_code
35005 , x_value_combination_id => l_adr_value_combination_id
35006 , x_value_segment_code => l_adr_value_segment_code
35007 , p_side => 'NA'
35008 , p_override_seg_flag => 'Y'
35009 );
35010
35011 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35012
35013 xla_ae_lines_pkg.set_segment(
35014 p_to_segment_code => 'GL_ACCOUNT'
35015 , p_segment_value => l_segment
35016 , p_from_segment_code => l_adr_value_segment_code
35017 , p_from_combination_id => l_adr_value_combination_id
35018 , p_value_type_code => l_adr_value_type_code
35019 , p_transaction_coa_id => l_adr_transaction_coa_id
35020 , p_accounting_coa_id => l_adr_accounting_coa_id
35021 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35022 , p_flex_value_set_id => l_adr_flex_value_set_id
35023 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
35024 , p_adr_type_code => 'S'
35025 , p_component_type => l_component_type
35026 , p_component_code => l_component_code
35027 , p_component_type_code => l_component_type_code
35028 , p_component_appl_id => l_component_appl_id
35029 , p_amb_context_code => l_amb_context_code
35030 , p_entity_code => 'AP_PAYMENTS'
35031 , p_event_class_code => 'RECONCILED PAYMENTS'
35032 , p_side => 'NA'
35033 );
35034
35035 END IF;
35036
35037 l_segment := AcctDerRule_14(
35038 p_application_id => p_application_id
35039 , p_ae_header_id => l_ae_header_id
35040 , p_source_4 => p_source_4
35041 , p_source_4_meaning => p_source_4_meaning
35042 , p_source_17 => p_source_17
35043 , x_transaction_coa_id => l_adr_transaction_coa_id
35044 , x_accounting_coa_id => l_adr_accounting_coa_id
35048 , x_value_combination_id => l_adr_value_combination_id
35045 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35046 , x_flex_value_set_id => l_adr_flex_value_set_id
35047 , x_value_type_code => l_adr_value_type_code
35049 , x_value_segment_code => l_adr_value_segment_code
35050 , p_side => 'NA'
35051 , p_override_seg_flag => 'Y'
35052 );
35053
35054 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35055
35056 xla_ae_lines_pkg.set_segment(
35057 p_to_segment_code => 'GL_BALANCING'
35058 , p_segment_value => l_segment
35059 , p_from_segment_code => l_adr_value_segment_code
35060 , p_from_combination_id => l_adr_value_combination_id
35061 , p_value_type_code => l_adr_value_type_code
35062 , p_transaction_coa_id => l_adr_transaction_coa_id
35063 , p_accounting_coa_id => l_adr_accounting_coa_id
35064 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35065 , p_flex_value_set_id => l_adr_flex_value_set_id
35066 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
35067 , p_adr_type_code => 'S'
35068 , p_component_type => l_component_type
35069 , p_component_code => l_component_code
35070 , p_component_type_code => l_component_type_code
35071 , p_component_appl_id => l_component_appl_id
35072 , p_amb_context_code => l_amb_context_code
35073 , p_entity_code => 'AP_PAYMENTS'
35074 , p_event_class_code => 'RECONCILED PAYMENTS'
35075 , p_side => 'NA'
35076 );
35077
35078 END IF;
35079
35080 --
35081 --
35082 END IF;
35083
35084 --
35085 -- Update the line information that should be overwritten
35086 --
35087 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35088 p_header_num => 1);
35089 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35090
35091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35092
35093 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35094 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35095 END IF;
35096
35097 --
35098 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35099 --
35100 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35101 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35102 ELSE
35103 ---------------------------------------------------------------------------------------------------
35104 -- 4262811a Switch Sign
35105 ---------------------------------------------------------------------------------------------------
35106 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35107 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35108 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35109 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35110 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35111 -- 5132302
35112 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35113 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35114
35115 END IF;
35116
35117 -- 4955764
35118 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35119 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35120
35121
35122 XLA_AE_LINES_PKG.ValidateCurrentLine;
35123 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35124
35125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35127 ,p_balance_type_code => l_balance_type_code);
35128
35129 END IF;
35130
35131 -----------------------------------------------------------------------------------------
35132 -- 4262811 Multiperiod Accounting
35133 -----------------------------------------------------------------------------------------
35134 -- No MPA option is assigned.
35135
35136
35137 END IF;
35138 END IF;
35139 --
35140
35141 --
35142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35143 trace
35144 (p_msg => 'END of AcctLineType_78'
35145 ,p_level => C_LEVEL_PROCEDURE
35146 ,p_module => l_log_module);
35147 END IF;
35148 --
35149 EXCEPTION
35150 WHEN xla_exceptions_pkg.application_exception THEN
35151 RAISE;
35152 WHEN OTHERS THEN
35153 xla_exceptions_pkg.raise_message
35154 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_78');
35155 END AcctLineType_78;
35156 --
35160 -- PRIVATE FUNCTION
35157
35158 ---------------------------------------
35159 --
35161 -- AcctLineType_79
35162 --
35163 ---------------------------------------
35164 PROCEDURE AcctLineType_79 (
35165 p_application_id IN NUMBER
35166 ,p_event_id IN NUMBER
35167 ,p_calculate_acctd_flag IN VARCHAR2
35168 ,p_calculate_g_l_flag IN VARCHAR2
35169 ,p_actual_flag IN OUT VARCHAR2
35170 ,p_balance_type_code OUT VARCHAR2
35171 ,p_gain_or_loss_ref OUT VARCHAR2
35172
35173 --System Discount Account
35174 , p_source_2 IN NUMBER
35175 --Discount Distribution Method
35176 , p_source_3 IN VARCHAR2
35177 , p_source_3_meaning IN VARCHAR2
35178 --Automatic Offsets Value
35179 , p_source_4 IN VARCHAR2
35180 , p_source_4_meaning IN VARCHAR2
35181 --Payment Distribution (Payment Rate) Ledger Amount
35182 , p_source_9 IN NUMBER
35183 --Invoice Distribution Account
35184 , p_source_17 IN NUMBER
35185 --Invoice Distribution Type
35186 , p_source_20 IN VARCHAR2
35187 , p_source_20_meaning IN VARCHAR2
35188 --Discount Account
35189 , p_source_27 IN NUMBER
35190 --Purchase Order Charge Account
35191 , p_source_28 IN NUMBER
35192 --Purchase Order Variance Account
35193 , p_source_29 IN NUMBER
35194 --When to Account for Payment Option
35195 , p_source_38 IN VARCHAR2
35196 --Payment Distribution Type
35197 , p_source_39 IN VARCHAR2
35198 , p_source_39_meaning IN VARCHAR2
35199 --Accounting Reversal Indicator
35200 , p_source_40 IN VARCHAR2
35201 --Payment Distribution Amount
35202 , p_source_41 IN NUMBER
35203 --Business Flow Accounts Payable Application Identifier
35204 , p_source_42 IN NUMBER
35205 --Payment Distribution Identifier
35206 , p_source_47 IN NUMBER
35207 --Distribution Link Type
35208 , p_source_48 IN VARCHAR2
35209 --Payment Currency Code
35210 , p_source_49 IN VARCHAR2
35211 --Override Accounted Amount Indicator
35212 , p_source_53 IN VARCHAR2
35213 , p_source_53_meaning IN VARCHAR2
35214 --Payment Supplier Identifier
35215 , p_source_54 IN NUMBER
35216 --Payment Supplier Site Identifier
35217 , p_source_55 IN NUMBER
35218 --Third Party Type
35219 , p_source_56 IN VARCHAR2
35220 --Payment Distribution Reversed Identifier
35221 , p_source_57 IN NUMBER
35222 --Invoice Distribution Tax Line Identifier
35223 , p_source_58 IN NUMBER
35224 --Invoice Distribution Summary Tax Line Identifier
35225 , p_source_59 IN NUMBER
35226 --Payment Type
35227 , p_source_60 IN VARCHAR2
35228 , p_source_60_meaning IN VARCHAR2
35229 --Invoice Distribution Amount of the Payment Distribution
35230 , p_source_61 IN NUMBER
35231 --Business Flow Invoice Distribution Type
35232 , p_source_62 IN VARCHAR2
35233 --Business Flow Invoice Entity Code
35234 , p_source_63 IN VARCHAR2
35235 --Business Flow Invoice Distribution Identifier
35236 , p_source_64 IN NUMBER
35237 --Business Flow Invoice Identifier
35238 , p_source_65 IN NUMBER
35239 --Invoice Distribution Tax Distribution Identifier from Tax
35240 , p_source_66 IN NUMBER
35241 --Payment Exchange Date
35242 , p_source_114 IN DATE
35243 --Payment Exchange Rate
35244 , p_source_115 IN NUMBER
35245 --Payment Exchange Rate Type
35246 , p_source_116 IN VARCHAR2
35247 )
35248 IS
35249
35250 l_component_type VARCHAR2(80);
35251 l_component_code VARCHAR2(30);
35252 l_component_type_code VARCHAR2(1);
35253 l_component_appl_id INTEGER;
35254 l_amb_context_code VARCHAR2(30);
35255 l_entity_code VARCHAR2(30);
35256 l_event_class_code VARCHAR2(30);
35257 l_ae_header_id NUMBER;
35258 l_event_type_code VARCHAR2(30);
35259 l_line_definition_code VARCHAR2(30);
35260 l_line_definition_owner_code VARCHAR2(1);
35261 --
35262 -- adr variables
35263 l_segment VARCHAR2(30);
35264 l_ccid NUMBER;
35265 l_adr_transaction_coa_id NUMBER;
35266 l_adr_accounting_coa_id NUMBER;
35267 l_adr_flexfield_segment_code VARCHAR2(30);
35268 l_adr_flex_value_set_id NUMBER;
35269 l_adr_value_type_code VARCHAR2(30);
35270 l_adr_value_combination_id NUMBER;
35271 l_adr_value_segment_code VARCHAR2(30);
35272
35273 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35274 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35275 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35276 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35277
35278 -- 4262811 Variables ------------------------------------------------------------------------------------------
35279 l_entered_amt_idx NUMBER;
35280 l_accted_amt_idx NUMBER;
35281 l_acc_rev_flag VARCHAR2(1);
35282 l_accrual_line_num NUMBER;
35283 l_tmp_amt NUMBER;
35284 l_acc_rev_natural_side_code VARCHAR2(1);
35285
35286 l_num_entries NUMBER;
35290 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35287 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35288 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35289 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35291 l_recog_line_1 NUMBER;
35292 l_recog_line_2 NUMBER;
35293
35294 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35295 l_bflow_applied_to_amt NUMBER; -- 5132302
35296 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35297
35298 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35299
35300 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35301 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35302
35303 ---------------------------------------------------------------------------------------------------------------
35304
35305
35306 --
35307 -- bulk performance
35308 --
35309 l_balance_type_code VARCHAR2(1);
35310 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35311 l_log_module VARCHAR2(240);
35312
35313 --
35314 -- Upgrade strategy
35315 --
35316 l_actual_upg_option VARCHAR2(1);
35317 l_enc_upg_option VARCHAR2(1);
35318
35319 --
35320 BEGIN
35321 --
35322 IF g_log_enabled THEN
35323 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
35324 END IF;
35325 --
35326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35327
35328 trace
35329 (p_msg => 'BEGIN of AcctLineType_79'
35330 ,p_level => C_LEVEL_PROCEDURE
35331 ,p_module => l_log_module);
35332
35333 END IF;
35334 --
35335 l_component_type := 'AMB_JLT';
35336 l_component_code := 'AP_DISCOUNT_CASH_PMT';
35337 l_component_type_code := 'S';
35338 l_component_appl_id := 200;
35339 l_amb_context_code := 'DEFAULT';
35340 l_entity_code := 'AP_PAYMENTS';
35341 l_event_class_code := 'PAYMENTS';
35342 l_event_type_code := 'PAYMENTS_ALL';
35343 l_line_definition_owner_code := 'S';
35344 l_line_definition_code := 'CASH_PAYMENTS_ALL';
35345 --
35346 l_balance_type_code := 'A';
35347 l_segment := NULL;
35348 l_ccid := NULL;
35349 l_adr_transaction_coa_id := NULL;
35350 l_adr_accounting_coa_id := NULL;
35351 l_adr_flexfield_segment_code := NULL;
35352 l_adr_flex_value_set_id := NULL;
35353 l_adr_value_type_code := NULL;
35354 l_adr_value_combination_id := NULL;
35355 l_adr_value_segment_code := NULL;
35356
35357 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35358 l_bflow_class_code := ''; -- 4219869 Business Flow
35359 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35360 l_budgetary_control_flag := 'N';
35361
35362 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35363 l_bflow_applied_to_amt := NULL; -- 5132302
35364 l_entered_amt_idx := NULL; -- 4262811
35365 l_accted_amt_idx := NULL; -- 4262811
35366 l_acc_rev_flag := NULL; -- 4262811
35367 l_accrual_line_num := NULL; -- 4262811
35368 l_tmp_amt := NULL; -- 4262811
35369 --
35370
35371 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35372 l_balance_type_code <> 'B' THEN
35373 IF NVL(p_source_38,'
35374 ') <> 'CLEAR_CLEAR' AND
35375 NVL(p_source_39,'
35376 ') = 'DISCOUNT' AND
35377 NVL(p_source_60,'
35378 ') <> 'R'
35379 THEN
35380
35381 --
35382 XLA_AE_LINES_PKG.SetNewLine;
35383
35384 p_balance_type_code := l_balance_type_code;
35385 -- set the flag so later we will know whether the gain loss line needs to be created
35386
35387 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35388 p_actual_flag :='A';
35389 END IF;
35390
35391 --
35392 -- bulk performance
35393 --
35394 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35395 p_header_num => 0); -- 4262811
35396 --
35397 -- set accounting line options
35398 --
35399 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35400 p_natural_side_code => 'C'
35401 , p_gain_or_loss_flag => 'N'
35402 , p_gl_transfer_mode_code => 'S'
35403 , p_acct_entry_type_code => 'A'
35404 , p_switch_side_flag => 'Y'
35405 , p_merge_duplicate_code => 'A'
35406 );
35407 --
35408 l_acc_rev_natural_side_code := 'D'; -- 4262811
35409 --
35410 --
35411 -- set accounting line type info
35412 --
35413 xla_ae_lines_pkg.SetAcctLineType
35414 (p_component_type => l_component_type
35415 ,p_event_type_code => l_event_type_code
35416 ,p_line_definition_owner_code => l_line_definition_owner_code
35417 ,p_line_definition_code => l_line_definition_code
35418 ,p_accounting_line_code => l_component_code
35422 ,p_entity_code => l_entity_code
35419 ,p_accounting_line_type_code => l_component_type_code
35420 ,p_accounting_line_appl_id => l_component_appl_id
35421 ,p_amb_context_code => l_amb_context_code
35423 ,p_event_class_code => l_event_class_code);
35424 --
35425 -- set accounting class
35426 --
35427 xla_ae_lines_pkg.SetAcctClass(
35428 p_accounting_class_code => 'DISCOUNT'
35429 , p_ae_header_id => l_ae_header_id
35430 );
35431
35432 --
35433 -- set rounding class
35434 --
35435 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35436 'DISCOUNT';
35437
35438 --
35439 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35440 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35441 --
35442 -- bulk performance
35443 --
35444 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35445
35446 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35447 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35448
35449 -- 4955764
35450 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35451 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35452
35453 -- 4458381 Public Sector Enh
35454
35455 --
35456 -- set accounting attributes for the line type
35457 --
35458 l_entered_amt_idx := 10;
35459 l_accted_amt_idx := 15;
35460 l_bflow_applied_to_amt_idx := 2; -- 5132302
35461 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35462 l_rec_acct_attrs.array_char_value(1) := p_source_40;
35463 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
35464 l_rec_acct_attrs.array_num_value(2) := p_source_61;
35465 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
35466 l_rec_acct_attrs.array_num_value(3) := p_source_42;
35467 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35468 l_rec_acct_attrs.array_char_value(4) := p_source_62;
35469 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
35470 l_rec_acct_attrs.array_char_value(5) := p_source_63;
35471 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
35472 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
35473 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35474 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
35475 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
35476 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
35477 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
35478 l_rec_acct_attrs.array_char_value(9) := p_source_48;
35479 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
35480 l_rec_acct_attrs.array_num_value(10) := p_source_41;
35481 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
35482 l_rec_acct_attrs.array_char_value(11) := p_source_49;
35483 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
35484 l_rec_acct_attrs.array_date_value(12) := p_source_114;
35485 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
35486 l_rec_acct_attrs.array_num_value(13) := p_source_115;
35487 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
35488 l_rec_acct_attrs.array_char_value(14) := p_source_116;
35489 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
35490 l_rec_acct_attrs.array_num_value(15) := p_source_9;
35491 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
35492 l_rec_acct_attrs.array_char_value(16) := p_source_53;
35493 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
35494 l_rec_acct_attrs.array_num_value(17) := p_source_54;
35495 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
35496 l_rec_acct_attrs.array_num_value(18) := p_source_55;
35497 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
35498 l_rec_acct_attrs.array_char_value(19) := p_source_56;
35499 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
35500 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
35501 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
35502 l_rec_acct_attrs.array_char_value(21) := p_source_48;
35503 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
35504 l_rec_acct_attrs.array_num_value(22) := p_source_58;
35505 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
35506 l_rec_acct_attrs.array_num_value(23) := p_source_66;
35507 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
35508 l_rec_acct_attrs.array_num_value(24) := p_source_59;
35509
35510 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35511 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35512
35513 ---------------------------------------------------------------------------------------------------------------
35514 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35515 ---------------------------------------------------------------------------------------------------------------
35519 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35516 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35517
35518 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35520
35521 IF xla_accounting_cache_pkg.GetValueChar
35522 (p_source_code => 'LEDGER_CATEGORY_CODE'
35523 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35524 AND l_bflow_method_code = 'PRIOR_ENTRY'
35525 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35526 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35527 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35528 )
35529 THEN
35530 xla_ae_lines_pkg.BflowUpgEntry
35531 (p_business_method_code => l_bflow_method_code
35532 ,p_business_class_code => l_bflow_class_code
35533 ,p_balance_type => l_balance_type_code);
35534 ELSE
35535 NULL;
35536 -- No business flow processing for business flow method of NONE.
35537 END IF;
35538
35539 --
35540 -- call analytical criteria
35541 --
35542
35543 --
35544 -- call description
35545 --
35546 -- No description or it is inherited.
35547 --
35548 -- call ADRs
35549 -- Bug 4922099
35550 --
35551 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35552 (NVL(l_actual_upg_option, 'N') = 'O') OR
35553 (NVL(l_enc_upg_option, 'N') = 'O')
35554 )
35555 THEN
35556 NULL;
35557 --
35558 --
35559
35560 l_ccid := AcctDerRule_21(
35561 p_application_id => p_application_id
35562 , p_ae_header_id => l_ae_header_id
35563 , p_source_2 => p_source_2
35564 , p_source_3 => p_source_3
35565 , p_source_3_meaning => p_source_3_meaning
35566 , p_source_4 => p_source_4
35567 , p_source_4_meaning => p_source_4_meaning
35568 , p_source_17 => p_source_17
35569 , p_source_20 => p_source_20
35570 , p_source_20_meaning => p_source_20_meaning
35571 , p_source_27 => p_source_27
35572 , p_source_28 => p_source_28
35573 , p_source_29 => p_source_29
35574 , x_transaction_coa_id => l_adr_transaction_coa_id
35575 , x_accounting_coa_id => l_adr_accounting_coa_id
35576 , x_value_type_code => l_adr_value_type_code
35577 , p_side => 'NA'
35578 );
35579
35580 xla_ae_lines_pkg.set_ccid(
35581 p_code_combination_id => l_ccid
35582 , p_value_type_code => l_adr_value_type_code
35583 , p_transaction_coa_id => l_adr_transaction_coa_id
35584 , p_accounting_coa_id => l_adr_accounting_coa_id
35585 , p_adr_code => 'AP_DISCOUNT'
35586 , p_adr_type_code => 'S'
35587 , p_component_type => l_component_type
35588 , p_component_code => l_component_code
35589 , p_component_type_code => l_component_type_code
35590 , p_component_appl_id => l_component_appl_id
35591 , p_amb_context_code => l_amb_context_code
35592 , p_side => 'NA'
35593 );
35594
35595
35596 l_segment := AcctDerRule_13(
35597 p_application_id => p_application_id
35598 , p_ae_header_id => l_ae_header_id
35599 , p_source_3 => p_source_3
35600 , p_source_3_meaning => p_source_3_meaning
35601 , p_source_4 => p_source_4
35602 , p_source_4_meaning => p_source_4_meaning
35603 , p_source_17 => p_source_17
35604 , x_transaction_coa_id => l_adr_transaction_coa_id
35605 , x_accounting_coa_id => l_adr_accounting_coa_id
35606 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35607 , x_flex_value_set_id => l_adr_flex_value_set_id
35608 , x_value_type_code => l_adr_value_type_code
35609 , x_value_combination_id => l_adr_value_combination_id
35610 , x_value_segment_code => l_adr_value_segment_code
35611 , p_side => 'NA'
35612 , p_override_seg_flag => 'Y'
35613 );
35614
35615 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35616
35617 xla_ae_lines_pkg.set_segment(
35618 p_to_segment_code => 'GL_BALANCING'
35619 , p_segment_value => l_segment
35620 , p_from_segment_code => l_adr_value_segment_code
35621 , p_from_combination_id => l_adr_value_combination_id
35622 , p_value_type_code => l_adr_value_type_code
35623 , p_transaction_coa_id => l_adr_transaction_coa_id
35624 , p_accounting_coa_id => l_adr_accounting_coa_id
35625 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35626 , p_flex_value_set_id => l_adr_flex_value_set_id
35627 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
35628 , p_adr_type_code => 'S'
35629 , p_component_type => l_component_type
35630 , p_component_code => l_component_code
35631 , p_component_type_code => l_component_type_code
35632 , p_component_appl_id => l_component_appl_id
35633 , p_amb_context_code => l_amb_context_code
35634 , p_entity_code => 'AP_PAYMENTS'
35638
35635 , p_event_class_code => 'PAYMENTS'
35636 , p_side => 'NA'
35637 );
35639 END IF;
35640
35641 l_segment := AcctDerRule_2(
35642 p_application_id => p_application_id
35643 , p_ae_header_id => l_ae_header_id
35644 , p_source_2 => p_source_2
35645 , p_source_3 => p_source_3
35646 , p_source_3_meaning => p_source_3_meaning
35647 , p_source_4 => p_source_4
35648 , p_source_4_meaning => p_source_4_meaning
35649 , x_transaction_coa_id => l_adr_transaction_coa_id
35650 , x_accounting_coa_id => l_adr_accounting_coa_id
35651 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35652 , x_flex_value_set_id => l_adr_flex_value_set_id
35653 , x_value_type_code => l_adr_value_type_code
35654 , x_value_combination_id => l_adr_value_combination_id
35655 , x_value_segment_code => l_adr_value_segment_code
35656 , p_side => 'NA'
35657 , p_override_seg_flag => 'Y'
35658 );
35659
35660 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35661
35662 xla_ae_lines_pkg.set_segment(
35663 p_to_segment_code => 'GL_ACCOUNT'
35664 , p_segment_value => l_segment
35665 , p_from_segment_code => l_adr_value_segment_code
35666 , p_from_combination_id => l_adr_value_combination_id
35667 , p_value_type_code => l_adr_value_type_code
35668 , p_transaction_coa_id => l_adr_transaction_coa_id
35669 , p_accounting_coa_id => l_adr_accounting_coa_id
35670 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35671 , p_flex_value_set_id => l_adr_flex_value_set_id
35672 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
35673 , p_adr_type_code => 'S'
35674 , p_component_type => l_component_type
35675 , p_component_code => l_component_code
35676 , p_component_type_code => l_component_type_code
35677 , p_component_appl_id => l_component_appl_id
35678 , p_amb_context_code => l_amb_context_code
35679 , p_entity_code => 'AP_PAYMENTS'
35680 , p_event_class_code => 'PAYMENTS'
35681 , p_side => 'NA'
35682 );
35683
35684 END IF;
35685
35686 --
35687 --
35688 END IF;
35689 --
35690 -- Bug 4922099
35691 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35692 (NVL(l_enc_upg_option, 'N') = 'O')
35693 ) AND
35694 (l_bflow_method_code = 'PRIOR_ENTRY')
35695 )
35696 THEN
35697 IF
35698 --
35699 1 = 2
35700 --
35701 THEN
35702 xla_accounting_err_pkg.build_message
35703 (p_appli_s_name => 'XLA'
35704 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35705 ,p_token_1 => 'LINE_NUMBER'
35706 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35707 ,p_token_2 => 'LINE_TYPE_NAME'
35708 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35709 l_component_type
35710 ,l_component_code
35711 ,l_component_type_code
35712 ,l_component_appl_id
35713 ,l_amb_context_code
35714 ,l_entity_code
35715 ,l_event_class_code
35716 )
35717 ,p_token_3 => 'OWNER'
35718 ,p_value_3 => xla_lookups_pkg.get_meaning(
35719 p_lookup_type => 'XLA_OWNER_TYPE'
35720 ,p_lookup_code => l_component_type_code
35721 )
35722 ,p_token_4 => 'PRODUCT_NAME'
35723 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35724 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35725 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35726 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35727 ,p_ae_header_id => NULL
35728 );
35729
35730 IF (C_LEVEL_ERROR>= g_log_level) THEN
35731 trace
35732 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35736 END IF;
35733 ,p_level => C_LEVEL_ERROR
35734 ,p_module => l_log_module);
35735 END IF;
35737 END IF;
35738 --
35739 --
35740 ------------------------------------------------------------------------------------------------
35741 -- 4219869 Business Flow
35742 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35743 -- Prior Entry. Currently, the following code is always generated.
35744 ------------------------------------------------------------------------------------------------
35745 XLA_AE_LINES_PKG.ValidateCurrentLine;
35746
35747 ------------------------------------------------------------------------------------
35748 -- 4219869 Business Flow
35749 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35750 ------------------------------------------------------------------------------------
35751 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35752
35753 ----------------------------------------------------------------------------------
35754 -- 4219869 Business Flow
35755 -- Update journal entry status -- Need to generate this within IF <condition>
35756 ----------------------------------------------------------------------------------
35757 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35758 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35759 ,p_balance_type_code => l_balance_type_code
35760 );
35761
35762 -------------------------------------------------------------------------------------------
35763 -- 4262811 - Generate the Accrual Reversal lines
35764 -------------------------------------------------------------------------------------------
35765 BEGIN
35766 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35767 (g_array_event(p_event_id).array_value_num('header_index'));
35768 IF l_acc_rev_flag IS NULL THEN
35769 l_acc_rev_flag := 'N';
35770 END IF;
35771 EXCEPTION
35772 WHEN OTHERS THEN
35773 l_acc_rev_flag := 'N';
35774 END;
35775 --
35776 IF (l_acc_rev_flag = 'Y') THEN
35777
35778 -- 4645092 ------------------------------------------------------------------------------
35779 -- To allow MPA report to determine if it should generate report process
35780 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35781 ------------------------------------------------------------------------------------------
35782
35783 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35784 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35785 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35786 -- call ADRs
35787 -- Bug 4922099
35788 --
35789 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35790 (NVL(l_actual_upg_option, 'N') = 'O') OR
35791 (NVL(l_enc_upg_option, 'N') = 'O')
35792 )
35793 THEN
35794 NULL;
35795 --
35796 --
35797
35798 l_ccid := AcctDerRule_21(
35799 p_application_id => p_application_id
35800 , p_ae_header_id => l_ae_header_id
35801 , p_source_2 => p_source_2
35802 , p_source_3 => p_source_3
35803 , p_source_3_meaning => p_source_3_meaning
35804 , p_source_4 => p_source_4
35805 , p_source_4_meaning => p_source_4_meaning
35806 , p_source_17 => p_source_17
35807 , p_source_20 => p_source_20
35808 , p_source_20_meaning => p_source_20_meaning
35809 , p_source_27 => p_source_27
35810 , p_source_28 => p_source_28
35811 , p_source_29 => p_source_29
35812 , x_transaction_coa_id => l_adr_transaction_coa_id
35813 , x_accounting_coa_id => l_adr_accounting_coa_id
35814 , x_value_type_code => l_adr_value_type_code
35815 , p_side => 'NA'
35816 );
35817
35818 xla_ae_lines_pkg.set_ccid(
35819 p_code_combination_id => l_ccid
35820 , p_value_type_code => l_adr_value_type_code
35821 , p_transaction_coa_id => l_adr_transaction_coa_id
35822 , p_accounting_coa_id => l_adr_accounting_coa_id
35823 , p_adr_code => 'AP_DISCOUNT'
35824 , p_adr_type_code => 'S'
35825 , p_component_type => l_component_type
35826 , p_component_code => l_component_code
35827 , p_component_type_code => l_component_type_code
35828 , p_component_appl_id => l_component_appl_id
35829 , p_amb_context_code => l_amb_context_code
35830 , p_side => 'NA'
35831 );
35832
35833
35834 l_segment := AcctDerRule_13(
35835 p_application_id => p_application_id
35836 , p_ae_header_id => l_ae_header_id
35837 , p_source_3 => p_source_3
35838 , p_source_3_meaning => p_source_3_meaning
35839 , p_source_4 => p_source_4
35840 , p_source_4_meaning => p_source_4_meaning
35841 , p_source_17 => p_source_17
35842 , x_transaction_coa_id => l_adr_transaction_coa_id
35843 , x_accounting_coa_id => l_adr_accounting_coa_id
35844 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35845 , x_flex_value_set_id => l_adr_flex_value_set_id
35846 , x_value_type_code => l_adr_value_type_code
35850 , p_override_seg_flag => 'Y'
35847 , x_value_combination_id => l_adr_value_combination_id
35848 , x_value_segment_code => l_adr_value_segment_code
35849 , p_side => 'NA'
35851 );
35852
35853 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35854
35855 xla_ae_lines_pkg.set_segment(
35856 p_to_segment_code => 'GL_BALANCING'
35857 , p_segment_value => l_segment
35858 , p_from_segment_code => l_adr_value_segment_code
35859 , p_from_combination_id => l_adr_value_combination_id
35860 , p_value_type_code => l_adr_value_type_code
35861 , p_transaction_coa_id => l_adr_transaction_coa_id
35862 , p_accounting_coa_id => l_adr_accounting_coa_id
35863 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35864 , p_flex_value_set_id => l_adr_flex_value_set_id
35865 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
35866 , p_adr_type_code => 'S'
35867 , p_component_type => l_component_type
35868 , p_component_code => l_component_code
35869 , p_component_type_code => l_component_type_code
35870 , p_component_appl_id => l_component_appl_id
35871 , p_amb_context_code => l_amb_context_code
35872 , p_entity_code => 'AP_PAYMENTS'
35873 , p_event_class_code => 'PAYMENTS'
35874 , p_side => 'NA'
35875 );
35876
35877 END IF;
35878
35879 l_segment := AcctDerRule_2(
35880 p_application_id => p_application_id
35881 , p_ae_header_id => l_ae_header_id
35882 , p_source_2 => p_source_2
35883 , p_source_3 => p_source_3
35884 , p_source_3_meaning => p_source_3_meaning
35885 , p_source_4 => p_source_4
35886 , p_source_4_meaning => p_source_4_meaning
35887 , x_transaction_coa_id => l_adr_transaction_coa_id
35888 , x_accounting_coa_id => l_adr_accounting_coa_id
35889 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35890 , x_flex_value_set_id => l_adr_flex_value_set_id
35891 , x_value_type_code => l_adr_value_type_code
35892 , x_value_combination_id => l_adr_value_combination_id
35893 , x_value_segment_code => l_adr_value_segment_code
35894 , p_side => 'NA'
35895 , p_override_seg_flag => 'Y'
35896 );
35897
35898 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35899
35900 xla_ae_lines_pkg.set_segment(
35901 p_to_segment_code => 'GL_ACCOUNT'
35902 , p_segment_value => l_segment
35903 , p_from_segment_code => l_adr_value_segment_code
35904 , p_from_combination_id => l_adr_value_combination_id
35905 , p_value_type_code => l_adr_value_type_code
35906 , p_transaction_coa_id => l_adr_transaction_coa_id
35907 , p_accounting_coa_id => l_adr_accounting_coa_id
35908 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35909 , p_flex_value_set_id => l_adr_flex_value_set_id
35910 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
35911 , p_adr_type_code => 'S'
35912 , p_component_type => l_component_type
35913 , p_component_code => l_component_code
35914 , p_component_type_code => l_component_type_code
35915 , p_component_appl_id => l_component_appl_id
35916 , p_amb_context_code => l_amb_context_code
35917 , p_entity_code => 'AP_PAYMENTS'
35918 , p_event_class_code => 'PAYMENTS'
35919 , p_side => 'NA'
35920 );
35921
35922 END IF;
35923
35924 --
35925 --
35926 END IF;
35927
35928 --
35929 -- Update the line information that should be overwritten
35930 --
35931 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35932 p_header_num => 1);
35933 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35934
35935 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35936
35937 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35938 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35939 END IF;
35940
35941 --
35942 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35943 --
35944 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35945 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35946 ELSE
35947 ---------------------------------------------------------------------------------------------------
35948 -- 4262811a Switch Sign
35949 ---------------------------------------------------------------------------------------------------
35950 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35951 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35955 -- 5132302
35952 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35953 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35954 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35956 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35957 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35958
35959 END IF;
35960
35961 -- 4955764
35962 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35963 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35964
35965
35966 XLA_AE_LINES_PKG.ValidateCurrentLine;
35967 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35968
35969 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35970 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35971 ,p_balance_type_code => l_balance_type_code);
35972
35973 END IF;
35974
35975 -----------------------------------------------------------------------------------------
35976 -- 4262811 Multiperiod Accounting
35977 -----------------------------------------------------------------------------------------
35978 -- No MPA option is assigned.
35979
35980
35981 END IF;
35982 END IF;
35983 --
35984
35985 --
35986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35987 trace
35988 (p_msg => 'END of AcctLineType_79'
35989 ,p_level => C_LEVEL_PROCEDURE
35990 ,p_module => l_log_module);
35991 END IF;
35992 --
35993 EXCEPTION
35994 WHEN xla_exceptions_pkg.application_exception THEN
35995 RAISE;
35996 WHEN OTHERS THEN
35997 xla_exceptions_pkg.raise_message
35998 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_79');
35999 END AcctLineType_79;
36000 --
36001
36002 ---------------------------------------
36003 --
36004 -- PRIVATE FUNCTION
36005 -- AcctLineType_80
36006 --
36007 ---------------------------------------
36008 PROCEDURE AcctLineType_80 (
36009 p_application_id IN NUMBER
36010 ,p_event_id IN NUMBER
36011 ,p_calculate_acctd_flag IN VARCHAR2
36012 ,p_calculate_g_l_flag IN VARCHAR2
36013 ,p_actual_flag IN OUT VARCHAR2
36014 ,p_balance_type_code OUT VARCHAR2
36015 ,p_gain_or_loss_ref OUT VARCHAR2
36016
36017 --System Discount Account
36018 , p_source_2 IN NUMBER
36019 --Discount Distribution Method
36020 , p_source_3 IN VARCHAR2
36021 , p_source_3_meaning IN VARCHAR2
36022 --Automatic Offsets Value
36023 , p_source_4 IN VARCHAR2
36024 , p_source_4_meaning IN VARCHAR2
36025 --Payment Distribution (Payment Rate) Ledger Amount
36026 , p_source_9 IN NUMBER
36027 --Invoice Distribution Account
36028 , p_source_17 IN NUMBER
36029 --Invoice Distribution Type
36030 , p_source_20 IN VARCHAR2
36031 , p_source_20_meaning IN VARCHAR2
36032 --Discount Account
36033 , p_source_27 IN NUMBER
36034 --Purchase Order Charge Account
36035 , p_source_28 IN NUMBER
36036 --Purchase Order Variance Account
36037 , p_source_29 IN NUMBER
36038 --When to Account for Payment Option
36039 , p_source_38 IN VARCHAR2
36040 --Payment Distribution Type
36041 , p_source_39 IN VARCHAR2
36042 , p_source_39_meaning IN VARCHAR2
36043 --Accounting Reversal Indicator
36044 , p_source_40 IN VARCHAR2
36045 --Payment Distribution Amount
36046 , p_source_41 IN NUMBER
36047 --Business Flow Accounts Payable Application Identifier
36048 , p_source_42 IN NUMBER
36049 --Payment Distribution Identifier
36050 , p_source_47 IN NUMBER
36051 --Distribution Link Type
36052 , p_source_48 IN VARCHAR2
36053 --Payment Currency Code
36054 , p_source_49 IN VARCHAR2
36055 --Override Accounted Amount Indicator
36056 , p_source_53 IN VARCHAR2
36057 , p_source_53_meaning IN VARCHAR2
36058 --Payment Supplier Identifier
36059 , p_source_54 IN NUMBER
36060 --Payment Supplier Site Identifier
36061 , p_source_55 IN NUMBER
36062 --Third Party Type
36063 , p_source_56 IN VARCHAR2
36064 --Payment Distribution Reversed Identifier
36065 , p_source_57 IN NUMBER
36066 --Invoice Distribution Tax Line Identifier
36067 , p_source_58 IN NUMBER
36068 --Invoice Distribution Summary Tax Line Identifier
36069 , p_source_59 IN NUMBER
36070 --Payment Type
36071 , p_source_60 IN VARCHAR2
36072 , p_source_60_meaning IN VARCHAR2
36073 --Business Flow Invoice Distribution Type
36074 , p_source_62 IN VARCHAR2
36075 --Business Flow Invoice Entity Code
36076 , p_source_63 IN VARCHAR2
36077 --Business Flow Invoice Distribution Identifier
36078 , p_source_64 IN NUMBER
36079 --Business Flow Invoice Identifier
36080 , p_source_65 IN NUMBER
36081 --Invoice Distribution Tax Distribution Identifier from Tax
36082 , p_source_66 IN NUMBER
36083 --Payment Exchange Date
36084 , p_source_114 IN DATE
36085 --Payment Exchange Rate
36089 )
36086 , p_source_115 IN NUMBER
36087 --Payment Exchange Rate Type
36088 , p_source_116 IN VARCHAR2
36090 IS
36091
36092 l_component_type VARCHAR2(80);
36093 l_component_code VARCHAR2(30);
36094 l_component_type_code VARCHAR2(1);
36095 l_component_appl_id INTEGER;
36096 l_amb_context_code VARCHAR2(30);
36097 l_entity_code VARCHAR2(30);
36098 l_event_class_code VARCHAR2(30);
36099 l_ae_header_id NUMBER;
36100 l_event_type_code VARCHAR2(30);
36101 l_line_definition_code VARCHAR2(30);
36102 l_line_definition_owner_code VARCHAR2(1);
36103 --
36104 -- adr variables
36105 l_segment VARCHAR2(30);
36106 l_ccid NUMBER;
36107 l_adr_transaction_coa_id NUMBER;
36108 l_adr_accounting_coa_id NUMBER;
36109 l_adr_flexfield_segment_code VARCHAR2(30);
36110 l_adr_flex_value_set_id NUMBER;
36111 l_adr_value_type_code VARCHAR2(30);
36112 l_adr_value_combination_id NUMBER;
36113 l_adr_value_segment_code VARCHAR2(30);
36114
36115 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36116 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36117 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36118 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36119
36120 -- 4262811 Variables ------------------------------------------------------------------------------------------
36121 l_entered_amt_idx NUMBER;
36122 l_accted_amt_idx NUMBER;
36123 l_acc_rev_flag VARCHAR2(1);
36124 l_accrual_line_num NUMBER;
36125 l_tmp_amt NUMBER;
36126 l_acc_rev_natural_side_code VARCHAR2(1);
36127
36128 l_num_entries NUMBER;
36129 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36130 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36131 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36132 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36133 l_recog_line_1 NUMBER;
36134 l_recog_line_2 NUMBER;
36135
36136 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36137 l_bflow_applied_to_amt NUMBER; -- 5132302
36138 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36139
36140 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36141
36142 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36143 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36144
36145 ---------------------------------------------------------------------------------------------------------------
36146
36147
36148 --
36149 -- bulk performance
36150 --
36151 l_balance_type_code VARCHAR2(1);
36152 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36153 l_log_module VARCHAR2(240);
36154
36155 --
36156 -- Upgrade strategy
36157 --
36158 l_actual_upg_option VARCHAR2(1);
36159 l_enc_upg_option VARCHAR2(1);
36160
36161 --
36162 BEGIN
36163 --
36164 IF g_log_enabled THEN
36165 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
36166 END IF;
36167 --
36168 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36169
36170 trace
36171 (p_msg => 'BEGIN of AcctLineType_80'
36172 ,p_level => C_LEVEL_PROCEDURE
36173 ,p_module => l_log_module);
36174
36175 END IF;
36176 --
36177 l_component_type := 'AMB_JLT';
36178 l_component_code := 'AP_DISCOUNT_CASH_REF';
36179 l_component_type_code := 'S';
36180 l_component_appl_id := 200;
36181 l_amb_context_code := 'DEFAULT';
36182 l_entity_code := 'AP_PAYMENTS';
36183 l_event_class_code := 'REFUNDS';
36184 l_event_type_code := 'REFUNDS_ALL';
36185 l_line_definition_owner_code := 'S';
36186 l_line_definition_code := 'CASH_REFUNDS_ALL';
36187 --
36188 l_balance_type_code := 'A';
36189 l_segment := NULL;
36190 l_ccid := NULL;
36191 l_adr_transaction_coa_id := NULL;
36192 l_adr_accounting_coa_id := NULL;
36193 l_adr_flexfield_segment_code := NULL;
36194 l_adr_flex_value_set_id := NULL;
36195 l_adr_value_type_code := NULL;
36196 l_adr_value_combination_id := NULL;
36197 l_adr_value_segment_code := NULL;
36198
36199 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36200 l_bflow_class_code := ''; -- 4219869 Business Flow
36201 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36202 l_budgetary_control_flag := 'N';
36203
36204 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36205 l_bflow_applied_to_amt := NULL; -- 5132302
36206 l_entered_amt_idx := NULL; -- 4262811
36207 l_accted_amt_idx := NULL; -- 4262811
36208 l_acc_rev_flag := NULL; -- 4262811
36209 l_accrual_line_num := NULL; -- 4262811
36210 l_tmp_amt := NULL; -- 4262811
36211 --
36212
36213 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36214 l_balance_type_code <> 'B' THEN
36218 ') = 'DISCOUNT' AND
36215 IF NVL(p_source_38,'
36216 ') <> 'CLEAR_CLEAR' AND
36217 NVL(p_source_39,'
36219 NVL(p_source_60,'
36220 ') = 'R'
36221 THEN
36222
36223 --
36224 XLA_AE_LINES_PKG.SetNewLine;
36225
36226 p_balance_type_code := l_balance_type_code;
36227 -- set the flag so later we will know whether the gain loss line needs to be created
36228
36229 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36230 p_actual_flag :='A';
36231 END IF;
36232
36233 --
36234 -- bulk performance
36235 --
36236 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36237 p_header_num => 0); -- 4262811
36238 --
36239 -- set accounting line options
36240 --
36241 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36242 p_natural_side_code => 'C'
36243 , p_gain_or_loss_flag => 'N'
36244 , p_gl_transfer_mode_code => 'S'
36245 , p_acct_entry_type_code => 'A'
36246 , p_switch_side_flag => 'Y'
36247 , p_merge_duplicate_code => 'A'
36248 );
36249 --
36250 l_acc_rev_natural_side_code := 'D'; -- 4262811
36251 --
36252 --
36253 -- set accounting line type info
36254 --
36255 xla_ae_lines_pkg.SetAcctLineType
36256 (p_component_type => l_component_type
36257 ,p_event_type_code => l_event_type_code
36258 ,p_line_definition_owner_code => l_line_definition_owner_code
36259 ,p_line_definition_code => l_line_definition_code
36260 ,p_accounting_line_code => l_component_code
36261 ,p_accounting_line_type_code => l_component_type_code
36262 ,p_accounting_line_appl_id => l_component_appl_id
36263 ,p_amb_context_code => l_amb_context_code
36264 ,p_entity_code => l_entity_code
36265 ,p_event_class_code => l_event_class_code);
36266 --
36267 -- set accounting class
36268 --
36269 xla_ae_lines_pkg.SetAcctClass(
36270 p_accounting_class_code => 'DISCOUNT'
36271 , p_ae_header_id => l_ae_header_id
36272 );
36273
36274 --
36275 -- set rounding class
36276 --
36277 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36278 'DISCOUNT';
36279
36280 --
36281 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36282 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36283 --
36284 -- bulk performance
36285 --
36286 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36287
36288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36289 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36290
36291 -- 4955764
36292 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36293 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36294
36295 -- 4458381 Public Sector Enh
36296
36297 --
36298 -- set accounting attributes for the line type
36299 --
36300 l_entered_amt_idx := 9;
36301 l_accted_amt_idx := 14;
36302 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36303 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36304 l_rec_acct_attrs.array_char_value(1) := p_source_40;
36305 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
36306 l_rec_acct_attrs.array_num_value(2) := p_source_42;
36307 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36308 l_rec_acct_attrs.array_char_value(3) := p_source_62;
36309 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
36310 l_rec_acct_attrs.array_char_value(4) := p_source_63;
36311 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
36312 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
36313 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36314 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
36315 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
36316 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
36317 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
36318 l_rec_acct_attrs.array_char_value(8) := p_source_48;
36319 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
36320 l_rec_acct_attrs.array_num_value(9) := p_source_41;
36321 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
36322 l_rec_acct_attrs.array_char_value(10) := p_source_49;
36323 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
36324 l_rec_acct_attrs.array_date_value(11) := p_source_114;
36325 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
36326 l_rec_acct_attrs.array_num_value(12) := p_source_115;
36327 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
36328 l_rec_acct_attrs.array_char_value(13) := p_source_116;
36329 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
36330 l_rec_acct_attrs.array_num_value(14) := p_source_9;
36334 l_rec_acct_attrs.array_num_value(16) := p_source_54;
36331 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
36332 l_rec_acct_attrs.array_char_value(15) := p_source_53;
36333 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
36335 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
36336 l_rec_acct_attrs.array_num_value(17) := p_source_55;
36337 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
36338 l_rec_acct_attrs.array_char_value(18) := p_source_56;
36339 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
36340 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
36341 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
36342 l_rec_acct_attrs.array_char_value(20) := p_source_48;
36343 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
36344 l_rec_acct_attrs.array_num_value(21) := p_source_58;
36345 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
36346 l_rec_acct_attrs.array_num_value(22) := p_source_66;
36347 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
36348 l_rec_acct_attrs.array_num_value(23) := p_source_59;
36349
36350 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36351 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36352
36353 ---------------------------------------------------------------------------------------------------------------
36354 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36355 ---------------------------------------------------------------------------------------------------------------
36356 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36357
36358 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36359 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36360
36361 IF xla_accounting_cache_pkg.GetValueChar
36362 (p_source_code => 'LEDGER_CATEGORY_CODE'
36363 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36364 AND l_bflow_method_code = 'PRIOR_ENTRY'
36365 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36366 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36367 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36368 )
36369 THEN
36370 xla_ae_lines_pkg.BflowUpgEntry
36371 (p_business_method_code => l_bflow_method_code
36372 ,p_business_class_code => l_bflow_class_code
36373 ,p_balance_type => l_balance_type_code);
36374 ELSE
36375 NULL;
36376 -- No business flow processing for business flow method of NONE.
36377 END IF;
36378
36379 --
36380 -- call analytical criteria
36381 --
36382
36383 --
36384 -- call description
36385 --
36386 -- No description or it is inherited.
36387 --
36388 -- call ADRs
36389 -- Bug 4922099
36390 --
36391 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36392 (NVL(l_actual_upg_option, 'N') = 'O') OR
36393 (NVL(l_enc_upg_option, 'N') = 'O')
36394 )
36395 THEN
36396 NULL;
36397 --
36398 --
36399
36400 l_ccid := AcctDerRule_21(
36401 p_application_id => p_application_id
36402 , p_ae_header_id => l_ae_header_id
36403 , p_source_2 => p_source_2
36404 , p_source_3 => p_source_3
36405 , p_source_3_meaning => p_source_3_meaning
36406 , p_source_4 => p_source_4
36407 , p_source_4_meaning => p_source_4_meaning
36408 , p_source_17 => p_source_17
36409 , p_source_20 => p_source_20
36410 , p_source_20_meaning => p_source_20_meaning
36411 , p_source_27 => p_source_27
36412 , p_source_28 => p_source_28
36413 , p_source_29 => p_source_29
36414 , x_transaction_coa_id => l_adr_transaction_coa_id
36415 , x_accounting_coa_id => l_adr_accounting_coa_id
36416 , x_value_type_code => l_adr_value_type_code
36417 , p_side => 'NA'
36418 );
36419
36420 xla_ae_lines_pkg.set_ccid(
36421 p_code_combination_id => l_ccid
36422 , p_value_type_code => l_adr_value_type_code
36423 , p_transaction_coa_id => l_adr_transaction_coa_id
36424 , p_accounting_coa_id => l_adr_accounting_coa_id
36425 , p_adr_code => 'AP_DISCOUNT'
36426 , p_adr_type_code => 'S'
36427 , p_component_type => l_component_type
36428 , p_component_code => l_component_code
36429 , p_component_type_code => l_component_type_code
36430 , p_component_appl_id => l_component_appl_id
36431 , p_amb_context_code => l_amb_context_code
36432 , p_side => 'NA'
36433 );
36434
36435
36436 l_segment := AcctDerRule_13(
36437 p_application_id => p_application_id
36438 , p_ae_header_id => l_ae_header_id
36439 , p_source_3 => p_source_3
36440 , p_source_3_meaning => p_source_3_meaning
36441 , p_source_4 => p_source_4
36442 , p_source_4_meaning => p_source_4_meaning
36443 , p_source_17 => p_source_17
36444 , x_transaction_coa_id => l_adr_transaction_coa_id
36448 , x_value_type_code => l_adr_value_type_code
36445 , x_accounting_coa_id => l_adr_accounting_coa_id
36446 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36447 , x_flex_value_set_id => l_adr_flex_value_set_id
36449 , x_value_combination_id => l_adr_value_combination_id
36450 , x_value_segment_code => l_adr_value_segment_code
36451 , p_side => 'NA'
36452 , p_override_seg_flag => 'Y'
36453 );
36454
36455 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36456
36457 xla_ae_lines_pkg.set_segment(
36458 p_to_segment_code => 'GL_BALANCING'
36459 , p_segment_value => l_segment
36460 , p_from_segment_code => l_adr_value_segment_code
36461 , p_from_combination_id => l_adr_value_combination_id
36462 , p_value_type_code => l_adr_value_type_code
36463 , p_transaction_coa_id => l_adr_transaction_coa_id
36464 , p_accounting_coa_id => l_adr_accounting_coa_id
36465 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36466 , p_flex_value_set_id => l_adr_flex_value_set_id
36467 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
36468 , p_adr_type_code => 'S'
36469 , p_component_type => l_component_type
36470 , p_component_code => l_component_code
36471 , p_component_type_code => l_component_type_code
36472 , p_component_appl_id => l_component_appl_id
36473 , p_amb_context_code => l_amb_context_code
36474 , p_entity_code => 'AP_PAYMENTS'
36475 , p_event_class_code => 'REFUNDS'
36476 , p_side => 'NA'
36477 );
36478
36479 END IF;
36480
36481 l_segment := AcctDerRule_2(
36482 p_application_id => p_application_id
36483 , p_ae_header_id => l_ae_header_id
36484 , p_source_2 => p_source_2
36485 , p_source_3 => p_source_3
36486 , p_source_3_meaning => p_source_3_meaning
36487 , p_source_4 => p_source_4
36488 , p_source_4_meaning => p_source_4_meaning
36489 , x_transaction_coa_id => l_adr_transaction_coa_id
36490 , x_accounting_coa_id => l_adr_accounting_coa_id
36491 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36492 , x_flex_value_set_id => l_adr_flex_value_set_id
36493 , x_value_type_code => l_adr_value_type_code
36494 , x_value_combination_id => l_adr_value_combination_id
36495 , x_value_segment_code => l_adr_value_segment_code
36496 , p_side => 'NA'
36497 , p_override_seg_flag => 'Y'
36498 );
36499
36500 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36501
36502 xla_ae_lines_pkg.set_segment(
36503 p_to_segment_code => 'GL_ACCOUNT'
36504 , p_segment_value => l_segment
36505 , p_from_segment_code => l_adr_value_segment_code
36506 , p_from_combination_id => l_adr_value_combination_id
36507 , p_value_type_code => l_adr_value_type_code
36508 , p_transaction_coa_id => l_adr_transaction_coa_id
36509 , p_accounting_coa_id => l_adr_accounting_coa_id
36510 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36511 , p_flex_value_set_id => l_adr_flex_value_set_id
36512 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
36513 , p_adr_type_code => 'S'
36514 , p_component_type => l_component_type
36515 , p_component_code => l_component_code
36516 , p_component_type_code => l_component_type_code
36517 , p_component_appl_id => l_component_appl_id
36518 , p_amb_context_code => l_amb_context_code
36519 , p_entity_code => 'AP_PAYMENTS'
36520 , p_event_class_code => 'REFUNDS'
36521 , p_side => 'NA'
36522 );
36523
36524 END IF;
36525
36526 --
36527 --
36528 END IF;
36529 --
36530 -- Bug 4922099
36531 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36532 (NVL(l_enc_upg_option, 'N') = 'O')
36533 ) AND
36534 (l_bflow_method_code = 'PRIOR_ENTRY')
36535 )
36536 THEN
36537 IF
36538 --
36539 1 = 2
36540 --
36541 THEN
36542 xla_accounting_err_pkg.build_message
36543 (p_appli_s_name => 'XLA'
36544 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36545 ,p_token_1 => 'LINE_NUMBER'
36546 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36547 ,p_token_2 => 'LINE_TYPE_NAME'
36548 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36549 l_component_type
36550 ,l_component_code
36551 ,l_component_type_code
36552 ,l_component_appl_id
36556 )
36553 ,l_amb_context_code
36554 ,l_entity_code
36555 ,l_event_class_code
36557 ,p_token_3 => 'OWNER'
36558 ,p_value_3 => xla_lookups_pkg.get_meaning(
36559 p_lookup_type => 'XLA_OWNER_TYPE'
36560 ,p_lookup_code => l_component_type_code
36561 )
36562 ,p_token_4 => 'PRODUCT_NAME'
36563 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36564 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36565 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36566 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36567 ,p_ae_header_id => NULL
36568 );
36569
36570 IF (C_LEVEL_ERROR>= g_log_level) THEN
36571 trace
36572 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36573 ,p_level => C_LEVEL_ERROR
36574 ,p_module => l_log_module);
36575 END IF;
36576 END IF;
36577 END IF;
36578 --
36579 --
36580 ------------------------------------------------------------------------------------------------
36581 -- 4219869 Business Flow
36582 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36583 -- Prior Entry. Currently, the following code is always generated.
36584 ------------------------------------------------------------------------------------------------
36585 XLA_AE_LINES_PKG.ValidateCurrentLine;
36586
36587 ------------------------------------------------------------------------------------
36588 -- 4219869 Business Flow
36589 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36590 ------------------------------------------------------------------------------------
36591 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36592
36593 ----------------------------------------------------------------------------------
36594 -- 4219869 Business Flow
36595 -- Update journal entry status -- Need to generate this within IF <condition>
36596 ----------------------------------------------------------------------------------
36597 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36598 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36599 ,p_balance_type_code => l_balance_type_code
36600 );
36601
36602 -------------------------------------------------------------------------------------------
36603 -- 4262811 - Generate the Accrual Reversal lines
36604 -------------------------------------------------------------------------------------------
36605 BEGIN
36606 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36607 (g_array_event(p_event_id).array_value_num('header_index'));
36608 IF l_acc_rev_flag IS NULL THEN
36609 l_acc_rev_flag := 'N';
36610 END IF;
36611 EXCEPTION
36612 WHEN OTHERS THEN
36613 l_acc_rev_flag := 'N';
36614 END;
36615 --
36616 IF (l_acc_rev_flag = 'Y') THEN
36617
36618 -- 4645092 ------------------------------------------------------------------------------
36619 -- To allow MPA report to determine if it should generate report process
36620 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36621 ------------------------------------------------------------------------------------------
36622
36623 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36624 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36625 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
36626 -- call ADRs
36627 -- Bug 4922099
36628 --
36629 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36630 (NVL(l_actual_upg_option, 'N') = 'O') OR
36631 (NVL(l_enc_upg_option, 'N') = 'O')
36632 )
36633 THEN
36634 NULL;
36635 --
36636 --
36637
36638 l_ccid := AcctDerRule_21(
36639 p_application_id => p_application_id
36640 , p_ae_header_id => l_ae_header_id
36641 , p_source_2 => p_source_2
36642 , p_source_3 => p_source_3
36643 , p_source_3_meaning => p_source_3_meaning
36644 , p_source_4 => p_source_4
36645 , p_source_4_meaning => p_source_4_meaning
36646 , p_source_17 => p_source_17
36647 , p_source_20 => p_source_20
36648 , p_source_20_meaning => p_source_20_meaning
36649 , p_source_27 => p_source_27
36650 , p_source_28 => p_source_28
36651 , p_source_29 => p_source_29
36652 , x_transaction_coa_id => l_adr_transaction_coa_id
36653 , x_accounting_coa_id => l_adr_accounting_coa_id
36654 , x_value_type_code => l_adr_value_type_code
36658 xla_ae_lines_pkg.set_ccid(
36655 , p_side => 'NA'
36656 );
36657
36659 p_code_combination_id => l_ccid
36660 , p_value_type_code => l_adr_value_type_code
36661 , p_transaction_coa_id => l_adr_transaction_coa_id
36662 , p_accounting_coa_id => l_adr_accounting_coa_id
36663 , p_adr_code => 'AP_DISCOUNT'
36664 , p_adr_type_code => 'S'
36665 , p_component_type => l_component_type
36666 , p_component_code => l_component_code
36667 , p_component_type_code => l_component_type_code
36668 , p_component_appl_id => l_component_appl_id
36669 , p_amb_context_code => l_amb_context_code
36670 , p_side => 'NA'
36671 );
36672
36673
36674 l_segment := AcctDerRule_13(
36675 p_application_id => p_application_id
36676 , p_ae_header_id => l_ae_header_id
36677 , p_source_3 => p_source_3
36678 , p_source_3_meaning => p_source_3_meaning
36679 , p_source_4 => p_source_4
36680 , p_source_4_meaning => p_source_4_meaning
36681 , p_source_17 => p_source_17
36682 , x_transaction_coa_id => l_adr_transaction_coa_id
36683 , x_accounting_coa_id => l_adr_accounting_coa_id
36684 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36685 , x_flex_value_set_id => l_adr_flex_value_set_id
36686 , x_value_type_code => l_adr_value_type_code
36687 , x_value_combination_id => l_adr_value_combination_id
36688 , x_value_segment_code => l_adr_value_segment_code
36689 , p_side => 'NA'
36690 , p_override_seg_flag => 'Y'
36691 );
36692
36693 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36694
36695 xla_ae_lines_pkg.set_segment(
36696 p_to_segment_code => 'GL_BALANCING'
36697 , p_segment_value => l_segment
36698 , p_from_segment_code => l_adr_value_segment_code
36699 , p_from_combination_id => l_adr_value_combination_id
36700 , p_value_type_code => l_adr_value_type_code
36701 , p_transaction_coa_id => l_adr_transaction_coa_id
36702 , p_accounting_coa_id => l_adr_accounting_coa_id
36703 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36704 , p_flex_value_set_id => l_adr_flex_value_set_id
36705 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
36706 , p_adr_type_code => 'S'
36707 , p_component_type => l_component_type
36708 , p_component_code => l_component_code
36709 , p_component_type_code => l_component_type_code
36710 , p_component_appl_id => l_component_appl_id
36711 , p_amb_context_code => l_amb_context_code
36712 , p_entity_code => 'AP_PAYMENTS'
36713 , p_event_class_code => 'REFUNDS'
36714 , p_side => 'NA'
36715 );
36716
36717 END IF;
36718
36719 l_segment := AcctDerRule_2(
36720 p_application_id => p_application_id
36721 , p_ae_header_id => l_ae_header_id
36722 , p_source_2 => p_source_2
36723 , p_source_3 => p_source_3
36724 , p_source_3_meaning => p_source_3_meaning
36725 , p_source_4 => p_source_4
36726 , p_source_4_meaning => p_source_4_meaning
36727 , x_transaction_coa_id => l_adr_transaction_coa_id
36728 , x_accounting_coa_id => l_adr_accounting_coa_id
36729 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36730 , x_flex_value_set_id => l_adr_flex_value_set_id
36731 , x_value_type_code => l_adr_value_type_code
36732 , x_value_combination_id => l_adr_value_combination_id
36733 , x_value_segment_code => l_adr_value_segment_code
36734 , p_side => 'NA'
36735 , p_override_seg_flag => 'Y'
36736 );
36737
36738 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36739
36740 xla_ae_lines_pkg.set_segment(
36741 p_to_segment_code => 'GL_ACCOUNT'
36742 , p_segment_value => l_segment
36743 , p_from_segment_code => l_adr_value_segment_code
36744 , p_from_combination_id => l_adr_value_combination_id
36745 , p_value_type_code => l_adr_value_type_code
36746 , p_transaction_coa_id => l_adr_transaction_coa_id
36747 , p_accounting_coa_id => l_adr_accounting_coa_id
36748 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36749 , p_flex_value_set_id => l_adr_flex_value_set_id
36750 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
36751 , p_adr_type_code => 'S'
36752 , p_component_type => l_component_type
36753 , p_component_code => l_component_code
36754 , p_component_type_code => l_component_type_code
36755 , p_component_appl_id => l_component_appl_id
36756 , p_amb_context_code => l_amb_context_code
36757 , p_entity_code => 'AP_PAYMENTS'
36758 , p_event_class_code => 'REFUNDS'
36759 , p_side => 'NA'
36760 );
36761
36762 END IF;
36763
36764 --
36765 --
36766 END IF;
36767
36768 --
36769 -- Update the line information that should be overwritten
36773 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36770 --
36771 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36772 p_header_num => 1);
36774
36775 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36776
36777 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36778 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36779 END IF;
36780
36781 --
36782 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36783 --
36784 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36785 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36786 ELSE
36787 ---------------------------------------------------------------------------------------------------
36788 -- 4262811a Switch Sign
36789 ---------------------------------------------------------------------------------------------------
36790 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36791 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36792 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36793 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36794 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36795 -- 5132302
36796 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36797 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36798
36799 END IF;
36800
36801 -- 4955764
36802 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36803 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36804
36805
36806 XLA_AE_LINES_PKG.ValidateCurrentLine;
36807 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36808
36809 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36810 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36811 ,p_balance_type_code => l_balance_type_code);
36812
36813 END IF;
36814
36815 -----------------------------------------------------------------------------------------
36816 -- 4262811 Multiperiod Accounting
36817 -----------------------------------------------------------------------------------------
36818 -- No MPA option is assigned.
36819
36820
36821 END IF;
36822 END IF;
36823 --
36824
36825 --
36826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36827 trace
36828 (p_msg => 'END of AcctLineType_80'
36829 ,p_level => C_LEVEL_PROCEDURE
36830 ,p_module => l_log_module);
36831 END IF;
36832 --
36833 EXCEPTION
36834 WHEN xla_exceptions_pkg.application_exception THEN
36835 RAISE;
36836 WHEN OTHERS THEN
36837 xla_exceptions_pkg.raise_message
36838 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_80');
36839 END AcctLineType_80;
36840 --
36841
36842 ---------------------------------------
36843 --
36844 -- PRIVATE FUNCTION
36845 -- AcctLineType_81
36846 --
36847 ---------------------------------------
36848 PROCEDURE AcctLineType_81 (
36849 p_application_id IN NUMBER
36850 ,p_event_id IN NUMBER
36851 ,p_calculate_acctd_flag IN VARCHAR2
36852 ,p_calculate_g_l_flag IN VARCHAR2
36853 ,p_actual_flag IN OUT VARCHAR2
36854 ,p_balance_type_code OUT VARCHAR2
36855 ,p_gain_or_loss_ref OUT VARCHAR2
36856
36857 --Automatic Offsets Value
36858 , p_source_4 IN VARCHAR2
36859 , p_source_4_meaning IN VARCHAR2
36860 --Purchase Order Rate Variance Gain Account
36861 , p_source_5 IN NUMBER
36862 --Destination Type of the PO Distribution
36863 , p_source_7 IN VARCHAR2
36864 , p_source_7_meaning IN VARCHAR2
36865 --Purchase Order Rate Variance Loss Account
36866 , p_source_8 IN NUMBER
36867 --Payment Distribution (Payment Rate) Ledger Amount
36868 , p_source_9 IN NUMBER
36869 --Payment Distribution (Cleared Rate) Ledger Amount
36870 , p_source_10 IN NUMBER
36871 --Invoice Distribution Account
36872 , p_source_17 IN NUMBER
36873 --Automatic Offsets Flag
36874 , p_source_30 IN VARCHAR2
36875 , p_source_30_meaning IN VARCHAR2
36876 --When to Account for Payment Option
36877 , p_source_38 IN VARCHAR2
36878 --Payment Distribution Type
36879 , p_source_39 IN VARCHAR2
36880 , p_source_39_meaning IN VARCHAR2
36881 --Accounting Reversal Indicator
36882 , p_source_40 IN VARCHAR2
36883 --Payment Distribution Amount
36884 , p_source_41 IN NUMBER
36885 --Business Flow Accounts Payable Application Identifier
36886 , p_source_42 IN NUMBER
36887 --Business Flow Payment Distribution Type
36891 --Business Flow Payment Distribution Identifier
36888 , p_source_43 IN VARCHAR2
36889 --Business Flow Payment Entity Code
36890 , p_source_44 IN VARCHAR2
36892 , p_source_45 IN NUMBER
36893 --Business Flow Payment Identifier
36894 , p_source_46 IN NUMBER
36895 --Payment Distribution Identifier
36896 , p_source_47 IN NUMBER
36897 --Distribution Link Type
36898 , p_source_48 IN VARCHAR2
36899 --Payment Currency Code
36900 , p_source_49 IN VARCHAR2
36901 --Override Accounted Amount Indicator
36902 , p_source_53 IN VARCHAR2
36903 , p_source_53_meaning IN VARCHAR2
36904 --Payment Supplier Identifier
36905 , p_source_54 IN NUMBER
36906 --Payment Supplier Site Identifier
36907 , p_source_55 IN NUMBER
36908 --Third Party Type
36909 , p_source_56 IN VARCHAR2
36910 --Payment Distribution Reversed Identifier
36911 , p_source_57 IN NUMBER
36912 --Invoice Distribution Tax Line Identifier
36913 , p_source_58 IN NUMBER
36914 --Invoice Distribution Summary Tax Line Identifier
36915 , p_source_59 IN NUMBER
36916 --Accrue on Receipt Option
36917 , p_source_100 IN VARCHAR2
36918 , p_source_100_meaning IN VARCHAR2
36919 --Cleared Exchange Date
36920 , p_source_107 IN DATE
36921 --Cleared Exchange Rate
36922 , p_source_108 IN NUMBER
36923 --Cleared Exchange Rate Type
36924 , p_source_109 IN VARCHAR2
36925 )
36926 IS
36927
36928 l_component_type VARCHAR2(80);
36929 l_component_code VARCHAR2(30);
36930 l_component_type_code VARCHAR2(1);
36931 l_component_appl_id INTEGER;
36932 l_amb_context_code VARCHAR2(30);
36933 l_entity_code VARCHAR2(30);
36934 l_event_class_code VARCHAR2(30);
36935 l_ae_header_id NUMBER;
36936 l_event_type_code VARCHAR2(30);
36937 l_line_definition_code VARCHAR2(30);
36938 l_line_definition_owner_code VARCHAR2(1);
36939 --
36940 -- adr variables
36941 l_segment VARCHAR2(30);
36942 l_ccid NUMBER;
36943 l_adr_transaction_coa_id NUMBER;
36944 l_adr_accounting_coa_id NUMBER;
36945 l_adr_flexfield_segment_code VARCHAR2(30);
36946 l_adr_flex_value_set_id NUMBER;
36947 l_adr_value_type_code VARCHAR2(30);
36948 l_adr_value_combination_id NUMBER;
36949 l_adr_value_segment_code VARCHAR2(30);
36950
36951 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36952 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36953 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36954 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36955
36956 -- 4262811 Variables ------------------------------------------------------------------------------------------
36957 l_entered_amt_idx NUMBER;
36958 l_accted_amt_idx NUMBER;
36959 l_acc_rev_flag VARCHAR2(1);
36960 l_accrual_line_num NUMBER;
36961 l_tmp_amt NUMBER;
36962 l_acc_rev_natural_side_code VARCHAR2(1);
36963
36964 l_num_entries NUMBER;
36965 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36966 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36967 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36968 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36969 l_recog_line_1 NUMBER;
36970 l_recog_line_2 NUMBER;
36971
36972 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36973 l_bflow_applied_to_amt NUMBER; -- 5132302
36974 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36975
36976 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36977
36978 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36979 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36980
36981 ---------------------------------------------------------------------------------------------------------------
36982
36983
36984 --
36985 -- bulk performance
36986 --
36987 l_balance_type_code VARCHAR2(1);
36988 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36989 l_log_module VARCHAR2(240);
36990
36991 --
36992 -- Upgrade strategy
36993 --
36994 l_actual_upg_option VARCHAR2(1);
36995 l_enc_upg_option VARCHAR2(1);
36996
36997 --
36998 BEGIN
36999 --
37000 IF g_log_enabled THEN
37001 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
37002 END IF;
37003 --
37004 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37005
37006 trace
37007 (p_msg => 'BEGIN of AcctLineType_81'
37008 ,p_level => C_LEVEL_PROCEDURE
37009 ,p_module => l_log_module);
37010
37011 END IF;
37012 --
37013 l_component_type := 'AMB_JLT';
37014 l_component_code := 'AP_EX_RATE_VAR_CLEAR';
37015 l_component_type_code := 'S';
37016 l_component_appl_id := 200;
37017 l_amb_context_code := 'DEFAULT';
37018 l_entity_code := 'AP_PAYMENTS';
37022 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
37019 l_event_class_code := 'RECONCILED PAYMENTS';
37020 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
37021 l_line_definition_owner_code := 'S';
37023 --
37024 l_balance_type_code := 'A';
37025 l_segment := NULL;
37026 l_ccid := NULL;
37027 l_adr_transaction_coa_id := NULL;
37028 l_adr_accounting_coa_id := NULL;
37029 l_adr_flexfield_segment_code := NULL;
37030 l_adr_flex_value_set_id := NULL;
37031 l_adr_value_type_code := NULL;
37032 l_adr_value_combination_id := NULL;
37033 l_adr_value_segment_code := NULL;
37034
37035 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37036 l_bflow_class_code := ''; -- 4219869 Business Flow
37037 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37038 l_budgetary_control_flag := 'N';
37039
37040 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37041 l_bflow_applied_to_amt := NULL; -- 5132302
37042 l_entered_amt_idx := NULL; -- 4262811
37043 l_accted_amt_idx := NULL; -- 4262811
37044 l_acc_rev_flag := NULL; -- 4262811
37045 l_accrual_line_num := NULL; -- 4262811
37046 l_tmp_amt := NULL; -- 4262811
37047 --
37048 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
37049 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
37050 return;
37051 END IF;
37052
37053 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37054 l_balance_type_code <> 'B' THEN
37055 IF NVL(p_source_38,'
37056 ') = 'CLEAR_CLEAR' AND
37057 NVL(p_source_39,'
37058 ') = 'EXCHANGE RATE VARIANCE' AND
37059 NVL(p_source_100,'
37060 ') = 'Y'
37061 THEN
37062
37063 --
37064 XLA_AE_LINES_PKG.SetNewLine;
37065
37066 p_balance_type_code := l_balance_type_code;
37067 -- set the flag so later we will know whether the gain loss line needs to be created
37068
37069 IF(l_balance_type_code = 'A' ) THEN
37070 p_actual_flag :='G';
37071 END IF;
37072
37073 --
37074 -- bulk performance
37075 --
37076 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37077 p_header_num => 0); -- 4262811
37078 --
37079 -- set accounting line options
37080 --
37081 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37082 p_natural_side_code => 'D'
37083 , p_gain_or_loss_flag => 'Y'
37084 , p_gl_transfer_mode_code => 'S'
37085 , p_acct_entry_type_code => 'A'
37086 , p_switch_side_flag => 'Y'
37087 , p_merge_duplicate_code => 'A'
37088 );
37089 --
37090 l_acc_rev_natural_side_code := 'C'; -- 4262811
37091 --
37092 --
37093 -- set accounting line type info
37094 --
37095 xla_ae_lines_pkg.SetAcctLineType
37096 (p_component_type => l_component_type
37097 ,p_event_type_code => l_event_type_code
37098 ,p_line_definition_owner_code => l_line_definition_owner_code
37099 ,p_line_definition_code => l_line_definition_code
37100 ,p_accounting_line_code => l_component_code
37101 ,p_accounting_line_type_code => l_component_type_code
37102 ,p_accounting_line_appl_id => l_component_appl_id
37103 ,p_amb_context_code => l_amb_context_code
37104 ,p_entity_code => l_entity_code
37105 ,p_event_class_code => l_event_class_code);
37106 --
37107 -- set accounting class
37108 --
37109 xla_ae_lines_pkg.SetAcctClass(
37110 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
37111 , p_ae_header_id => l_ae_header_id
37112 );
37113
37114 --
37115 -- set rounding class
37116 --
37117 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37118 'EXCHANGE_RATE_VARIANCE';
37119
37120 --
37121 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37122 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37123 --
37124 -- bulk performance
37125 --
37126 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37127
37128 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37129 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37130
37131 -- 4955764
37132 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37133 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37134
37135 -- 4458381 Public Sector Enh
37136
37137 --
37138 -- set accounting attributes for the line type
37139 --
37140 l_entered_amt_idx := 10;
37141 l_accted_amt_idx := 15;
37142 l_bflow_applied_to_amt_idx := 2; -- 5132302
37143 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37147 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37144 l_rec_acct_attrs.array_char_value(1) := p_source_40;
37145 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37146 l_rec_acct_attrs.array_num_value(2) := p_source_41;
37148 l_rec_acct_attrs.array_num_value(3) := p_source_42;
37149 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37150 l_rec_acct_attrs.array_char_value(4) := p_source_43;
37151 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37152 l_rec_acct_attrs.array_char_value(5) := p_source_44;
37153 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37154 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
37155 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37156 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
37157 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37158 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
37159 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37160 l_rec_acct_attrs.array_char_value(9) := p_source_48;
37161 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37162 l_rec_acct_attrs.array_num_value(10) := p_source_41;
37163 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37164 l_rec_acct_attrs.array_char_value(11) := p_source_49;
37165 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
37166 l_rec_acct_attrs.array_date_value(12) := p_source_107;
37167 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
37168 l_rec_acct_attrs.array_num_value(13) := p_source_108;
37169 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
37170 l_rec_acct_attrs.array_char_value(14) := p_source_109;
37171 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
37172 l_rec_acct_attrs.array_num_value(15) := p_source_10;
37173 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
37174 l_rec_acct_attrs.array_char_value(16) := p_source_53;
37175 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
37176 l_rec_acct_attrs.array_num_value(17) := p_source_54;
37177 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
37178 l_rec_acct_attrs.array_num_value(18) := p_source_55;
37179 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
37180 l_rec_acct_attrs.array_char_value(19) := p_source_56;
37181 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
37182 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
37183 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
37184 l_rec_acct_attrs.array_char_value(21) := p_source_48;
37185 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
37186 l_rec_acct_attrs.array_num_value(22) := p_source_58;
37187 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
37188 l_rec_acct_attrs.array_num_value(23) := p_source_58;
37189 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
37190 l_rec_acct_attrs.array_num_value(24) := p_source_59;
37191
37192 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37193 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37194
37195 ---------------------------------------------------------------------------------------------------------------
37196 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37197 ---------------------------------------------------------------------------------------------------------------
37198 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37199
37200 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37201 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37202
37203 IF xla_accounting_cache_pkg.GetValueChar
37204 (p_source_code => 'LEDGER_CATEGORY_CODE'
37205 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37206 AND l_bflow_method_code = 'PRIOR_ENTRY'
37207 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37208 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37209 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37210 )
37211 THEN
37212 xla_ae_lines_pkg.BflowUpgEntry
37213 (p_business_method_code => l_bflow_method_code
37214 ,p_business_class_code => l_bflow_class_code
37215 ,p_balance_type => l_balance_type_code);
37216 ELSE
37217 NULL;
37218 -- No business flow processing for business flow method of NONE.
37219 END IF;
37220
37221 --
37222 -- call analytical criteria
37223 --
37224
37225 --
37226 -- call description
37227 --
37228 -- No description or it is inherited.
37229 --
37230 -- call ADRs
37231 -- Bug 4922099
37232 --
37233 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37234 (NVL(l_actual_upg_option, 'N') = 'O') OR
37235 (NVL(l_enc_upg_option, 'N') = 'O')
37236 )
37237 THEN
37238 NULL;
37239 --
37240 --
37241
37242 l_ccid := AcctDerRule_22(
37243 p_application_id => p_application_id
37244 , p_ae_header_id => l_ae_header_id
37245 , p_source_4 => p_source_4
37249 , p_source_7_meaning => p_source_7_meaning
37246 , p_source_4_meaning => p_source_4_meaning
37247 , p_source_5 => p_source_5
37248 , p_source_7 => p_source_7
37250 , p_source_8 => p_source_8
37251 , p_source_9 => p_source_9
37252 , p_source_10 => p_source_10
37253 , p_source_17 => p_source_17
37254 , p_source_30 => p_source_30
37255 , p_source_30_meaning => p_source_30_meaning
37256 , x_transaction_coa_id => l_adr_transaction_coa_id
37257 , x_accounting_coa_id => l_adr_accounting_coa_id
37258 , x_value_type_code => l_adr_value_type_code
37259 , p_side => 'NA'
37260 );
37261
37262 xla_ae_lines_pkg.set_ccid(
37263 p_code_combination_id => l_ccid
37264 , p_value_type_code => l_adr_value_type_code
37265 , p_transaction_coa_id => l_adr_transaction_coa_id
37266 , p_accounting_coa_id => l_adr_accounting_coa_id
37267 , p_adr_code => 'AP_ERV_TAXERV_CASH'
37268 , p_adr_type_code => 'S'
37269 , p_component_type => l_component_type
37270 , p_component_code => l_component_code
37271 , p_component_type_code => l_component_type_code
37272 , p_component_appl_id => l_component_appl_id
37273 , p_amb_context_code => l_amb_context_code
37274 , p_side => 'NA'
37275 );
37276
37277
37278 l_segment := AcctDerRule_4(
37279 p_application_id => p_application_id
37280 , p_ae_header_id => l_ae_header_id
37281 , p_source_4 => p_source_4
37282 , p_source_4_meaning => p_source_4_meaning
37283 , p_source_5 => p_source_5
37284 , p_source_7 => p_source_7
37285 , p_source_7_meaning => p_source_7_meaning
37286 , p_source_8 => p_source_8
37287 , p_source_9 => p_source_9
37288 , p_source_10 => p_source_10
37289 , x_transaction_coa_id => l_adr_transaction_coa_id
37290 , x_accounting_coa_id => l_adr_accounting_coa_id
37291 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37292 , x_flex_value_set_id => l_adr_flex_value_set_id
37293 , x_value_type_code => l_adr_value_type_code
37294 , x_value_combination_id => l_adr_value_combination_id
37295 , x_value_segment_code => l_adr_value_segment_code
37296 , p_side => 'NA'
37297 , p_override_seg_flag => 'Y'
37298 );
37299
37300 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37301
37302 xla_ae_lines_pkg.set_segment(
37303 p_to_segment_code => 'GL_ACCOUNT'
37304 , p_segment_value => l_segment
37305 , p_from_segment_code => l_adr_value_segment_code
37306 , p_from_combination_id => l_adr_value_combination_id
37307 , p_value_type_code => l_adr_value_type_code
37308 , p_transaction_coa_id => l_adr_transaction_coa_id
37309 , p_accounting_coa_id => l_adr_accounting_coa_id
37310 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37311 , p_flex_value_set_id => l_adr_flex_value_set_id
37312 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
37313 , p_adr_type_code => 'S'
37314 , p_component_type => l_component_type
37315 , p_component_code => l_component_code
37316 , p_component_type_code => l_component_type_code
37317 , p_component_appl_id => l_component_appl_id
37318 , p_amb_context_code => l_amb_context_code
37319 , p_entity_code => 'AP_PAYMENTS'
37320 , p_event_class_code => 'RECONCILED PAYMENTS'
37321 , p_side => 'NA'
37322 );
37323
37324 END IF;
37325
37326 l_segment := AcctDerRule_15(
37327 p_application_id => p_application_id
37328 , p_ae_header_id => l_ae_header_id
37329 , p_source_4 => p_source_4
37330 , p_source_4_meaning => p_source_4_meaning
37331 , p_source_7 => p_source_7
37332 , p_source_7_meaning => p_source_7_meaning
37333 , p_source_17 => p_source_17
37334 , x_transaction_coa_id => l_adr_transaction_coa_id
37335 , x_accounting_coa_id => l_adr_accounting_coa_id
37336 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37337 , x_flex_value_set_id => l_adr_flex_value_set_id
37338 , x_value_type_code => l_adr_value_type_code
37339 , x_value_combination_id => l_adr_value_combination_id
37340 , x_value_segment_code => l_adr_value_segment_code
37341 , p_side => 'NA'
37342 , p_override_seg_flag => 'Y'
37343 );
37344
37345 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37346
37347 xla_ae_lines_pkg.set_segment(
37348 p_to_segment_code => 'GL_BALANCING'
37349 , p_segment_value => l_segment
37350 , p_from_segment_code => l_adr_value_segment_code
37351 , p_from_combination_id => l_adr_value_combination_id
37352 , p_value_type_code => l_adr_value_type_code
37353 , p_transaction_coa_id => l_adr_transaction_coa_id
37354 , p_accounting_coa_id => l_adr_accounting_coa_id
37355 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37356 , p_flex_value_set_id => l_adr_flex_value_set_id
37360 , p_component_code => l_component_code
37357 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
37358 , p_adr_type_code => 'S'
37359 , p_component_type => l_component_type
37361 , p_component_type_code => l_component_type_code
37362 , p_component_appl_id => l_component_appl_id
37363 , p_amb_context_code => l_amb_context_code
37364 , p_entity_code => 'AP_PAYMENTS'
37365 , p_event_class_code => 'RECONCILED PAYMENTS'
37366 , p_side => 'NA'
37367 );
37368
37369 END IF;
37370
37371 --
37372 --
37373 END IF;
37374 --
37375 -- Bug 4922099
37376 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37377 (NVL(l_enc_upg_option, 'N') = 'O')
37378 ) AND
37379 (l_bflow_method_code = 'PRIOR_ENTRY')
37380 )
37381 THEN
37382 IF
37383 --
37384 1 = 2
37385 --
37386 THEN
37387 xla_accounting_err_pkg.build_message
37388 (p_appli_s_name => 'XLA'
37389 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37390 ,p_token_1 => 'LINE_NUMBER'
37391 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37392 ,p_token_2 => 'LINE_TYPE_NAME'
37393 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37394 l_component_type
37395 ,l_component_code
37396 ,l_component_type_code
37397 ,l_component_appl_id
37398 ,l_amb_context_code
37399 ,l_entity_code
37400 ,l_event_class_code
37401 )
37402 ,p_token_3 => 'OWNER'
37403 ,p_value_3 => xla_lookups_pkg.get_meaning(
37404 p_lookup_type => 'XLA_OWNER_TYPE'
37405 ,p_lookup_code => l_component_type_code
37406 )
37407 ,p_token_4 => 'PRODUCT_NAME'
37408 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37409 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37410 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37411 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37412 ,p_ae_header_id => NULL
37413 );
37414
37415 IF (C_LEVEL_ERROR>= g_log_level) THEN
37416 trace
37417 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37418 ,p_level => C_LEVEL_ERROR
37419 ,p_module => l_log_module);
37420 END IF;
37421 END IF;
37422 END IF;
37423 --
37424 --
37425 ------------------------------------------------------------------------------------------------
37426 -- 4219869 Business Flow
37427 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37428 -- Prior Entry. Currently, the following code is always generated.
37429 ------------------------------------------------------------------------------------------------
37430 XLA_AE_LINES_PKG.ValidateCurrentLine;
37431
37432 ------------------------------------------------------------------------------------
37433 -- 4219869 Business Flow
37434 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37435 ------------------------------------------------------------------------------------
37436 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37437
37438 ----------------------------------------------------------------------------------
37439 -- 4219869 Business Flow
37440 -- Update journal entry status -- Need to generate this within IF <condition>
37441 ----------------------------------------------------------------------------------
37442 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37443 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37444 ,p_balance_type_code => l_balance_type_code
37445 );
37446
37447 -------------------------------------------------------------------------------------------
37448 -- 4262811 - Generate the Accrual Reversal lines
37449 -------------------------------------------------------------------------------------------
37450 BEGIN
37454 l_acc_rev_flag := 'N';
37451 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37452 (g_array_event(p_event_id).array_value_num('header_index'));
37453 IF l_acc_rev_flag IS NULL THEN
37455 END IF;
37456 EXCEPTION
37457 WHEN OTHERS THEN
37458 l_acc_rev_flag := 'N';
37459 END;
37460 --
37461 IF (l_acc_rev_flag = 'Y') THEN
37462
37463 -- 4645092 ------------------------------------------------------------------------------
37464 -- To allow MPA report to determine if it should generate report process
37465 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37466 ------------------------------------------------------------------------------------------
37467
37468 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37469 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37470 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
37471 -- call ADRs
37472 -- Bug 4922099
37473 --
37474 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37475 (NVL(l_actual_upg_option, 'N') = 'O') OR
37476 (NVL(l_enc_upg_option, 'N') = 'O')
37477 )
37478 THEN
37479 NULL;
37480 --
37481 --
37482
37483 l_ccid := AcctDerRule_22(
37484 p_application_id => p_application_id
37485 , p_ae_header_id => l_ae_header_id
37486 , p_source_4 => p_source_4
37487 , p_source_4_meaning => p_source_4_meaning
37488 , p_source_5 => p_source_5
37489 , p_source_7 => p_source_7
37490 , p_source_7_meaning => p_source_7_meaning
37491 , p_source_8 => p_source_8
37492 , p_source_9 => p_source_9
37493 , p_source_10 => p_source_10
37494 , p_source_17 => p_source_17
37495 , p_source_30 => p_source_30
37496 , p_source_30_meaning => p_source_30_meaning
37497 , x_transaction_coa_id => l_adr_transaction_coa_id
37498 , x_accounting_coa_id => l_adr_accounting_coa_id
37499 , x_value_type_code => l_adr_value_type_code
37500 , p_side => 'NA'
37501 );
37502
37503 xla_ae_lines_pkg.set_ccid(
37504 p_code_combination_id => l_ccid
37505 , p_value_type_code => l_adr_value_type_code
37506 , p_transaction_coa_id => l_adr_transaction_coa_id
37507 , p_accounting_coa_id => l_adr_accounting_coa_id
37508 , p_adr_code => 'AP_ERV_TAXERV_CASH'
37509 , p_adr_type_code => 'S'
37510 , p_component_type => l_component_type
37511 , p_component_code => l_component_code
37512 , p_component_type_code => l_component_type_code
37513 , p_component_appl_id => l_component_appl_id
37514 , p_amb_context_code => l_amb_context_code
37515 , p_side => 'NA'
37516 );
37517
37518
37519 l_segment := AcctDerRule_4(
37520 p_application_id => p_application_id
37521 , p_ae_header_id => l_ae_header_id
37522 , p_source_4 => p_source_4
37523 , p_source_4_meaning => p_source_4_meaning
37524 , p_source_5 => p_source_5
37525 , p_source_7 => p_source_7
37526 , p_source_7_meaning => p_source_7_meaning
37527 , p_source_8 => p_source_8
37528 , p_source_9 => p_source_9
37529 , p_source_10 => p_source_10
37530 , x_transaction_coa_id => l_adr_transaction_coa_id
37531 , x_accounting_coa_id => l_adr_accounting_coa_id
37532 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37533 , x_flex_value_set_id => l_adr_flex_value_set_id
37534 , x_value_type_code => l_adr_value_type_code
37535 , x_value_combination_id => l_adr_value_combination_id
37536 , x_value_segment_code => l_adr_value_segment_code
37537 , p_side => 'NA'
37538 , p_override_seg_flag => 'Y'
37539 );
37540
37541 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37542
37543 xla_ae_lines_pkg.set_segment(
37544 p_to_segment_code => 'GL_ACCOUNT'
37545 , p_segment_value => l_segment
37546 , p_from_segment_code => l_adr_value_segment_code
37547 , p_from_combination_id => l_adr_value_combination_id
37548 , p_value_type_code => l_adr_value_type_code
37549 , p_transaction_coa_id => l_adr_transaction_coa_id
37550 , p_accounting_coa_id => l_adr_accounting_coa_id
37551 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37552 , p_flex_value_set_id => l_adr_flex_value_set_id
37553 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
37554 , p_adr_type_code => 'S'
37555 , p_component_type => l_component_type
37556 , p_component_code => l_component_code
37557 , p_component_type_code => l_component_type_code
37558 , p_component_appl_id => l_component_appl_id
37559 , p_amb_context_code => l_amb_context_code
37560 , p_entity_code => 'AP_PAYMENTS'
37561 , p_event_class_code => 'RECONCILED PAYMENTS'
37562 , p_side => 'NA'
37563 );
37564
37565 END IF;
37566
37567 l_segment := AcctDerRule_15(
37568 p_application_id => p_application_id
37572 , p_source_7 => p_source_7
37569 , p_ae_header_id => l_ae_header_id
37570 , p_source_4 => p_source_4
37571 , p_source_4_meaning => p_source_4_meaning
37573 , p_source_7_meaning => p_source_7_meaning
37574 , p_source_17 => p_source_17
37575 , x_transaction_coa_id => l_adr_transaction_coa_id
37576 , x_accounting_coa_id => l_adr_accounting_coa_id
37577 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37578 , x_flex_value_set_id => l_adr_flex_value_set_id
37579 , x_value_type_code => l_adr_value_type_code
37580 , x_value_combination_id => l_adr_value_combination_id
37581 , x_value_segment_code => l_adr_value_segment_code
37582 , p_side => 'NA'
37583 , p_override_seg_flag => 'Y'
37584 );
37585
37586 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37587
37588 xla_ae_lines_pkg.set_segment(
37589 p_to_segment_code => 'GL_BALANCING'
37590 , p_segment_value => l_segment
37591 , p_from_segment_code => l_adr_value_segment_code
37592 , p_from_combination_id => l_adr_value_combination_id
37593 , p_value_type_code => l_adr_value_type_code
37594 , p_transaction_coa_id => l_adr_transaction_coa_id
37595 , p_accounting_coa_id => l_adr_accounting_coa_id
37596 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37597 , p_flex_value_set_id => l_adr_flex_value_set_id
37598 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
37599 , p_adr_type_code => 'S'
37600 , p_component_type => l_component_type
37601 , p_component_code => l_component_code
37602 , p_component_type_code => l_component_type_code
37603 , p_component_appl_id => l_component_appl_id
37604 , p_amb_context_code => l_amb_context_code
37605 , p_entity_code => 'AP_PAYMENTS'
37606 , p_event_class_code => 'RECONCILED PAYMENTS'
37607 , p_side => 'NA'
37608 );
37609
37610 END IF;
37611
37612 --
37613 --
37614 END IF;
37615
37616 --
37617 -- Update the line information that should be overwritten
37618 --
37619 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37620 p_header_num => 1);
37621 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37622
37623 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37624
37625 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37626 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37627 END IF;
37628
37629 --
37630 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37631 --
37632 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37633 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37634 ELSE
37635 ---------------------------------------------------------------------------------------------------
37636 -- 4262811a Switch Sign
37637 ---------------------------------------------------------------------------------------------------
37638 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37639 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37640 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37641 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37642 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37643 -- 5132302
37644 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37645 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37646
37647 END IF;
37648
37649 -- 4955764
37650 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37651 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37652
37653
37654 XLA_AE_LINES_PKG.ValidateCurrentLine;
37655 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37656
37657 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37658 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37659 ,p_balance_type_code => l_balance_type_code);
37660
37661 END IF;
37662
37663 -----------------------------------------------------------------------------------------
37664 -- 4262811 Multiperiod Accounting
37665 -----------------------------------------------------------------------------------------
37666 -- No MPA option is assigned.
37667
37668
37669 END IF;
37670 END IF;
37671 --
37672
37673 --
37674 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37675 trace
37676 (p_msg => 'END of AcctLineType_81'
37677 ,p_level => C_LEVEL_PROCEDURE
37678 ,p_module => l_log_module);
37679 END IF;
37680 --
37684 WHEN OTHERS THEN
37681 EXCEPTION
37682 WHEN xla_exceptions_pkg.application_exception THEN
37683 RAISE;
37685 xla_exceptions_pkg.raise_message
37686 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_81');
37687 END AcctLineType_81;
37688 --
37689
37690 ---------------------------------------
37691 --
37692 -- PRIVATE FUNCTION
37693 -- AcctLineType_82
37694 --
37695 ---------------------------------------
37696 PROCEDURE AcctLineType_82 (
37697 p_application_id IN NUMBER
37698 ,p_event_id IN NUMBER
37699 ,p_calculate_acctd_flag IN VARCHAR2
37700 ,p_calculate_g_l_flag IN VARCHAR2
37701 ,p_actual_flag IN OUT VARCHAR2
37702 ,p_balance_type_code OUT VARCHAR2
37703 ,p_gain_or_loss_ref OUT VARCHAR2
37704
37705 --Payment Distribution (Payment Rate) Ledger Amount
37706 , p_source_9 IN NUMBER
37707 --When to Account for Payment Option
37708 , p_source_38 IN VARCHAR2
37709 --Payment Distribution Type
37710 , p_source_39 IN VARCHAR2
37711 , p_source_39_meaning IN VARCHAR2
37712 --Accounting Reversal Indicator
37713 , p_source_40 IN VARCHAR2
37714 --Payment Distribution Amount
37715 , p_source_41 IN NUMBER
37716 --Business Flow Accounts Payable Application Identifier
37717 , p_source_42 IN NUMBER
37718 --Payment Distribution Identifier
37719 , p_source_47 IN NUMBER
37720 --Distribution Link Type
37721 , p_source_48 IN VARCHAR2
37722 --Payment Currency Code
37723 , p_source_49 IN VARCHAR2
37724 --Override Accounted Amount Indicator
37725 , p_source_53 IN VARCHAR2
37726 , p_source_53_meaning IN VARCHAR2
37727 --Third Party Type
37728 , p_source_56 IN VARCHAR2
37729 --Payment Distribution Reversed Identifier
37730 , p_source_57 IN NUMBER
37731 --Invoice Distribution Tax Line Identifier
37732 , p_source_58 IN NUMBER
37733 --Invoice Distribution Summary Tax Line Identifier
37734 , p_source_59 IN NUMBER
37735 --Business Flow Invoice Distribution Type
37736 , p_source_62 IN VARCHAR2
37737 --Business Flow Invoice Entity Code
37738 , p_source_63 IN VARCHAR2
37739 --Business Flow Invoice Distribution Identifier
37740 , p_source_64 IN NUMBER
37741 --Business Flow Invoice Identifier
37742 , p_source_65 IN NUMBER
37743 --Purchasing Encumbrance Option
37744 , p_source_102 IN VARCHAR2
37745 , p_source_102_meaning IN VARCHAR2
37746 --Invoice Encumbered Option
37747 , p_source_104 IN VARCHAR2
37748 , p_source_104_meaning IN VARCHAR2
37749 )
37750 IS
37751
37752 l_component_type VARCHAR2(80);
37753 l_component_code VARCHAR2(30);
37754 l_component_type_code VARCHAR2(1);
37755 l_component_appl_id INTEGER;
37756 l_amb_context_code VARCHAR2(30);
37757 l_entity_code VARCHAR2(30);
37758 l_event_class_code VARCHAR2(30);
37759 l_ae_header_id NUMBER;
37760 l_event_type_code VARCHAR2(30);
37761 l_line_definition_code VARCHAR2(30);
37762 l_line_definition_owner_code VARCHAR2(1);
37763 --
37764 -- adr variables
37765 l_segment VARCHAR2(30);
37766 l_ccid NUMBER;
37767 l_adr_transaction_coa_id NUMBER;
37768 l_adr_accounting_coa_id NUMBER;
37769 l_adr_flexfield_segment_code VARCHAR2(30);
37770 l_adr_flex_value_set_id NUMBER;
37771 l_adr_value_type_code VARCHAR2(30);
37772 l_adr_value_combination_id NUMBER;
37773 l_adr_value_segment_code VARCHAR2(30);
37774
37775 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37776 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37777 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37778 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37779
37780 -- 4262811 Variables ------------------------------------------------------------------------------------------
37781 l_entered_amt_idx NUMBER;
37782 l_accted_amt_idx NUMBER;
37783 l_acc_rev_flag VARCHAR2(1);
37784 l_accrual_line_num NUMBER;
37785 l_tmp_amt NUMBER;
37786 l_acc_rev_natural_side_code VARCHAR2(1);
37787
37788 l_num_entries NUMBER;
37789 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37790 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37791 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37792 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37793 l_recog_line_1 NUMBER;
37794 l_recog_line_2 NUMBER;
37795
37796 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37797 l_bflow_applied_to_amt NUMBER; -- 5132302
37798 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37799
37800 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37801
37802 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37803 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37804
37805 ---------------------------------------------------------------------------------------------------------------
37806
37810 --
37807
37808 --
37809 -- bulk performance
37811 l_balance_type_code VARCHAR2(1);
37812 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37813 l_log_module VARCHAR2(240);
37814
37815 --
37816 -- Upgrade strategy
37817 --
37818 l_actual_upg_option VARCHAR2(1);
37819 l_enc_upg_option VARCHAR2(1);
37820
37821 --
37822 BEGIN
37823 --
37824 IF g_log_enabled THEN
37825 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
37826 END IF;
37827 --
37828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37829
37830 trace
37831 (p_msg => 'BEGIN of AcctLineType_82'
37832 ,p_level => C_LEVEL_PROCEDURE
37833 ,p_module => l_log_module);
37834
37835 END IF;
37836 --
37837 l_component_type := 'AMB_JLT';
37838 l_component_code := 'AP_EX_RATE_VAR_CLR_ENC';
37839 l_component_type_code := 'S';
37840 l_component_appl_id := 200;
37841 l_amb_context_code := 'DEFAULT';
37842 l_entity_code := 'AP_PAYMENTS';
37843 l_event_class_code := 'RECONCILED PAYMENTS';
37844 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
37845 l_line_definition_owner_code := 'S';
37846 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
37847 --
37848 l_balance_type_code := 'E';
37849 l_segment := NULL;
37850 l_ccid := NULL;
37851 l_adr_transaction_coa_id := NULL;
37852 l_adr_accounting_coa_id := NULL;
37853 l_adr_flexfield_segment_code := NULL;
37854 l_adr_flex_value_set_id := NULL;
37855 l_adr_value_type_code := NULL;
37856 l_adr_value_combination_id := NULL;
37857 l_adr_value_segment_code := NULL;
37858
37859 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
37860 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
37861 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37862 l_budgetary_control_flag := 'N';
37863
37864 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37865 l_bflow_applied_to_amt := NULL; -- 5132302
37866 l_entered_amt_idx := NULL; -- 4262811
37867 l_accted_amt_idx := NULL; -- 4262811
37868 l_acc_rev_flag := NULL; -- 4262811
37869 l_accrual_line_num := NULL; -- 4262811
37870 l_tmp_amt := NULL; -- 4262811
37871 --
37872 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
37873 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
37874 return;
37875 END IF;
37876
37877 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37878 l_balance_type_code <> 'B' THEN
37879 IF NVL(p_source_38,'
37880 ') = 'CLEAR_CLEAR' AND
37881 NVL(p_source_39,'
37882 ') = 'EXCHANGE RATE VARIANCE' AND
37883 NVL(p_source_102,'
37884 ') = 'Y' AND
37885 NVL(p_source_104,'
37886 ') = 'Y'
37887 THEN
37888
37889 --
37890 XLA_AE_LINES_PKG.SetNewLine;
37891
37892 p_balance_type_code := l_balance_type_code;
37893 -- set the flag so later we will know whether the gain loss line needs to be created
37894
37895 IF(l_balance_type_code = 'A' ) THEN
37896 p_actual_flag :='G';
37897 END IF;
37898
37899 --
37900 -- bulk performance
37901 --
37902 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37903 p_header_num => 0); -- 4262811
37904 --
37905 -- set accounting line options
37906 --
37907 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37908 p_natural_side_code => 'C'
37909 , p_gain_or_loss_flag => 'Y'
37910 , p_gl_transfer_mode_code => 'S'
37911 , p_acct_entry_type_code => 'E'
37912 , p_switch_side_flag => 'Y'
37913 , p_merge_duplicate_code => 'A'
37914 );
37915 --
37916 l_acc_rev_natural_side_code := 'D'; -- 4262811
37917 --
37918 --
37919 -- set accounting line type info
37920 --
37921 xla_ae_lines_pkg.SetAcctLineType
37922 (p_component_type => l_component_type
37923 ,p_event_type_code => l_event_type_code
37924 ,p_line_definition_owner_code => l_line_definition_owner_code
37925 ,p_line_definition_code => l_line_definition_code
37926 ,p_accounting_line_code => l_component_code
37927 ,p_accounting_line_type_code => l_component_type_code
37928 ,p_accounting_line_appl_id => l_component_appl_id
37929 ,p_amb_context_code => l_amb_context_code
37930 ,p_entity_code => l_entity_code
37931 ,p_event_class_code => l_event_class_code);
37932 --
37933 -- set accounting class
37934 --
37935 xla_ae_lines_pkg.SetAcctClass(
37936 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
37937 , p_ae_header_id => l_ae_header_id
37938 );
37939
37940 --
37941 -- set rounding class
37942 --
37943 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37944 'EXCHANGE_RATE_VARIANCE';
37948 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37945
37946 --
37947 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37949 --
37950 -- bulk performance
37951 --
37952 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37953
37954 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37955 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37956
37957 -- 4955764
37958 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37959 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37960
37961 -- 4458381 Public Sector Enh
37962
37963 --
37964 -- set accounting attributes for the line type
37965 --
37966 l_entered_amt_idx := 10;
37967 l_accted_amt_idx := 12;
37968 l_bflow_applied_to_amt_idx := 2; -- 5132302
37969 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37970 l_rec_acct_attrs.array_char_value(1) := p_source_40;
37971 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37972 l_rec_acct_attrs.array_num_value(2) := p_source_41;
37973 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37974 l_rec_acct_attrs.array_num_value(3) := p_source_42;
37975 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37976 l_rec_acct_attrs.array_char_value(4) := p_source_62;
37977 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37978 l_rec_acct_attrs.array_char_value(5) := p_source_63;
37979 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37980 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
37981 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37982 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
37983 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37984 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
37985 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37986 l_rec_acct_attrs.array_char_value(9) := p_source_48;
37987 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37988 l_rec_acct_attrs.array_num_value(10) := p_source_41;
37989 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37990 l_rec_acct_attrs.array_char_value(11) := p_source_49;
37991 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
37992 l_rec_acct_attrs.array_num_value(12) := p_source_9;
37993 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
37994 l_rec_acct_attrs.array_char_value(13) := p_source_53;
37995 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
37996 l_rec_acct_attrs.array_char_value(14) := p_source_56;
37997 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
37998 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
37999 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
38000 l_rec_acct_attrs.array_char_value(16) := p_source_48;
38001 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
38002 l_rec_acct_attrs.array_num_value(17) := p_source_58;
38003 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
38004 l_rec_acct_attrs.array_num_value(18) := p_source_58;
38005 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
38006 l_rec_acct_attrs.array_num_value(19) := p_source_59;
38007
38008 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38009 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38010
38011 ---------------------------------------------------------------------------------------------------------------
38012 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38013 ---------------------------------------------------------------------------------------------------------------
38014 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38015
38016 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38017 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38018
38019 IF xla_accounting_cache_pkg.GetValueChar
38020 (p_source_code => 'LEDGER_CATEGORY_CODE'
38021 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38022 AND l_bflow_method_code = 'PRIOR_ENTRY'
38023 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38024 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38025 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38026 )
38027 THEN
38028 xla_ae_lines_pkg.BflowUpgEntry
38029 (p_business_method_code => l_bflow_method_code
38030 ,p_business_class_code => l_bflow_class_code
38031 ,p_balance_type => l_balance_type_code);
38032 ELSE
38033 NULL;
38034 XLA_AE_LINES_PKG.business_flow_validation(
38035 p_business_method_code => l_bflow_method_code
38039
38036 ,p_business_class_code => l_bflow_class_code
38037 ,p_inherit_description_flag => l_inherit_desc_flag);
38038 END IF;
38040 --
38041 -- call analytical criteria
38042 --
38043 -- Inherited Analytical Criteria for business flow method of Prior Entry.
38044 --
38045 -- call description
38046 --
38047 -- No description or it is inherited.
38048 --
38049 -- call ADRs
38050 -- Bug 4922099
38051 --
38052 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38053 (NVL(l_actual_upg_option, 'N') = 'O') OR
38054 (NVL(l_enc_upg_option, 'N') = 'O')
38055 )
38056 THEN
38057 NULL;
38058 --
38059 --
38060
38061 --
38062 --
38063 END IF;
38064 --
38065 -- Bug 4922099
38066 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38067 (NVL(l_enc_upg_option, 'N') = 'O')
38068 ) AND
38069 (l_bflow_method_code = 'PRIOR_ENTRY')
38070 )
38071 THEN
38072 IF
38073 --
38074 1 = 1
38075 --
38076 THEN
38077 xla_accounting_err_pkg.build_message
38078 (p_appli_s_name => 'XLA'
38079 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38080 ,p_token_1 => 'LINE_NUMBER'
38081 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38082 ,p_token_2 => 'LINE_TYPE_NAME'
38083 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38084 l_component_type
38085 ,l_component_code
38086 ,l_component_type_code
38087 ,l_component_appl_id
38088 ,l_amb_context_code
38089 ,l_entity_code
38090 ,l_event_class_code
38091 )
38092 ,p_token_3 => 'OWNER'
38093 ,p_value_3 => xla_lookups_pkg.get_meaning(
38094 p_lookup_type => 'XLA_OWNER_TYPE'
38095 ,p_lookup_code => l_component_type_code
38096 )
38097 ,p_token_4 => 'PRODUCT_NAME'
38098 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38099 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38100 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38101 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38102 ,p_ae_header_id => NULL
38103 );
38104
38105 IF (C_LEVEL_ERROR>= g_log_level) THEN
38106 trace
38107 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38108 ,p_level => C_LEVEL_ERROR
38109 ,p_module => l_log_module);
38110 END IF;
38111 END IF;
38112 END IF;
38113 --
38114 --
38115 ------------------------------------------------------------------------------------------------
38116 -- 4219869 Business Flow
38117 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38118 -- Prior Entry. Currently, the following code is always generated.
38119 ------------------------------------------------------------------------------------------------
38120 -- No ValidateCurrentLine for business flow method of Prior Entry
38121
38122 ------------------------------------------------------------------------------------
38123 -- 4219869 Business Flow
38124 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38125 ------------------------------------------------------------------------------------
38126 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38127
38128 ----------------------------------------------------------------------------------
38129 -- 4219869 Business Flow
38130 -- Update journal entry status -- Need to generate this within IF <condition>
38131 ----------------------------------------------------------------------------------
38132 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38133 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38134 ,p_balance_type_code => l_balance_type_code
38135 );
38136
38137 -------------------------------------------------------------------------------------------
38138 -- 4262811 - Generate the Accrual Reversal lines
38142 (g_array_event(p_event_id).array_value_num('header_index'));
38139 -------------------------------------------------------------------------------------------
38140 BEGIN
38141 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38143 IF l_acc_rev_flag IS NULL THEN
38144 l_acc_rev_flag := 'N';
38145 END IF;
38146 EXCEPTION
38147 WHEN OTHERS THEN
38148 l_acc_rev_flag := 'N';
38149 END;
38150 --
38151 IF (l_acc_rev_flag = 'Y') THEN
38152
38153 -- 4645092 ------------------------------------------------------------------------------
38154 -- To allow MPA report to determine if it should generate report process
38155 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38156 ------------------------------------------------------------------------------------------
38157
38158 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38159 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38160 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
38161 -- call ADRs
38162 -- Bug 4922099
38163 --
38164 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38165 (NVL(l_actual_upg_option, 'N') = 'O') OR
38166 (NVL(l_enc_upg_option, 'N') = 'O')
38167 )
38168 THEN
38169 NULL;
38170 --
38171 --
38172
38173 --
38174 --
38175 END IF;
38176
38177 --
38178 -- Update the line information that should be overwritten
38179 --
38180 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38181 p_header_num => 1);
38182 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38183
38184 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38185
38186 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38187 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38188 END IF;
38189
38190 --
38191 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38192 --
38193 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38194 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38195 ELSE
38196 ---------------------------------------------------------------------------------------------------
38197 -- 4262811a Switch Sign
38198 ---------------------------------------------------------------------------------------------------
38199 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38200 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38201 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38202 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38203 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38204 -- 5132302
38205 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38206 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38207
38208 END IF;
38209
38210 -- 4955764
38211 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38212 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38213
38214
38215 XLA_AE_LINES_PKG.ValidateCurrentLine;
38216 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38217
38218 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38219 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38220 ,p_balance_type_code => l_balance_type_code);
38221
38222 END IF;
38223
38224 -----------------------------------------------------------------------------------------
38225 -- 4262811 Multiperiod Accounting
38226 -----------------------------------------------------------------------------------------
38227 -- No MPA option is assigned.
38228
38229
38230 END IF;
38231 END IF;
38232 --
38233
38234 --
38235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38236 trace
38237 (p_msg => 'END of AcctLineType_82'
38238 ,p_level => C_LEVEL_PROCEDURE
38239 ,p_module => l_log_module);
38240 END IF;
38241 --
38242 EXCEPTION
38243 WHEN xla_exceptions_pkg.application_exception THEN
38244 RAISE;
38245 WHEN OTHERS THEN
38246 xla_exceptions_pkg.raise_message
38247 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_82');
38248 END AcctLineType_82;
38249 --
38250
38251 ---------------------------------------
38252 --
38253 -- PRIVATE FUNCTION
38254 -- AcctLineType_83
38255 --
38256 ---------------------------------------
38257 PROCEDURE AcctLineType_83 (
38258 p_application_id IN NUMBER
38259 ,p_event_id IN NUMBER
38260 ,p_calculate_acctd_flag IN VARCHAR2
38261 ,p_calculate_g_l_flag IN VARCHAR2
38265
38262 ,p_actual_flag IN OUT VARCHAR2
38263 ,p_balance_type_code OUT VARCHAR2
38264 ,p_gain_or_loss_ref OUT VARCHAR2
38266 --Automatic Offsets Value
38267 , p_source_4 IN VARCHAR2
38268 , p_source_4_meaning IN VARCHAR2
38269 --Purchase Order Rate Variance Gain Account
38270 , p_source_5 IN NUMBER
38271 --Invoice Distribution Ledger Amount
38272 , p_source_6 IN NUMBER
38273 --Destination Type of the PO Distribution
38274 , p_source_7 IN VARCHAR2
38275 , p_source_7_meaning IN VARCHAR2
38276 --Purchase Order Rate Variance Loss Account
38277 , p_source_8 IN NUMBER
38278 --Invoice Distribution Account
38279 , p_source_17 IN NUMBER
38280 --Automatic Offsets Flag
38281 , p_source_30 IN VARCHAR2
38282 , p_source_30_meaning IN VARCHAR2
38283 --When to Account for Payment Option
38284 , p_source_38 IN VARCHAR2
38285 --Accounting Reversal Indicator
38286 , p_source_40 IN VARCHAR2
38287 --Business Flow Accounts Payable Application Identifier
38288 , p_source_42 IN NUMBER
38289 --Distribution Link Type
38290 , p_source_48 IN VARCHAR2
38291 --Override Accounted Amount Indicator
38292 , p_source_53 IN VARCHAR2
38293 , p_source_53_meaning IN VARCHAR2
38294 --Third Party Type
38295 , p_source_56 IN VARCHAR2
38296 --Invoice Distribution Tax Line Identifier
38297 , p_source_58 IN NUMBER
38298 --Invoice Distribution Summary Tax Line Identifier
38299 , p_source_59 IN NUMBER
38300 --Invoice Distribution Tax Distribution Identifier from Tax
38301 , p_source_66 IN NUMBER
38302 --Prepayment Distribution Type
38303 , p_source_67 IN VARCHAR2
38304 --Recipient Invoice Distribution Type
38305 , p_source_68 IN VARCHAR2
38306 , p_source_68_meaning IN VARCHAR2
38307 --Prepayment Application Distribution Identifier
38308 , p_source_71 IN NUMBER
38309 --Invoice Identifier
38310 , p_source_72 IN NUMBER
38311 --Business Flow Prepayment Invoice Distribution Type
38312 , p_source_73 IN VARCHAR2
38313 --Business Flow Prepayment Invoice Entity Code
38314 , p_source_74 IN VARCHAR2
38315 --Business Flow Prepayment Invoice Distribution Identifier
38316 , p_source_75 IN NUMBER
38317 --Business Flow Prepayment Invoice Identifier
38318 , p_source_76 IN NUMBER
38319 --Upgrade Encumbrance Credit Account Class
38320 , p_source_77 IN VARCHAR2
38321 --Payables Encumbrance Upgrade Credit Account
38322 , p_source_78 IN NUMBER
38323 --Payables Encumbrance Upgrade Credit Amount
38324 , p_source_79 IN NUMBER
38325 --Invoice Currency Code
38326 , p_source_80 IN VARCHAR2
38327 --Payables Encumbrance Upgrade Credit Base Amount
38328 , p_source_81 IN NUMBER
38329 --Upgrade Encumbrance Debit Account Class
38330 , p_source_82 IN VARCHAR2
38331 --Payables Encumbrance Upgrade Debit Account
38332 , p_source_83 IN NUMBER
38333 --Payables Encumbrance Upgrade Debit Amount
38334 , p_source_84 IN NUMBER
38335 --Payables Encumbrance Upgrade Debit Base Amount
38336 , p_source_85 IN NUMBER
38337 --Payables Encumbrance Upgrade Option
38338 , p_source_86 IN VARCHAR2
38339 --Prepayment Distribution Amount
38340 , p_source_87 IN NUMBER
38341 --Prepayment Clearing Currency Code
38342 , p_source_88 IN VARCHAR2
38343 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
38344 , p_source_89 IN NUMBER
38345 --Deferred Accounting End Date
38346 , p_source_90 IN DATE
38347 --Deferred Accounting Option
38348 , p_source_91 IN VARCHAR2
38349 --Deferred Accounting Start Date
38350 , p_source_92 IN DATE
38351 --Invoice Supplier Identifier
38352 , p_source_93 IN NUMBER
38353 --Invoice Supplier Site Identifier
38354 , p_source_94 IN NUMBER
38355 --Identifier of the Prepayment Application Reversed
38356 , p_source_95 IN NUMBER
38357 --Payables Upgrade Credit Encumbrance Type Identifier
38358 , p_source_96 IN NUMBER
38359 --Payables Upgrade Debit Encumbrance Type Identifier
38360 , p_source_97 IN NUMBER
38361 --Accrue on Receipt Option
38362 , p_source_100 IN VARCHAR2
38363 , p_source_100_meaning IN VARCHAR2
38364 --Prepayment Clearing Exchange Date
38365 , p_source_118 IN DATE
38366 --Prepayment Clearing Exchange Rate
38367 , p_source_119 IN NUMBER
38368 --Prepayment Clearing Exchange Rate Type
38369 , p_source_120 IN VARCHAR2
38370 )
38371 IS
38372
38373 l_component_type VARCHAR2(80);
38374 l_component_code VARCHAR2(30);
38375 l_component_type_code VARCHAR2(1);
38376 l_component_appl_id INTEGER;
38377 l_amb_context_code VARCHAR2(30);
38378 l_entity_code VARCHAR2(30);
38379 l_event_class_code VARCHAR2(30);
38380 l_ae_header_id NUMBER;
38381 l_event_type_code VARCHAR2(30);
38382 l_line_definition_code VARCHAR2(30);
38383 l_line_definition_owner_code VARCHAR2(1);
38384 --
38385 -- adr variables
38386 l_segment VARCHAR2(30);
38387 l_ccid NUMBER;
38388 l_adr_transaction_coa_id NUMBER;
38389 l_adr_accounting_coa_id NUMBER;
38393 l_adr_value_combination_id NUMBER;
38390 l_adr_flexfield_segment_code VARCHAR2(30);
38391 l_adr_flex_value_set_id NUMBER;
38392 l_adr_value_type_code VARCHAR2(30);
38394 l_adr_value_segment_code VARCHAR2(30);
38395
38396 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38397 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38398 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38399 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38400
38401 -- 4262811 Variables ------------------------------------------------------------------------------------------
38402 l_entered_amt_idx NUMBER;
38403 l_accted_amt_idx NUMBER;
38404 l_acc_rev_flag VARCHAR2(1);
38405 l_accrual_line_num NUMBER;
38406 l_tmp_amt NUMBER;
38407 l_acc_rev_natural_side_code VARCHAR2(1);
38408
38409 l_num_entries NUMBER;
38410 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38411 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38412 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38413 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38414 l_recog_line_1 NUMBER;
38415 l_recog_line_2 NUMBER;
38416
38417 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38418 l_bflow_applied_to_amt NUMBER; -- 5132302
38419 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38420
38421 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38422
38423 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38424 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38425
38426 ---------------------------------------------------------------------------------------------------------------
38427
38428
38429 --
38430 -- bulk performance
38431 --
38432 l_balance_type_code VARCHAR2(1);
38433 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38434 l_log_module VARCHAR2(240);
38435
38436 --
38437 -- Upgrade strategy
38438 --
38439 l_actual_upg_option VARCHAR2(1);
38440 l_enc_upg_option VARCHAR2(1);
38441
38442 --
38443 BEGIN
38444 --
38445 IF g_log_enabled THEN
38446 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
38447 END IF;
38448 --
38449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38450
38451 trace
38452 (p_msg => 'BEGIN of AcctLineType_83'
38453 ,p_level => C_LEVEL_PROCEDURE
38454 ,p_module => l_log_module);
38455
38456 END IF;
38457 --
38458 l_component_type := 'AMB_JLT';
38459 l_component_code := 'AP_EX_RATE_VAR_CLR_RATE';
38460 l_component_type_code := 'S';
38461 l_component_appl_id := 200;
38462 l_amb_context_code := 'DEFAULT';
38463 l_entity_code := 'AP_INVOICES';
38464 l_event_class_code := 'PREPAYMENT APPLICATIONS';
38465 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
38466 l_line_definition_owner_code := 'S';
38467 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
38468 --
38469 l_balance_type_code := 'A';
38470 l_segment := NULL;
38471 l_ccid := NULL;
38472 l_adr_transaction_coa_id := NULL;
38473 l_adr_accounting_coa_id := NULL;
38474 l_adr_flexfield_segment_code := NULL;
38475 l_adr_flex_value_set_id := NULL;
38476 l_adr_value_type_code := NULL;
38477 l_adr_value_combination_id := NULL;
38478 l_adr_value_segment_code := NULL;
38479
38480 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38481 l_bflow_class_code := ''; -- 4219869 Business Flow
38482 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38483 l_budgetary_control_flag := 'N';
38484
38485 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38486 l_bflow_applied_to_amt := NULL; -- 5132302
38487 l_entered_amt_idx := NULL; -- 4262811
38488 l_accted_amt_idx := NULL; -- 4262811
38489 l_acc_rev_flag := NULL; -- 4262811
38490 l_accrual_line_num := NULL; -- 4262811
38491 l_tmp_amt := NULL; -- 4262811
38492 --
38493 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
38494 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
38495 return;
38496 END IF;
38497
38498 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38499 l_balance_type_code <> 'B' THEN
38500 IF NVL(p_source_38,'
38501 ') = 'CLEAR_CLEAR' AND
38502 (NVL(p_source_67,'
38503 ') = 'PREPAY APPL' OR
38504 NVL(p_source_67,'
38505 ') = 'PREPAY APPL NONREC TAX' OR
38506 NVL(p_source_67,'
38507 ') = 'PREPAY APPL REC TAX') AND
38508 NVL(p_source_68,'
38509 ') = 'ERV' AND
38510 NVL(p_source_100,'
38511 ') = 'Y'
38512 THEN
38513
38514 --
38515 XLA_AE_LINES_PKG.SetNewLine;
38516
38517 p_balance_type_code := l_balance_type_code;
38521 p_actual_flag :='G';
38518 -- set the flag so later we will know whether the gain loss line needs to be created
38519
38520 IF(l_balance_type_code = 'A' ) THEN
38522 END IF;
38523
38524 --
38525 -- bulk performance
38526 --
38527 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38528 p_header_num => 0); -- 4262811
38529 --
38530 -- set accounting line options
38531 --
38532 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38533 p_natural_side_code => 'C'
38534 , p_gain_or_loss_flag => 'Y'
38535 , p_gl_transfer_mode_code => 'S'
38536 , p_acct_entry_type_code => 'A'
38537 , p_switch_side_flag => 'Y'
38538 , p_merge_duplicate_code => 'A'
38539 );
38540 --
38541 l_acc_rev_natural_side_code := 'D'; -- 4262811
38542 --
38543 --
38544 -- set accounting line type info
38545 --
38546 xla_ae_lines_pkg.SetAcctLineType
38547 (p_component_type => l_component_type
38548 ,p_event_type_code => l_event_type_code
38549 ,p_line_definition_owner_code => l_line_definition_owner_code
38550 ,p_line_definition_code => l_line_definition_code
38551 ,p_accounting_line_code => l_component_code
38552 ,p_accounting_line_type_code => l_component_type_code
38553 ,p_accounting_line_appl_id => l_component_appl_id
38554 ,p_amb_context_code => l_amb_context_code
38555 ,p_entity_code => l_entity_code
38556 ,p_event_class_code => l_event_class_code);
38557 --
38558 -- set accounting class
38559 --
38560 xla_ae_lines_pkg.SetAcctClass(
38561 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
38562 , p_ae_header_id => l_ae_header_id
38563 );
38564
38565 --
38566 -- set rounding class
38567 --
38568 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38569 'EXCHANGE_RATE_VARIANCE';
38570
38571 --
38572 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38573 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38574 --
38575 -- bulk performance
38576 --
38577 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38578
38579 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38580 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38581
38582 -- 4955764
38583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38585
38586 -- 4458381 Public Sector Enh
38587
38588 --
38589 -- set accounting attributes for the line type
38590 --
38591 l_entered_amt_idx := 25;
38592 l_accted_amt_idx := 30;
38593 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38594 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38595 l_rec_acct_attrs.array_char_value(1) := p_source_40;
38596 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38597 l_rec_acct_attrs.array_num_value(2) :=
38598 xla_ae_sources_pkg.GetSystemSourceNum(
38599 p_source_code => 'XLA_EVENT_APPL_ID'
38600 , p_source_type_code => 'Y'
38601 , p_source_application_id => 602
38602 );
38603 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38604 l_rec_acct_attrs.array_char_value(3) := p_source_48;
38605 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38606 l_rec_acct_attrs.array_char_value(4) :=
38607 xla_ae_sources_pkg.GetSystemSourceChar(
38608 p_source_code => 'XLA_ENTITY_CODE'
38609 , p_source_type_code => 'Y'
38610 , p_source_application_id => 602
38611 );
38612 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38613 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
38614 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38615 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
38616 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
38617 l_rec_acct_attrs.array_num_value(7) := p_source_42;
38618 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38619 l_rec_acct_attrs.array_char_value(8) := p_source_73;
38620 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
38621 l_rec_acct_attrs.array_char_value(9) := p_source_74;
38622 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
38623 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
38624 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38625 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
38626 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
38627 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
38628 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
38629 l_rec_acct_attrs.array_char_value(13) := p_source_48;
38633 l_rec_acct_attrs.array_num_value(15) := p_source_78;
38630 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
38631 l_rec_acct_attrs.array_char_value(14) := p_source_77;
38632 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
38634 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
38635 l_rec_acct_attrs.array_num_value(16) := p_source_79;
38636 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
38637 l_rec_acct_attrs.array_char_value(17) := p_source_80;
38638 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
38639 l_rec_acct_attrs.array_num_value(18) := p_source_81;
38640 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
38641 l_rec_acct_attrs.array_char_value(19) := p_source_82;
38642 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
38643 l_rec_acct_attrs.array_num_value(20) := p_source_83;
38644 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
38645 l_rec_acct_attrs.array_num_value(21) := p_source_84;
38646 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
38647 l_rec_acct_attrs.array_char_value(22) := p_source_80;
38648 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
38649 l_rec_acct_attrs.array_num_value(23) := p_source_85;
38650 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
38651 l_rec_acct_attrs.array_char_value(24) := p_source_86;
38652 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
38653 l_rec_acct_attrs.array_num_value(25) := p_source_87;
38654 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
38655 l_rec_acct_attrs.array_char_value(26) := p_source_88;
38656 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
38657 l_rec_acct_attrs.array_date_value(27) := p_source_118;
38658 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
38659 l_rec_acct_attrs.array_num_value(28) := p_source_119;
38660 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
38661 l_rec_acct_attrs.array_char_value(29) := p_source_120;
38662 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
38663 l_rec_acct_attrs.array_num_value(30) := p_source_89;
38664 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
38665 l_rec_acct_attrs.array_date_value(31) := p_source_90;
38666 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
38667 l_rec_acct_attrs.array_char_value(32) := p_source_91;
38668 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
38669 l_rec_acct_attrs.array_date_value(33) := p_source_92;
38670 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
38671 l_rec_acct_attrs.array_char_value(34) := p_source_53;
38672 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
38673 l_rec_acct_attrs.array_num_value(35) := p_source_93;
38674 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
38675 l_rec_acct_attrs.array_num_value(36) := p_source_94;
38676 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
38677 l_rec_acct_attrs.array_char_value(37) := p_source_56;
38678 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
38679 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
38680 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
38681 l_rec_acct_attrs.array_char_value(39) := p_source_48;
38682 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
38683 l_rec_acct_attrs.array_num_value(40) := p_source_58;
38684 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
38685 l_rec_acct_attrs.array_num_value(41) := p_source_66;
38686 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
38687 l_rec_acct_attrs.array_num_value(42) := p_source_59;
38688 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
38689 l_rec_acct_attrs.array_num_value(43) := p_source_96;
38690 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
38691 l_rec_acct_attrs.array_num_value(44) := p_source_97;
38692
38693 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38694 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38695
38696 ---------------------------------------------------------------------------------------------------------------
38697 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38698 ---------------------------------------------------------------------------------------------------------------
38699 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38700
38701 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38702 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38703
38704 IF xla_accounting_cache_pkg.GetValueChar
38705 (p_source_code => 'LEDGER_CATEGORY_CODE'
38706 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38707 AND l_bflow_method_code = 'PRIOR_ENTRY'
38708 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38709 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38710 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38711 )
38712 THEN
38713 xla_ae_lines_pkg.BflowUpgEntry
38717 ELSE
38714 (p_business_method_code => l_bflow_method_code
38715 ,p_business_class_code => l_bflow_class_code
38716 ,p_balance_type => l_balance_type_code);
38718 NULL;
38719 -- No business flow processing for business flow method of NONE.
38720 END IF;
38721
38722 --
38723 -- call analytical criteria
38724 --
38725
38726 --
38727 -- call description
38728 --
38729 -- No description or it is inherited.
38730 --
38731 -- call ADRs
38732 -- Bug 4922099
38733 --
38734 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38735 (NVL(l_actual_upg_option, 'N') = 'O') OR
38736 (NVL(l_enc_upg_option, 'N') = 'O')
38737 )
38738 THEN
38739 NULL;
38740 --
38741 --
38742
38743 l_ccid := AcctDerRule_23(
38744 p_application_id => p_application_id
38745 , p_ae_header_id => l_ae_header_id
38746 , p_source_4 => p_source_4
38747 , p_source_4_meaning => p_source_4_meaning
38748 , p_source_5 => p_source_5
38749 , p_source_6 => p_source_6
38750 , p_source_7 => p_source_7
38751 , p_source_7_meaning => p_source_7_meaning
38752 , p_source_8 => p_source_8
38753 , p_source_17 => p_source_17
38754 , p_source_30 => p_source_30
38755 , p_source_30_meaning => p_source_30_meaning
38756 , x_transaction_coa_id => l_adr_transaction_coa_id
38757 , x_accounting_coa_id => l_adr_accounting_coa_id
38758 , x_value_type_code => l_adr_value_type_code
38759 , p_side => 'NA'
38760 );
38761
38762 xla_ae_lines_pkg.set_ccid(
38763 p_code_combination_id => l_ccid
38764 , p_value_type_code => l_adr_value_type_code
38765 , p_transaction_coa_id => l_adr_transaction_coa_id
38766 , p_accounting_coa_id => l_adr_accounting_coa_id
38767 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
38768 , p_adr_type_code => 'S'
38769 , p_component_type => l_component_type
38770 , p_component_code => l_component_code
38771 , p_component_type_code => l_component_type_code
38772 , p_component_appl_id => l_component_appl_id
38773 , p_amb_context_code => l_amb_context_code
38774 , p_side => 'NA'
38775 );
38776
38777
38778 l_segment := AcctDerRule_3(
38779 p_application_id => p_application_id
38780 , p_ae_header_id => l_ae_header_id
38781 , p_source_4 => p_source_4
38782 , p_source_4_meaning => p_source_4_meaning
38783 , p_source_5 => p_source_5
38784 , p_source_6 => p_source_6
38785 , p_source_7 => p_source_7
38786 , p_source_7_meaning => p_source_7_meaning
38787 , p_source_8 => p_source_8
38788 , x_transaction_coa_id => l_adr_transaction_coa_id
38789 , x_accounting_coa_id => l_adr_accounting_coa_id
38790 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38791 , x_flex_value_set_id => l_adr_flex_value_set_id
38792 , x_value_type_code => l_adr_value_type_code
38793 , x_value_combination_id => l_adr_value_combination_id
38794 , x_value_segment_code => l_adr_value_segment_code
38795 , p_side => 'NA'
38796 , p_override_seg_flag => 'Y'
38797 );
38798
38799 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38800
38801 xla_ae_lines_pkg.set_segment(
38802 p_to_segment_code => 'GL_ACCOUNT'
38803 , p_segment_value => l_segment
38804 , p_from_segment_code => l_adr_value_segment_code
38805 , p_from_combination_id => l_adr_value_combination_id
38806 , p_value_type_code => l_adr_value_type_code
38807 , p_transaction_coa_id => l_adr_transaction_coa_id
38808 , p_accounting_coa_id => l_adr_accounting_coa_id
38809 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38810 , p_flex_value_set_id => l_adr_flex_value_set_id
38811 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
38812 , p_adr_type_code => 'S'
38813 , p_component_type => l_component_type
38814 , p_component_code => l_component_code
38815 , p_component_type_code => l_component_type_code
38816 , p_component_appl_id => l_component_appl_id
38817 , p_amb_context_code => l_amb_context_code
38818 , p_entity_code => 'AP_INVOICES'
38819 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
38820 , p_side => 'NA'
38821 );
38822
38823 END IF;
38824
38825 l_segment := AcctDerRule_15(
38826 p_application_id => p_application_id
38827 , p_ae_header_id => l_ae_header_id
38828 , p_source_4 => p_source_4
38829 , p_source_4_meaning => p_source_4_meaning
38830 , p_source_7 => p_source_7
38831 , p_source_7_meaning => p_source_7_meaning
38832 , p_source_17 => p_source_17
38833 , x_transaction_coa_id => l_adr_transaction_coa_id
38834 , x_accounting_coa_id => l_adr_accounting_coa_id
38835 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38836 , x_flex_value_set_id => l_adr_flex_value_set_id
38837 , x_value_type_code => l_adr_value_type_code
38841 , p_override_seg_flag => 'Y'
38838 , x_value_combination_id => l_adr_value_combination_id
38839 , x_value_segment_code => l_adr_value_segment_code
38840 , p_side => 'NA'
38842 );
38843
38844 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38845
38846 xla_ae_lines_pkg.set_segment(
38847 p_to_segment_code => 'GL_BALANCING'
38848 , p_segment_value => l_segment
38849 , p_from_segment_code => l_adr_value_segment_code
38850 , p_from_combination_id => l_adr_value_combination_id
38851 , p_value_type_code => l_adr_value_type_code
38852 , p_transaction_coa_id => l_adr_transaction_coa_id
38853 , p_accounting_coa_id => l_adr_accounting_coa_id
38854 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38855 , p_flex_value_set_id => l_adr_flex_value_set_id
38856 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
38857 , p_adr_type_code => 'S'
38858 , p_component_type => l_component_type
38859 , p_component_code => l_component_code
38860 , p_component_type_code => l_component_type_code
38861 , p_component_appl_id => l_component_appl_id
38862 , p_amb_context_code => l_amb_context_code
38863 , p_entity_code => 'AP_INVOICES'
38864 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
38865 , p_side => 'NA'
38866 );
38867
38868 END IF;
38869
38870 --
38871 --
38872 END IF;
38873 --
38874 -- Bug 4922099
38875 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38876 (NVL(l_enc_upg_option, 'N') = 'O')
38877 ) AND
38878 (l_bflow_method_code = 'PRIOR_ENTRY')
38879 )
38880 THEN
38881 IF
38882 --
38883 1 = 2
38884 --
38885 THEN
38886 xla_accounting_err_pkg.build_message
38887 (p_appli_s_name => 'XLA'
38888 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38889 ,p_token_1 => 'LINE_NUMBER'
38890 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38891 ,p_token_2 => 'LINE_TYPE_NAME'
38892 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38893 l_component_type
38894 ,l_component_code
38895 ,l_component_type_code
38896 ,l_component_appl_id
38897 ,l_amb_context_code
38898 ,l_entity_code
38899 ,l_event_class_code
38900 )
38901 ,p_token_3 => 'OWNER'
38902 ,p_value_3 => xla_lookups_pkg.get_meaning(
38903 p_lookup_type => 'XLA_OWNER_TYPE'
38904 ,p_lookup_code => l_component_type_code
38905 )
38906 ,p_token_4 => 'PRODUCT_NAME'
38907 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38908 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38909 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38910 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38911 ,p_ae_header_id => NULL
38912 );
38913
38914 IF (C_LEVEL_ERROR>= g_log_level) THEN
38915 trace
38916 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38917 ,p_level => C_LEVEL_ERROR
38918 ,p_module => l_log_module);
38919 END IF;
38920 END IF;
38921 END IF;
38922 --
38923 --
38924 ------------------------------------------------------------------------------------------------
38925 -- 4219869 Business Flow
38926 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38927 -- Prior Entry. Currently, the following code is always generated.
38928 ------------------------------------------------------------------------------------------------
38929 XLA_AE_LINES_PKG.ValidateCurrentLine;
38930
38931 ------------------------------------------------------------------------------------
38932 -- 4219869 Business Flow
38933 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38934 ------------------------------------------------------------------------------------
38938 -- 4219869 Business Flow
38935 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38936
38937 ----------------------------------------------------------------------------------
38939 -- Update journal entry status -- Need to generate this within IF <condition>
38940 ----------------------------------------------------------------------------------
38941 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38942 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38943 ,p_balance_type_code => l_balance_type_code
38944 );
38945
38946 -------------------------------------------------------------------------------------------
38947 -- 4262811 - Generate the Accrual Reversal lines
38948 -------------------------------------------------------------------------------------------
38949 BEGIN
38950 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38951 (g_array_event(p_event_id).array_value_num('header_index'));
38952 IF l_acc_rev_flag IS NULL THEN
38953 l_acc_rev_flag := 'N';
38954 END IF;
38955 EXCEPTION
38956 WHEN OTHERS THEN
38957 l_acc_rev_flag := 'N';
38958 END;
38959 --
38960 IF (l_acc_rev_flag = 'Y') THEN
38961
38962 -- 4645092 ------------------------------------------------------------------------------
38963 -- To allow MPA report to determine if it should generate report process
38964 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38965 ------------------------------------------------------------------------------------------
38966
38967 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38968 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38969 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
38970 -- call ADRs
38971 -- Bug 4922099
38972 --
38973 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38974 (NVL(l_actual_upg_option, 'N') = 'O') OR
38975 (NVL(l_enc_upg_option, 'N') = 'O')
38976 )
38977 THEN
38978 NULL;
38979 --
38980 --
38981
38982 l_ccid := AcctDerRule_23(
38983 p_application_id => p_application_id
38984 , p_ae_header_id => l_ae_header_id
38985 , p_source_4 => p_source_4
38986 , p_source_4_meaning => p_source_4_meaning
38987 , p_source_5 => p_source_5
38988 , p_source_6 => p_source_6
38989 , p_source_7 => p_source_7
38990 , p_source_7_meaning => p_source_7_meaning
38991 , p_source_8 => p_source_8
38992 , p_source_17 => p_source_17
38993 , p_source_30 => p_source_30
38994 , p_source_30_meaning => p_source_30_meaning
38995 , x_transaction_coa_id => l_adr_transaction_coa_id
38996 , x_accounting_coa_id => l_adr_accounting_coa_id
38997 , x_value_type_code => l_adr_value_type_code
38998 , p_side => 'NA'
38999 );
39000
39001 xla_ae_lines_pkg.set_ccid(
39002 p_code_combination_id => l_ccid
39003 , p_value_type_code => l_adr_value_type_code
39004 , p_transaction_coa_id => l_adr_transaction_coa_id
39005 , p_accounting_coa_id => l_adr_accounting_coa_id
39006 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39007 , p_adr_type_code => 'S'
39008 , p_component_type => l_component_type
39009 , p_component_code => l_component_code
39010 , p_component_type_code => l_component_type_code
39011 , p_component_appl_id => l_component_appl_id
39012 , p_amb_context_code => l_amb_context_code
39013 , p_side => 'NA'
39014 );
39015
39016
39017 l_segment := AcctDerRule_3(
39018 p_application_id => p_application_id
39019 , p_ae_header_id => l_ae_header_id
39020 , p_source_4 => p_source_4
39021 , p_source_4_meaning => p_source_4_meaning
39022 , p_source_5 => p_source_5
39023 , p_source_6 => p_source_6
39024 , p_source_7 => p_source_7
39025 , p_source_7_meaning => p_source_7_meaning
39026 , p_source_8 => p_source_8
39027 , x_transaction_coa_id => l_adr_transaction_coa_id
39028 , x_accounting_coa_id => l_adr_accounting_coa_id
39029 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39030 , x_flex_value_set_id => l_adr_flex_value_set_id
39031 , x_value_type_code => l_adr_value_type_code
39032 , x_value_combination_id => l_adr_value_combination_id
39033 , x_value_segment_code => l_adr_value_segment_code
39034 , p_side => 'NA'
39035 , p_override_seg_flag => 'Y'
39036 );
39037
39038 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39039
39040 xla_ae_lines_pkg.set_segment(
39041 p_to_segment_code => 'GL_ACCOUNT'
39042 , p_segment_value => l_segment
39043 , p_from_segment_code => l_adr_value_segment_code
39044 , p_from_combination_id => l_adr_value_combination_id
39045 , p_value_type_code => l_adr_value_type_code
39046 , p_transaction_coa_id => l_adr_transaction_coa_id
39047 , p_accounting_coa_id => l_adr_accounting_coa_id
39048 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39049 , p_flex_value_set_id => l_adr_flex_value_set_id
39050 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39054 , p_component_type_code => l_component_type_code
39051 , p_adr_type_code => 'S'
39052 , p_component_type => l_component_type
39053 , p_component_code => l_component_code
39055 , p_component_appl_id => l_component_appl_id
39056 , p_amb_context_code => l_amb_context_code
39057 , p_entity_code => 'AP_INVOICES'
39058 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
39059 , p_side => 'NA'
39060 );
39061
39062 END IF;
39063
39064 l_segment := AcctDerRule_15(
39065 p_application_id => p_application_id
39066 , p_ae_header_id => l_ae_header_id
39067 , p_source_4 => p_source_4
39068 , p_source_4_meaning => p_source_4_meaning
39069 , p_source_7 => p_source_7
39070 , p_source_7_meaning => p_source_7_meaning
39071 , p_source_17 => p_source_17
39072 , x_transaction_coa_id => l_adr_transaction_coa_id
39073 , x_accounting_coa_id => l_adr_accounting_coa_id
39074 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39075 , x_flex_value_set_id => l_adr_flex_value_set_id
39076 , x_value_type_code => l_adr_value_type_code
39077 , x_value_combination_id => l_adr_value_combination_id
39078 , x_value_segment_code => l_adr_value_segment_code
39079 , p_side => 'NA'
39080 , p_override_seg_flag => 'Y'
39081 );
39082
39083 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39084
39085 xla_ae_lines_pkg.set_segment(
39086 p_to_segment_code => 'GL_BALANCING'
39087 , p_segment_value => l_segment
39088 , p_from_segment_code => l_adr_value_segment_code
39089 , p_from_combination_id => l_adr_value_combination_id
39090 , p_value_type_code => l_adr_value_type_code
39091 , p_transaction_coa_id => l_adr_transaction_coa_id
39092 , p_accounting_coa_id => l_adr_accounting_coa_id
39093 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39094 , p_flex_value_set_id => l_adr_flex_value_set_id
39095 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
39096 , p_adr_type_code => 'S'
39097 , p_component_type => l_component_type
39098 , p_component_code => l_component_code
39099 , p_component_type_code => l_component_type_code
39100 , p_component_appl_id => l_component_appl_id
39101 , p_amb_context_code => l_amb_context_code
39102 , p_entity_code => 'AP_INVOICES'
39103 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
39104 , p_side => 'NA'
39105 );
39106
39107 END IF;
39108
39109 --
39110 --
39111 END IF;
39112
39113 --
39114 -- Update the line information that should be overwritten
39115 --
39116 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39117 p_header_num => 1);
39118 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39119
39120 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39121
39122 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39123 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39124 END IF;
39125
39126 --
39127 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39128 --
39129 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39130 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39131 ELSE
39132 ---------------------------------------------------------------------------------------------------
39133 -- 4262811a Switch Sign
39134 ---------------------------------------------------------------------------------------------------
39135 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39136 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39137 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39138 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39139 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39140 -- 5132302
39141 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39142 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39143
39144 END IF;
39145
39146 -- 4955764
39147 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39148 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39149
39150
39151 XLA_AE_LINES_PKG.ValidateCurrentLine;
39152 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39153
39157
39154 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39155 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39156 ,p_balance_type_code => l_balance_type_code);
39158 END IF;
39159
39160 -----------------------------------------------------------------------------------------
39161 -- 4262811 Multiperiod Accounting
39162 -----------------------------------------------------------------------------------------
39163 -- No MPA option is assigned.
39164
39165
39166 END IF;
39167 END IF;
39168 --
39169
39170 --
39171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39172 trace
39173 (p_msg => 'END of AcctLineType_83'
39174 ,p_level => C_LEVEL_PROCEDURE
39175 ,p_module => l_log_module);
39176 END IF;
39177 --
39178 EXCEPTION
39179 WHEN xla_exceptions_pkg.application_exception THEN
39180 RAISE;
39181 WHEN OTHERS THEN
39182 xla_exceptions_pkg.raise_message
39183 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_83');
39184 END AcctLineType_83;
39185 --
39186
39187 ---------------------------------------
39188 --
39189 -- PRIVATE FUNCTION
39190 -- AcctLineType_84
39191 --
39192 ---------------------------------------
39193 PROCEDURE AcctLineType_84 (
39194 p_application_id IN NUMBER
39195 ,p_event_id IN NUMBER
39196 ,p_calculate_acctd_flag IN VARCHAR2
39197 ,p_calculate_g_l_flag IN VARCHAR2
39198 ,p_actual_flag IN OUT VARCHAR2
39199 ,p_balance_type_code OUT VARCHAR2
39200 ,p_gain_or_loss_ref OUT VARCHAR2
39201
39202 --Automatic Offsets Value
39203 , p_source_4 IN VARCHAR2
39204 , p_source_4_meaning IN VARCHAR2
39205 --Purchase Order Rate Variance Gain Account
39206 , p_source_5 IN NUMBER
39207 --Destination Type of the PO Distribution
39208 , p_source_7 IN VARCHAR2
39209 , p_source_7_meaning IN VARCHAR2
39210 --Purchase Order Rate Variance Loss Account
39211 , p_source_8 IN NUMBER
39212 --Payment Distribution (Payment Rate) Ledger Amount
39213 , p_source_9 IN NUMBER
39214 --Payment Distribution (Cleared Rate) Ledger Amount
39215 , p_source_10 IN NUMBER
39216 --Invoice Distribution Account
39217 , p_source_17 IN NUMBER
39218 --Automatic Offsets Flag
39219 , p_source_30 IN VARCHAR2
39220 , p_source_30_meaning IN VARCHAR2
39221 --When to Account for Payment Option
39222 , p_source_38 IN VARCHAR2
39223 --Payment Distribution Type
39224 , p_source_39 IN VARCHAR2
39225 , p_source_39_meaning IN VARCHAR2
39226 --Accounting Reversal Indicator
39227 , p_source_40 IN VARCHAR2
39228 --Payment Distribution Amount
39229 , p_source_41 IN NUMBER
39230 --Business Flow Accounts Payable Application Identifier
39231 , p_source_42 IN NUMBER
39232 --Payment Distribution Identifier
39233 , p_source_47 IN NUMBER
39234 --Distribution Link Type
39235 , p_source_48 IN VARCHAR2
39236 --Payment Currency Code
39237 , p_source_49 IN VARCHAR2
39238 --Override Accounted Amount Indicator
39239 , p_source_53 IN VARCHAR2
39240 , p_source_53_meaning IN VARCHAR2
39241 --Payment Supplier Identifier
39242 , p_source_54 IN NUMBER
39243 --Payment Supplier Site Identifier
39244 , p_source_55 IN NUMBER
39245 --Third Party Type
39246 , p_source_56 IN VARCHAR2
39247 --Payment Distribution Reversed Identifier
39248 , p_source_57 IN NUMBER
39249 --Invoice Distribution Tax Line Identifier
39250 , p_source_58 IN NUMBER
39251 --Invoice Distribution Summary Tax Line Identifier
39252 , p_source_59 IN NUMBER
39253 --Payment Type
39254 , p_source_60 IN VARCHAR2
39255 , p_source_60_meaning IN VARCHAR2
39256 --Invoice Distribution Amount of the Payment Distribution
39257 , p_source_61 IN NUMBER
39258 --Business Flow Invoice Distribution Type
39259 , p_source_62 IN VARCHAR2
39260 --Business Flow Invoice Entity Code
39261 , p_source_63 IN VARCHAR2
39262 --Business Flow Invoice Distribution Identifier
39263 , p_source_64 IN NUMBER
39264 --Business Flow Invoice Identifier
39265 , p_source_65 IN NUMBER
39266 --Invoice Distribution Tax Distribution Identifier from Tax
39267 , p_source_66 IN NUMBER
39268 --Accrue on Receipt Option
39269 , p_source_100 IN VARCHAR2
39270 , p_source_100_meaning IN VARCHAR2
39271 --Payment Exchange Date
39272 , p_source_114 IN DATE
39273 --Payment Exchange Rate
39274 , p_source_115 IN NUMBER
39275 --Payment Exchange Rate Type
39276 , p_source_116 IN VARCHAR2
39277 )
39278 IS
39279
39280 l_component_type VARCHAR2(80);
39281 l_component_code VARCHAR2(30);
39282 l_component_type_code VARCHAR2(1);
39283 l_component_appl_id INTEGER;
39284 l_amb_context_code VARCHAR2(30);
39285 l_entity_code VARCHAR2(30);
39286 l_event_class_code VARCHAR2(30);
39287 l_ae_header_id NUMBER;
39288 l_event_type_code VARCHAR2(30);
39289 l_line_definition_code VARCHAR2(30);
39290 l_line_definition_owner_code VARCHAR2(1);
39294 l_ccid NUMBER;
39291 --
39292 -- adr variables
39293 l_segment VARCHAR2(30);
39295 l_adr_transaction_coa_id NUMBER;
39296 l_adr_accounting_coa_id NUMBER;
39297 l_adr_flexfield_segment_code VARCHAR2(30);
39298 l_adr_flex_value_set_id NUMBER;
39299 l_adr_value_type_code VARCHAR2(30);
39300 l_adr_value_combination_id NUMBER;
39301 l_adr_value_segment_code VARCHAR2(30);
39302
39303 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39304 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39305 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39306 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39307
39308 -- 4262811 Variables ------------------------------------------------------------------------------------------
39309 l_entered_amt_idx NUMBER;
39310 l_accted_amt_idx NUMBER;
39311 l_acc_rev_flag VARCHAR2(1);
39312 l_accrual_line_num NUMBER;
39313 l_tmp_amt NUMBER;
39314 l_acc_rev_natural_side_code VARCHAR2(1);
39315
39316 l_num_entries NUMBER;
39317 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39318 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39319 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39320 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39321 l_recog_line_1 NUMBER;
39322 l_recog_line_2 NUMBER;
39323
39324 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39325 l_bflow_applied_to_amt NUMBER; -- 5132302
39326 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39327
39328 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39329
39330 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39331 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39332
39333 ---------------------------------------------------------------------------------------------------------------
39334
39335
39336 --
39337 -- bulk performance
39338 --
39339 l_balance_type_code VARCHAR2(1);
39340 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39341 l_log_module VARCHAR2(240);
39342
39343 --
39344 -- Upgrade strategy
39345 --
39346 l_actual_upg_option VARCHAR2(1);
39347 l_enc_upg_option VARCHAR2(1);
39348
39349 --
39350 BEGIN
39351 --
39352 IF g_log_enabled THEN
39353 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
39354 END IF;
39355 --
39356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39357
39358 trace
39359 (p_msg => 'BEGIN of AcctLineType_84'
39360 ,p_level => C_LEVEL_PROCEDURE
39361 ,p_module => l_log_module);
39362
39363 END IF;
39364 --
39365 l_component_type := 'AMB_JLT';
39366 l_component_code := 'AP_EX_RATE_VAR_PMT';
39367 l_component_type_code := 'S';
39368 l_component_appl_id := 200;
39369 l_amb_context_code := 'DEFAULT';
39370 l_entity_code := 'AP_PAYMENTS';
39371 l_event_class_code := 'PAYMENTS';
39372 l_event_type_code := 'PAYMENTS_ALL';
39373 l_line_definition_owner_code := 'S';
39374 l_line_definition_code := 'CASH_PAYMENTS_ALL';
39375 --
39376 l_balance_type_code := 'A';
39377 l_segment := NULL;
39378 l_ccid := NULL;
39379 l_adr_transaction_coa_id := NULL;
39380 l_adr_accounting_coa_id := NULL;
39381 l_adr_flexfield_segment_code := NULL;
39382 l_adr_flex_value_set_id := NULL;
39383 l_adr_value_type_code := NULL;
39384 l_adr_value_combination_id := NULL;
39385 l_adr_value_segment_code := NULL;
39386
39387 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39388 l_bflow_class_code := ''; -- 4219869 Business Flow
39389 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39390 l_budgetary_control_flag := 'N';
39391
39392 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39393 l_bflow_applied_to_amt := NULL; -- 5132302
39394 l_entered_amt_idx := NULL; -- 4262811
39395 l_accted_amt_idx := NULL; -- 4262811
39396 l_acc_rev_flag := NULL; -- 4262811
39397 l_accrual_line_num := NULL; -- 4262811
39398 l_tmp_amt := NULL; -- 4262811
39399 --
39400 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
39401 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
39402 return;
39403 END IF;
39404
39405 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39406 l_balance_type_code <> 'B' THEN
39407 IF NVL(p_source_38,'
39408 ') <> 'CLEAR_CLEAR' AND
39409 NVL(p_source_39,'
39410 ') = 'EXCHANGE RATE VARIANCE' AND
39411 NVL(p_source_100,'
39412 ') = 'Y' AND
39413 NVL(p_source_60,'
39414 ') <> 'R'
39415 THEN
39416
39417 --
39418 XLA_AE_LINES_PKG.SetNewLine;
39422
39419
39420 p_balance_type_code := l_balance_type_code;
39421 -- set the flag so later we will know whether the gain loss line needs to be created
39423 IF(l_balance_type_code = 'A' ) THEN
39424 p_actual_flag :='G';
39425 END IF;
39426
39427 --
39428 -- bulk performance
39429 --
39430 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39431 p_header_num => 0); -- 4262811
39432 --
39433 -- set accounting line options
39434 --
39435 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39436 p_natural_side_code => 'D'
39437 , p_gain_or_loss_flag => 'Y'
39438 , p_gl_transfer_mode_code => 'S'
39439 , p_acct_entry_type_code => 'A'
39440 , p_switch_side_flag => 'Y'
39441 , p_merge_duplicate_code => 'A'
39442 );
39443 --
39444 l_acc_rev_natural_side_code := 'C'; -- 4262811
39445 --
39446 --
39447 -- set accounting line type info
39448 --
39449 xla_ae_lines_pkg.SetAcctLineType
39450 (p_component_type => l_component_type
39451 ,p_event_type_code => l_event_type_code
39452 ,p_line_definition_owner_code => l_line_definition_owner_code
39453 ,p_line_definition_code => l_line_definition_code
39454 ,p_accounting_line_code => l_component_code
39455 ,p_accounting_line_type_code => l_component_type_code
39456 ,p_accounting_line_appl_id => l_component_appl_id
39457 ,p_amb_context_code => l_amb_context_code
39458 ,p_entity_code => l_entity_code
39459 ,p_event_class_code => l_event_class_code);
39460 --
39461 -- set accounting class
39462 --
39463 xla_ae_lines_pkg.SetAcctClass(
39464 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
39465 , p_ae_header_id => l_ae_header_id
39466 );
39467
39468 --
39469 -- set rounding class
39470 --
39471 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39472 'EXCHANGE_RATE_VARIANCE';
39473
39474 --
39475 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39476 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39477 --
39478 -- bulk performance
39479 --
39480 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39481
39482 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39483 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39484
39485 -- 4955764
39486 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39487 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39488
39489 -- 4458381 Public Sector Enh
39490
39491 --
39492 -- set accounting attributes for the line type
39493 --
39494 l_entered_amt_idx := 10;
39495 l_accted_amt_idx := 15;
39496 l_bflow_applied_to_amt_idx := 2; -- 5132302
39497 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39498 l_rec_acct_attrs.array_char_value(1) := p_source_40;
39499 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
39500 l_rec_acct_attrs.array_num_value(2) := p_source_61;
39501 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
39502 l_rec_acct_attrs.array_num_value(3) := p_source_42;
39503 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39504 l_rec_acct_attrs.array_char_value(4) := p_source_62;
39505 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
39506 l_rec_acct_attrs.array_char_value(5) := p_source_63;
39507 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
39508 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
39509 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39510 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
39511 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
39512 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
39513 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
39514 l_rec_acct_attrs.array_char_value(9) := p_source_48;
39515 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
39516 l_rec_acct_attrs.array_num_value(10) := p_source_41;
39517 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
39518 l_rec_acct_attrs.array_char_value(11) := p_source_49;
39519 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
39520 l_rec_acct_attrs.array_date_value(12) := p_source_114;
39521 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
39522 l_rec_acct_attrs.array_num_value(13) := p_source_115;
39523 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
39524 l_rec_acct_attrs.array_char_value(14) := p_source_116;
39525 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
39526 l_rec_acct_attrs.array_num_value(15) := p_source_9;
39527 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
39528 l_rec_acct_attrs.array_char_value(16) := p_source_53;
39529 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
39530 l_rec_acct_attrs.array_num_value(17) := p_source_54;
39534 l_rec_acct_attrs.array_char_value(19) := p_source_56;
39531 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
39532 l_rec_acct_attrs.array_num_value(18) := p_source_55;
39533 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
39535 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
39536 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
39537 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
39538 l_rec_acct_attrs.array_char_value(21) := p_source_48;
39539 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
39540 l_rec_acct_attrs.array_num_value(22) := p_source_58;
39541 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
39542 l_rec_acct_attrs.array_num_value(23) := p_source_66;
39543 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
39544 l_rec_acct_attrs.array_num_value(24) := p_source_59;
39545
39546 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39547 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39548
39549 ---------------------------------------------------------------------------------------------------------------
39550 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39551 ---------------------------------------------------------------------------------------------------------------
39552 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39553
39554 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39555 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39556
39557 IF xla_accounting_cache_pkg.GetValueChar
39558 (p_source_code => 'LEDGER_CATEGORY_CODE'
39559 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39560 AND l_bflow_method_code = 'PRIOR_ENTRY'
39561 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39562 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39563 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39564 )
39565 THEN
39566 xla_ae_lines_pkg.BflowUpgEntry
39567 (p_business_method_code => l_bflow_method_code
39568 ,p_business_class_code => l_bflow_class_code
39569 ,p_balance_type => l_balance_type_code);
39570 ELSE
39571 NULL;
39572 -- No business flow processing for business flow method of NONE.
39573 END IF;
39574
39575 --
39576 -- call analytical criteria
39577 --
39578
39579 --
39580 -- call description
39581 --
39582 -- No description or it is inherited.
39583 --
39584 -- call ADRs
39585 -- Bug 4922099
39586 --
39587 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39588 (NVL(l_actual_upg_option, 'N') = 'O') OR
39589 (NVL(l_enc_upg_option, 'N') = 'O')
39590 )
39591 THEN
39592 NULL;
39593 --
39594 --
39595
39596 l_ccid := AcctDerRule_22(
39597 p_application_id => p_application_id
39598 , p_ae_header_id => l_ae_header_id
39599 , p_source_4 => p_source_4
39600 , p_source_4_meaning => p_source_4_meaning
39601 , p_source_5 => p_source_5
39602 , p_source_7 => p_source_7
39603 , p_source_7_meaning => p_source_7_meaning
39604 , p_source_8 => p_source_8
39605 , p_source_9 => p_source_9
39606 , p_source_10 => p_source_10
39607 , p_source_17 => p_source_17
39608 , p_source_30 => p_source_30
39609 , p_source_30_meaning => p_source_30_meaning
39610 , x_transaction_coa_id => l_adr_transaction_coa_id
39611 , x_accounting_coa_id => l_adr_accounting_coa_id
39612 , x_value_type_code => l_adr_value_type_code
39613 , p_side => 'NA'
39614 );
39615
39616 xla_ae_lines_pkg.set_ccid(
39617 p_code_combination_id => l_ccid
39618 , p_value_type_code => l_adr_value_type_code
39619 , p_transaction_coa_id => l_adr_transaction_coa_id
39620 , p_accounting_coa_id => l_adr_accounting_coa_id
39621 , p_adr_code => 'AP_ERV_TAXERV_CASH'
39622 , p_adr_type_code => 'S'
39623 , p_component_type => l_component_type
39624 , p_component_code => l_component_code
39625 , p_component_type_code => l_component_type_code
39626 , p_component_appl_id => l_component_appl_id
39627 , p_amb_context_code => l_amb_context_code
39628 , p_side => 'NA'
39629 );
39630
39631
39632 l_segment := AcctDerRule_4(
39633 p_application_id => p_application_id
39634 , p_ae_header_id => l_ae_header_id
39635 , p_source_4 => p_source_4
39636 , p_source_4_meaning => p_source_4_meaning
39637 , p_source_5 => p_source_5
39638 , p_source_7 => p_source_7
39639 , p_source_7_meaning => p_source_7_meaning
39640 , p_source_8 => p_source_8
39641 , p_source_9 => p_source_9
39642 , p_source_10 => p_source_10
39643 , x_transaction_coa_id => l_adr_transaction_coa_id
39644 , x_accounting_coa_id => l_adr_accounting_coa_id
39648 , x_value_combination_id => l_adr_value_combination_id
39645 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39646 , x_flex_value_set_id => l_adr_flex_value_set_id
39647 , x_value_type_code => l_adr_value_type_code
39649 , x_value_segment_code => l_adr_value_segment_code
39650 , p_side => 'NA'
39651 , p_override_seg_flag => 'Y'
39652 );
39653
39654 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39655
39656 xla_ae_lines_pkg.set_segment(
39657 p_to_segment_code => 'GL_ACCOUNT'
39658 , p_segment_value => l_segment
39659 , p_from_segment_code => l_adr_value_segment_code
39660 , p_from_combination_id => l_adr_value_combination_id
39661 , p_value_type_code => l_adr_value_type_code
39662 , p_transaction_coa_id => l_adr_transaction_coa_id
39663 , p_accounting_coa_id => l_adr_accounting_coa_id
39664 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39665 , p_flex_value_set_id => l_adr_flex_value_set_id
39666 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
39667 , p_adr_type_code => 'S'
39668 , p_component_type => l_component_type
39669 , p_component_code => l_component_code
39670 , p_component_type_code => l_component_type_code
39671 , p_component_appl_id => l_component_appl_id
39672 , p_amb_context_code => l_amb_context_code
39673 , p_entity_code => 'AP_PAYMENTS'
39674 , p_event_class_code => 'PAYMENTS'
39675 , p_side => 'NA'
39676 );
39677
39678 END IF;
39679
39680 l_segment := AcctDerRule_15(
39681 p_application_id => p_application_id
39682 , p_ae_header_id => l_ae_header_id
39683 , p_source_4 => p_source_4
39684 , p_source_4_meaning => p_source_4_meaning
39685 , p_source_7 => p_source_7
39686 , p_source_7_meaning => p_source_7_meaning
39687 , p_source_17 => p_source_17
39688 , x_transaction_coa_id => l_adr_transaction_coa_id
39689 , x_accounting_coa_id => l_adr_accounting_coa_id
39690 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39691 , x_flex_value_set_id => l_adr_flex_value_set_id
39692 , x_value_type_code => l_adr_value_type_code
39693 , x_value_combination_id => l_adr_value_combination_id
39694 , x_value_segment_code => l_adr_value_segment_code
39695 , p_side => 'NA'
39696 , p_override_seg_flag => 'Y'
39697 );
39698
39699 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39700
39701 xla_ae_lines_pkg.set_segment(
39702 p_to_segment_code => 'GL_BALANCING'
39703 , p_segment_value => l_segment
39704 , p_from_segment_code => l_adr_value_segment_code
39705 , p_from_combination_id => l_adr_value_combination_id
39706 , p_value_type_code => l_adr_value_type_code
39707 , p_transaction_coa_id => l_adr_transaction_coa_id
39708 , p_accounting_coa_id => l_adr_accounting_coa_id
39709 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39710 , p_flex_value_set_id => l_adr_flex_value_set_id
39711 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
39712 , p_adr_type_code => 'S'
39713 , p_component_type => l_component_type
39714 , p_component_code => l_component_code
39715 , p_component_type_code => l_component_type_code
39716 , p_component_appl_id => l_component_appl_id
39717 , p_amb_context_code => l_amb_context_code
39718 , p_entity_code => 'AP_PAYMENTS'
39719 , p_event_class_code => 'PAYMENTS'
39720 , p_side => 'NA'
39721 );
39722
39723 END IF;
39724
39725 --
39726 --
39727 END IF;
39728 --
39729 -- Bug 4922099
39730 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39731 (NVL(l_enc_upg_option, 'N') = 'O')
39732 ) AND
39733 (l_bflow_method_code = 'PRIOR_ENTRY')
39734 )
39735 THEN
39736 IF
39737 --
39738 1 = 2
39739 --
39740 THEN
39741 xla_accounting_err_pkg.build_message
39742 (p_appli_s_name => 'XLA'
39743 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39744 ,p_token_1 => 'LINE_NUMBER'
39745 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39746 ,p_token_2 => 'LINE_TYPE_NAME'
39747 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39748 l_component_type
39749 ,l_component_code
39750 ,l_component_type_code
39751 ,l_component_appl_id
39752 ,l_amb_context_code
39756 ,p_token_3 => 'OWNER'
39753 ,l_entity_code
39754 ,l_event_class_code
39755 )
39757 ,p_value_3 => xla_lookups_pkg.get_meaning(
39758 p_lookup_type => 'XLA_OWNER_TYPE'
39759 ,p_lookup_code => l_component_type_code
39760 )
39761 ,p_token_4 => 'PRODUCT_NAME'
39762 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39763 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39764 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39765 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39766 ,p_ae_header_id => NULL
39767 );
39768
39769 IF (C_LEVEL_ERROR>= g_log_level) THEN
39770 trace
39771 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39772 ,p_level => C_LEVEL_ERROR
39773 ,p_module => l_log_module);
39774 END IF;
39775 END IF;
39776 END IF;
39777 --
39778 --
39779 ------------------------------------------------------------------------------------------------
39780 -- 4219869 Business Flow
39781 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39782 -- Prior Entry. Currently, the following code is always generated.
39783 ------------------------------------------------------------------------------------------------
39784 XLA_AE_LINES_PKG.ValidateCurrentLine;
39785
39786 ------------------------------------------------------------------------------------
39787 -- 4219869 Business Flow
39788 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39789 ------------------------------------------------------------------------------------
39790 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39791
39792 ----------------------------------------------------------------------------------
39793 -- 4219869 Business Flow
39794 -- Update journal entry status -- Need to generate this within IF <condition>
39795 ----------------------------------------------------------------------------------
39796 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39797 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39798 ,p_balance_type_code => l_balance_type_code
39799 );
39800
39801 -------------------------------------------------------------------------------------------
39802 -- 4262811 - Generate the Accrual Reversal lines
39803 -------------------------------------------------------------------------------------------
39804 BEGIN
39805 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39806 (g_array_event(p_event_id).array_value_num('header_index'));
39807 IF l_acc_rev_flag IS NULL THEN
39808 l_acc_rev_flag := 'N';
39809 END IF;
39810 EXCEPTION
39811 WHEN OTHERS THEN
39812 l_acc_rev_flag := 'N';
39813 END;
39814 --
39815 IF (l_acc_rev_flag = 'Y') THEN
39816
39817 -- 4645092 ------------------------------------------------------------------------------
39818 -- To allow MPA report to determine if it should generate report process
39819 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39820 ------------------------------------------------------------------------------------------
39821
39822 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39823 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39824 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
39825 -- call ADRs
39826 -- Bug 4922099
39827 --
39828 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39829 (NVL(l_actual_upg_option, 'N') = 'O') OR
39830 (NVL(l_enc_upg_option, 'N') = 'O')
39831 )
39832 THEN
39833 NULL;
39834 --
39835 --
39836
39837 l_ccid := AcctDerRule_22(
39838 p_application_id => p_application_id
39839 , p_ae_header_id => l_ae_header_id
39840 , p_source_4 => p_source_4
39841 , p_source_4_meaning => p_source_4_meaning
39842 , p_source_5 => p_source_5
39843 , p_source_7 => p_source_7
39844 , p_source_7_meaning => p_source_7_meaning
39845 , p_source_8 => p_source_8
39846 , p_source_9 => p_source_9
39847 , p_source_10 => p_source_10
39848 , p_source_17 => p_source_17
39849 , p_source_30 => p_source_30
39850 , p_source_30_meaning => p_source_30_meaning
39851 , x_transaction_coa_id => l_adr_transaction_coa_id
39852 , x_accounting_coa_id => l_adr_accounting_coa_id
39853 , x_value_type_code => l_adr_value_type_code
39854 , p_side => 'NA'
39858 p_code_combination_id => l_ccid
39855 );
39856
39857 xla_ae_lines_pkg.set_ccid(
39859 , p_value_type_code => l_adr_value_type_code
39860 , p_transaction_coa_id => l_adr_transaction_coa_id
39861 , p_accounting_coa_id => l_adr_accounting_coa_id
39862 , p_adr_code => 'AP_ERV_TAXERV_CASH'
39863 , p_adr_type_code => 'S'
39864 , p_component_type => l_component_type
39865 , p_component_code => l_component_code
39866 , p_component_type_code => l_component_type_code
39867 , p_component_appl_id => l_component_appl_id
39868 , p_amb_context_code => l_amb_context_code
39869 , p_side => 'NA'
39870 );
39871
39872
39873 l_segment := AcctDerRule_4(
39874 p_application_id => p_application_id
39875 , p_ae_header_id => l_ae_header_id
39876 , p_source_4 => p_source_4
39877 , p_source_4_meaning => p_source_4_meaning
39878 , p_source_5 => p_source_5
39879 , p_source_7 => p_source_7
39880 , p_source_7_meaning => p_source_7_meaning
39881 , p_source_8 => p_source_8
39882 , p_source_9 => p_source_9
39883 , p_source_10 => p_source_10
39884 , x_transaction_coa_id => l_adr_transaction_coa_id
39885 , x_accounting_coa_id => l_adr_accounting_coa_id
39886 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39887 , x_flex_value_set_id => l_adr_flex_value_set_id
39888 , x_value_type_code => l_adr_value_type_code
39889 , x_value_combination_id => l_adr_value_combination_id
39890 , x_value_segment_code => l_adr_value_segment_code
39891 , p_side => 'NA'
39892 , p_override_seg_flag => 'Y'
39893 );
39894
39895 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39896
39897 xla_ae_lines_pkg.set_segment(
39898 p_to_segment_code => 'GL_ACCOUNT'
39899 , p_segment_value => l_segment
39900 , p_from_segment_code => l_adr_value_segment_code
39901 , p_from_combination_id => l_adr_value_combination_id
39902 , p_value_type_code => l_adr_value_type_code
39903 , p_transaction_coa_id => l_adr_transaction_coa_id
39904 , p_accounting_coa_id => l_adr_accounting_coa_id
39905 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39906 , p_flex_value_set_id => l_adr_flex_value_set_id
39907 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
39908 , p_adr_type_code => 'S'
39909 , p_component_type => l_component_type
39910 , p_component_code => l_component_code
39911 , p_component_type_code => l_component_type_code
39912 , p_component_appl_id => l_component_appl_id
39913 , p_amb_context_code => l_amb_context_code
39914 , p_entity_code => 'AP_PAYMENTS'
39915 , p_event_class_code => 'PAYMENTS'
39916 , p_side => 'NA'
39917 );
39918
39919 END IF;
39920
39921 l_segment := AcctDerRule_15(
39922 p_application_id => p_application_id
39923 , p_ae_header_id => l_ae_header_id
39924 , p_source_4 => p_source_4
39925 , p_source_4_meaning => p_source_4_meaning
39926 , p_source_7 => p_source_7
39927 , p_source_7_meaning => p_source_7_meaning
39928 , p_source_17 => p_source_17
39929 , x_transaction_coa_id => l_adr_transaction_coa_id
39930 , x_accounting_coa_id => l_adr_accounting_coa_id
39931 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39932 , x_flex_value_set_id => l_adr_flex_value_set_id
39933 , x_value_type_code => l_adr_value_type_code
39934 , x_value_combination_id => l_adr_value_combination_id
39935 , x_value_segment_code => l_adr_value_segment_code
39936 , p_side => 'NA'
39937 , p_override_seg_flag => 'Y'
39938 );
39939
39940 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39941
39942 xla_ae_lines_pkg.set_segment(
39943 p_to_segment_code => 'GL_BALANCING'
39944 , p_segment_value => l_segment
39945 , p_from_segment_code => l_adr_value_segment_code
39946 , p_from_combination_id => l_adr_value_combination_id
39947 , p_value_type_code => l_adr_value_type_code
39948 , p_transaction_coa_id => l_adr_transaction_coa_id
39949 , p_accounting_coa_id => l_adr_accounting_coa_id
39950 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39951 , p_flex_value_set_id => l_adr_flex_value_set_id
39952 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
39953 , p_adr_type_code => 'S'
39954 , p_component_type => l_component_type
39955 , p_component_code => l_component_code
39956 , p_component_type_code => l_component_type_code
39957 , p_component_appl_id => l_component_appl_id
39958 , p_amb_context_code => l_amb_context_code
39959 , p_entity_code => 'AP_PAYMENTS'
39960 , p_event_class_code => 'PAYMENTS'
39961 , p_side => 'NA'
39962 );
39963
39964 END IF;
39965
39966 --
39970 --
39967 --
39968 END IF;
39969
39971 -- Update the line information that should be overwritten
39972 --
39973 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39974 p_header_num => 1);
39975 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39976
39977 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39978
39979 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39980 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39981 END IF;
39982
39983 --
39984 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39985 --
39986 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39987 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39988 ELSE
39989 ---------------------------------------------------------------------------------------------------
39990 -- 4262811a Switch Sign
39991 ---------------------------------------------------------------------------------------------------
39992 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39993 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39995 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39996 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39997 -- 5132302
39998 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39999 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40000
40001 END IF;
40002
40003 -- 4955764
40004 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40005 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40006
40007
40008 XLA_AE_LINES_PKG.ValidateCurrentLine;
40009 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40010
40011 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40012 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40013 ,p_balance_type_code => l_balance_type_code);
40014
40015 END IF;
40016
40017 -----------------------------------------------------------------------------------------
40018 -- 4262811 Multiperiod Accounting
40019 -----------------------------------------------------------------------------------------
40020 -- No MPA option is assigned.
40021
40022
40023 END IF;
40024 END IF;
40025 --
40026
40027 --
40028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40029 trace
40030 (p_msg => 'END of AcctLineType_84'
40031 ,p_level => C_LEVEL_PROCEDURE
40032 ,p_module => l_log_module);
40033 END IF;
40034 --
40035 EXCEPTION
40036 WHEN xla_exceptions_pkg.application_exception THEN
40037 RAISE;
40038 WHEN OTHERS THEN
40039 xla_exceptions_pkg.raise_message
40040 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_84');
40041 END AcctLineType_84;
40042 --
40043
40044 ---------------------------------------
40045 --
40046 -- PRIVATE FUNCTION
40047 -- AcctLineType_85
40048 --
40049 ---------------------------------------
40050 PROCEDURE AcctLineType_85 (
40051 p_application_id IN NUMBER
40052 ,p_event_id IN NUMBER
40053 ,p_calculate_acctd_flag IN VARCHAR2
40054 ,p_calculate_g_l_flag IN VARCHAR2
40055 ,p_actual_flag IN OUT VARCHAR2
40056 ,p_balance_type_code OUT VARCHAR2
40057 ,p_gain_or_loss_ref OUT VARCHAR2
40058
40059 --Payment Distribution (Payment Rate) Ledger Amount
40060 , p_source_9 IN NUMBER
40061 --When to Account for Payment Option
40062 , p_source_38 IN VARCHAR2
40063 --Payment Distribution Type
40064 , p_source_39 IN VARCHAR2
40065 , p_source_39_meaning IN VARCHAR2
40066 --Accounting Reversal Indicator
40067 , p_source_40 IN VARCHAR2
40068 --Payment Distribution Amount
40069 , p_source_41 IN NUMBER
40070 --Business Flow Accounts Payable Application Identifier
40071 , p_source_42 IN NUMBER
40072 --Payment Distribution Identifier
40073 , p_source_47 IN NUMBER
40074 --Distribution Link Type
40075 , p_source_48 IN VARCHAR2
40076 --Payment Currency Code
40077 , p_source_49 IN VARCHAR2
40078 --Override Accounted Amount Indicator
40079 , p_source_53 IN VARCHAR2
40080 , p_source_53_meaning IN VARCHAR2
40081 --Third Party Type
40082 , p_source_56 IN VARCHAR2
40083 --Payment Distribution Reversed Identifier
40084 , p_source_57 IN NUMBER
40085 --Invoice Distribution Tax Line Identifier
40086 , p_source_58 IN NUMBER
40087 --Invoice Distribution Summary Tax Line Identifier
40088 , p_source_59 IN NUMBER
40089 --Payment Type
40093 , p_source_61 IN NUMBER
40090 , p_source_60 IN VARCHAR2
40091 , p_source_60_meaning IN VARCHAR2
40092 --Invoice Distribution Amount of the Payment Distribution
40094 --Business Flow Invoice Distribution Type
40095 , p_source_62 IN VARCHAR2
40096 --Business Flow Invoice Entity Code
40097 , p_source_63 IN VARCHAR2
40098 --Business Flow Invoice Distribution Identifier
40099 , p_source_64 IN NUMBER
40100 --Business Flow Invoice Identifier
40101 , p_source_65 IN NUMBER
40102 --Invoice Distribution Tax Distribution Identifier from Tax
40103 , p_source_66 IN NUMBER
40104 --Purchasing Encumbrance Option
40105 , p_source_102 IN VARCHAR2
40106 , p_source_102_meaning IN VARCHAR2
40107 --Invoice Encumbered Option
40108 , p_source_104 IN VARCHAR2
40109 , p_source_104_meaning IN VARCHAR2
40110 )
40111 IS
40112
40113 l_component_type VARCHAR2(80);
40114 l_component_code VARCHAR2(30);
40115 l_component_type_code VARCHAR2(1);
40116 l_component_appl_id INTEGER;
40117 l_amb_context_code VARCHAR2(30);
40118 l_entity_code VARCHAR2(30);
40119 l_event_class_code VARCHAR2(30);
40120 l_ae_header_id NUMBER;
40121 l_event_type_code VARCHAR2(30);
40122 l_line_definition_code VARCHAR2(30);
40123 l_line_definition_owner_code VARCHAR2(1);
40124 --
40125 -- adr variables
40126 l_segment VARCHAR2(30);
40127 l_ccid NUMBER;
40128 l_adr_transaction_coa_id NUMBER;
40129 l_adr_accounting_coa_id NUMBER;
40130 l_adr_flexfield_segment_code VARCHAR2(30);
40131 l_adr_flex_value_set_id NUMBER;
40132 l_adr_value_type_code VARCHAR2(30);
40133 l_adr_value_combination_id NUMBER;
40134 l_adr_value_segment_code VARCHAR2(30);
40135
40136 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40137 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40138 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40139 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40140
40141 -- 4262811 Variables ------------------------------------------------------------------------------------------
40142 l_entered_amt_idx NUMBER;
40143 l_accted_amt_idx NUMBER;
40144 l_acc_rev_flag VARCHAR2(1);
40145 l_accrual_line_num NUMBER;
40146 l_tmp_amt NUMBER;
40147 l_acc_rev_natural_side_code VARCHAR2(1);
40148
40149 l_num_entries NUMBER;
40150 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40151 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40152 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40153 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40154 l_recog_line_1 NUMBER;
40155 l_recog_line_2 NUMBER;
40156
40157 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40158 l_bflow_applied_to_amt NUMBER; -- 5132302
40159 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40160
40161 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40162
40163 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40164 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40165
40166 ---------------------------------------------------------------------------------------------------------------
40167
40168
40169 --
40170 -- bulk performance
40171 --
40172 l_balance_type_code VARCHAR2(1);
40173 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40174 l_log_module VARCHAR2(240);
40175
40176 --
40177 -- Upgrade strategy
40178 --
40179 l_actual_upg_option VARCHAR2(1);
40180 l_enc_upg_option VARCHAR2(1);
40181
40182 --
40183 BEGIN
40184 --
40185 IF g_log_enabled THEN
40186 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
40187 END IF;
40188 --
40189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40190
40191 trace
40192 (p_msg => 'BEGIN of AcctLineType_85'
40193 ,p_level => C_LEVEL_PROCEDURE
40194 ,p_module => l_log_module);
40195
40196 END IF;
40197 --
40198 l_component_type := 'AMB_JLT';
40199 l_component_code := 'AP_EX_RATE_VAR_PMT_ENC';
40200 l_component_type_code := 'S';
40201 l_component_appl_id := 200;
40202 l_amb_context_code := 'DEFAULT';
40203 l_entity_code := 'AP_PAYMENTS';
40204 l_event_class_code := 'PAYMENTS';
40205 l_event_type_code := 'PAYMENTS_ALL';
40206 l_line_definition_owner_code := 'S';
40207 l_line_definition_code := 'ENC_PAYMENTS_ALL';
40208 --
40209 l_balance_type_code := 'E';
40210 l_segment := NULL;
40211 l_ccid := NULL;
40212 l_adr_transaction_coa_id := NULL;
40213 l_adr_accounting_coa_id := NULL;
40214 l_adr_flexfield_segment_code := NULL;
40215 l_adr_flex_value_set_id := NULL;
40216 l_adr_value_type_code := NULL;
40217 l_adr_value_combination_id := NULL;
40218 l_adr_value_segment_code := NULL;
40219
40223 l_budgetary_control_flag := 'N';
40220 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
40221 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
40222 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40224
40225 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40226 l_bflow_applied_to_amt := NULL; -- 5132302
40227 l_entered_amt_idx := NULL; -- 4262811
40228 l_accted_amt_idx := NULL; -- 4262811
40229 l_acc_rev_flag := NULL; -- 4262811
40230 l_accrual_line_num := NULL; -- 4262811
40231 l_tmp_amt := NULL; -- 4262811
40232 --
40233 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
40234 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
40235 return;
40236 END IF;
40237
40238 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40239 l_balance_type_code <> 'B' THEN
40240 IF NVL(p_source_38,'
40241 ') <> 'CLEAR_CLEAR' AND
40242 NVL(p_source_39,'
40243 ') = 'EXCHANGE RATE VARIANCE' AND
40244 NVL(p_source_60,'
40245 ') <> 'R' AND
40246 NVL(p_source_102,'
40247 ') = 'Y' AND
40248 NVL(p_source_104,'
40249 ') = 'Y'
40250 THEN
40251
40252 --
40253 XLA_AE_LINES_PKG.SetNewLine;
40254
40255 p_balance_type_code := l_balance_type_code;
40256 -- set the flag so later we will know whether the gain loss line needs to be created
40257
40258 IF(l_balance_type_code = 'A' ) THEN
40259 p_actual_flag :='G';
40260 END IF;
40261
40262 --
40263 -- bulk performance
40264 --
40265 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40266 p_header_num => 0); -- 4262811
40267 --
40268 -- set accounting line options
40269 --
40270 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40271 p_natural_side_code => 'C'
40272 , p_gain_or_loss_flag => 'Y'
40273 , p_gl_transfer_mode_code => 'S'
40274 , p_acct_entry_type_code => 'E'
40275 , p_switch_side_flag => 'Y'
40276 , p_merge_duplicate_code => 'A'
40277 );
40278 --
40279 l_acc_rev_natural_side_code := 'D'; -- 4262811
40280 --
40281 --
40282 -- set accounting line type info
40283 --
40284 xla_ae_lines_pkg.SetAcctLineType
40285 (p_component_type => l_component_type
40286 ,p_event_type_code => l_event_type_code
40287 ,p_line_definition_owner_code => l_line_definition_owner_code
40288 ,p_line_definition_code => l_line_definition_code
40289 ,p_accounting_line_code => l_component_code
40290 ,p_accounting_line_type_code => l_component_type_code
40291 ,p_accounting_line_appl_id => l_component_appl_id
40292 ,p_amb_context_code => l_amb_context_code
40293 ,p_entity_code => l_entity_code
40294 ,p_event_class_code => l_event_class_code);
40295 --
40296 -- set accounting class
40297 --
40298 xla_ae_lines_pkg.SetAcctClass(
40299 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
40300 , p_ae_header_id => l_ae_header_id
40301 );
40302
40303 --
40304 -- set rounding class
40305 --
40306 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40307 'EXCHANGE_RATE_VARIANCE';
40308
40309 --
40310 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40311 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40312 --
40313 -- bulk performance
40314 --
40315 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40316
40317 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40318 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40319
40320 -- 4955764
40321 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40322 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40323
40324 -- 4458381 Public Sector Enh
40325
40326 --
40327 -- set accounting attributes for the line type
40328 --
40329 l_entered_amt_idx := 10;
40330 l_accted_amt_idx := 12;
40331 l_bflow_applied_to_amt_idx := 2; -- 5132302
40332 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40333 l_rec_acct_attrs.array_char_value(1) := p_source_40;
40334 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
40335 l_rec_acct_attrs.array_num_value(2) := p_source_61;
40336 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
40337 l_rec_acct_attrs.array_num_value(3) := p_source_42;
40338 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40339 l_rec_acct_attrs.array_char_value(4) := p_source_62;
40340 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
40344 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40341 l_rec_acct_attrs.array_char_value(5) := p_source_63;
40342 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
40343 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
40345 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
40346 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
40347 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
40348 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
40349 l_rec_acct_attrs.array_char_value(9) := p_source_48;
40350 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
40351 l_rec_acct_attrs.array_num_value(10) := p_source_41;
40352 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
40353 l_rec_acct_attrs.array_char_value(11) := p_source_49;
40354 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
40355 l_rec_acct_attrs.array_num_value(12) := p_source_9;
40356 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
40357 l_rec_acct_attrs.array_char_value(13) := p_source_53;
40358 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
40359 l_rec_acct_attrs.array_char_value(14) := p_source_56;
40360 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
40361 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
40362 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
40363 l_rec_acct_attrs.array_char_value(16) := p_source_48;
40364 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
40365 l_rec_acct_attrs.array_num_value(17) := p_source_58;
40366 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
40367 l_rec_acct_attrs.array_num_value(18) := p_source_66;
40368 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
40369 l_rec_acct_attrs.array_num_value(19) := p_source_59;
40370
40371 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40372 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40373
40374 ---------------------------------------------------------------------------------------------------------------
40375 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40376 ---------------------------------------------------------------------------------------------------------------
40377 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40378
40379 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40380 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40381
40382 IF xla_accounting_cache_pkg.GetValueChar
40383 (p_source_code => 'LEDGER_CATEGORY_CODE'
40384 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40385 AND l_bflow_method_code = 'PRIOR_ENTRY'
40386 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40387 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40388 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40389 )
40390 THEN
40391 xla_ae_lines_pkg.BflowUpgEntry
40392 (p_business_method_code => l_bflow_method_code
40393 ,p_business_class_code => l_bflow_class_code
40394 ,p_balance_type => l_balance_type_code);
40395 ELSE
40396 NULL;
40397 XLA_AE_LINES_PKG.business_flow_validation(
40398 p_business_method_code => l_bflow_method_code
40399 ,p_business_class_code => l_bflow_class_code
40400 ,p_inherit_description_flag => l_inherit_desc_flag);
40401 END IF;
40402
40403 --
40404 -- call analytical criteria
40405 --
40406 -- Inherited Analytical Criteria for business flow method of Prior Entry.
40407 --
40408 -- call description
40409 --
40410 -- No description or it is inherited.
40411 --
40412 -- call ADRs
40413 -- Bug 4922099
40414 --
40415 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40416 (NVL(l_actual_upg_option, 'N') = 'O') OR
40417 (NVL(l_enc_upg_option, 'N') = 'O')
40418 )
40419 THEN
40420 NULL;
40421 --
40422 --
40423
40424 --
40425 --
40426 END IF;
40427 --
40428 -- Bug 4922099
40429 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40430 (NVL(l_enc_upg_option, 'N') = 'O')
40431 ) AND
40432 (l_bflow_method_code = 'PRIOR_ENTRY')
40433 )
40434 THEN
40435 IF
40436 --
40437 1 = 1
40438 --
40439 THEN
40440 xla_accounting_err_pkg.build_message
40441 (p_appli_s_name => 'XLA'
40442 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40443 ,p_token_1 => 'LINE_NUMBER'
40444 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40445 ,p_token_2 => 'LINE_TYPE_NAME'
40446 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40447 l_component_type
40451 ,l_amb_context_code
40448 ,l_component_code
40449 ,l_component_type_code
40450 ,l_component_appl_id
40452 ,l_entity_code
40453 ,l_event_class_code
40454 )
40455 ,p_token_3 => 'OWNER'
40456 ,p_value_3 => xla_lookups_pkg.get_meaning(
40457 p_lookup_type => 'XLA_OWNER_TYPE'
40458 ,p_lookup_code => l_component_type_code
40459 )
40460 ,p_token_4 => 'PRODUCT_NAME'
40461 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40462 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40463 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40464 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40465 ,p_ae_header_id => NULL
40466 );
40467
40468 IF (C_LEVEL_ERROR>= g_log_level) THEN
40469 trace
40470 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40471 ,p_level => C_LEVEL_ERROR
40472 ,p_module => l_log_module);
40473 END IF;
40474 END IF;
40475 END IF;
40476 --
40477 --
40478 ------------------------------------------------------------------------------------------------
40479 -- 4219869 Business Flow
40480 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40481 -- Prior Entry. Currently, the following code is always generated.
40482 ------------------------------------------------------------------------------------------------
40483 -- No ValidateCurrentLine for business flow method of Prior Entry
40484
40485 ------------------------------------------------------------------------------------
40486 -- 4219869 Business Flow
40487 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40488 ------------------------------------------------------------------------------------
40489 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40490
40491 ----------------------------------------------------------------------------------
40492 -- 4219869 Business Flow
40493 -- Update journal entry status -- Need to generate this within IF <condition>
40494 ----------------------------------------------------------------------------------
40495 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40496 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40497 ,p_balance_type_code => l_balance_type_code
40498 );
40499
40500 -------------------------------------------------------------------------------------------
40501 -- 4262811 - Generate the Accrual Reversal lines
40502 -------------------------------------------------------------------------------------------
40503 BEGIN
40504 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40505 (g_array_event(p_event_id).array_value_num('header_index'));
40506 IF l_acc_rev_flag IS NULL THEN
40507 l_acc_rev_flag := 'N';
40508 END IF;
40509 EXCEPTION
40510 WHEN OTHERS THEN
40511 l_acc_rev_flag := 'N';
40512 END;
40513 --
40514 IF (l_acc_rev_flag = 'Y') THEN
40515
40516 -- 4645092 ------------------------------------------------------------------------------
40517 -- To allow MPA report to determine if it should generate report process
40518 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40519 ------------------------------------------------------------------------------------------
40520
40521 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40522 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40523 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
40524 -- call ADRs
40525 -- Bug 4922099
40526 --
40527 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40528 (NVL(l_actual_upg_option, 'N') = 'O') OR
40529 (NVL(l_enc_upg_option, 'N') = 'O')
40530 )
40531 THEN
40532 NULL;
40533 --
40534 --
40535
40536 --
40537 --
40538 END IF;
40539
40540 --
40541 -- Update the line information that should be overwritten
40542 --
40543 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40544 p_header_num => 1);
40545 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40546
40550 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40547 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40548
40549 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40551 END IF;
40552
40553 --
40554 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40555 --
40556 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40557 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40558 ELSE
40559 ---------------------------------------------------------------------------------------------------
40560 -- 4262811a Switch Sign
40561 ---------------------------------------------------------------------------------------------------
40562 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40563 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40564 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40565 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40566 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40567 -- 5132302
40568 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40569 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40570
40571 END IF;
40572
40573 -- 4955764
40574 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40575 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40576
40577
40578 XLA_AE_LINES_PKG.ValidateCurrentLine;
40579 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40580
40581 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40582 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40583 ,p_balance_type_code => l_balance_type_code);
40584
40585 END IF;
40586
40587 -----------------------------------------------------------------------------------------
40588 -- 4262811 Multiperiod Accounting
40589 -----------------------------------------------------------------------------------------
40590 -- No MPA option is assigned.
40591
40592
40593 END IF;
40594 END IF;
40595 --
40596
40597 --
40598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40599 trace
40600 (p_msg => 'END of AcctLineType_85'
40601 ,p_level => C_LEVEL_PROCEDURE
40602 ,p_module => l_log_module);
40603 END IF;
40604 --
40605 EXCEPTION
40606 WHEN xla_exceptions_pkg.application_exception THEN
40607 RAISE;
40608 WHEN OTHERS THEN
40609 xla_exceptions_pkg.raise_message
40610 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_85');
40611 END AcctLineType_85;
40612 --
40613
40614 ---------------------------------------
40615 --
40616 -- PRIVATE FUNCTION
40617 -- AcctLineType_86
40618 --
40619 ---------------------------------------
40620 PROCEDURE AcctLineType_86 (
40621 p_application_id IN NUMBER
40622 ,p_event_id IN NUMBER
40623 ,p_calculate_acctd_flag IN VARCHAR2
40624 ,p_calculate_g_l_flag IN VARCHAR2
40625 ,p_actual_flag IN OUT VARCHAR2
40626 ,p_balance_type_code OUT VARCHAR2
40627 ,p_gain_or_loss_ref OUT VARCHAR2
40628
40629 --Automatic Offsets Value
40630 , p_source_4 IN VARCHAR2
40631 , p_source_4_meaning IN VARCHAR2
40632 --Purchase Order Rate Variance Gain Account
40633 , p_source_5 IN NUMBER
40634 --Invoice Distribution Ledger Amount
40635 , p_source_6 IN NUMBER
40636 --Destination Type of the PO Distribution
40637 , p_source_7 IN VARCHAR2
40638 , p_source_7_meaning IN VARCHAR2
40639 --Purchase Order Rate Variance Loss Account
40640 , p_source_8 IN NUMBER
40641 --Invoice Distribution Account
40642 , p_source_17 IN NUMBER
40643 --Automatic Offsets Flag
40644 , p_source_30 IN VARCHAR2
40645 , p_source_30_meaning IN VARCHAR2
40646 --When to Account for Payment Option
40647 , p_source_38 IN VARCHAR2
40648 --Accounting Reversal Indicator
40649 , p_source_40 IN VARCHAR2
40650 --Business Flow Accounts Payable Application Identifier
40651 , p_source_42 IN NUMBER
40652 --Distribution Link Type
40653 , p_source_48 IN VARCHAR2
40654 --Override Accounted Amount Indicator
40655 , p_source_53 IN VARCHAR2
40656 , p_source_53_meaning IN VARCHAR2
40657 --Third Party Type
40658 , p_source_56 IN VARCHAR2
40659 --Invoice Distribution Tax Line Identifier
40660 , p_source_58 IN NUMBER
40661 --Invoice Distribution Summary Tax Line Identifier
40662 , p_source_59 IN NUMBER
40663 --Invoice Distribution Tax Distribution Identifier from Tax
40664 , p_source_66 IN NUMBER
40665 --Prepayment Distribution Type
40666 , p_source_67 IN VARCHAR2
40667 --Recipient Invoice Distribution Type
40671 , p_source_71 IN NUMBER
40668 , p_source_68 IN VARCHAR2
40669 , p_source_68_meaning IN VARCHAR2
40670 --Prepayment Application Distribution Identifier
40672 --Invoice Identifier
40673 , p_source_72 IN NUMBER
40674 --Business Flow Prepayment Invoice Distribution Type
40675 , p_source_73 IN VARCHAR2
40676 --Business Flow Prepayment Invoice Entity Code
40677 , p_source_74 IN VARCHAR2
40678 --Business Flow Prepayment Invoice Distribution Identifier
40679 , p_source_75 IN NUMBER
40680 --Business Flow Prepayment Invoice Identifier
40681 , p_source_76 IN NUMBER
40682 --Upgrade Encumbrance Credit Account Class
40683 , p_source_77 IN VARCHAR2
40684 --Payables Encumbrance Upgrade Credit Account
40685 , p_source_78 IN NUMBER
40686 --Payables Encumbrance Upgrade Credit Amount
40687 , p_source_79 IN NUMBER
40688 --Invoice Currency Code
40689 , p_source_80 IN VARCHAR2
40690 --Payables Encumbrance Upgrade Credit Base Amount
40691 , p_source_81 IN NUMBER
40692 --Upgrade Encumbrance Debit Account Class
40693 , p_source_82 IN VARCHAR2
40694 --Payables Encumbrance Upgrade Debit Account
40695 , p_source_83 IN NUMBER
40696 --Payables Encumbrance Upgrade Debit Amount
40697 , p_source_84 IN NUMBER
40698 --Payables Encumbrance Upgrade Debit Base Amount
40699 , p_source_85 IN NUMBER
40700 --Payables Encumbrance Upgrade Option
40701 , p_source_86 IN VARCHAR2
40702 --Prepayment Distribution Amount
40703 , p_source_87 IN NUMBER
40704 --Deferred Accounting End Date
40705 , p_source_90 IN DATE
40706 --Deferred Accounting Option
40707 , p_source_91 IN VARCHAR2
40708 --Deferred Accounting Start Date
40709 , p_source_92 IN DATE
40710 --Invoice Supplier Identifier
40711 , p_source_93 IN NUMBER
40712 --Invoice Supplier Site Identifier
40713 , p_source_94 IN NUMBER
40714 --Identifier of the Prepayment Application Reversed
40715 , p_source_95 IN NUMBER
40716 --Payables Upgrade Credit Encumbrance Type Identifier
40717 , p_source_96 IN NUMBER
40718 --Payables Upgrade Debit Encumbrance Type Identifier
40719 , p_source_97 IN NUMBER
40720 --Prepayment Payment Currency Code
40721 , p_source_98 IN VARCHAR2
40722 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
40723 , p_source_99 IN NUMBER
40724 --Accrue on Receipt Option
40725 , p_source_100 IN VARCHAR2
40726 , p_source_100_meaning IN VARCHAR2
40727 --Prepayment Payment Exchange Date
40728 , p_source_121 IN DATE
40729 --Prepayment Payment Exchange Rate
40730 , p_source_122 IN NUMBER
40731 --Prepayment Payment Exchange Rate Type
40732 , p_source_123 IN VARCHAR2
40733 )
40734 IS
40735
40736 l_component_type VARCHAR2(80);
40737 l_component_code VARCHAR2(30);
40738 l_component_type_code VARCHAR2(1);
40739 l_component_appl_id INTEGER;
40740 l_amb_context_code VARCHAR2(30);
40741 l_entity_code VARCHAR2(30);
40742 l_event_class_code VARCHAR2(30);
40743 l_ae_header_id NUMBER;
40744 l_event_type_code VARCHAR2(30);
40745 l_line_definition_code VARCHAR2(30);
40746 l_line_definition_owner_code VARCHAR2(1);
40747 --
40748 -- adr variables
40749 l_segment VARCHAR2(30);
40750 l_ccid NUMBER;
40751 l_adr_transaction_coa_id NUMBER;
40752 l_adr_accounting_coa_id NUMBER;
40753 l_adr_flexfield_segment_code VARCHAR2(30);
40754 l_adr_flex_value_set_id NUMBER;
40755 l_adr_value_type_code VARCHAR2(30);
40756 l_adr_value_combination_id NUMBER;
40757 l_adr_value_segment_code VARCHAR2(30);
40758
40759 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40760 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40761 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40762 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40763
40764 -- 4262811 Variables ------------------------------------------------------------------------------------------
40765 l_entered_amt_idx NUMBER;
40766 l_accted_amt_idx NUMBER;
40767 l_acc_rev_flag VARCHAR2(1);
40768 l_accrual_line_num NUMBER;
40769 l_tmp_amt NUMBER;
40770 l_acc_rev_natural_side_code VARCHAR2(1);
40771
40772 l_num_entries NUMBER;
40773 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40774 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40775 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40776 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40777 l_recog_line_1 NUMBER;
40778 l_recog_line_2 NUMBER;
40779
40780 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40781 l_bflow_applied_to_amt NUMBER; -- 5132302
40782 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40783
40784 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40785
40786 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40790
40787 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40788
40789 ---------------------------------------------------------------------------------------------------------------
40791
40792 --
40793 -- bulk performance
40794 --
40795 l_balance_type_code VARCHAR2(1);
40796 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40797 l_log_module VARCHAR2(240);
40798
40799 --
40800 -- Upgrade strategy
40801 --
40802 l_actual_upg_option VARCHAR2(1);
40803 l_enc_upg_option VARCHAR2(1);
40804
40805 --
40806 BEGIN
40807 --
40808 IF g_log_enabled THEN
40809 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
40810 END IF;
40811 --
40812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40813
40814 trace
40815 (p_msg => 'BEGIN of AcctLineType_86'
40816 ,p_level => C_LEVEL_PROCEDURE
40817 ,p_module => l_log_module);
40818
40819 END IF;
40820 --
40821 l_component_type := 'AMB_JLT';
40822 l_component_code := 'AP_EX_RATE_VAR_PREPAY_PAY_RATE';
40823 l_component_type_code := 'S';
40824 l_component_appl_id := 200;
40825 l_amb_context_code := 'DEFAULT';
40826 l_entity_code := 'AP_INVOICES';
40827 l_event_class_code := 'PREPAYMENT APPLICATIONS';
40828 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
40829 l_line_definition_owner_code := 'S';
40830 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
40831 --
40832 l_balance_type_code := 'A';
40833 l_segment := NULL;
40834 l_ccid := NULL;
40835 l_adr_transaction_coa_id := NULL;
40836 l_adr_accounting_coa_id := NULL;
40837 l_adr_flexfield_segment_code := NULL;
40838 l_adr_flex_value_set_id := NULL;
40839 l_adr_value_type_code := NULL;
40840 l_adr_value_combination_id := NULL;
40841 l_adr_value_segment_code := NULL;
40842
40843 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40844 l_bflow_class_code := ''; -- 4219869 Business Flow
40845 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40846 l_budgetary_control_flag := 'N';
40847
40848 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40849 l_bflow_applied_to_amt := NULL; -- 5132302
40850 l_entered_amt_idx := NULL; -- 4262811
40851 l_accted_amt_idx := NULL; -- 4262811
40852 l_acc_rev_flag := NULL; -- 4262811
40853 l_accrual_line_num := NULL; -- 4262811
40854 l_tmp_amt := NULL; -- 4262811
40855 --
40856 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
40857 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
40858 return;
40859 END IF;
40860
40861 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40862 l_balance_type_code <> 'B' THEN
40863 IF NVL(p_source_38,'
40864 ') <> 'CLEAR_CLEAR' AND
40865 (NVL(p_source_67,'
40866 ') = 'PREPAY APPL' OR
40867 NVL(p_source_67,'
40868 ') = 'PREPAY APPL NONREC TAX' OR
40869 NVL(p_source_67,'
40870 ') = 'PREPAY APPL REC TAX') AND
40871 NVL(p_source_68,'
40872 ') = 'ERV' AND
40873 NVL(p_source_100,'
40874 ') = 'Y'
40875 THEN
40876
40877 --
40878 XLA_AE_LINES_PKG.SetNewLine;
40879
40880 p_balance_type_code := l_balance_type_code;
40881 -- set the flag so later we will know whether the gain loss line needs to be created
40882
40883 IF(l_balance_type_code = 'A' ) THEN
40884 p_actual_flag :='G';
40885 END IF;
40886
40887 --
40888 -- bulk performance
40889 --
40890 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40891 p_header_num => 0); -- 4262811
40892 --
40893 -- set accounting line options
40894 --
40895 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40896 p_natural_side_code => 'C'
40897 , p_gain_or_loss_flag => 'Y'
40898 , p_gl_transfer_mode_code => 'S'
40899 , p_acct_entry_type_code => 'A'
40900 , p_switch_side_flag => 'Y'
40901 , p_merge_duplicate_code => 'A'
40902 );
40903 --
40904 l_acc_rev_natural_side_code := 'D'; -- 4262811
40905 --
40906 --
40907 -- set accounting line type info
40908 --
40909 xla_ae_lines_pkg.SetAcctLineType
40910 (p_component_type => l_component_type
40911 ,p_event_type_code => l_event_type_code
40912 ,p_line_definition_owner_code => l_line_definition_owner_code
40913 ,p_line_definition_code => l_line_definition_code
40914 ,p_accounting_line_code => l_component_code
40915 ,p_accounting_line_type_code => l_component_type_code
40916 ,p_accounting_line_appl_id => l_component_appl_id
40917 ,p_amb_context_code => l_amb_context_code
40918 ,p_entity_code => l_entity_code
40919 ,p_event_class_code => l_event_class_code);
40920 --
40921 -- set accounting class
40922 --
40923 xla_ae_lines_pkg.SetAcctClass(
40927
40924 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
40925 , p_ae_header_id => l_ae_header_id
40926 );
40928 --
40929 -- set rounding class
40930 --
40931 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40932 'EXCHANGE_RATE_VARIANCE';
40933
40934 --
40935 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40936 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40937 --
40938 -- bulk performance
40939 --
40940 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40941
40942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40943 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40944
40945 -- 4955764
40946 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40947 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40948
40949 -- 4458381 Public Sector Enh
40950
40951 --
40952 -- set accounting attributes for the line type
40953 --
40954 l_entered_amt_idx := 25;
40955 l_accted_amt_idx := 30;
40956 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40957 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40958 l_rec_acct_attrs.array_char_value(1) := p_source_40;
40959 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40960 l_rec_acct_attrs.array_num_value(2) :=
40961 xla_ae_sources_pkg.GetSystemSourceNum(
40962 p_source_code => 'XLA_EVENT_APPL_ID'
40963 , p_source_type_code => 'Y'
40964 , p_source_application_id => 602
40965 );
40966 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40967 l_rec_acct_attrs.array_char_value(3) := p_source_48;
40968 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40969 l_rec_acct_attrs.array_char_value(4) :=
40970 xla_ae_sources_pkg.GetSystemSourceChar(
40971 p_source_code => 'XLA_ENTITY_CODE'
40972 , p_source_type_code => 'Y'
40973 , p_source_application_id => 602
40974 );
40975 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40976 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
40977 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40978 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
40979 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40980 l_rec_acct_attrs.array_num_value(7) := p_source_42;
40981 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40982 l_rec_acct_attrs.array_char_value(8) := p_source_73;
40983 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40984 l_rec_acct_attrs.array_char_value(9) := p_source_74;
40985 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40986 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
40987 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40988 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
40989 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40990 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
40991 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40992 l_rec_acct_attrs.array_char_value(13) := p_source_48;
40993 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
40994 l_rec_acct_attrs.array_char_value(14) := p_source_77;
40995 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
40996 l_rec_acct_attrs.array_num_value(15) := p_source_78;
40997 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
40998 l_rec_acct_attrs.array_num_value(16) := p_source_79;
40999 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
41000 l_rec_acct_attrs.array_char_value(17) := p_source_80;
41001 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
41002 l_rec_acct_attrs.array_num_value(18) := p_source_81;
41003 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
41004 l_rec_acct_attrs.array_char_value(19) := p_source_82;
41005 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
41006 l_rec_acct_attrs.array_num_value(20) := p_source_83;
41007 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
41008 l_rec_acct_attrs.array_num_value(21) := p_source_84;
41009 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
41010 l_rec_acct_attrs.array_char_value(22) := p_source_80;
41011 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
41012 l_rec_acct_attrs.array_num_value(23) := p_source_85;
41013 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
41014 l_rec_acct_attrs.array_char_value(24) := p_source_86;
41015 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
41016 l_rec_acct_attrs.array_num_value(25) := p_source_87;
41017 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
41018 l_rec_acct_attrs.array_char_value(26) := p_source_98;
41019 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
41020 l_rec_acct_attrs.array_date_value(27) := p_source_121;
41021 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
41025 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
41022 l_rec_acct_attrs.array_num_value(28) := p_source_122;
41023 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
41024 l_rec_acct_attrs.array_char_value(29) := p_source_123;
41026 l_rec_acct_attrs.array_num_value(30) := p_source_99;
41027 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
41028 l_rec_acct_attrs.array_date_value(31) := p_source_90;
41029 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
41030 l_rec_acct_attrs.array_char_value(32) := p_source_91;
41031 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
41032 l_rec_acct_attrs.array_date_value(33) := p_source_92;
41033 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
41034 l_rec_acct_attrs.array_char_value(34) := p_source_53;
41035 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
41036 l_rec_acct_attrs.array_num_value(35) := p_source_93;
41037 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
41038 l_rec_acct_attrs.array_num_value(36) := p_source_94;
41039 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
41040 l_rec_acct_attrs.array_char_value(37) := p_source_56;
41041 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
41042 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
41043 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
41044 l_rec_acct_attrs.array_char_value(39) := p_source_48;
41045 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
41046 l_rec_acct_attrs.array_num_value(40) := p_source_58;
41047 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
41048 l_rec_acct_attrs.array_num_value(41) := p_source_66;
41049 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
41050 l_rec_acct_attrs.array_num_value(42) := p_source_59;
41051 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
41052 l_rec_acct_attrs.array_num_value(43) := p_source_96;
41053 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
41054 l_rec_acct_attrs.array_num_value(44) := p_source_97;
41055
41056 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41057 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41058
41059 ---------------------------------------------------------------------------------------------------------------
41060 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41061 ---------------------------------------------------------------------------------------------------------------
41062 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41063
41064 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41065 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41066
41067 IF xla_accounting_cache_pkg.GetValueChar
41068 (p_source_code => 'LEDGER_CATEGORY_CODE'
41069 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41070 AND l_bflow_method_code = 'PRIOR_ENTRY'
41071 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41072 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41073 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41074 )
41075 THEN
41076 xla_ae_lines_pkg.BflowUpgEntry
41077 (p_business_method_code => l_bflow_method_code
41078 ,p_business_class_code => l_bflow_class_code
41079 ,p_balance_type => l_balance_type_code);
41080 ELSE
41081 NULL;
41082 -- No business flow processing for business flow method of NONE.
41083 END IF;
41084
41085 --
41086 -- call analytical criteria
41087 --
41088
41089 --
41090 -- call description
41091 --
41092 -- No description or it is inherited.
41093 --
41094 -- call ADRs
41095 -- Bug 4922099
41096 --
41097 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41098 (NVL(l_actual_upg_option, 'N') = 'O') OR
41099 (NVL(l_enc_upg_option, 'N') = 'O')
41100 )
41101 THEN
41102 NULL;
41103 --
41104 --
41105
41106 l_ccid := AcctDerRule_23(
41107 p_application_id => p_application_id
41108 , p_ae_header_id => l_ae_header_id
41109 , p_source_4 => p_source_4
41110 , p_source_4_meaning => p_source_4_meaning
41111 , p_source_5 => p_source_5
41112 , p_source_6 => p_source_6
41113 , p_source_7 => p_source_7
41114 , p_source_7_meaning => p_source_7_meaning
41115 , p_source_8 => p_source_8
41116 , p_source_17 => p_source_17
41117 , p_source_30 => p_source_30
41118 , p_source_30_meaning => p_source_30_meaning
41119 , x_transaction_coa_id => l_adr_transaction_coa_id
41120 , x_accounting_coa_id => l_adr_accounting_coa_id
41121 , x_value_type_code => l_adr_value_type_code
41122 , p_side => 'NA'
41123 );
41124
41125 xla_ae_lines_pkg.set_ccid(
41126 p_code_combination_id => l_ccid
41127 , p_value_type_code => l_adr_value_type_code
41128 , p_transaction_coa_id => l_adr_transaction_coa_id
41129 , p_accounting_coa_id => l_adr_accounting_coa_id
41133 , p_component_code => l_component_code
41130 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
41131 , p_adr_type_code => 'S'
41132 , p_component_type => l_component_type
41134 , p_component_type_code => l_component_type_code
41135 , p_component_appl_id => l_component_appl_id
41136 , p_amb_context_code => l_amb_context_code
41137 , p_side => 'NA'
41138 );
41139
41140
41141 l_segment := AcctDerRule_3(
41142 p_application_id => p_application_id
41143 , p_ae_header_id => l_ae_header_id
41144 , p_source_4 => p_source_4
41145 , p_source_4_meaning => p_source_4_meaning
41146 , p_source_5 => p_source_5
41147 , p_source_6 => p_source_6
41148 , p_source_7 => p_source_7
41149 , p_source_7_meaning => p_source_7_meaning
41150 , p_source_8 => p_source_8
41151 , x_transaction_coa_id => l_adr_transaction_coa_id
41152 , x_accounting_coa_id => l_adr_accounting_coa_id
41153 , x_flexfield_segment_code => l_adr_flexfield_segment_code
41154 , x_flex_value_set_id => l_adr_flex_value_set_id
41155 , x_value_type_code => l_adr_value_type_code
41156 , x_value_combination_id => l_adr_value_combination_id
41157 , x_value_segment_code => l_adr_value_segment_code
41158 , p_side => 'NA'
41159 , p_override_seg_flag => 'Y'
41160 );
41161
41162 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
41163
41164 xla_ae_lines_pkg.set_segment(
41165 p_to_segment_code => 'GL_ACCOUNT'
41166 , p_segment_value => l_segment
41167 , p_from_segment_code => l_adr_value_segment_code
41168 , p_from_combination_id => l_adr_value_combination_id
41169 , p_value_type_code => l_adr_value_type_code
41170 , p_transaction_coa_id => l_adr_transaction_coa_id
41171 , p_accounting_coa_id => l_adr_accounting_coa_id
41172 , p_flexfield_segment_code => l_adr_flexfield_segment_code
41173 , p_flex_value_set_id => l_adr_flex_value_set_id
41174 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
41175 , p_adr_type_code => 'S'
41176 , p_component_type => l_component_type
41177 , p_component_code => l_component_code
41178 , p_component_type_code => l_component_type_code
41179 , p_component_appl_id => l_component_appl_id
41180 , p_amb_context_code => l_amb_context_code
41181 , p_entity_code => 'AP_INVOICES'
41182 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
41183 , p_side => 'NA'
41184 );
41185
41186 END IF;
41187
41188 l_segment := AcctDerRule_15(
41189 p_application_id => p_application_id
41190 , p_ae_header_id => l_ae_header_id
41191 , p_source_4 => p_source_4
41192 , p_source_4_meaning => p_source_4_meaning
41193 , p_source_7 => p_source_7
41194 , p_source_7_meaning => p_source_7_meaning
41195 , p_source_17 => p_source_17
41196 , x_transaction_coa_id => l_adr_transaction_coa_id
41197 , x_accounting_coa_id => l_adr_accounting_coa_id
41198 , x_flexfield_segment_code => l_adr_flexfield_segment_code
41199 , x_flex_value_set_id => l_adr_flex_value_set_id
41200 , x_value_type_code => l_adr_value_type_code
41201 , x_value_combination_id => l_adr_value_combination_id
41202 , x_value_segment_code => l_adr_value_segment_code
41203 , p_side => 'NA'
41204 , p_override_seg_flag => 'Y'
41205 );
41206
41207 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
41208
41209 xla_ae_lines_pkg.set_segment(
41210 p_to_segment_code => 'GL_BALANCING'
41211 , p_segment_value => l_segment
41212 , p_from_segment_code => l_adr_value_segment_code
41213 , p_from_combination_id => l_adr_value_combination_id
41214 , p_value_type_code => l_adr_value_type_code
41215 , p_transaction_coa_id => l_adr_transaction_coa_id
41216 , p_accounting_coa_id => l_adr_accounting_coa_id
41217 , p_flexfield_segment_code => l_adr_flexfield_segment_code
41218 , p_flex_value_set_id => l_adr_flex_value_set_id
41219 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
41220 , p_adr_type_code => 'S'
41221 , p_component_type => l_component_type
41222 , p_component_code => l_component_code
41223 , p_component_type_code => l_component_type_code
41224 , p_component_appl_id => l_component_appl_id
41225 , p_amb_context_code => l_amb_context_code
41226 , p_entity_code => 'AP_INVOICES'
41227 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
41228 , p_side => 'NA'
41229 );
41230
41231 END IF;
41232
41233 --
41234 --
41235 END IF;
41236 --
41237 -- Bug 4922099
41238 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41239 (NVL(l_enc_upg_option, 'N') = 'O')
41240 ) AND
41241 (l_bflow_method_code = 'PRIOR_ENTRY')
41242 )
41243 THEN
41244 IF
41245 --
41249 xla_accounting_err_pkg.build_message
41246 1 = 2
41247 --
41248 THEN
41250 (p_appli_s_name => 'XLA'
41251 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41252 ,p_token_1 => 'LINE_NUMBER'
41253 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41254 ,p_token_2 => 'LINE_TYPE_NAME'
41255 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41256 l_component_type
41257 ,l_component_code
41258 ,l_component_type_code
41259 ,l_component_appl_id
41260 ,l_amb_context_code
41261 ,l_entity_code
41262 ,l_event_class_code
41263 )
41264 ,p_token_3 => 'OWNER'
41265 ,p_value_3 => xla_lookups_pkg.get_meaning(
41266 p_lookup_type => 'XLA_OWNER_TYPE'
41267 ,p_lookup_code => l_component_type_code
41268 )
41269 ,p_token_4 => 'PRODUCT_NAME'
41270 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41271 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41272 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41273 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41274 ,p_ae_header_id => NULL
41275 );
41276
41277 IF (C_LEVEL_ERROR>= g_log_level) THEN
41278 trace
41279 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41280 ,p_level => C_LEVEL_ERROR
41281 ,p_module => l_log_module);
41282 END IF;
41283 END IF;
41284 END IF;
41285 --
41286 --
41287 ------------------------------------------------------------------------------------------------
41288 -- 4219869 Business Flow
41289 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41290 -- Prior Entry. Currently, the following code is always generated.
41291 ------------------------------------------------------------------------------------------------
41292 XLA_AE_LINES_PKG.ValidateCurrentLine;
41293
41294 ------------------------------------------------------------------------------------
41295 -- 4219869 Business Flow
41296 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41297 ------------------------------------------------------------------------------------
41298 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41299
41300 ----------------------------------------------------------------------------------
41301 -- 4219869 Business Flow
41302 -- Update journal entry status -- Need to generate this within IF <condition>
41303 ----------------------------------------------------------------------------------
41304 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41305 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41306 ,p_balance_type_code => l_balance_type_code
41307 );
41308
41309 -------------------------------------------------------------------------------------------
41310 -- 4262811 - Generate the Accrual Reversal lines
41311 -------------------------------------------------------------------------------------------
41312 BEGIN
41313 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41314 (g_array_event(p_event_id).array_value_num('header_index'));
41315 IF l_acc_rev_flag IS NULL THEN
41316 l_acc_rev_flag := 'N';
41317 END IF;
41318 EXCEPTION
41319 WHEN OTHERS THEN
41320 l_acc_rev_flag := 'N';
41321 END;
41322 --
41323 IF (l_acc_rev_flag = 'Y') THEN
41324
41325 -- 4645092 ------------------------------------------------------------------------------
41326 -- To allow MPA report to determine if it should generate report process
41327 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41328 ------------------------------------------------------------------------------------------
41329
41330 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41331 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41332 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41333 -- call ADRs
41334 -- Bug 4922099
41338 (NVL(l_enc_upg_option, 'N') = 'O')
41335 --
41336 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41337 (NVL(l_actual_upg_option, 'N') = 'O') OR
41339 )
41340 THEN
41341 NULL;
41342 --
41343 --
41344
41345 l_ccid := AcctDerRule_23(
41346 p_application_id => p_application_id
41347 , p_ae_header_id => l_ae_header_id
41348 , p_source_4 => p_source_4
41349 , p_source_4_meaning => p_source_4_meaning
41350 , p_source_5 => p_source_5
41351 , p_source_6 => p_source_6
41352 , p_source_7 => p_source_7
41353 , p_source_7_meaning => p_source_7_meaning
41354 , p_source_8 => p_source_8
41355 , p_source_17 => p_source_17
41356 , p_source_30 => p_source_30
41357 , p_source_30_meaning => p_source_30_meaning
41358 , x_transaction_coa_id => l_adr_transaction_coa_id
41359 , x_accounting_coa_id => l_adr_accounting_coa_id
41360 , x_value_type_code => l_adr_value_type_code
41361 , p_side => 'NA'
41362 );
41363
41364 xla_ae_lines_pkg.set_ccid(
41365 p_code_combination_id => l_ccid
41366 , p_value_type_code => l_adr_value_type_code
41367 , p_transaction_coa_id => l_adr_transaction_coa_id
41368 , p_accounting_coa_id => l_adr_accounting_coa_id
41369 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
41370 , p_adr_type_code => 'S'
41371 , p_component_type => l_component_type
41372 , p_component_code => l_component_code
41373 , p_component_type_code => l_component_type_code
41374 , p_component_appl_id => l_component_appl_id
41375 , p_amb_context_code => l_amb_context_code
41376 , p_side => 'NA'
41377 );
41378
41379
41380 l_segment := AcctDerRule_3(
41381 p_application_id => p_application_id
41382 , p_ae_header_id => l_ae_header_id
41383 , p_source_4 => p_source_4
41384 , p_source_4_meaning => p_source_4_meaning
41385 , p_source_5 => p_source_5
41386 , p_source_6 => p_source_6
41387 , p_source_7 => p_source_7
41388 , p_source_7_meaning => p_source_7_meaning
41389 , p_source_8 => p_source_8
41390 , x_transaction_coa_id => l_adr_transaction_coa_id
41391 , x_accounting_coa_id => l_adr_accounting_coa_id
41392 , x_flexfield_segment_code => l_adr_flexfield_segment_code
41393 , x_flex_value_set_id => l_adr_flex_value_set_id
41394 , x_value_type_code => l_adr_value_type_code
41395 , x_value_combination_id => l_adr_value_combination_id
41396 , x_value_segment_code => l_adr_value_segment_code
41397 , p_side => 'NA'
41398 , p_override_seg_flag => 'Y'
41399 );
41400
41401 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
41402
41403 xla_ae_lines_pkg.set_segment(
41404 p_to_segment_code => 'GL_ACCOUNT'
41405 , p_segment_value => l_segment
41406 , p_from_segment_code => l_adr_value_segment_code
41407 , p_from_combination_id => l_adr_value_combination_id
41408 , p_value_type_code => l_adr_value_type_code
41409 , p_transaction_coa_id => l_adr_transaction_coa_id
41410 , p_accounting_coa_id => l_adr_accounting_coa_id
41411 , p_flexfield_segment_code => l_adr_flexfield_segment_code
41412 , p_flex_value_set_id => l_adr_flex_value_set_id
41413 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
41414 , p_adr_type_code => 'S'
41415 , p_component_type => l_component_type
41416 , p_component_code => l_component_code
41417 , p_component_type_code => l_component_type_code
41418 , p_component_appl_id => l_component_appl_id
41419 , p_amb_context_code => l_amb_context_code
41420 , p_entity_code => 'AP_INVOICES'
41421 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
41422 , p_side => 'NA'
41423 );
41424
41425 END IF;
41426
41427 l_segment := AcctDerRule_15(
41428 p_application_id => p_application_id
41429 , p_ae_header_id => l_ae_header_id
41430 , p_source_4 => p_source_4
41431 , p_source_4_meaning => p_source_4_meaning
41432 , p_source_7 => p_source_7
41433 , p_source_7_meaning => p_source_7_meaning
41434 , p_source_17 => p_source_17
41435 , x_transaction_coa_id => l_adr_transaction_coa_id
41436 , x_accounting_coa_id => l_adr_accounting_coa_id
41437 , x_flexfield_segment_code => l_adr_flexfield_segment_code
41438 , x_flex_value_set_id => l_adr_flex_value_set_id
41439 , x_value_type_code => l_adr_value_type_code
41440 , x_value_combination_id => l_adr_value_combination_id
41441 , x_value_segment_code => l_adr_value_segment_code
41442 , p_side => 'NA'
41443 , p_override_seg_flag => 'Y'
41444 );
41445
41446 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
41447
41448 xla_ae_lines_pkg.set_segment(
41449 p_to_segment_code => 'GL_BALANCING'
41450 , p_segment_value => l_segment
41454 , p_transaction_coa_id => l_adr_transaction_coa_id
41451 , p_from_segment_code => l_adr_value_segment_code
41452 , p_from_combination_id => l_adr_value_combination_id
41453 , p_value_type_code => l_adr_value_type_code
41455 , p_accounting_coa_id => l_adr_accounting_coa_id
41456 , p_flexfield_segment_code => l_adr_flexfield_segment_code
41457 , p_flex_value_set_id => l_adr_flex_value_set_id
41458 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
41459 , p_adr_type_code => 'S'
41460 , p_component_type => l_component_type
41461 , p_component_code => l_component_code
41462 , p_component_type_code => l_component_type_code
41463 , p_component_appl_id => l_component_appl_id
41464 , p_amb_context_code => l_amb_context_code
41465 , p_entity_code => 'AP_INVOICES'
41466 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
41467 , p_side => 'NA'
41468 );
41469
41470 END IF;
41471
41472 --
41473 --
41474 END IF;
41475
41476 --
41477 -- Update the line information that should be overwritten
41478 --
41479 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41480 p_header_num => 1);
41481 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41482
41483 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41484
41485 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41486 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41487 END IF;
41488
41489 --
41490 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41491 --
41492 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41493 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41494 ELSE
41495 ---------------------------------------------------------------------------------------------------
41496 -- 4262811a Switch Sign
41497 ---------------------------------------------------------------------------------------------------
41498 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41499 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41500 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41501 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41502 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41503 -- 5132302
41504 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41505 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41506
41507 END IF;
41508
41509 -- 4955764
41510 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41511 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41512
41513
41514 XLA_AE_LINES_PKG.ValidateCurrentLine;
41515 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41516
41517 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41518 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41519 ,p_balance_type_code => l_balance_type_code);
41520
41521 END IF;
41522
41523 -----------------------------------------------------------------------------------------
41524 -- 4262811 Multiperiod Accounting
41525 -----------------------------------------------------------------------------------------
41526 -- No MPA option is assigned.
41527
41528
41529 END IF;
41530 END IF;
41531 --
41532
41533 --
41534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41535 trace
41536 (p_msg => 'END of AcctLineType_86'
41537 ,p_level => C_LEVEL_PROCEDURE
41538 ,p_module => l_log_module);
41539 END IF;
41540 --
41541 EXCEPTION
41542 WHEN xla_exceptions_pkg.application_exception THEN
41543 RAISE;
41544 WHEN OTHERS THEN
41545 xla_exceptions_pkg.raise_message
41546 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_86');
41547 END AcctLineType_86;
41548 --
41549
41550 ---------------------------------------
41551 --
41552 -- PRIVATE FUNCTION
41553 -- AcctLineType_87
41554 --
41555 ---------------------------------------
41556 PROCEDURE AcctLineType_87 (
41557 p_application_id IN NUMBER
41558 ,p_event_id IN NUMBER
41559 ,p_calculate_acctd_flag IN VARCHAR2
41560 ,p_calculate_g_l_flag IN VARCHAR2
41561 ,p_actual_flag IN OUT VARCHAR2
41562 ,p_balance_type_code OUT VARCHAR2
41563 ,p_gain_or_loss_ref OUT VARCHAR2
41564
41565 --Automatic Offsets Value
41566 , p_source_4 IN VARCHAR2
41567 , p_source_4_meaning IN VARCHAR2
41568 --Purchase Order Rate Variance Gain Account
41569 , p_source_5 IN NUMBER
41570 --Destination Type of the PO Distribution
41574 , p_source_8 IN NUMBER
41571 , p_source_7 IN VARCHAR2
41572 , p_source_7_meaning IN VARCHAR2
41573 --Purchase Order Rate Variance Loss Account
41575 --Payment Distribution (Payment Rate) Ledger Amount
41576 , p_source_9 IN NUMBER
41577 --Payment Distribution (Cleared Rate) Ledger Amount
41578 , p_source_10 IN NUMBER
41579 --Invoice Distribution Account
41580 , p_source_17 IN NUMBER
41581 --Automatic Offsets Flag
41582 , p_source_30 IN VARCHAR2
41583 , p_source_30_meaning IN VARCHAR2
41584 --When to Account for Payment Option
41585 , p_source_38 IN VARCHAR2
41586 --Payment Distribution Type
41587 , p_source_39 IN VARCHAR2
41588 , p_source_39_meaning IN VARCHAR2
41589 --Accounting Reversal Indicator
41590 , p_source_40 IN VARCHAR2
41591 --Payment Distribution Amount
41592 , p_source_41 IN NUMBER
41593 --Business Flow Accounts Payable Application Identifier
41594 , p_source_42 IN NUMBER
41595 --Payment Distribution Identifier
41596 , p_source_47 IN NUMBER
41597 --Distribution Link Type
41598 , p_source_48 IN VARCHAR2
41599 --Payment Currency Code
41600 , p_source_49 IN VARCHAR2
41601 --Override Accounted Amount Indicator
41602 , p_source_53 IN VARCHAR2
41603 , p_source_53_meaning IN VARCHAR2
41604 --Payment Supplier Identifier
41605 , p_source_54 IN NUMBER
41606 --Payment Supplier Site Identifier
41607 , p_source_55 IN NUMBER
41608 --Third Party Type
41609 , p_source_56 IN VARCHAR2
41610 --Payment Distribution Reversed Identifier
41611 , p_source_57 IN NUMBER
41612 --Invoice Distribution Tax Line Identifier
41613 , p_source_58 IN NUMBER
41614 --Invoice Distribution Summary Tax Line Identifier
41615 , p_source_59 IN NUMBER
41616 --Payment Type
41617 , p_source_60 IN VARCHAR2
41618 , p_source_60_meaning IN VARCHAR2
41619 --Business Flow Invoice Distribution Type
41620 , p_source_62 IN VARCHAR2
41621 --Business Flow Invoice Entity Code
41622 , p_source_63 IN VARCHAR2
41623 --Business Flow Invoice Distribution Identifier
41624 , p_source_64 IN NUMBER
41625 --Business Flow Invoice Identifier
41626 , p_source_65 IN NUMBER
41627 --Invoice Distribution Tax Distribution Identifier from Tax
41628 , p_source_66 IN NUMBER
41629 --Accrue on Receipt Option
41630 , p_source_100 IN VARCHAR2
41631 , p_source_100_meaning IN VARCHAR2
41632 --Payment Exchange Date
41633 , p_source_114 IN DATE
41634 --Payment Exchange Rate
41635 , p_source_115 IN NUMBER
41636 --Payment Exchange Rate Type
41637 , p_source_116 IN VARCHAR2
41638 )
41639 IS
41640
41641 l_component_type VARCHAR2(80);
41642 l_component_code VARCHAR2(30);
41643 l_component_type_code VARCHAR2(1);
41644 l_component_appl_id INTEGER;
41645 l_amb_context_code VARCHAR2(30);
41646 l_entity_code VARCHAR2(30);
41647 l_event_class_code VARCHAR2(30);
41648 l_ae_header_id NUMBER;
41649 l_event_type_code VARCHAR2(30);
41650 l_line_definition_code VARCHAR2(30);
41651 l_line_definition_owner_code VARCHAR2(1);
41652 --
41653 -- adr variables
41654 l_segment VARCHAR2(30);
41655 l_ccid NUMBER;
41656 l_adr_transaction_coa_id NUMBER;
41657 l_adr_accounting_coa_id NUMBER;
41658 l_adr_flexfield_segment_code VARCHAR2(30);
41659 l_adr_flex_value_set_id NUMBER;
41660 l_adr_value_type_code VARCHAR2(30);
41661 l_adr_value_combination_id NUMBER;
41662 l_adr_value_segment_code VARCHAR2(30);
41663
41664 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41665 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41666 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41667 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41668
41669 -- 4262811 Variables ------------------------------------------------------------------------------------------
41670 l_entered_amt_idx NUMBER;
41671 l_accted_amt_idx NUMBER;
41672 l_acc_rev_flag VARCHAR2(1);
41673 l_accrual_line_num NUMBER;
41674 l_tmp_amt NUMBER;
41675 l_acc_rev_natural_side_code VARCHAR2(1);
41676
41677 l_num_entries NUMBER;
41678 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41679 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41680 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41681 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41682 l_recog_line_1 NUMBER;
41683 l_recog_line_2 NUMBER;
41684
41685 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41686 l_bflow_applied_to_amt NUMBER; -- 5132302
41687 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41688
41689 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41690
41691 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41692 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41693
41697 --
41694 ---------------------------------------------------------------------------------------------------------------
41695
41696
41698 -- bulk performance
41699 --
41700 l_balance_type_code VARCHAR2(1);
41701 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41702 l_log_module VARCHAR2(240);
41703
41704 --
41705 -- Upgrade strategy
41706 --
41707 l_actual_upg_option VARCHAR2(1);
41708 l_enc_upg_option VARCHAR2(1);
41709
41710 --
41711 BEGIN
41712 --
41713 IF g_log_enabled THEN
41714 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
41715 END IF;
41716 --
41717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41718
41719 trace
41720 (p_msg => 'BEGIN of AcctLineType_87'
41721 ,p_level => C_LEVEL_PROCEDURE
41722 ,p_module => l_log_module);
41723
41724 END IF;
41725 --
41726 l_component_type := 'AMB_JLT';
41727 l_component_code := 'AP_EX_RATE_VAR_REF';
41728 l_component_type_code := 'S';
41729 l_component_appl_id := 200;
41730 l_amb_context_code := 'DEFAULT';
41731 l_entity_code := 'AP_PAYMENTS';
41732 l_event_class_code := 'REFUNDS';
41733 l_event_type_code := 'REFUNDS_ALL';
41734 l_line_definition_owner_code := 'S';
41735 l_line_definition_code := 'CASH_REFUNDS_ALL';
41736 --
41737 l_balance_type_code := 'A';
41738 l_segment := NULL;
41739 l_ccid := NULL;
41740 l_adr_transaction_coa_id := NULL;
41741 l_adr_accounting_coa_id := NULL;
41742 l_adr_flexfield_segment_code := NULL;
41743 l_adr_flex_value_set_id := NULL;
41744 l_adr_value_type_code := NULL;
41745 l_adr_value_combination_id := NULL;
41746 l_adr_value_segment_code := NULL;
41747
41748 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41749 l_bflow_class_code := ''; -- 4219869 Business Flow
41750 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41751 l_budgetary_control_flag := 'N';
41752
41753 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41754 l_bflow_applied_to_amt := NULL; -- 5132302
41755 l_entered_amt_idx := NULL; -- 4262811
41756 l_accted_amt_idx := NULL; -- 4262811
41757 l_acc_rev_flag := NULL; -- 4262811
41758 l_accrual_line_num := NULL; -- 4262811
41759 l_tmp_amt := NULL; -- 4262811
41760 --
41761 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
41762 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
41763 return;
41764 END IF;
41765
41766 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41767 l_balance_type_code <> 'B' THEN
41768 IF NVL(p_source_38,'
41769 ') <> 'CLEAR_CLEAR' AND
41770 NVL(p_source_39,'
41771 ') = 'EXCHANGE RATE VARIANCE' AND
41772 NVL(p_source_100,'
41773 ') = 'Y' AND
41774 NVL(p_source_60,'
41775 ') = 'R'
41776 THEN
41777
41778 --
41779 XLA_AE_LINES_PKG.SetNewLine;
41780
41781 p_balance_type_code := l_balance_type_code;
41782 -- set the flag so later we will know whether the gain loss line needs to be created
41783
41784 IF(l_balance_type_code = 'A' ) THEN
41785 p_actual_flag :='G';
41786 END IF;
41787
41788 --
41789 -- bulk performance
41790 --
41791 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41792 p_header_num => 0); -- 4262811
41793 --
41794 -- set accounting line options
41795 --
41796 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41797 p_natural_side_code => 'D'
41798 , p_gain_or_loss_flag => 'Y'
41799 , p_gl_transfer_mode_code => 'S'
41800 , p_acct_entry_type_code => 'A'
41801 , p_switch_side_flag => 'Y'
41802 , p_merge_duplicate_code => 'A'
41803 );
41804 --
41805 l_acc_rev_natural_side_code := 'C'; -- 4262811
41806 --
41807 --
41808 -- set accounting line type info
41809 --
41810 xla_ae_lines_pkg.SetAcctLineType
41811 (p_component_type => l_component_type
41812 ,p_event_type_code => l_event_type_code
41813 ,p_line_definition_owner_code => l_line_definition_owner_code
41814 ,p_line_definition_code => l_line_definition_code
41815 ,p_accounting_line_code => l_component_code
41816 ,p_accounting_line_type_code => l_component_type_code
41817 ,p_accounting_line_appl_id => l_component_appl_id
41818 ,p_amb_context_code => l_amb_context_code
41819 ,p_entity_code => l_entity_code
41820 ,p_event_class_code => l_event_class_code);
41821 --
41822 -- set accounting class
41823 --
41824 xla_ae_lines_pkg.SetAcctClass(
41825 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
41826 , p_ae_header_id => l_ae_header_id
41827 );
41828
41829 --
41833 'EXCHANGE_RATE_VARIANCE';
41830 -- set rounding class
41831 --
41832 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41834
41835 --
41836 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41837 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41838 --
41839 -- bulk performance
41840 --
41841 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41842
41843 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41844 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41845
41846 -- 4955764
41847 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41848 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41849
41850 -- 4458381 Public Sector Enh
41851
41852 --
41853 -- set accounting attributes for the line type
41854 --
41855 l_entered_amt_idx := 9;
41856 l_accted_amt_idx := 14;
41857 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41858 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41859 l_rec_acct_attrs.array_char_value(1) := p_source_40;
41860 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
41861 l_rec_acct_attrs.array_num_value(2) := p_source_42;
41862 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41863 l_rec_acct_attrs.array_char_value(3) := p_source_62;
41864 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
41865 l_rec_acct_attrs.array_char_value(4) := p_source_63;
41866 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
41867 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
41868 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41869 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
41870 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
41871 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
41872 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
41873 l_rec_acct_attrs.array_char_value(8) := p_source_48;
41874 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
41875 l_rec_acct_attrs.array_num_value(9) := p_source_41;
41876 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
41877 l_rec_acct_attrs.array_char_value(10) := p_source_49;
41878 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
41879 l_rec_acct_attrs.array_date_value(11) := p_source_114;
41880 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
41881 l_rec_acct_attrs.array_num_value(12) := p_source_115;
41882 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
41883 l_rec_acct_attrs.array_char_value(13) := p_source_116;
41884 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
41885 l_rec_acct_attrs.array_num_value(14) := p_source_9;
41886 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41887 l_rec_acct_attrs.array_char_value(15) := p_source_53;
41888 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41889 l_rec_acct_attrs.array_num_value(16) := p_source_54;
41890 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
41891 l_rec_acct_attrs.array_num_value(17) := p_source_55;
41892 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41893 l_rec_acct_attrs.array_char_value(18) := p_source_56;
41894 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41895 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
41896 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41897 l_rec_acct_attrs.array_char_value(20) := p_source_48;
41898 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
41899 l_rec_acct_attrs.array_num_value(21) := p_source_58;
41900 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
41901 l_rec_acct_attrs.array_num_value(22) := p_source_66;
41902 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41903 l_rec_acct_attrs.array_num_value(23) := p_source_59;
41904
41905 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41906 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41907
41908 ---------------------------------------------------------------------------------------------------------------
41909 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41910 ---------------------------------------------------------------------------------------------------------------
41911 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41912
41913 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41914 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41915
41916 IF xla_accounting_cache_pkg.GetValueChar
41917 (p_source_code => 'LEDGER_CATEGORY_CODE'
41918 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41919 AND l_bflow_method_code = 'PRIOR_ENTRY'
41920 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41924 THEN
41921 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41922 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41923 )
41925 xla_ae_lines_pkg.BflowUpgEntry
41926 (p_business_method_code => l_bflow_method_code
41927 ,p_business_class_code => l_bflow_class_code
41928 ,p_balance_type => l_balance_type_code);
41929 ELSE
41930 NULL;
41931 -- No business flow processing for business flow method of NONE.
41932 END IF;
41933
41934 --
41935 -- call analytical criteria
41936 --
41937
41938 --
41939 -- call description
41940 --
41941 -- No description or it is inherited.
41942 --
41943 -- call ADRs
41944 -- Bug 4922099
41945 --
41946 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41947 (NVL(l_actual_upg_option, 'N') = 'O') OR
41948 (NVL(l_enc_upg_option, 'N') = 'O')
41949 )
41950 THEN
41951 NULL;
41952 --
41953 --
41954
41955 l_ccid := AcctDerRule_22(
41956 p_application_id => p_application_id
41957 , p_ae_header_id => l_ae_header_id
41958 , p_source_4 => p_source_4
41959 , p_source_4_meaning => p_source_4_meaning
41960 , p_source_5 => p_source_5
41961 , p_source_7 => p_source_7
41962 , p_source_7_meaning => p_source_7_meaning
41963 , p_source_8 => p_source_8
41964 , p_source_9 => p_source_9
41965 , p_source_10 => p_source_10
41966 , p_source_17 => p_source_17
41967 , p_source_30 => p_source_30
41968 , p_source_30_meaning => p_source_30_meaning
41969 , x_transaction_coa_id => l_adr_transaction_coa_id
41970 , x_accounting_coa_id => l_adr_accounting_coa_id
41971 , x_value_type_code => l_adr_value_type_code
41972 , p_side => 'NA'
41973 );
41974
41975 xla_ae_lines_pkg.set_ccid(
41976 p_code_combination_id => l_ccid
41977 , p_value_type_code => l_adr_value_type_code
41978 , p_transaction_coa_id => l_adr_transaction_coa_id
41979 , p_accounting_coa_id => l_adr_accounting_coa_id
41980 , p_adr_code => 'AP_ERV_TAXERV_CASH'
41981 , p_adr_type_code => 'S'
41982 , p_component_type => l_component_type
41983 , p_component_code => l_component_code
41984 , p_component_type_code => l_component_type_code
41985 , p_component_appl_id => l_component_appl_id
41986 , p_amb_context_code => l_amb_context_code
41987 , p_side => 'NA'
41988 );
41989
41990
41991 l_segment := AcctDerRule_4(
41992 p_application_id => p_application_id
41993 , p_ae_header_id => l_ae_header_id
41994 , p_source_4 => p_source_4
41995 , p_source_4_meaning => p_source_4_meaning
41996 , p_source_5 => p_source_5
41997 , p_source_7 => p_source_7
41998 , p_source_7_meaning => p_source_7_meaning
41999 , p_source_8 => p_source_8
42000 , p_source_9 => p_source_9
42001 , p_source_10 => p_source_10
42002 , x_transaction_coa_id => l_adr_transaction_coa_id
42003 , x_accounting_coa_id => l_adr_accounting_coa_id
42004 , x_flexfield_segment_code => l_adr_flexfield_segment_code
42005 , x_flex_value_set_id => l_adr_flex_value_set_id
42006 , x_value_type_code => l_adr_value_type_code
42007 , x_value_combination_id => l_adr_value_combination_id
42008 , x_value_segment_code => l_adr_value_segment_code
42009 , p_side => 'NA'
42010 , p_override_seg_flag => 'Y'
42011 );
42012
42013 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
42014
42015 xla_ae_lines_pkg.set_segment(
42016 p_to_segment_code => 'GL_ACCOUNT'
42017 , p_segment_value => l_segment
42018 , p_from_segment_code => l_adr_value_segment_code
42019 , p_from_combination_id => l_adr_value_combination_id
42020 , p_value_type_code => l_adr_value_type_code
42021 , p_transaction_coa_id => l_adr_transaction_coa_id
42022 , p_accounting_coa_id => l_adr_accounting_coa_id
42023 , p_flexfield_segment_code => l_adr_flexfield_segment_code
42024 , p_flex_value_set_id => l_adr_flex_value_set_id
42025 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
42026 , p_adr_type_code => 'S'
42027 , p_component_type => l_component_type
42028 , p_component_code => l_component_code
42029 , p_component_type_code => l_component_type_code
42030 , p_component_appl_id => l_component_appl_id
42031 , p_amb_context_code => l_amb_context_code
42032 , p_entity_code => 'AP_PAYMENTS'
42033 , p_event_class_code => 'REFUNDS'
42034 , p_side => 'NA'
42035 );
42036
42037 END IF;
42038
42039 l_segment := AcctDerRule_15(
42040 p_application_id => p_application_id
42041 , p_ae_header_id => l_ae_header_id
42042 , p_source_4 => p_source_4
42043 , p_source_4_meaning => p_source_4_meaning
42044 , p_source_7 => p_source_7
42045 , p_source_7_meaning => p_source_7_meaning
42046 , p_source_17 => p_source_17
42050 , x_flex_value_set_id => l_adr_flex_value_set_id
42047 , x_transaction_coa_id => l_adr_transaction_coa_id
42048 , x_accounting_coa_id => l_adr_accounting_coa_id
42049 , x_flexfield_segment_code => l_adr_flexfield_segment_code
42051 , x_value_type_code => l_adr_value_type_code
42052 , x_value_combination_id => l_adr_value_combination_id
42053 , x_value_segment_code => l_adr_value_segment_code
42054 , p_side => 'NA'
42055 , p_override_seg_flag => 'Y'
42056 );
42057
42058 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
42059
42060 xla_ae_lines_pkg.set_segment(
42061 p_to_segment_code => 'GL_BALANCING'
42062 , p_segment_value => l_segment
42063 , p_from_segment_code => l_adr_value_segment_code
42064 , p_from_combination_id => l_adr_value_combination_id
42065 , p_value_type_code => l_adr_value_type_code
42066 , p_transaction_coa_id => l_adr_transaction_coa_id
42067 , p_accounting_coa_id => l_adr_accounting_coa_id
42068 , p_flexfield_segment_code => l_adr_flexfield_segment_code
42069 , p_flex_value_set_id => l_adr_flex_value_set_id
42070 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
42071 , p_adr_type_code => 'S'
42072 , p_component_type => l_component_type
42073 , p_component_code => l_component_code
42074 , p_component_type_code => l_component_type_code
42075 , p_component_appl_id => l_component_appl_id
42076 , p_amb_context_code => l_amb_context_code
42077 , p_entity_code => 'AP_PAYMENTS'
42078 , p_event_class_code => 'REFUNDS'
42079 , p_side => 'NA'
42080 );
42081
42082 END IF;
42083
42084 --
42085 --
42086 END IF;
42087 --
42088 -- Bug 4922099
42089 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42090 (NVL(l_enc_upg_option, 'N') = 'O')
42091 ) AND
42092 (l_bflow_method_code = 'PRIOR_ENTRY')
42093 )
42094 THEN
42095 IF
42096 --
42097 1 = 2
42098 --
42099 THEN
42100 xla_accounting_err_pkg.build_message
42101 (p_appli_s_name => 'XLA'
42102 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42103 ,p_token_1 => 'LINE_NUMBER'
42104 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42105 ,p_token_2 => 'LINE_TYPE_NAME'
42106 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42107 l_component_type
42108 ,l_component_code
42109 ,l_component_type_code
42110 ,l_component_appl_id
42111 ,l_amb_context_code
42112 ,l_entity_code
42113 ,l_event_class_code
42114 )
42115 ,p_token_3 => 'OWNER'
42116 ,p_value_3 => xla_lookups_pkg.get_meaning(
42117 p_lookup_type => 'XLA_OWNER_TYPE'
42118 ,p_lookup_code => l_component_type_code
42119 )
42120 ,p_token_4 => 'PRODUCT_NAME'
42121 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42122 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42123 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42124 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42125 ,p_ae_header_id => NULL
42126 );
42127
42128 IF (C_LEVEL_ERROR>= g_log_level) THEN
42129 trace
42130 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42131 ,p_level => C_LEVEL_ERROR
42132 ,p_module => l_log_module);
42133 END IF;
42134 END IF;
42135 END IF;
42136 --
42137 --
42138 ------------------------------------------------------------------------------------------------
42139 -- 4219869 Business Flow
42140 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42141 -- Prior Entry. Currently, the following code is always generated.
42142 ------------------------------------------------------------------------------------------------
42143 XLA_AE_LINES_PKG.ValidateCurrentLine;
42144
42148 ------------------------------------------------------------------------------------
42145 ------------------------------------------------------------------------------------
42146 -- 4219869 Business Flow
42147 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42149 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42150
42151 ----------------------------------------------------------------------------------
42152 -- 4219869 Business Flow
42153 -- Update journal entry status -- Need to generate this within IF <condition>
42154 ----------------------------------------------------------------------------------
42155 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42156 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42157 ,p_balance_type_code => l_balance_type_code
42158 );
42159
42160 -------------------------------------------------------------------------------------------
42161 -- 4262811 - Generate the Accrual Reversal lines
42162 -------------------------------------------------------------------------------------------
42163 BEGIN
42164 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42165 (g_array_event(p_event_id).array_value_num('header_index'));
42166 IF l_acc_rev_flag IS NULL THEN
42167 l_acc_rev_flag := 'N';
42168 END IF;
42169 EXCEPTION
42170 WHEN OTHERS THEN
42171 l_acc_rev_flag := 'N';
42172 END;
42173 --
42174 IF (l_acc_rev_flag = 'Y') THEN
42175
42176 -- 4645092 ------------------------------------------------------------------------------
42177 -- To allow MPA report to determine if it should generate report process
42178 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42179 ------------------------------------------------------------------------------------------
42180
42181 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42182 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42183 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
42184 -- call ADRs
42185 -- Bug 4922099
42186 --
42187 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42188 (NVL(l_actual_upg_option, 'N') = 'O') OR
42189 (NVL(l_enc_upg_option, 'N') = 'O')
42190 )
42191 THEN
42192 NULL;
42193 --
42194 --
42195
42196 l_ccid := AcctDerRule_22(
42197 p_application_id => p_application_id
42198 , p_ae_header_id => l_ae_header_id
42199 , p_source_4 => p_source_4
42200 , p_source_4_meaning => p_source_4_meaning
42201 , p_source_5 => p_source_5
42202 , p_source_7 => p_source_7
42203 , p_source_7_meaning => p_source_7_meaning
42204 , p_source_8 => p_source_8
42205 , p_source_9 => p_source_9
42206 , p_source_10 => p_source_10
42207 , p_source_17 => p_source_17
42208 , p_source_30 => p_source_30
42209 , p_source_30_meaning => p_source_30_meaning
42210 , x_transaction_coa_id => l_adr_transaction_coa_id
42211 , x_accounting_coa_id => l_adr_accounting_coa_id
42212 , x_value_type_code => l_adr_value_type_code
42213 , p_side => 'NA'
42214 );
42215
42216 xla_ae_lines_pkg.set_ccid(
42217 p_code_combination_id => l_ccid
42218 , p_value_type_code => l_adr_value_type_code
42219 , p_transaction_coa_id => l_adr_transaction_coa_id
42220 , p_accounting_coa_id => l_adr_accounting_coa_id
42221 , p_adr_code => 'AP_ERV_TAXERV_CASH'
42222 , p_adr_type_code => 'S'
42223 , p_component_type => l_component_type
42224 , p_component_code => l_component_code
42225 , p_component_type_code => l_component_type_code
42226 , p_component_appl_id => l_component_appl_id
42227 , p_amb_context_code => l_amb_context_code
42228 , p_side => 'NA'
42229 );
42230
42231
42232 l_segment := AcctDerRule_4(
42233 p_application_id => p_application_id
42234 , p_ae_header_id => l_ae_header_id
42235 , p_source_4 => p_source_4
42236 , p_source_4_meaning => p_source_4_meaning
42237 , p_source_5 => p_source_5
42238 , p_source_7 => p_source_7
42239 , p_source_7_meaning => p_source_7_meaning
42240 , p_source_8 => p_source_8
42241 , p_source_9 => p_source_9
42242 , p_source_10 => p_source_10
42243 , x_transaction_coa_id => l_adr_transaction_coa_id
42244 , x_accounting_coa_id => l_adr_accounting_coa_id
42245 , x_flexfield_segment_code => l_adr_flexfield_segment_code
42246 , x_flex_value_set_id => l_adr_flex_value_set_id
42247 , x_value_type_code => l_adr_value_type_code
42248 , x_value_combination_id => l_adr_value_combination_id
42249 , x_value_segment_code => l_adr_value_segment_code
42250 , p_side => 'NA'
42251 , p_override_seg_flag => 'Y'
42252 );
42253
42254 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
42255
42256 xla_ae_lines_pkg.set_segment(
42257 p_to_segment_code => 'GL_ACCOUNT'
42258 , p_segment_value => l_segment
42259 , p_from_segment_code => l_adr_value_segment_code
42260 , p_from_combination_id => l_adr_value_combination_id
42264 , p_flexfield_segment_code => l_adr_flexfield_segment_code
42261 , p_value_type_code => l_adr_value_type_code
42262 , p_transaction_coa_id => l_adr_transaction_coa_id
42263 , p_accounting_coa_id => l_adr_accounting_coa_id
42265 , p_flex_value_set_id => l_adr_flex_value_set_id
42266 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
42267 , p_adr_type_code => 'S'
42268 , p_component_type => l_component_type
42269 , p_component_code => l_component_code
42270 , p_component_type_code => l_component_type_code
42271 , p_component_appl_id => l_component_appl_id
42272 , p_amb_context_code => l_amb_context_code
42273 , p_entity_code => 'AP_PAYMENTS'
42274 , p_event_class_code => 'REFUNDS'
42275 , p_side => 'NA'
42276 );
42277
42278 END IF;
42279
42280 l_segment := AcctDerRule_15(
42281 p_application_id => p_application_id
42282 , p_ae_header_id => l_ae_header_id
42283 , p_source_4 => p_source_4
42284 , p_source_4_meaning => p_source_4_meaning
42285 , p_source_7 => p_source_7
42286 , p_source_7_meaning => p_source_7_meaning
42287 , p_source_17 => p_source_17
42288 , x_transaction_coa_id => l_adr_transaction_coa_id
42289 , x_accounting_coa_id => l_adr_accounting_coa_id
42290 , x_flexfield_segment_code => l_adr_flexfield_segment_code
42291 , x_flex_value_set_id => l_adr_flex_value_set_id
42292 , x_value_type_code => l_adr_value_type_code
42293 , x_value_combination_id => l_adr_value_combination_id
42294 , x_value_segment_code => l_adr_value_segment_code
42295 , p_side => 'NA'
42296 , p_override_seg_flag => 'Y'
42297 );
42298
42299 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
42300
42301 xla_ae_lines_pkg.set_segment(
42302 p_to_segment_code => 'GL_BALANCING'
42303 , p_segment_value => l_segment
42304 , p_from_segment_code => l_adr_value_segment_code
42305 , p_from_combination_id => l_adr_value_combination_id
42306 , p_value_type_code => l_adr_value_type_code
42307 , p_transaction_coa_id => l_adr_transaction_coa_id
42308 , p_accounting_coa_id => l_adr_accounting_coa_id
42309 , p_flexfield_segment_code => l_adr_flexfield_segment_code
42310 , p_flex_value_set_id => l_adr_flex_value_set_id
42311 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
42312 , p_adr_type_code => 'S'
42313 , p_component_type => l_component_type
42314 , p_component_code => l_component_code
42315 , p_component_type_code => l_component_type_code
42316 , p_component_appl_id => l_component_appl_id
42317 , p_amb_context_code => l_amb_context_code
42318 , p_entity_code => 'AP_PAYMENTS'
42319 , p_event_class_code => 'REFUNDS'
42320 , p_side => 'NA'
42321 );
42322
42323 END IF;
42324
42325 --
42326 --
42327 END IF;
42328
42329 --
42330 -- Update the line information that should be overwritten
42331 --
42332 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42333 p_header_num => 1);
42334 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42335
42336 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42337
42338 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42339 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42340 END IF;
42341
42342 --
42343 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42344 --
42345 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42346 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42347 ELSE
42348 ---------------------------------------------------------------------------------------------------
42349 -- 4262811a Switch Sign
42350 ---------------------------------------------------------------------------------------------------
42351 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42352 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42353 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42354 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42355 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42356 -- 5132302
42357 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42358 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42359
42360 END IF;
42361
42362 -- 4955764
42366
42363 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42364 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42365
42367 XLA_AE_LINES_PKG.ValidateCurrentLine;
42368 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42369
42370 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42371 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42372 ,p_balance_type_code => l_balance_type_code);
42373
42374 END IF;
42375
42376 -----------------------------------------------------------------------------------------
42377 -- 4262811 Multiperiod Accounting
42378 -----------------------------------------------------------------------------------------
42379 -- No MPA option is assigned.
42380
42381
42382 END IF;
42383 END IF;
42384 --
42385
42386 --
42387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42388 trace
42389 (p_msg => 'END of AcctLineType_87'
42390 ,p_level => C_LEVEL_PROCEDURE
42391 ,p_module => l_log_module);
42392 END IF;
42393 --
42394 EXCEPTION
42395 WHEN xla_exceptions_pkg.application_exception THEN
42396 RAISE;
42397 WHEN OTHERS THEN
42398 xla_exceptions_pkg.raise_message
42399 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_87');
42400 END AcctLineType_87;
42401 --
42402
42403 ---------------------------------------
42404 --
42405 -- PRIVATE FUNCTION
42406 -- AcctLineType_88
42407 --
42408 ---------------------------------------
42409 PROCEDURE AcctLineType_88 (
42410 p_application_id IN NUMBER
42411 ,p_event_id IN NUMBER
42412 ,p_calculate_acctd_flag IN VARCHAR2
42413 ,p_calculate_g_l_flag IN VARCHAR2
42414 ,p_actual_flag IN OUT VARCHAR2
42415 ,p_balance_type_code OUT VARCHAR2
42416 ,p_gain_or_loss_ref OUT VARCHAR2
42417
42418 --Payment Distribution (Payment Rate) Ledger Amount
42419 , p_source_9 IN NUMBER
42420 --Invoice Distribution Type
42421 , p_source_20 IN VARCHAR2
42422 , p_source_20_meaning IN VARCHAR2
42423 --When to Account for Payment Option
42424 , p_source_38 IN VARCHAR2
42425 --Payment Distribution Type
42426 , p_source_39 IN VARCHAR2
42427 , p_source_39_meaning IN VARCHAR2
42428 --Accounting Reversal Indicator
42429 , p_source_40 IN VARCHAR2
42430 --Payment Distribution Amount
42431 , p_source_41 IN NUMBER
42432 --Business Flow Accounts Payable Application Identifier
42433 , p_source_42 IN NUMBER
42434 --Payment Distribution Identifier
42435 , p_source_47 IN NUMBER
42436 --Distribution Link Type
42437 , p_source_48 IN VARCHAR2
42438 --Payment Currency Code
42439 , p_source_49 IN VARCHAR2
42440 --Override Accounted Amount Indicator
42441 , p_source_53 IN VARCHAR2
42442 , p_source_53_meaning IN VARCHAR2
42443 --Third Party Type
42444 , p_source_56 IN VARCHAR2
42445 --Payment Distribution Reversed Identifier
42446 , p_source_57 IN NUMBER
42447 --Invoice Distribution Tax Line Identifier
42448 , p_source_58 IN NUMBER
42449 --Invoice Distribution Summary Tax Line Identifier
42450 , p_source_59 IN NUMBER
42451 --Payment Type
42452 , p_source_60 IN VARCHAR2
42453 , p_source_60_meaning IN VARCHAR2
42454 --Business Flow Invoice Distribution Type
42455 , p_source_62 IN VARCHAR2
42456 --Business Flow Invoice Entity Code
42457 , p_source_63 IN VARCHAR2
42458 --Business Flow Invoice Distribution Identifier
42459 , p_source_64 IN NUMBER
42460 --Business Flow Invoice Identifier
42461 , p_source_65 IN NUMBER
42462 --Invoice Distribution Tax Distribution Identifier from Tax
42463 , p_source_66 IN NUMBER
42464 --Purchasing Encumbrance Option
42465 , p_source_102 IN VARCHAR2
42466 , p_source_102_meaning IN VARCHAR2
42467 --Invoice Encumbered Option
42468 , p_source_104 IN VARCHAR2
42469 , p_source_104_meaning IN VARCHAR2
42470 )
42471 IS
42472
42473 l_component_type VARCHAR2(80);
42474 l_component_code VARCHAR2(30);
42475 l_component_type_code VARCHAR2(1);
42476 l_component_appl_id INTEGER;
42477 l_amb_context_code VARCHAR2(30);
42478 l_entity_code VARCHAR2(30);
42479 l_event_class_code VARCHAR2(30);
42480 l_ae_header_id NUMBER;
42481 l_event_type_code VARCHAR2(30);
42482 l_line_definition_code VARCHAR2(30);
42483 l_line_definition_owner_code VARCHAR2(1);
42484 --
42485 -- adr variables
42486 l_segment VARCHAR2(30);
42487 l_ccid NUMBER;
42488 l_adr_transaction_coa_id NUMBER;
42489 l_adr_accounting_coa_id NUMBER;
42490 l_adr_flexfield_segment_code VARCHAR2(30);
42491 l_adr_flex_value_set_id NUMBER;
42492 l_adr_value_type_code VARCHAR2(30);
42493 l_adr_value_combination_id NUMBER;
42494 l_adr_value_segment_code VARCHAR2(30);
42495
42496 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42497 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42501 -- 4262811 Variables ------------------------------------------------------------------------------------------
42498 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42499 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42500
42502 l_entered_amt_idx NUMBER;
42503 l_accted_amt_idx NUMBER;
42504 l_acc_rev_flag VARCHAR2(1);
42505 l_accrual_line_num NUMBER;
42506 l_tmp_amt NUMBER;
42507 l_acc_rev_natural_side_code VARCHAR2(1);
42508
42509 l_num_entries NUMBER;
42510 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42511 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42512 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42513 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42514 l_recog_line_1 NUMBER;
42515 l_recog_line_2 NUMBER;
42516
42517 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42518 l_bflow_applied_to_amt NUMBER; -- 5132302
42519 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42520
42521 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42522
42523 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42524 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42525
42526 ---------------------------------------------------------------------------------------------------------------
42527
42528
42529 --
42530 -- bulk performance
42531 --
42532 l_balance_type_code VARCHAR2(1);
42533 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42534 l_log_module VARCHAR2(240);
42535
42536 --
42537 -- Upgrade strategy
42538 --
42539 l_actual_upg_option VARCHAR2(1);
42540 l_enc_upg_option VARCHAR2(1);
42541
42542 --
42543 BEGIN
42544 --
42545 IF g_log_enabled THEN
42546 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
42547 END IF;
42548 --
42549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42550
42551 trace
42552 (p_msg => 'BEGIN of AcctLineType_88'
42553 ,p_level => C_LEVEL_PROCEDURE
42554 ,p_module => l_log_module);
42555
42556 END IF;
42557 --
42558 l_component_type := 'AMB_JLT';
42559 l_component_code := 'AP_EX_RATE_VAR_REF_ENC';
42560 l_component_type_code := 'S';
42561 l_component_appl_id := 200;
42562 l_amb_context_code := 'DEFAULT';
42563 l_entity_code := 'AP_PAYMENTS';
42564 l_event_class_code := 'REFUNDS';
42565 l_event_type_code := 'REFUNDS_ALL';
42566 l_line_definition_owner_code := 'S';
42567 l_line_definition_code := 'ENC_REFUNDS_ALL';
42568 --
42569 l_balance_type_code := 'E';
42570 l_segment := NULL;
42571 l_ccid := NULL;
42572 l_adr_transaction_coa_id := NULL;
42573 l_adr_accounting_coa_id := NULL;
42574 l_adr_flexfield_segment_code := NULL;
42575 l_adr_flex_value_set_id := NULL;
42576 l_adr_value_type_code := NULL;
42577 l_adr_value_combination_id := NULL;
42578 l_adr_value_segment_code := NULL;
42579
42580 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42581 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
42582 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42583 l_budgetary_control_flag := 'N';
42584
42585 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42586 l_bflow_applied_to_amt := NULL; -- 5132302
42587 l_entered_amt_idx := NULL; -- 4262811
42588 l_accted_amt_idx := NULL; -- 4262811
42589 l_acc_rev_flag := NULL; -- 4262811
42590 l_accrual_line_num := NULL; -- 4262811
42591 l_tmp_amt := NULL; -- 4262811
42592 --
42593
42594 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42595 l_balance_type_code <> 'B' THEN
42596 IF NVL(p_source_38,'
42597 ') <> 'CLEAR_CLEAR' AND
42598 NVL(p_source_20,'
42599 ') = 'ERV' AND
42600 (NVL(p_source_39,'
42601 ') = 'CASH' OR
42602 NVL(p_source_39,'
42603 ') = 'DISCOUNT') AND
42604 NVL(p_source_60,'
42605 ') = 'R' AND
42606 NVL(p_source_102,'
42607 ') = 'Y' AND
42608 NVL(p_source_104,'
42609 ') = 'Y'
42610 THEN
42611
42612 --
42613 XLA_AE_LINES_PKG.SetNewLine;
42614
42615 p_balance_type_code := l_balance_type_code;
42616 -- set the flag so later we will know whether the gain loss line needs to be created
42617
42618 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42619 p_actual_flag :='A';
42620 END IF;
42621
42622 --
42623 -- bulk performance
42624 --
42625 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42626 p_header_num => 0); -- 4262811
42627 --
42628 -- set accounting line options
42629 --
42630 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42631 p_natural_side_code => 'C'
42635 , p_switch_side_flag => 'Y'
42632 , p_gain_or_loss_flag => 'N'
42633 , p_gl_transfer_mode_code => 'S'
42634 , p_acct_entry_type_code => 'E'
42636 , p_merge_duplicate_code => 'A'
42637 );
42638 --
42639 l_acc_rev_natural_side_code := 'D'; -- 4262811
42640 --
42641 --
42642 -- set accounting line type info
42643 --
42644 xla_ae_lines_pkg.SetAcctLineType
42645 (p_component_type => l_component_type
42646 ,p_event_type_code => l_event_type_code
42647 ,p_line_definition_owner_code => l_line_definition_owner_code
42648 ,p_line_definition_code => l_line_definition_code
42649 ,p_accounting_line_code => l_component_code
42650 ,p_accounting_line_type_code => l_component_type_code
42651 ,p_accounting_line_appl_id => l_component_appl_id
42652 ,p_amb_context_code => l_amb_context_code
42653 ,p_entity_code => l_entity_code
42654 ,p_event_class_code => l_event_class_code);
42655 --
42656 -- set accounting class
42657 --
42658 xla_ae_lines_pkg.SetAcctClass(
42659 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
42660 , p_ae_header_id => l_ae_header_id
42661 );
42662
42663 --
42664 -- set rounding class
42665 --
42666 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42667 'EXCHANGE_RATE_VARIANCE';
42668
42669 --
42670 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42671 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42672 --
42673 -- bulk performance
42674 --
42675 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42676
42677 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42678 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42679
42680 -- 4955764
42681 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42682 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42683
42684 -- 4458381 Public Sector Enh
42685
42686 --
42687 -- set accounting attributes for the line type
42688 --
42689 l_entered_amt_idx := 9;
42690 l_accted_amt_idx := 11;
42691 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42692 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42693 l_rec_acct_attrs.array_char_value(1) := p_source_40;
42694 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
42695 l_rec_acct_attrs.array_num_value(2) := p_source_42;
42696 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42697 l_rec_acct_attrs.array_char_value(3) := p_source_62;
42698 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
42699 l_rec_acct_attrs.array_char_value(4) := p_source_63;
42700 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
42701 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
42702 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42703 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
42704 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
42705 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
42706 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
42707 l_rec_acct_attrs.array_char_value(8) := p_source_48;
42708 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
42709 l_rec_acct_attrs.array_num_value(9) := p_source_41;
42710 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
42711 l_rec_acct_attrs.array_char_value(10) := p_source_49;
42712 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
42713 l_rec_acct_attrs.array_num_value(11) := p_source_9;
42714 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
42715 l_rec_acct_attrs.array_char_value(12) := p_source_53;
42716 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
42717 l_rec_acct_attrs.array_char_value(13) := p_source_56;
42718 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
42719 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
42720 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
42721 l_rec_acct_attrs.array_char_value(15) := p_source_48;
42722 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
42723 l_rec_acct_attrs.array_num_value(16) := p_source_58;
42724 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
42725 l_rec_acct_attrs.array_num_value(17) := p_source_66;
42726 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
42727 l_rec_acct_attrs.array_num_value(18) := p_source_59;
42728
42729 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42730 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42731
42732 ---------------------------------------------------------------------------------------------------------------
42733 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42737 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42734 ---------------------------------------------------------------------------------------------------------------
42735 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42736
42738 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42739
42740 IF xla_accounting_cache_pkg.GetValueChar
42741 (p_source_code => 'LEDGER_CATEGORY_CODE'
42742 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42743 AND l_bflow_method_code = 'PRIOR_ENTRY'
42744 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42745 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42746 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42747 )
42748 THEN
42749 xla_ae_lines_pkg.BflowUpgEntry
42750 (p_business_method_code => l_bflow_method_code
42751 ,p_business_class_code => l_bflow_class_code
42752 ,p_balance_type => l_balance_type_code);
42753 ELSE
42754 NULL;
42755 XLA_AE_LINES_PKG.business_flow_validation(
42756 p_business_method_code => l_bflow_method_code
42757 ,p_business_class_code => l_bflow_class_code
42758 ,p_inherit_description_flag => l_inherit_desc_flag);
42759 END IF;
42760
42761 --
42762 -- call analytical criteria
42763 --
42764 -- Inherited Analytical Criteria for business flow method of Prior Entry.
42765 --
42766 -- call description
42767 --
42768 -- No description or it is inherited.
42769 --
42770 -- call ADRs
42771 -- Bug 4922099
42772 --
42773 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42774 (NVL(l_actual_upg_option, 'N') = 'O') OR
42775 (NVL(l_enc_upg_option, 'N') = 'O')
42776 )
42777 THEN
42778 NULL;
42779 --
42780 --
42781
42782 --
42783 --
42784 END IF;
42785 --
42786 -- Bug 4922099
42787 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42788 (NVL(l_enc_upg_option, 'N') = 'O')
42789 ) AND
42790 (l_bflow_method_code = 'PRIOR_ENTRY')
42791 )
42792 THEN
42793 IF
42794 --
42795 1 = 1
42796 --
42797 THEN
42798 xla_accounting_err_pkg.build_message
42799 (p_appli_s_name => 'XLA'
42800 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42801 ,p_token_1 => 'LINE_NUMBER'
42802 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42803 ,p_token_2 => 'LINE_TYPE_NAME'
42804 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42805 l_component_type
42806 ,l_component_code
42807 ,l_component_type_code
42808 ,l_component_appl_id
42809 ,l_amb_context_code
42810 ,l_entity_code
42811 ,l_event_class_code
42812 )
42813 ,p_token_3 => 'OWNER'
42814 ,p_value_3 => xla_lookups_pkg.get_meaning(
42815 p_lookup_type => 'XLA_OWNER_TYPE'
42816 ,p_lookup_code => l_component_type_code
42817 )
42818 ,p_token_4 => 'PRODUCT_NAME'
42819 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42820 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42821 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42822 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42823 ,p_ae_header_id => NULL
42824 );
42825
42826 IF (C_LEVEL_ERROR>= g_log_level) THEN
42827 trace
42828 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42829 ,p_level => C_LEVEL_ERROR
42830 ,p_module => l_log_module);
42831 END IF;
42832 END IF;
42833 END IF;
42834 --
42835 --
42836 ------------------------------------------------------------------------------------------------
42837 -- 4219869 Business Flow
42838 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42842
42839 -- Prior Entry. Currently, the following code is always generated.
42840 ------------------------------------------------------------------------------------------------
42841 -- No ValidateCurrentLine for business flow method of Prior Entry
42843 ------------------------------------------------------------------------------------
42844 -- 4219869 Business Flow
42845 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42846 ------------------------------------------------------------------------------------
42847 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42848
42849 ----------------------------------------------------------------------------------
42850 -- 4219869 Business Flow
42851 -- Update journal entry status -- Need to generate this within IF <condition>
42852 ----------------------------------------------------------------------------------
42853 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42854 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42855 ,p_balance_type_code => l_balance_type_code
42856 );
42857
42858 -------------------------------------------------------------------------------------------
42859 -- 4262811 - Generate the Accrual Reversal lines
42860 -------------------------------------------------------------------------------------------
42861 BEGIN
42862 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42863 (g_array_event(p_event_id).array_value_num('header_index'));
42864 IF l_acc_rev_flag IS NULL THEN
42865 l_acc_rev_flag := 'N';
42866 END IF;
42867 EXCEPTION
42868 WHEN OTHERS THEN
42869 l_acc_rev_flag := 'N';
42870 END;
42871 --
42872 IF (l_acc_rev_flag = 'Y') THEN
42873
42874 -- 4645092 ------------------------------------------------------------------------------
42875 -- To allow MPA report to determine if it should generate report process
42876 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42877 ------------------------------------------------------------------------------------------
42878
42879 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42880 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42881 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
42882 -- call ADRs
42883 -- Bug 4922099
42884 --
42885 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42886 (NVL(l_actual_upg_option, 'N') = 'O') OR
42887 (NVL(l_enc_upg_option, 'N') = 'O')
42888 )
42889 THEN
42890 NULL;
42891 --
42892 --
42893
42894 --
42895 --
42896 END IF;
42897
42898 --
42899 -- Update the line information that should be overwritten
42900 --
42901 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42902 p_header_num => 1);
42903 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42904
42905 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42906
42907 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42908 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42909 END IF;
42910
42911 --
42912 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42913 --
42914 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42915 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42916 ELSE
42917 ---------------------------------------------------------------------------------------------------
42918 -- 4262811a Switch Sign
42919 ---------------------------------------------------------------------------------------------------
42920 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42921 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42922 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42923 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42924 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42925 -- 5132302
42926 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42927 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42928
42929 END IF;
42930
42931 -- 4955764
42932 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42933 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42934
42935
42936 XLA_AE_LINES_PKG.ValidateCurrentLine;
42937 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42938
42939 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42940 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42941 ,p_balance_type_code => l_balance_type_code);
42942
42943 END IF;
42944
42948 -- No MPA option is assigned.
42945 -----------------------------------------------------------------------------------------
42946 -- 4262811 Multiperiod Accounting
42947 -----------------------------------------------------------------------------------------
42949
42950
42951 END IF;
42952 END IF;
42953 --
42954
42955 --
42956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42957 trace
42958 (p_msg => 'END of AcctLineType_88'
42959 ,p_level => C_LEVEL_PROCEDURE
42960 ,p_module => l_log_module);
42961 END IF;
42962 --
42963 EXCEPTION
42964 WHEN xla_exceptions_pkg.application_exception THEN
42965 RAISE;
42966 WHEN OTHERS THEN
42967 xla_exceptions_pkg.raise_message
42968 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_88');
42969 END AcctLineType_88;
42970 --
42971
42972 ---------------------------------------
42973 --
42974 -- PRIVATE FUNCTION
42975 -- AcctLineType_89
42976 --
42977 ---------------------------------------
42978 PROCEDURE AcctLineType_89 (
42979 p_application_id IN NUMBER
42980 ,p_event_id IN NUMBER
42981 ,p_calculate_acctd_flag IN VARCHAR2
42982 ,p_calculate_g_l_flag IN VARCHAR2
42983 ,p_actual_flag IN OUT VARCHAR2
42984 ,p_balance_type_code OUT VARCHAR2
42985 ,p_gain_or_loss_ref OUT VARCHAR2
42986
42987 --Automatic Offsets Value
42988 , p_source_4 IN VARCHAR2
42989 , p_source_4_meaning IN VARCHAR2
42990 --Invoice Distribution Account
42991 , p_source_17 IN NUMBER
42992 --Payables Options Rounding Account
42993 , p_source_37 IN NUMBER
42994 --When to Account for Payment Option
42995 , p_source_38 IN VARCHAR2
42996 --Accounting Reversal Indicator
42997 , p_source_40 IN VARCHAR2
42998 --Business Flow Accounts Payable Application Identifier
42999 , p_source_42 IN NUMBER
43000 --Distribution Link Type
43001 , p_source_48 IN VARCHAR2
43002 --Override Accounted Amount Indicator
43003 , p_source_53 IN VARCHAR2
43004 , p_source_53_meaning IN VARCHAR2
43005 --Third Party Type
43006 , p_source_56 IN VARCHAR2
43007 --Invoice Distribution Tax Line Identifier
43008 , p_source_58 IN NUMBER
43009 --Invoice Distribution Summary Tax Line Identifier
43010 , p_source_59 IN NUMBER
43011 --Invoice Distribution Tax Distribution Identifier from Tax
43012 , p_source_66 IN NUMBER
43013 --Prepayment Distribution Type
43014 , p_source_67 IN VARCHAR2
43015 --Prepayment Application Distribution Identifier
43016 , p_source_71 IN NUMBER
43017 --Invoice Identifier
43018 , p_source_72 IN NUMBER
43019 --Business Flow Prepayment Invoice Distribution Type
43020 , p_source_73 IN VARCHAR2
43021 --Business Flow Prepayment Invoice Entity Code
43022 , p_source_74 IN VARCHAR2
43023 --Business Flow Prepayment Invoice Distribution Identifier
43024 , p_source_75 IN NUMBER
43025 --Business Flow Prepayment Invoice Identifier
43026 , p_source_76 IN NUMBER
43027 --Upgrade Encumbrance Credit Account Class
43028 , p_source_77 IN VARCHAR2
43029 --Payables Encumbrance Upgrade Credit Account
43030 , p_source_78 IN NUMBER
43031 --Payables Encumbrance Upgrade Credit Amount
43032 , p_source_79 IN NUMBER
43033 --Invoice Currency Code
43034 , p_source_80 IN VARCHAR2
43035 --Payables Encumbrance Upgrade Credit Base Amount
43036 , p_source_81 IN NUMBER
43037 --Upgrade Encumbrance Debit Account Class
43038 , p_source_82 IN VARCHAR2
43039 --Payables Encumbrance Upgrade Debit Account
43040 , p_source_83 IN NUMBER
43041 --Payables Encumbrance Upgrade Debit Amount
43042 , p_source_84 IN NUMBER
43043 --Payables Encumbrance Upgrade Debit Base Amount
43044 , p_source_85 IN NUMBER
43045 --Payables Encumbrance Upgrade Option
43046 , p_source_86 IN VARCHAR2
43047 --Prepayment Distribution Amount
43048 , p_source_87 IN NUMBER
43049 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
43050 , p_source_89 IN NUMBER
43051 --Deferred Accounting End Date
43052 , p_source_90 IN DATE
43053 --Deferred Accounting Option
43054 , p_source_91 IN VARCHAR2
43055 --Deferred Accounting Start Date
43056 , p_source_92 IN DATE
43057 --Invoice Supplier Identifier
43058 , p_source_93 IN NUMBER
43059 --Invoice Supplier Site Identifier
43060 , p_source_94 IN NUMBER
43061 --Identifier of the Prepayment Application Reversed
43062 , p_source_95 IN NUMBER
43063 --Payables Upgrade Credit Encumbrance Type Identifier
43064 , p_source_96 IN NUMBER
43065 --Payables Upgrade Debit Encumbrance Type Identifier
43066 , p_source_97 IN NUMBER
43067 --Invoice Exchange Date
43068 , p_source_124 IN DATE
43069 --Invoice Exchange Rate
43070 , p_source_125 IN NUMBER
43071 --Invoice Exchange Rate Type
43072 , p_source_126 IN VARCHAR2
43073 )
43074 IS
43075
43076 l_component_type VARCHAR2(80);
43077 l_component_code VARCHAR2(30);
43078 l_component_type_code VARCHAR2(1);
43079 l_component_appl_id INTEGER;
43083 l_ae_header_id NUMBER;
43080 l_amb_context_code VARCHAR2(30);
43081 l_entity_code VARCHAR2(30);
43082 l_event_class_code VARCHAR2(30);
43084 l_event_type_code VARCHAR2(30);
43085 l_line_definition_code VARCHAR2(30);
43086 l_line_definition_owner_code VARCHAR2(1);
43087 --
43088 -- adr variables
43089 l_segment VARCHAR2(30);
43090 l_ccid NUMBER;
43091 l_adr_transaction_coa_id NUMBER;
43092 l_adr_accounting_coa_id NUMBER;
43093 l_adr_flexfield_segment_code VARCHAR2(30);
43094 l_adr_flex_value_set_id NUMBER;
43095 l_adr_value_type_code VARCHAR2(30);
43096 l_adr_value_combination_id NUMBER;
43097 l_adr_value_segment_code VARCHAR2(30);
43098
43099 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43100 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43101 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43102 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43103
43104 -- 4262811 Variables ------------------------------------------------------------------------------------------
43105 l_entered_amt_idx NUMBER;
43106 l_accted_amt_idx NUMBER;
43107 l_acc_rev_flag VARCHAR2(1);
43108 l_accrual_line_num NUMBER;
43109 l_tmp_amt NUMBER;
43110 l_acc_rev_natural_side_code VARCHAR2(1);
43111
43112 l_num_entries NUMBER;
43113 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43114 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43115 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43116 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43117 l_recog_line_1 NUMBER;
43118 l_recog_line_2 NUMBER;
43119
43120 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43121 l_bflow_applied_to_amt NUMBER; -- 5132302
43122 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43123
43124 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43125
43126 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43127 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43128
43129 ---------------------------------------------------------------------------------------------------------------
43130
43131
43132 --
43133 -- bulk performance
43134 --
43135 l_balance_type_code VARCHAR2(1);
43136 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43137 l_log_module VARCHAR2(240);
43138
43139 --
43140 -- Upgrade strategy
43141 --
43142 l_actual_upg_option VARCHAR2(1);
43143 l_enc_upg_option VARCHAR2(1);
43144
43145 --
43146 BEGIN
43147 --
43148 IF g_log_enabled THEN
43149 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
43150 END IF;
43151 --
43152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43153
43154 trace
43155 (p_msg => 'BEGIN of AcctLineType_89'
43156 ,p_level => C_LEVEL_PROCEDURE
43157 ,p_module => l_log_module);
43158
43159 END IF;
43160 --
43161 l_component_type := 'AMB_JLT';
43162 l_component_code := 'AP_FINAL_APP_ROUND_PP_CLR_RATE';
43163 l_component_type_code := 'S';
43164 l_component_appl_id := 200;
43165 l_amb_context_code := 'DEFAULT';
43166 l_entity_code := 'AP_INVOICES';
43167 l_event_class_code := 'PREPAYMENT APPLICATIONS';
43168 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
43169 l_line_definition_owner_code := 'S';
43170 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
43171 --
43172 l_balance_type_code := 'A';
43173 l_segment := NULL;
43174 l_ccid := NULL;
43175 l_adr_transaction_coa_id := NULL;
43176 l_adr_accounting_coa_id := NULL;
43177 l_adr_flexfield_segment_code := NULL;
43178 l_adr_flex_value_set_id := NULL;
43179 l_adr_value_type_code := NULL;
43180 l_adr_value_combination_id := NULL;
43181 l_adr_value_segment_code := NULL;
43182
43183 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43184 l_bflow_class_code := ''; -- 4219869 Business Flow
43185 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43186 l_budgetary_control_flag := 'N';
43187
43188 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43189 l_bflow_applied_to_amt := NULL; -- 5132302
43190 l_entered_amt_idx := NULL; -- 4262811
43191 l_accted_amt_idx := NULL; -- 4262811
43192 l_acc_rev_flag := NULL; -- 4262811
43193 l_accrual_line_num := NULL; -- 4262811
43194 l_tmp_amt := NULL; -- 4262811
43195 --
43196
43197 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43198 l_balance_type_code <> 'B' THEN
43199 IF NVL(p_source_38,'
43200 ') <> 'CLEAR_CLEAR' AND
43201 NVL(p_source_67,'
43202 ') = 'FINAL APPLICATION ROUNDING'
43203 THEN
43204
43205 --
43206 XLA_AE_LINES_PKG.SetNewLine;
43207
43211 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43208 p_balance_type_code := l_balance_type_code;
43209 -- set the flag so later we will know whether the gain loss line needs to be created
43210
43212 p_actual_flag :='A';
43213 END IF;
43214
43215 --
43216 -- bulk performance
43217 --
43218 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43219 p_header_num => 0); -- 4262811
43220 --
43221 -- set accounting line options
43222 --
43223 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43224 p_natural_side_code => 'C'
43225 , p_gain_or_loss_flag => 'N'
43226 , p_gl_transfer_mode_code => 'S'
43227 , p_acct_entry_type_code => 'A'
43228 , p_switch_side_flag => 'Y'
43229 , p_merge_duplicate_code => 'A'
43230 );
43231 --
43232 l_acc_rev_natural_side_code := 'D'; -- 4262811
43233 --
43234 --
43235 -- set accounting line type info
43236 --
43237 xla_ae_lines_pkg.SetAcctLineType
43238 (p_component_type => l_component_type
43239 ,p_event_type_code => l_event_type_code
43240 ,p_line_definition_owner_code => l_line_definition_owner_code
43241 ,p_line_definition_code => l_line_definition_code
43242 ,p_accounting_line_code => l_component_code
43243 ,p_accounting_line_type_code => l_component_type_code
43244 ,p_accounting_line_appl_id => l_component_appl_id
43245 ,p_amb_context_code => l_amb_context_code
43246 ,p_entity_code => l_entity_code
43247 ,p_event_class_code => l_event_class_code);
43248 --
43249 -- set accounting class
43250 --
43251 xla_ae_lines_pkg.SetAcctClass(
43252 p_accounting_class_code => 'ROUNDING'
43253 , p_ae_header_id => l_ae_header_id
43254 );
43255
43256 --
43257 -- set rounding class
43258 --
43259 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43260 'ROUNDING';
43261
43262 --
43263 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43264 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43265 --
43266 -- bulk performance
43267 --
43268 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43269
43270 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43271 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43272
43273 -- 4955764
43274 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43275 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43276
43277 -- 4458381 Public Sector Enh
43278
43279 --
43280 -- set accounting attributes for the line type
43281 --
43282 l_entered_amt_idx := 25;
43283 l_accted_amt_idx := 30;
43284 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43285 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43286 l_rec_acct_attrs.array_char_value(1) := p_source_40;
43287 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43288 l_rec_acct_attrs.array_num_value(2) :=
43289 xla_ae_sources_pkg.GetSystemSourceNum(
43290 p_source_code => 'XLA_EVENT_APPL_ID'
43291 , p_source_type_code => 'Y'
43292 , p_source_application_id => 602
43293 );
43294 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43295 l_rec_acct_attrs.array_char_value(3) := p_source_48;
43296 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43297 l_rec_acct_attrs.array_char_value(4) :=
43298 xla_ae_sources_pkg.GetSystemSourceChar(
43299 p_source_code => 'XLA_ENTITY_CODE'
43300 , p_source_type_code => 'Y'
43301 , p_source_application_id => 602
43302 );
43303 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43304 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
43305 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43306 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
43307 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43308 l_rec_acct_attrs.array_num_value(7) := p_source_42;
43309 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43310 l_rec_acct_attrs.array_char_value(8) := p_source_73;
43311 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43312 l_rec_acct_attrs.array_char_value(9) := p_source_74;
43313 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43314 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
43315 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43316 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
43317 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43318 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
43319 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43320 l_rec_acct_attrs.array_char_value(13) := p_source_48;
43321 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
43325 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
43322 l_rec_acct_attrs.array_char_value(14) := p_source_77;
43323 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
43324 l_rec_acct_attrs.array_num_value(15) := p_source_78;
43326 l_rec_acct_attrs.array_num_value(16) := p_source_79;
43327 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
43328 l_rec_acct_attrs.array_char_value(17) := p_source_80;
43329 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
43330 l_rec_acct_attrs.array_num_value(18) := p_source_81;
43331 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
43332 l_rec_acct_attrs.array_char_value(19) := p_source_82;
43333 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
43334 l_rec_acct_attrs.array_num_value(20) := p_source_83;
43335 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
43336 l_rec_acct_attrs.array_num_value(21) := p_source_84;
43337 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
43338 l_rec_acct_attrs.array_char_value(22) := p_source_80;
43339 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
43340 l_rec_acct_attrs.array_num_value(23) := p_source_85;
43341 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
43342 l_rec_acct_attrs.array_char_value(24) := p_source_86;
43343 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
43344 l_rec_acct_attrs.array_num_value(25) := p_source_87;
43345 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
43346 l_rec_acct_attrs.array_char_value(26) := p_source_80;
43347 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
43348 l_rec_acct_attrs.array_date_value(27) := p_source_124;
43349 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
43350 l_rec_acct_attrs.array_num_value(28) := p_source_125;
43351 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
43352 l_rec_acct_attrs.array_char_value(29) := p_source_126;
43353 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
43354 l_rec_acct_attrs.array_num_value(30) := p_source_89;
43355 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
43356 l_rec_acct_attrs.array_date_value(31) := p_source_90;
43357 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
43358 l_rec_acct_attrs.array_char_value(32) := p_source_91;
43359 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
43360 l_rec_acct_attrs.array_date_value(33) := p_source_92;
43361 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
43362 l_rec_acct_attrs.array_char_value(34) := p_source_53;
43363 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
43364 l_rec_acct_attrs.array_num_value(35) := p_source_93;
43365 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
43366 l_rec_acct_attrs.array_num_value(36) := p_source_94;
43367 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
43368 l_rec_acct_attrs.array_char_value(37) := p_source_56;
43369 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
43370 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
43371 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
43372 l_rec_acct_attrs.array_char_value(39) := p_source_48;
43373 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
43374 l_rec_acct_attrs.array_num_value(40) := p_source_58;
43375 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
43376 l_rec_acct_attrs.array_num_value(41) := p_source_66;
43377 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
43378 l_rec_acct_attrs.array_num_value(42) := p_source_59;
43379 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
43380 l_rec_acct_attrs.array_num_value(43) := p_source_96;
43381 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
43382 l_rec_acct_attrs.array_num_value(44) := p_source_97;
43383
43384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43385 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43386
43387 ---------------------------------------------------------------------------------------------------------------
43388 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43389 ---------------------------------------------------------------------------------------------------------------
43390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43391
43392 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43393 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43394
43395 IF xla_accounting_cache_pkg.GetValueChar
43396 (p_source_code => 'LEDGER_CATEGORY_CODE'
43397 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43398 AND l_bflow_method_code = 'PRIOR_ENTRY'
43399 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43400 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43401 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43402 )
43403 THEN
43404 xla_ae_lines_pkg.BflowUpgEntry
43405 (p_business_method_code => l_bflow_method_code
43406 ,p_business_class_code => l_bflow_class_code
43410 -- No business flow processing for business flow method of NONE.
43407 ,p_balance_type => l_balance_type_code);
43408 ELSE
43409 NULL;
43411 END IF;
43412
43413 --
43414 -- call analytical criteria
43415 --
43416
43417 --
43418 -- call description
43419 --
43420 -- No description or it is inherited.
43421 --
43422 -- call ADRs
43423 -- Bug 4922099
43424 --
43425 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43426 (NVL(l_actual_upg_option, 'N') = 'O') OR
43427 (NVL(l_enc_upg_option, 'N') = 'O')
43428 )
43429 THEN
43430 NULL;
43431 --
43432 --
43433
43434 l_ccid := AcctDerRule_35(
43435 p_application_id => p_application_id
43436 , p_ae_header_id => l_ae_header_id
43437 , p_source_4 => p_source_4
43438 , p_source_4_meaning => p_source_4_meaning
43439 , p_source_17 => p_source_17
43440 , p_source_37 => p_source_37
43441 , x_transaction_coa_id => l_adr_transaction_coa_id
43442 , x_accounting_coa_id => l_adr_accounting_coa_id
43443 , x_value_type_code => l_adr_value_type_code
43444 , p_side => 'NA'
43445 );
43446
43447 xla_ae_lines_pkg.set_ccid(
43448 p_code_combination_id => l_ccid
43449 , p_value_type_code => l_adr_value_type_code
43450 , p_transaction_coa_id => l_adr_transaction_coa_id
43451 , p_accounting_coa_id => l_adr_accounting_coa_id
43452 , p_adr_code => 'AP_ROUNDING'
43453 , p_adr_type_code => 'S'
43454 , p_component_type => l_component_type
43455 , p_component_code => l_component_code
43456 , p_component_type_code => l_component_type_code
43457 , p_component_appl_id => l_component_appl_id
43458 , p_amb_context_code => l_amb_context_code
43459 , p_side => 'NA'
43460 );
43461
43462
43463 --
43464 --
43465 END IF;
43466 --
43467 -- Bug 4922099
43468 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43469 (NVL(l_enc_upg_option, 'N') = 'O')
43470 ) AND
43471 (l_bflow_method_code = 'PRIOR_ENTRY')
43472 )
43473 THEN
43474 IF
43475 --
43476 1 = 2
43477 --
43478 THEN
43479 xla_accounting_err_pkg.build_message
43480 (p_appli_s_name => 'XLA'
43481 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43482 ,p_token_1 => 'LINE_NUMBER'
43483 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43484 ,p_token_2 => 'LINE_TYPE_NAME'
43485 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43486 l_component_type
43487 ,l_component_code
43488 ,l_component_type_code
43489 ,l_component_appl_id
43490 ,l_amb_context_code
43491 ,l_entity_code
43492 ,l_event_class_code
43493 )
43494 ,p_token_3 => 'OWNER'
43495 ,p_value_3 => xla_lookups_pkg.get_meaning(
43496 p_lookup_type => 'XLA_OWNER_TYPE'
43497 ,p_lookup_code => l_component_type_code
43498 )
43499 ,p_token_4 => 'PRODUCT_NAME'
43500 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43501 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43502 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43503 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43504 ,p_ae_header_id => NULL
43505 );
43506
43507 IF (C_LEVEL_ERROR>= g_log_level) THEN
43508 trace
43509 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43510 ,p_level => C_LEVEL_ERROR
43511 ,p_module => l_log_module);
43512 END IF;
43513 END IF;
43514 END IF;
43515 --
43516 --
43517 ------------------------------------------------------------------------------------------------
43518 -- 4219869 Business Flow
43522 XLA_AE_LINES_PKG.ValidateCurrentLine;
43519 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43520 -- Prior Entry. Currently, the following code is always generated.
43521 ------------------------------------------------------------------------------------------------
43523
43524 ------------------------------------------------------------------------------------
43525 -- 4219869 Business Flow
43526 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43527 ------------------------------------------------------------------------------------
43528 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43529
43530 ----------------------------------------------------------------------------------
43531 -- 4219869 Business Flow
43532 -- Update journal entry status -- Need to generate this within IF <condition>
43533 ----------------------------------------------------------------------------------
43534 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43535 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43536 ,p_balance_type_code => l_balance_type_code
43537 );
43538
43539 -------------------------------------------------------------------------------------------
43540 -- 4262811 - Generate the Accrual Reversal lines
43541 -------------------------------------------------------------------------------------------
43542 BEGIN
43543 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43544 (g_array_event(p_event_id).array_value_num('header_index'));
43545 IF l_acc_rev_flag IS NULL THEN
43546 l_acc_rev_flag := 'N';
43547 END IF;
43548 EXCEPTION
43549 WHEN OTHERS THEN
43550 l_acc_rev_flag := 'N';
43551 END;
43552 --
43553 IF (l_acc_rev_flag = 'Y') THEN
43554
43555 -- 4645092 ------------------------------------------------------------------------------
43556 -- To allow MPA report to determine if it should generate report process
43557 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43558 ------------------------------------------------------------------------------------------
43559
43560 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43561 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43562 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43563 -- call ADRs
43564 -- Bug 4922099
43565 --
43566 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43567 (NVL(l_actual_upg_option, 'N') = 'O') OR
43568 (NVL(l_enc_upg_option, 'N') = 'O')
43569 )
43570 THEN
43571 NULL;
43572 --
43573 --
43574
43575 l_ccid := AcctDerRule_35(
43576 p_application_id => p_application_id
43577 , p_ae_header_id => l_ae_header_id
43578 , p_source_4 => p_source_4
43579 , p_source_4_meaning => p_source_4_meaning
43580 , p_source_17 => p_source_17
43581 , p_source_37 => p_source_37
43582 , x_transaction_coa_id => l_adr_transaction_coa_id
43583 , x_accounting_coa_id => l_adr_accounting_coa_id
43584 , x_value_type_code => l_adr_value_type_code
43585 , p_side => 'NA'
43586 );
43587
43588 xla_ae_lines_pkg.set_ccid(
43589 p_code_combination_id => l_ccid
43590 , p_value_type_code => l_adr_value_type_code
43591 , p_transaction_coa_id => l_adr_transaction_coa_id
43592 , p_accounting_coa_id => l_adr_accounting_coa_id
43593 , p_adr_code => 'AP_ROUNDING'
43594 , p_adr_type_code => 'S'
43595 , p_component_type => l_component_type
43596 , p_component_code => l_component_code
43597 , p_component_type_code => l_component_type_code
43598 , p_component_appl_id => l_component_appl_id
43599 , p_amb_context_code => l_amb_context_code
43600 , p_side => 'NA'
43601 );
43602
43603
43604 --
43605 --
43606 END IF;
43607
43608 --
43609 -- Update the line information that should be overwritten
43610 --
43611 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43612 p_header_num => 1);
43613 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43614
43615 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43616
43617 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43618 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43619 END IF;
43620
43621 --
43622 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43623 --
43624 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43625 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43626 ELSE
43627 ---------------------------------------------------------------------------------------------------
43628 -- 4262811a Switch Sign
43632 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43629 ---------------------------------------------------------------------------------------------------
43630 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43631 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43633 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43634 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43635 -- 5132302
43636 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43637 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43638
43639 END IF;
43640
43641 -- 4955764
43642 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43643 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43644
43645
43646 XLA_AE_LINES_PKG.ValidateCurrentLine;
43647 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43648
43649 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43650 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43651 ,p_balance_type_code => l_balance_type_code);
43652
43653 END IF;
43654
43655 -----------------------------------------------------------------------------------------
43656 -- 4262811 Multiperiod Accounting
43657 -----------------------------------------------------------------------------------------
43658 -- No MPA option is assigned.
43659
43660
43661 END IF;
43662 END IF;
43663 --
43664
43665 --
43666 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43667 trace
43668 (p_msg => 'END of AcctLineType_89'
43669 ,p_level => C_LEVEL_PROCEDURE
43670 ,p_module => l_log_module);
43671 END IF;
43672 --
43673 EXCEPTION
43674 WHEN xla_exceptions_pkg.application_exception THEN
43675 RAISE;
43676 WHEN OTHERS THEN
43677 xla_exceptions_pkg.raise_message
43678 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_89');
43679 END AcctLineType_89;
43680 --
43681
43682 ---------------------------------------
43683 --
43684 -- PRIVATE FUNCTION
43685 -- AcctLineType_90
43686 --
43687 ---------------------------------------
43688 PROCEDURE AcctLineType_90 (
43689 p_application_id IN NUMBER
43690 ,p_event_id IN NUMBER
43691 ,p_calculate_acctd_flag IN VARCHAR2
43692 ,p_calculate_g_l_flag IN VARCHAR2
43693 ,p_actual_flag IN OUT VARCHAR2
43694 ,p_balance_type_code OUT VARCHAR2
43695 ,p_gain_or_loss_ref OUT VARCHAR2
43696
43697 --Automatic Offsets Value
43698 , p_source_4 IN VARCHAR2
43699 , p_source_4_meaning IN VARCHAR2
43700 --Invoice Distribution Account
43701 , p_source_17 IN NUMBER
43702 --Payables Options Rounding Account
43703 , p_source_37 IN NUMBER
43704 --When to Account for Payment Option
43705 , p_source_38 IN VARCHAR2
43706 --Accounting Reversal Indicator
43707 , p_source_40 IN VARCHAR2
43708 --Business Flow Accounts Payable Application Identifier
43709 , p_source_42 IN NUMBER
43710 --Distribution Link Type
43711 , p_source_48 IN VARCHAR2
43712 --Override Accounted Amount Indicator
43713 , p_source_53 IN VARCHAR2
43714 , p_source_53_meaning IN VARCHAR2
43715 --Third Party Type
43716 , p_source_56 IN VARCHAR2
43717 --Invoice Distribution Tax Line Identifier
43718 , p_source_58 IN NUMBER
43719 --Invoice Distribution Summary Tax Line Identifier
43720 , p_source_59 IN NUMBER
43721 --Invoice Distribution Tax Distribution Identifier from Tax
43722 , p_source_66 IN NUMBER
43723 --Prepayment Distribution Type
43724 , p_source_67 IN VARCHAR2
43725 --Prepayment Application Distribution Identifier
43726 , p_source_71 IN NUMBER
43727 --Invoice Identifier
43728 , p_source_72 IN NUMBER
43729 --Business Flow Prepayment Invoice Distribution Type
43730 , p_source_73 IN VARCHAR2
43731 --Business Flow Prepayment Invoice Entity Code
43732 , p_source_74 IN VARCHAR2
43733 --Business Flow Prepayment Invoice Distribution Identifier
43734 , p_source_75 IN NUMBER
43735 --Business Flow Prepayment Invoice Identifier
43736 , p_source_76 IN NUMBER
43737 --Upgrade Encumbrance Credit Account Class
43738 , p_source_77 IN VARCHAR2
43739 --Payables Encumbrance Upgrade Credit Account
43740 , p_source_78 IN NUMBER
43741 --Payables Encumbrance Upgrade Credit Amount
43742 , p_source_79 IN NUMBER
43743 --Invoice Currency Code
43744 , p_source_80 IN VARCHAR2
43745 --Payables Encumbrance Upgrade Credit Base Amount
43746 , p_source_81 IN NUMBER
43747 --Upgrade Encumbrance Debit Account Class
43748 , p_source_82 IN VARCHAR2
43749 --Payables Encumbrance Upgrade Debit Account
43750 , p_source_83 IN NUMBER
43751 --Payables Encumbrance Upgrade Debit Amount
43752 , p_source_84 IN NUMBER
43753 --Payables Encumbrance Upgrade Debit Base Amount
43754 , p_source_85 IN NUMBER
43755 --Payables Encumbrance Upgrade Option
43759 --Deferred Accounting End Date
43756 , p_source_86 IN VARCHAR2
43757 --Prepayment Distribution Amount
43758 , p_source_87 IN NUMBER
43760 , p_source_90 IN DATE
43761 --Deferred Accounting Option
43762 , p_source_91 IN VARCHAR2
43763 --Deferred Accounting Start Date
43764 , p_source_92 IN DATE
43765 --Invoice Supplier Identifier
43766 , p_source_93 IN NUMBER
43767 --Invoice Supplier Site Identifier
43768 , p_source_94 IN NUMBER
43769 --Identifier of the Prepayment Application Reversed
43770 , p_source_95 IN NUMBER
43771 --Payables Upgrade Credit Encumbrance Type Identifier
43772 , p_source_96 IN NUMBER
43773 --Payables Upgrade Debit Encumbrance Type Identifier
43774 , p_source_97 IN NUMBER
43775 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
43776 , p_source_99 IN NUMBER
43777 --Invoice Exchange Date
43778 , p_source_124 IN DATE
43779 --Invoice Exchange Rate
43780 , p_source_125 IN NUMBER
43781 --Invoice Exchange Rate Type
43782 , p_source_126 IN VARCHAR2
43783 )
43784 IS
43785
43786 l_component_type VARCHAR2(80);
43787 l_component_code VARCHAR2(30);
43788 l_component_type_code VARCHAR2(1);
43789 l_component_appl_id INTEGER;
43790 l_amb_context_code VARCHAR2(30);
43791 l_entity_code VARCHAR2(30);
43792 l_event_class_code VARCHAR2(30);
43793 l_ae_header_id NUMBER;
43794 l_event_type_code VARCHAR2(30);
43795 l_line_definition_code VARCHAR2(30);
43796 l_line_definition_owner_code VARCHAR2(1);
43797 --
43798 -- adr variables
43799 l_segment VARCHAR2(30);
43800 l_ccid NUMBER;
43801 l_adr_transaction_coa_id NUMBER;
43802 l_adr_accounting_coa_id NUMBER;
43803 l_adr_flexfield_segment_code VARCHAR2(30);
43804 l_adr_flex_value_set_id NUMBER;
43805 l_adr_value_type_code VARCHAR2(30);
43806 l_adr_value_combination_id NUMBER;
43807 l_adr_value_segment_code VARCHAR2(30);
43808
43809 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43810 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43811 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43812 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43813
43814 -- 4262811 Variables ------------------------------------------------------------------------------------------
43815 l_entered_amt_idx NUMBER;
43816 l_accted_amt_idx NUMBER;
43817 l_acc_rev_flag VARCHAR2(1);
43818 l_accrual_line_num NUMBER;
43819 l_tmp_amt NUMBER;
43820 l_acc_rev_natural_side_code VARCHAR2(1);
43821
43822 l_num_entries NUMBER;
43823 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43824 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43825 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43826 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43827 l_recog_line_1 NUMBER;
43828 l_recog_line_2 NUMBER;
43829
43830 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43831 l_bflow_applied_to_amt NUMBER; -- 5132302
43832 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43833
43834 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43835
43836 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43837 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43838
43839 ---------------------------------------------------------------------------------------------------------------
43840
43841
43842 --
43843 -- bulk performance
43844 --
43845 l_balance_type_code VARCHAR2(1);
43846 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43847 l_log_module VARCHAR2(240);
43848
43849 --
43850 -- Upgrade strategy
43851 --
43852 l_actual_upg_option VARCHAR2(1);
43853 l_enc_upg_option VARCHAR2(1);
43854
43855 --
43856 BEGIN
43857 --
43858 IF g_log_enabled THEN
43859 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
43860 END IF;
43861 --
43862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43863
43864 trace
43865 (p_msg => 'BEGIN of AcctLineType_90'
43866 ,p_level => C_LEVEL_PROCEDURE
43867 ,p_module => l_log_module);
43868
43869 END IF;
43870 --
43871 l_component_type := 'AMB_JLT';
43872 l_component_code := 'AP_FINAL_APP_ROUND_PP_PAY_RATE';
43873 l_component_type_code := 'S';
43874 l_component_appl_id := 200;
43875 l_amb_context_code := 'DEFAULT';
43876 l_entity_code := 'AP_INVOICES';
43877 l_event_class_code := 'PREPAYMENT APPLICATIONS';
43878 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
43879 l_line_definition_owner_code := 'S';
43880 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
43881 --
43882 l_balance_type_code := 'A';
43883 l_segment := NULL;
43884 l_ccid := NULL;
43885 l_adr_transaction_coa_id := NULL;
43889 l_adr_value_type_code := NULL;
43886 l_adr_accounting_coa_id := NULL;
43887 l_adr_flexfield_segment_code := NULL;
43888 l_adr_flex_value_set_id := NULL;
43890 l_adr_value_combination_id := NULL;
43891 l_adr_value_segment_code := NULL;
43892
43893 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43894 l_bflow_class_code := ''; -- 4219869 Business Flow
43895 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43896 l_budgetary_control_flag := 'N';
43897
43898 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43899 l_bflow_applied_to_amt := NULL; -- 5132302
43900 l_entered_amt_idx := NULL; -- 4262811
43901 l_accted_amt_idx := NULL; -- 4262811
43902 l_acc_rev_flag := NULL; -- 4262811
43903 l_accrual_line_num := NULL; -- 4262811
43904 l_tmp_amt := NULL; -- 4262811
43905 --
43906
43907 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43908 l_balance_type_code <> 'B' THEN
43909 IF NVL(p_source_38,'
43910 ') <> 'CLEAR_CLEAR' AND
43911 NVL(p_source_67,'
43912 ') = 'FINAL APPLICATION ROUNDING'
43913 THEN
43914
43915 --
43916 XLA_AE_LINES_PKG.SetNewLine;
43917
43918 p_balance_type_code := l_balance_type_code;
43919 -- set the flag so later we will know whether the gain loss line needs to be created
43920
43921 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43922 p_actual_flag :='A';
43923 END IF;
43924
43925 --
43926 -- bulk performance
43927 --
43928 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43929 p_header_num => 0); -- 4262811
43930 --
43931 -- set accounting line options
43932 --
43933 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43934 p_natural_side_code => 'C'
43935 , p_gain_or_loss_flag => 'N'
43936 , p_gl_transfer_mode_code => 'S'
43937 , p_acct_entry_type_code => 'A'
43938 , p_switch_side_flag => 'Y'
43939 , p_merge_duplicate_code => 'A'
43940 );
43941 --
43942 l_acc_rev_natural_side_code := 'D'; -- 4262811
43943 --
43944 --
43945 -- set accounting line type info
43946 --
43947 xla_ae_lines_pkg.SetAcctLineType
43948 (p_component_type => l_component_type
43949 ,p_event_type_code => l_event_type_code
43950 ,p_line_definition_owner_code => l_line_definition_owner_code
43951 ,p_line_definition_code => l_line_definition_code
43952 ,p_accounting_line_code => l_component_code
43953 ,p_accounting_line_type_code => l_component_type_code
43954 ,p_accounting_line_appl_id => l_component_appl_id
43955 ,p_amb_context_code => l_amb_context_code
43956 ,p_entity_code => l_entity_code
43957 ,p_event_class_code => l_event_class_code);
43958 --
43959 -- set accounting class
43960 --
43961 xla_ae_lines_pkg.SetAcctClass(
43962 p_accounting_class_code => 'ROUNDING'
43963 , p_ae_header_id => l_ae_header_id
43964 );
43965
43966 --
43967 -- set rounding class
43968 --
43969 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43970 'ROUNDING';
43971
43972 --
43973 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43974 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43975 --
43976 -- bulk performance
43977 --
43978 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43979
43980 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43981 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43982
43983 -- 4955764
43984 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43985 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43986
43987 -- 4458381 Public Sector Enh
43988
43989 --
43990 -- set accounting attributes for the line type
43991 --
43992 l_entered_amt_idx := 25;
43993 l_accted_amt_idx := 30;
43994 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43995 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43996 l_rec_acct_attrs.array_char_value(1) := p_source_40;
43997 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43998 l_rec_acct_attrs.array_num_value(2) :=
43999 xla_ae_sources_pkg.GetSystemSourceNum(
44000 p_source_code => 'XLA_EVENT_APPL_ID'
44001 , p_source_type_code => 'Y'
44002 , p_source_application_id => 602
44003 );
44004 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44005 l_rec_acct_attrs.array_char_value(3) := p_source_48;
44006 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44007 l_rec_acct_attrs.array_char_value(4) :=
44008 xla_ae_sources_pkg.GetSystemSourceChar(
44009 p_source_code => 'XLA_ENTITY_CODE'
44010 , p_source_type_code => 'Y'
44011 , p_source_application_id => 602
44015 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44012 );
44013 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44014 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
44016 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
44017 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44018 l_rec_acct_attrs.array_num_value(7) := p_source_42;
44019 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44020 l_rec_acct_attrs.array_char_value(8) := p_source_73;
44021 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44022 l_rec_acct_attrs.array_char_value(9) := p_source_74;
44023 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44024 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
44025 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44026 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
44027 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44028 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
44029 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44030 l_rec_acct_attrs.array_char_value(13) := p_source_48;
44031 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44032 l_rec_acct_attrs.array_char_value(14) := p_source_77;
44033 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44034 l_rec_acct_attrs.array_num_value(15) := p_source_78;
44035 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44036 l_rec_acct_attrs.array_num_value(16) := p_source_79;
44037 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44038 l_rec_acct_attrs.array_char_value(17) := p_source_80;
44039 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44040 l_rec_acct_attrs.array_num_value(18) := p_source_81;
44041 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44042 l_rec_acct_attrs.array_char_value(19) := p_source_82;
44043 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44044 l_rec_acct_attrs.array_num_value(20) := p_source_83;
44045 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44046 l_rec_acct_attrs.array_num_value(21) := p_source_84;
44047 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44048 l_rec_acct_attrs.array_char_value(22) := p_source_80;
44049 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44050 l_rec_acct_attrs.array_num_value(23) := p_source_85;
44051 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44052 l_rec_acct_attrs.array_char_value(24) := p_source_86;
44053 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44054 l_rec_acct_attrs.array_num_value(25) := p_source_87;
44055 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44056 l_rec_acct_attrs.array_char_value(26) := p_source_80;
44057 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
44058 l_rec_acct_attrs.array_date_value(27) := p_source_124;
44059 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
44060 l_rec_acct_attrs.array_num_value(28) := p_source_125;
44061 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
44062 l_rec_acct_attrs.array_char_value(29) := p_source_126;
44063 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
44064 l_rec_acct_attrs.array_num_value(30) := p_source_99;
44065 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
44066 l_rec_acct_attrs.array_date_value(31) := p_source_90;
44067 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
44068 l_rec_acct_attrs.array_char_value(32) := p_source_91;
44069 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
44070 l_rec_acct_attrs.array_date_value(33) := p_source_92;
44071 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
44072 l_rec_acct_attrs.array_char_value(34) := p_source_53;
44073 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
44074 l_rec_acct_attrs.array_num_value(35) := p_source_93;
44075 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
44076 l_rec_acct_attrs.array_num_value(36) := p_source_94;
44077 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
44078 l_rec_acct_attrs.array_char_value(37) := p_source_56;
44079 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
44080 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
44081 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
44082 l_rec_acct_attrs.array_char_value(39) := p_source_48;
44083 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
44084 l_rec_acct_attrs.array_num_value(40) := p_source_58;
44085 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
44086 l_rec_acct_attrs.array_num_value(41) := p_source_66;
44087 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
44088 l_rec_acct_attrs.array_num_value(42) := p_source_59;
44089 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
44090 l_rec_acct_attrs.array_num_value(43) := p_source_96;
44091 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
44092 l_rec_acct_attrs.array_num_value(44) := p_source_97;
44093
44094 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44098 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44095 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44096
44097 ---------------------------------------------------------------------------------------------------------------
44099 ---------------------------------------------------------------------------------------------------------------
44100 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44101
44102 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44103 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44104
44105 IF xla_accounting_cache_pkg.GetValueChar
44106 (p_source_code => 'LEDGER_CATEGORY_CODE'
44107 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44108 AND l_bflow_method_code = 'PRIOR_ENTRY'
44109 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44110 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44111 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44112 )
44113 THEN
44114 xla_ae_lines_pkg.BflowUpgEntry
44115 (p_business_method_code => l_bflow_method_code
44116 ,p_business_class_code => l_bflow_class_code
44117 ,p_balance_type => l_balance_type_code);
44118 ELSE
44119 NULL;
44120 -- No business flow processing for business flow method of NONE.
44121 END IF;
44122
44123 --
44124 -- call analytical criteria
44125 --
44126
44127 --
44128 -- call description
44129 --
44130 -- No description or it is inherited.
44131 --
44132 -- call ADRs
44133 -- Bug 4922099
44134 --
44135 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44136 (NVL(l_actual_upg_option, 'N') = 'O') OR
44137 (NVL(l_enc_upg_option, 'N') = 'O')
44138 )
44139 THEN
44140 NULL;
44141 --
44142 --
44143
44144 l_ccid := AcctDerRule_35(
44145 p_application_id => p_application_id
44146 , p_ae_header_id => l_ae_header_id
44147 , p_source_4 => p_source_4
44148 , p_source_4_meaning => p_source_4_meaning
44149 , p_source_17 => p_source_17
44150 , p_source_37 => p_source_37
44151 , x_transaction_coa_id => l_adr_transaction_coa_id
44152 , x_accounting_coa_id => l_adr_accounting_coa_id
44153 , x_value_type_code => l_adr_value_type_code
44154 , p_side => 'NA'
44155 );
44156
44157 xla_ae_lines_pkg.set_ccid(
44158 p_code_combination_id => l_ccid
44159 , p_value_type_code => l_adr_value_type_code
44160 , p_transaction_coa_id => l_adr_transaction_coa_id
44161 , p_accounting_coa_id => l_adr_accounting_coa_id
44162 , p_adr_code => 'AP_ROUNDING'
44163 , p_adr_type_code => 'S'
44164 , p_component_type => l_component_type
44165 , p_component_code => l_component_code
44166 , p_component_type_code => l_component_type_code
44167 , p_component_appl_id => l_component_appl_id
44168 , p_amb_context_code => l_amb_context_code
44169 , p_side => 'NA'
44170 );
44171
44172
44173 --
44174 --
44175 END IF;
44176 --
44177 -- Bug 4922099
44178 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44179 (NVL(l_enc_upg_option, 'N') = 'O')
44180 ) AND
44181 (l_bflow_method_code = 'PRIOR_ENTRY')
44182 )
44183 THEN
44184 IF
44185 --
44186 1 = 2
44187 --
44188 THEN
44189 xla_accounting_err_pkg.build_message
44190 (p_appli_s_name => 'XLA'
44191 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44192 ,p_token_1 => 'LINE_NUMBER'
44193 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44194 ,p_token_2 => 'LINE_TYPE_NAME'
44195 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44196 l_component_type
44197 ,l_component_code
44198 ,l_component_type_code
44199 ,l_component_appl_id
44200 ,l_amb_context_code
44201 ,l_entity_code
44202 ,l_event_class_code
44203 )
44204 ,p_token_3 => 'OWNER'
44205 ,p_value_3 => xla_lookups_pkg.get_meaning(
44209 ,p_token_4 => 'PRODUCT_NAME'
44206 p_lookup_type => 'XLA_OWNER_TYPE'
44207 ,p_lookup_code => l_component_type_code
44208 )
44210 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44211 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44212 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44213 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44214 ,p_ae_header_id => NULL
44215 );
44216
44217 IF (C_LEVEL_ERROR>= g_log_level) THEN
44218 trace
44219 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44220 ,p_level => C_LEVEL_ERROR
44221 ,p_module => l_log_module);
44222 END IF;
44223 END IF;
44224 END IF;
44225 --
44226 --
44227 ------------------------------------------------------------------------------------------------
44228 -- 4219869 Business Flow
44229 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44230 -- Prior Entry. Currently, the following code is always generated.
44231 ------------------------------------------------------------------------------------------------
44232 XLA_AE_LINES_PKG.ValidateCurrentLine;
44233
44234 ------------------------------------------------------------------------------------
44235 -- 4219869 Business Flow
44236 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44237 ------------------------------------------------------------------------------------
44238 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44239
44240 ----------------------------------------------------------------------------------
44241 -- 4219869 Business Flow
44242 -- Update journal entry status -- Need to generate this within IF <condition>
44243 ----------------------------------------------------------------------------------
44244 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44245 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44246 ,p_balance_type_code => l_balance_type_code
44247 );
44248
44249 -------------------------------------------------------------------------------------------
44250 -- 4262811 - Generate the Accrual Reversal lines
44251 -------------------------------------------------------------------------------------------
44252 BEGIN
44253 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44254 (g_array_event(p_event_id).array_value_num('header_index'));
44255 IF l_acc_rev_flag IS NULL THEN
44256 l_acc_rev_flag := 'N';
44257 END IF;
44258 EXCEPTION
44259 WHEN OTHERS THEN
44260 l_acc_rev_flag := 'N';
44261 END;
44262 --
44263 IF (l_acc_rev_flag = 'Y') THEN
44264
44265 -- 4645092 ------------------------------------------------------------------------------
44266 -- To allow MPA report to determine if it should generate report process
44267 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44268 ------------------------------------------------------------------------------------------
44269
44270 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44271 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44272 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44273 -- call ADRs
44274 -- Bug 4922099
44275 --
44276 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44277 (NVL(l_actual_upg_option, 'N') = 'O') OR
44278 (NVL(l_enc_upg_option, 'N') = 'O')
44279 )
44280 THEN
44281 NULL;
44282 --
44283 --
44284
44285 l_ccid := AcctDerRule_35(
44286 p_application_id => p_application_id
44287 , p_ae_header_id => l_ae_header_id
44288 , p_source_4 => p_source_4
44289 , p_source_4_meaning => p_source_4_meaning
44290 , p_source_17 => p_source_17
44291 , p_source_37 => p_source_37
44292 , x_transaction_coa_id => l_adr_transaction_coa_id
44293 , x_accounting_coa_id => l_adr_accounting_coa_id
44294 , x_value_type_code => l_adr_value_type_code
44295 , p_side => 'NA'
44296 );
44297
44298 xla_ae_lines_pkg.set_ccid(
44299 p_code_combination_id => l_ccid
44300 , p_value_type_code => l_adr_value_type_code
44301 , p_transaction_coa_id => l_adr_transaction_coa_id
44302 , p_accounting_coa_id => l_adr_accounting_coa_id
44303 , p_adr_code => 'AP_ROUNDING'
44304 , p_adr_type_code => 'S'
44305 , p_component_type => l_component_type
44306 , p_component_code => l_component_code
44307 , p_component_type_code => l_component_type_code
44308 , p_component_appl_id => l_component_appl_id
44309 , p_amb_context_code => l_amb_context_code
44310 , p_side => 'NA'
44311 );
44312
44313
44314 --
44318 --
44315 --
44316 END IF;
44317
44319 -- Update the line information that should be overwritten
44320 --
44321 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44322 p_header_num => 1);
44323 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44324
44325 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44326
44327 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44328 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44329 END IF;
44330
44331 --
44332 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44333 --
44334 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44335 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44336 ELSE
44337 ---------------------------------------------------------------------------------------------------
44338 -- 4262811a Switch Sign
44339 ---------------------------------------------------------------------------------------------------
44340 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44341 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44342 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44343 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44344 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44345 -- 5132302
44346 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44347 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44348
44349 END IF;
44350
44351 -- 4955764
44352 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44353 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44354
44355
44356 XLA_AE_LINES_PKG.ValidateCurrentLine;
44357 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44358
44359 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44360 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44361 ,p_balance_type_code => l_balance_type_code);
44362
44363 END IF;
44364
44365 -----------------------------------------------------------------------------------------
44366 -- 4262811 Multiperiod Accounting
44367 -----------------------------------------------------------------------------------------
44368 -- No MPA option is assigned.
44369
44370
44371 END IF;
44372 END IF;
44373 --
44374
44375 --
44376 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44377 trace
44378 (p_msg => 'END of AcctLineType_90'
44379 ,p_level => C_LEVEL_PROCEDURE
44380 ,p_module => l_log_module);
44381 END IF;
44382 --
44383 EXCEPTION
44384 WHEN xla_exceptions_pkg.application_exception THEN
44385 RAISE;
44386 WHEN OTHERS THEN
44387 xla_exceptions_pkg.raise_message
44388 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_90');
44389 END AcctLineType_90;
44390 --
44391
44392 ---------------------------------------
44393 --
44394 -- PRIVATE FUNCTION
44395 -- AcctLineType_91
44396 --
44397 ---------------------------------------
44398 PROCEDURE AcctLineType_91 (
44399 p_application_id IN NUMBER
44400 ,p_event_id IN NUMBER
44401 ,p_calculate_acctd_flag IN VARCHAR2
44402 ,p_calculate_g_l_flag IN VARCHAR2
44403 ,p_actual_flag IN OUT VARCHAR2
44404 ,p_balance_type_code OUT VARCHAR2
44405 ,p_gain_or_loss_ref OUT VARCHAR2
44406
44407 --Payment Distribution (Cleared Rate) Ledger Amount
44408 , p_source_10 IN NUMBER
44409 --Invoice Distribution Account
44410 , p_source_17 IN NUMBER
44411 --Invoice Distribution Type
44412 , p_source_20 IN VARCHAR2
44413 , p_source_20_meaning IN VARCHAR2
44414 --When to Account for Payment Option
44415 , p_source_38 IN VARCHAR2
44416 --Payment Distribution Type
44417 , p_source_39 IN VARCHAR2
44418 , p_source_39_meaning IN VARCHAR2
44419 --Accounting Reversal Indicator
44420 , p_source_40 IN VARCHAR2
44421 --Payment Distribution Amount
44422 , p_source_41 IN NUMBER
44423 --Business Flow Accounts Payable Application Identifier
44424 , p_source_42 IN NUMBER
44425 --Business Flow Payment Distribution Type
44426 , p_source_43 IN VARCHAR2
44427 --Business Flow Payment Entity Code
44428 , p_source_44 IN VARCHAR2
44429 --Business Flow Payment Distribution Identifier
44430 , p_source_45 IN NUMBER
44431 --Business Flow Payment Identifier
44432 , p_source_46 IN NUMBER
44433 --Payment Distribution Identifier
44434 , p_source_47 IN NUMBER
44435 --Distribution Link Type
44436 , p_source_48 IN VARCHAR2
44437 --Payment Currency Code
44438 , p_source_49 IN VARCHAR2
44442 --Payment Supplier Identifier
44439 --Override Accounted Amount Indicator
44440 , p_source_53 IN VARCHAR2
44441 , p_source_53_meaning IN VARCHAR2
44443 , p_source_54 IN NUMBER
44444 --Payment Supplier Site Identifier
44445 , p_source_55 IN NUMBER
44446 --Third Party Type
44447 , p_source_56 IN VARCHAR2
44448 --Payment Distribution Reversed Identifier
44449 , p_source_57 IN NUMBER
44450 --Invoice Distribution Tax Line Identifier
44451 , p_source_58 IN NUMBER
44452 --Invoice Distribution Summary Tax Line Identifier
44453 , p_source_59 IN NUMBER
44454 --Cleared Exchange Date
44455 , p_source_107 IN DATE
44456 --Cleared Exchange Rate
44457 , p_source_108 IN NUMBER
44458 --Cleared Exchange Rate Type
44459 , p_source_109 IN VARCHAR2
44460 )
44461 IS
44462
44463 l_component_type VARCHAR2(80);
44464 l_component_code VARCHAR2(30);
44465 l_component_type_code VARCHAR2(1);
44466 l_component_appl_id INTEGER;
44467 l_amb_context_code VARCHAR2(30);
44468 l_entity_code VARCHAR2(30);
44469 l_event_class_code VARCHAR2(30);
44470 l_ae_header_id NUMBER;
44471 l_event_type_code VARCHAR2(30);
44472 l_line_definition_code VARCHAR2(30);
44473 l_line_definition_owner_code VARCHAR2(1);
44474 --
44475 -- adr variables
44476 l_segment VARCHAR2(30);
44477 l_ccid NUMBER;
44478 l_adr_transaction_coa_id NUMBER;
44479 l_adr_accounting_coa_id NUMBER;
44480 l_adr_flexfield_segment_code VARCHAR2(30);
44481 l_adr_flex_value_set_id NUMBER;
44482 l_adr_value_type_code VARCHAR2(30);
44483 l_adr_value_combination_id NUMBER;
44484 l_adr_value_segment_code VARCHAR2(30);
44485
44486 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44487 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44488 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44489 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44490
44491 -- 4262811 Variables ------------------------------------------------------------------------------------------
44492 l_entered_amt_idx NUMBER;
44493 l_accted_amt_idx NUMBER;
44494 l_acc_rev_flag VARCHAR2(1);
44495 l_accrual_line_num NUMBER;
44496 l_tmp_amt NUMBER;
44497 l_acc_rev_natural_side_code VARCHAR2(1);
44498
44499 l_num_entries NUMBER;
44500 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44501 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44502 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44503 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44504 l_recog_line_1 NUMBER;
44505 l_recog_line_2 NUMBER;
44506
44507 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44508 l_bflow_applied_to_amt NUMBER; -- 5132302
44509 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44510
44511 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44512
44513 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44514 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44515
44516 ---------------------------------------------------------------------------------------------------------------
44517
44518
44519 --
44520 -- bulk performance
44521 --
44522 l_balance_type_code VARCHAR2(1);
44523 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44524 l_log_module VARCHAR2(240);
44525
44526 --
44527 -- Upgrade strategy
44528 --
44529 l_actual_upg_option VARCHAR2(1);
44530 l_enc_upg_option VARCHAR2(1);
44531
44532 --
44533 BEGIN
44534 --
44535 IF g_log_enabled THEN
44536 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
44537 END IF;
44538 --
44539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44540
44541 trace
44542 (p_msg => 'BEGIN of AcctLineType_91'
44543 ,p_level => C_LEVEL_PROCEDURE
44544 ,p_module => l_log_module);
44545
44546 END IF;
44547 --
44548 l_component_type := 'AMB_JLT';
44549 l_component_code := 'AP_FREIGHT_EXPENSE_CLEAR';
44550 l_component_type_code := 'S';
44551 l_component_appl_id := 200;
44552 l_amb_context_code := 'DEFAULT';
44553 l_entity_code := 'AP_PAYMENTS';
44554 l_event_class_code := 'RECONCILED PAYMENTS';
44555 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
44556 l_line_definition_owner_code := 'S';
44557 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
44558 --
44559 l_balance_type_code := 'A';
44560 l_segment := NULL;
44561 l_ccid := NULL;
44562 l_adr_transaction_coa_id := NULL;
44563 l_adr_accounting_coa_id := NULL;
44564 l_adr_flexfield_segment_code := NULL;
44565 l_adr_flex_value_set_id := NULL;
44566 l_adr_value_type_code := NULL;
44567 l_adr_value_combination_id := NULL;
44571 l_bflow_class_code := ''; -- 4219869 Business Flow
44568 l_adr_value_segment_code := NULL;
44569
44570 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44572 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44573 l_budgetary_control_flag := 'N';
44574
44575 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44576 l_bflow_applied_to_amt := NULL; -- 5132302
44577 l_entered_amt_idx := NULL; -- 4262811
44578 l_accted_amt_idx := NULL; -- 4262811
44579 l_acc_rev_flag := NULL; -- 4262811
44580 l_accrual_line_num := NULL; -- 4262811
44581 l_tmp_amt := NULL; -- 4262811
44582 --
44583
44584 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44585 l_balance_type_code <> 'B' THEN
44586 IF NVL(p_source_38,'
44587 ') = 'CLEAR_CLEAR' AND
44588 NVL(p_source_20,'
44589 ') = 'FREIGHT' AND
44590 (NVL(p_source_39,'
44591 ') = 'CASH' OR
44592 NVL(p_source_39,'
44593 ') = 'AWT' OR
44594 NVL(p_source_39,'
44595 ') = 'DISCOUNT')
44596 THEN
44597
44598 --
44599 XLA_AE_LINES_PKG.SetNewLine;
44600
44601 p_balance_type_code := l_balance_type_code;
44602 -- set the flag so later we will know whether the gain loss line needs to be created
44603
44604 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44605 p_actual_flag :='A';
44606 END IF;
44607
44608 --
44609 -- bulk performance
44610 --
44611 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44612 p_header_num => 0); -- 4262811
44613 --
44614 -- set accounting line options
44615 --
44616 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44617 p_natural_side_code => 'D'
44618 , p_gain_or_loss_flag => 'N'
44619 , p_gl_transfer_mode_code => 'S'
44620 , p_acct_entry_type_code => 'A'
44621 , p_switch_side_flag => 'Y'
44622 , p_merge_duplicate_code => 'A'
44623 );
44624 --
44625 l_acc_rev_natural_side_code := 'C'; -- 4262811
44626 --
44627 --
44628 -- set accounting line type info
44629 --
44630 xla_ae_lines_pkg.SetAcctLineType
44631 (p_component_type => l_component_type
44632 ,p_event_type_code => l_event_type_code
44633 ,p_line_definition_owner_code => l_line_definition_owner_code
44634 ,p_line_definition_code => l_line_definition_code
44635 ,p_accounting_line_code => l_component_code
44636 ,p_accounting_line_type_code => l_component_type_code
44637 ,p_accounting_line_appl_id => l_component_appl_id
44638 ,p_amb_context_code => l_amb_context_code
44639 ,p_entity_code => l_entity_code
44640 ,p_event_class_code => l_event_class_code);
44641 --
44642 -- set accounting class
44643 --
44644 xla_ae_lines_pkg.SetAcctClass(
44645 p_accounting_class_code => 'FREIGHT'
44646 , p_ae_header_id => l_ae_header_id
44647 );
44648
44649 --
44650 -- set rounding class
44651 --
44652 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44653 'FREIGHT';
44654
44655 --
44656 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44657 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44658 --
44659 -- bulk performance
44660 --
44661 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44662
44663 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44664 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44665
44666 -- 4955764
44667 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44668 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44669
44670 -- 4458381 Public Sector Enh
44671
44672 --
44673 -- set accounting attributes for the line type
44674 --
44675 l_entered_amt_idx := 10;
44676 l_accted_amt_idx := 15;
44677 l_bflow_applied_to_amt_idx := 2; -- 5132302
44678 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44679 l_rec_acct_attrs.array_char_value(1) := p_source_40;
44680 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
44681 l_rec_acct_attrs.array_num_value(2) := p_source_41;
44682 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
44683 l_rec_acct_attrs.array_num_value(3) := p_source_42;
44684 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44685 l_rec_acct_attrs.array_char_value(4) := p_source_43;
44686 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
44687 l_rec_acct_attrs.array_char_value(5) := p_source_44;
44688 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
44689 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
44690 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44694 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
44691 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
44692 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
44693 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
44695 l_rec_acct_attrs.array_char_value(9) := p_source_48;
44696 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
44697 l_rec_acct_attrs.array_num_value(10) := p_source_41;
44698 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
44699 l_rec_acct_attrs.array_char_value(11) := p_source_49;
44700 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
44701 l_rec_acct_attrs.array_date_value(12) := p_source_107;
44702 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
44703 l_rec_acct_attrs.array_num_value(13) := p_source_108;
44704 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
44705 l_rec_acct_attrs.array_char_value(14) := p_source_109;
44706 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
44707 l_rec_acct_attrs.array_num_value(15) := p_source_10;
44708 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
44709 l_rec_acct_attrs.array_char_value(16) := p_source_53;
44710 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
44711 l_rec_acct_attrs.array_num_value(17) := p_source_54;
44712 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
44713 l_rec_acct_attrs.array_num_value(18) := p_source_55;
44714 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
44715 l_rec_acct_attrs.array_char_value(19) := p_source_56;
44716 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
44717 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
44718 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
44719 l_rec_acct_attrs.array_char_value(21) := p_source_48;
44720 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
44721 l_rec_acct_attrs.array_num_value(22) := p_source_58;
44722 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
44723 l_rec_acct_attrs.array_num_value(23) := p_source_58;
44724 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
44725 l_rec_acct_attrs.array_num_value(24) := p_source_59;
44726
44727 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44728 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44729
44730 ---------------------------------------------------------------------------------------------------------------
44731 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44732 ---------------------------------------------------------------------------------------------------------------
44733 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44734
44735 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44736 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44737
44738 IF xla_accounting_cache_pkg.GetValueChar
44739 (p_source_code => 'LEDGER_CATEGORY_CODE'
44740 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44741 AND l_bflow_method_code = 'PRIOR_ENTRY'
44742 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44743 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44744 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44745 )
44746 THEN
44747 xla_ae_lines_pkg.BflowUpgEntry
44748 (p_business_method_code => l_bflow_method_code
44749 ,p_business_class_code => l_bflow_class_code
44750 ,p_balance_type => l_balance_type_code);
44751 ELSE
44752 NULL;
44753 -- No business flow processing for business flow method of NONE.
44754 END IF;
44755
44756 --
44757 -- call analytical criteria
44758 --
44759
44760 --
44761 -- call description
44762 --
44763 -- No description or it is inherited.
44764 --
44765 -- call ADRs
44766 -- Bug 4922099
44767 --
44768 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44769 (NVL(l_actual_upg_option, 'N') = 'O') OR
44770 (NVL(l_enc_upg_option, 'N') = 'O')
44771 )
44772 THEN
44773 NULL;
44774 --
44775 --
44776
44777 l_ccid := AcctDerRule_26(
44778 p_application_id => p_application_id
44779 , p_ae_header_id => l_ae_header_id
44780 , p_source_17 => p_source_17
44781 , x_transaction_coa_id => l_adr_transaction_coa_id
44782 , x_accounting_coa_id => l_adr_accounting_coa_id
44783 , x_value_type_code => l_adr_value_type_code
44784 , p_side => 'NA'
44785 );
44786
44787 xla_ae_lines_pkg.set_ccid(
44788 p_code_combination_id => l_ccid
44789 , p_value_type_code => l_adr_value_type_code
44790 , p_transaction_coa_id => l_adr_transaction_coa_id
44791 , p_accounting_coa_id => l_adr_accounting_coa_id
44792 , p_adr_code => 'AP_INVOICE_DIST'
44793 , p_adr_type_code => 'S'
44794 , p_component_type => l_component_type
44798 , p_amb_context_code => l_amb_context_code
44795 , p_component_code => l_component_code
44796 , p_component_type_code => l_component_type_code
44797 , p_component_appl_id => l_component_appl_id
44799 , p_side => 'NA'
44800 );
44801
44802
44803 --
44804 --
44805 END IF;
44806 --
44807 -- Bug 4922099
44808 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44809 (NVL(l_enc_upg_option, 'N') = 'O')
44810 ) AND
44811 (l_bflow_method_code = 'PRIOR_ENTRY')
44812 )
44813 THEN
44814 IF
44815 --
44816 1 = 2
44817 --
44818 THEN
44819 xla_accounting_err_pkg.build_message
44820 (p_appli_s_name => 'XLA'
44821 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44822 ,p_token_1 => 'LINE_NUMBER'
44823 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44824 ,p_token_2 => 'LINE_TYPE_NAME'
44825 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44826 l_component_type
44827 ,l_component_code
44828 ,l_component_type_code
44829 ,l_component_appl_id
44830 ,l_amb_context_code
44831 ,l_entity_code
44832 ,l_event_class_code
44833 )
44834 ,p_token_3 => 'OWNER'
44835 ,p_value_3 => xla_lookups_pkg.get_meaning(
44836 p_lookup_type => 'XLA_OWNER_TYPE'
44837 ,p_lookup_code => l_component_type_code
44838 )
44839 ,p_token_4 => 'PRODUCT_NAME'
44840 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44841 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44842 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44843 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44844 ,p_ae_header_id => NULL
44845 );
44846
44847 IF (C_LEVEL_ERROR>= g_log_level) THEN
44848 trace
44849 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44850 ,p_level => C_LEVEL_ERROR
44851 ,p_module => l_log_module);
44852 END IF;
44853 END IF;
44854 END IF;
44855 --
44856 --
44857 ------------------------------------------------------------------------------------------------
44858 -- 4219869 Business Flow
44859 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44860 -- Prior Entry. Currently, the following code is always generated.
44861 ------------------------------------------------------------------------------------------------
44862 XLA_AE_LINES_PKG.ValidateCurrentLine;
44863
44864 ------------------------------------------------------------------------------------
44865 -- 4219869 Business Flow
44866 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44867 ------------------------------------------------------------------------------------
44868 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44869
44870 ----------------------------------------------------------------------------------
44871 -- 4219869 Business Flow
44872 -- Update journal entry status -- Need to generate this within IF <condition>
44873 ----------------------------------------------------------------------------------
44874 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44875 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44876 ,p_balance_type_code => l_balance_type_code
44877 );
44878
44879 -------------------------------------------------------------------------------------------
44880 -- 4262811 - Generate the Accrual Reversal lines
44881 -------------------------------------------------------------------------------------------
44882 BEGIN
44883 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44884 (g_array_event(p_event_id).array_value_num('header_index'));
44885 IF l_acc_rev_flag IS NULL THEN
44886 l_acc_rev_flag := 'N';
44887 END IF;
44888 EXCEPTION
44889 WHEN OTHERS THEN
44890 l_acc_rev_flag := 'N';
44891 END;
44892 --
44893 IF (l_acc_rev_flag = 'Y') THEN
44894
44898 ------------------------------------------------------------------------------------------
44895 -- 4645092 ------------------------------------------------------------------------------
44896 -- To allow MPA report to determine if it should generate report process
44897 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44899
44900 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44901 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44902 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44903 -- call ADRs
44904 -- Bug 4922099
44905 --
44906 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44907 (NVL(l_actual_upg_option, 'N') = 'O') OR
44908 (NVL(l_enc_upg_option, 'N') = 'O')
44909 )
44910 THEN
44911 NULL;
44912 --
44913 --
44914
44915 l_ccid := AcctDerRule_26(
44916 p_application_id => p_application_id
44917 , p_ae_header_id => l_ae_header_id
44918 , p_source_17 => p_source_17
44919 , x_transaction_coa_id => l_adr_transaction_coa_id
44920 , x_accounting_coa_id => l_adr_accounting_coa_id
44921 , x_value_type_code => l_adr_value_type_code
44922 , p_side => 'NA'
44923 );
44924
44925 xla_ae_lines_pkg.set_ccid(
44926 p_code_combination_id => l_ccid
44927 , p_value_type_code => l_adr_value_type_code
44928 , p_transaction_coa_id => l_adr_transaction_coa_id
44929 , p_accounting_coa_id => l_adr_accounting_coa_id
44930 , p_adr_code => 'AP_INVOICE_DIST'
44931 , p_adr_type_code => 'S'
44932 , p_component_type => l_component_type
44933 , p_component_code => l_component_code
44934 , p_component_type_code => l_component_type_code
44935 , p_component_appl_id => l_component_appl_id
44936 , p_amb_context_code => l_amb_context_code
44937 , p_side => 'NA'
44938 );
44939
44940
44941 --
44942 --
44943 END IF;
44944
44945 --
44946 -- Update the line information that should be overwritten
44947 --
44948 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44949 p_header_num => 1);
44950 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44951
44952 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44953
44954 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44955 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44956 END IF;
44957
44958 --
44959 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44960 --
44961 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44962 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44963 ELSE
44964 ---------------------------------------------------------------------------------------------------
44965 -- 4262811a Switch Sign
44966 ---------------------------------------------------------------------------------------------------
44967 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44968 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44969 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44970 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44971 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44972 -- 5132302
44973 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44974 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44975
44976 END IF;
44977
44978 -- 4955764
44979 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44980 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44981
44982
44983 XLA_AE_LINES_PKG.ValidateCurrentLine;
44984 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44985
44986 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44987 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44988 ,p_balance_type_code => l_balance_type_code);
44989
44990 END IF;
44991
44992 -----------------------------------------------------------------------------------------
44993 -- 4262811 Multiperiod Accounting
44994 -----------------------------------------------------------------------------------------
44995 -- No MPA option is assigned.
44996
44997
44998 END IF;
44999 END IF;
45000 --
45001
45002 --
45003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45004 trace
45005 (p_msg => 'END of AcctLineType_91'
45006 ,p_level => C_LEVEL_PROCEDURE
45007 ,p_module => l_log_module);
45008 END IF;
45009 --
45010 EXCEPTION
45011 WHEN xla_exceptions_pkg.application_exception THEN
45015 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_91');
45012 RAISE;
45013 WHEN OTHERS THEN
45014 xla_exceptions_pkg.raise_message
45016 END AcctLineType_91;
45017 --
45018
45019 ---------------------------------------
45020 --
45021 -- PRIVATE FUNCTION
45022 -- AcctLineType_92
45023 --
45024 ---------------------------------------
45025 PROCEDURE AcctLineType_92 (
45026 p_application_id IN NUMBER
45027 ,p_event_id IN NUMBER
45028 ,p_calculate_acctd_flag IN VARCHAR2
45029 ,p_calculate_g_l_flag IN VARCHAR2
45030 ,p_actual_flag IN OUT VARCHAR2
45031 ,p_balance_type_code OUT VARCHAR2
45032 ,p_gain_or_loss_ref OUT VARCHAR2
45033
45034 --Payment Distribution (Payment Rate) Ledger Amount
45035 , p_source_9 IN NUMBER
45036 --Invoice Distribution Type
45037 , p_source_20 IN VARCHAR2
45038 , p_source_20_meaning IN VARCHAR2
45039 --When to Account for Payment Option
45040 , p_source_38 IN VARCHAR2
45041 --Payment Distribution Type
45042 , p_source_39 IN VARCHAR2
45043 , p_source_39_meaning IN VARCHAR2
45044 --Accounting Reversal Indicator
45045 , p_source_40 IN VARCHAR2
45046 --Payment Distribution Amount
45047 , p_source_41 IN NUMBER
45048 --Business Flow Accounts Payable Application Identifier
45049 , p_source_42 IN NUMBER
45050 --Payment Distribution Identifier
45051 , p_source_47 IN NUMBER
45052 --Distribution Link Type
45053 , p_source_48 IN VARCHAR2
45054 --Payment Currency Code
45055 , p_source_49 IN VARCHAR2
45056 --Override Accounted Amount Indicator
45057 , p_source_53 IN VARCHAR2
45058 , p_source_53_meaning IN VARCHAR2
45059 --Third Party Type
45060 , p_source_56 IN VARCHAR2
45061 --Payment Distribution Reversed Identifier
45062 , p_source_57 IN NUMBER
45063 --Invoice Distribution Tax Line Identifier
45064 , p_source_58 IN NUMBER
45065 --Invoice Distribution Summary Tax Line Identifier
45066 , p_source_59 IN NUMBER
45067 --Business Flow Invoice Distribution Type
45068 , p_source_62 IN VARCHAR2
45069 --Business Flow Invoice Entity Code
45070 , p_source_63 IN VARCHAR2
45071 --Business Flow Invoice Distribution Identifier
45072 , p_source_64 IN NUMBER
45073 --Business Flow Invoice Identifier
45074 , p_source_65 IN NUMBER
45075 --Purchasing Encumbrance Option
45076 , p_source_102 IN VARCHAR2
45077 , p_source_102_meaning IN VARCHAR2
45078 --Invoice Encumbered Option
45079 , p_source_104 IN VARCHAR2
45080 , p_source_104_meaning IN VARCHAR2
45081 )
45082 IS
45083
45084 l_component_type VARCHAR2(80);
45085 l_component_code VARCHAR2(30);
45086 l_component_type_code VARCHAR2(1);
45087 l_component_appl_id INTEGER;
45088 l_amb_context_code VARCHAR2(30);
45089 l_entity_code VARCHAR2(30);
45090 l_event_class_code VARCHAR2(30);
45091 l_ae_header_id NUMBER;
45092 l_event_type_code VARCHAR2(30);
45093 l_line_definition_code VARCHAR2(30);
45094 l_line_definition_owner_code VARCHAR2(1);
45095 --
45096 -- adr variables
45097 l_segment VARCHAR2(30);
45098 l_ccid NUMBER;
45099 l_adr_transaction_coa_id NUMBER;
45100 l_adr_accounting_coa_id NUMBER;
45101 l_adr_flexfield_segment_code VARCHAR2(30);
45102 l_adr_flex_value_set_id NUMBER;
45103 l_adr_value_type_code VARCHAR2(30);
45104 l_adr_value_combination_id NUMBER;
45105 l_adr_value_segment_code VARCHAR2(30);
45106
45107 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45108 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45109 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45110 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45111
45112 -- 4262811 Variables ------------------------------------------------------------------------------------------
45113 l_entered_amt_idx NUMBER;
45114 l_accted_amt_idx NUMBER;
45115 l_acc_rev_flag VARCHAR2(1);
45116 l_accrual_line_num NUMBER;
45117 l_tmp_amt NUMBER;
45118 l_acc_rev_natural_side_code VARCHAR2(1);
45119
45120 l_num_entries NUMBER;
45121 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45122 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45123 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45124 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45125 l_recog_line_1 NUMBER;
45126 l_recog_line_2 NUMBER;
45127
45128 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45129 l_bflow_applied_to_amt NUMBER; -- 5132302
45130 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45131
45132 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45133
45134 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45135 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45136
45140 --
45137 ---------------------------------------------------------------------------------------------------------------
45138
45139
45141 -- bulk performance
45142 --
45143 l_balance_type_code VARCHAR2(1);
45144 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45145 l_log_module VARCHAR2(240);
45146
45147 --
45148 -- Upgrade strategy
45149 --
45150 l_actual_upg_option VARCHAR2(1);
45151 l_enc_upg_option VARCHAR2(1);
45152
45153 --
45154 BEGIN
45155 --
45156 IF g_log_enabled THEN
45157 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
45158 END IF;
45159 --
45160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45161
45162 trace
45163 (p_msg => 'BEGIN of AcctLineType_92'
45164 ,p_level => C_LEVEL_PROCEDURE
45165 ,p_module => l_log_module);
45166
45167 END IF;
45168 --
45169 l_component_type := 'AMB_JLT';
45170 l_component_code := 'AP_FREIGHT_EXPENSE_CLR_ENC';
45171 l_component_type_code := 'S';
45172 l_component_appl_id := 200;
45173 l_amb_context_code := 'DEFAULT';
45174 l_entity_code := 'AP_PAYMENTS';
45175 l_event_class_code := 'RECONCILED PAYMENTS';
45176 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
45177 l_line_definition_owner_code := 'S';
45178 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
45179 --
45180 l_balance_type_code := 'E';
45181 l_segment := NULL;
45182 l_ccid := NULL;
45183 l_adr_transaction_coa_id := NULL;
45184 l_adr_accounting_coa_id := NULL;
45185 l_adr_flexfield_segment_code := NULL;
45186 l_adr_flex_value_set_id := NULL;
45187 l_adr_value_type_code := NULL;
45188 l_adr_value_combination_id := NULL;
45189 l_adr_value_segment_code := NULL;
45190
45191 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
45192 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
45193 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45194 l_budgetary_control_flag := 'N';
45195
45196 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45197 l_bflow_applied_to_amt := NULL; -- 5132302
45198 l_entered_amt_idx := NULL; -- 4262811
45199 l_accted_amt_idx := NULL; -- 4262811
45200 l_acc_rev_flag := NULL; -- 4262811
45201 l_accrual_line_num := NULL; -- 4262811
45202 l_tmp_amt := NULL; -- 4262811
45203 --
45204
45205 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45206 l_balance_type_code <> 'B' THEN
45207 IF NVL(p_source_38,'
45208 ') = 'CLEAR_CLEAR' AND
45209 NVL(p_source_20,'
45210 ') = 'FREIGHT' AND
45211 (NVL(p_source_39,'
45212 ') = 'CASH' OR
45213 NVL(p_source_39,'
45214 ') = 'DISCOUNT') AND
45215 NVL(p_source_102,'
45216 ') = 'Y' AND
45217 NVL(p_source_104,'
45218 ') = 'Y'
45219 THEN
45220
45221 --
45222 XLA_AE_LINES_PKG.SetNewLine;
45223
45224 p_balance_type_code := l_balance_type_code;
45225 -- set the flag so later we will know whether the gain loss line needs to be created
45226
45227 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45228 p_actual_flag :='A';
45229 END IF;
45230
45231 --
45232 -- bulk performance
45233 --
45234 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45235 p_header_num => 0); -- 4262811
45236 --
45237 -- set accounting line options
45238 --
45239 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45240 p_natural_side_code => 'C'
45241 , p_gain_or_loss_flag => 'N'
45242 , p_gl_transfer_mode_code => 'S'
45243 , p_acct_entry_type_code => 'E'
45244 , p_switch_side_flag => 'Y'
45245 , p_merge_duplicate_code => 'A'
45246 );
45247 --
45248 l_acc_rev_natural_side_code := 'D'; -- 4262811
45249 --
45250 --
45251 -- set accounting line type info
45252 --
45253 xla_ae_lines_pkg.SetAcctLineType
45254 (p_component_type => l_component_type
45255 ,p_event_type_code => l_event_type_code
45256 ,p_line_definition_owner_code => l_line_definition_owner_code
45257 ,p_line_definition_code => l_line_definition_code
45258 ,p_accounting_line_code => l_component_code
45259 ,p_accounting_line_type_code => l_component_type_code
45260 ,p_accounting_line_appl_id => l_component_appl_id
45261 ,p_amb_context_code => l_amb_context_code
45262 ,p_entity_code => l_entity_code
45263 ,p_event_class_code => l_event_class_code);
45264 --
45265 -- set accounting class
45266 --
45267 xla_ae_lines_pkg.SetAcctClass(
45268 p_accounting_class_code => 'FREIGHT'
45269 , p_ae_header_id => l_ae_header_id
45270 );
45271
45272 --
45273 -- set rounding class
45274 --
45275 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45279 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45276 'FREIGHT';
45277
45278 --
45280 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45281 --
45282 -- bulk performance
45283 --
45284 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45285
45286 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45287 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45288
45289 -- 4955764
45290 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45291 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45292
45293 -- 4458381 Public Sector Enh
45294
45295 --
45296 -- set accounting attributes for the line type
45297 --
45298 l_entered_amt_idx := 10;
45299 l_accted_amt_idx := 12;
45300 l_bflow_applied_to_amt_idx := 2; -- 5132302
45301 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45302 l_rec_acct_attrs.array_char_value(1) := p_source_40;
45303 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45304 l_rec_acct_attrs.array_num_value(2) := p_source_41;
45305 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45306 l_rec_acct_attrs.array_num_value(3) := p_source_42;
45307 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45308 l_rec_acct_attrs.array_char_value(4) := p_source_62;
45309 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45310 l_rec_acct_attrs.array_char_value(5) := p_source_63;
45311 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45312 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
45313 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45314 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
45315 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45316 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
45317 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45318 l_rec_acct_attrs.array_char_value(9) := p_source_48;
45319 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45320 l_rec_acct_attrs.array_num_value(10) := p_source_41;
45321 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45322 l_rec_acct_attrs.array_char_value(11) := p_source_49;
45323 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
45324 l_rec_acct_attrs.array_num_value(12) := p_source_9;
45325 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
45326 l_rec_acct_attrs.array_char_value(13) := p_source_53;
45327 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
45328 l_rec_acct_attrs.array_char_value(14) := p_source_56;
45329 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
45330 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
45331 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
45332 l_rec_acct_attrs.array_char_value(16) := p_source_48;
45333 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
45334 l_rec_acct_attrs.array_num_value(17) := p_source_58;
45335 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
45336 l_rec_acct_attrs.array_num_value(18) := p_source_58;
45337 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
45338 l_rec_acct_attrs.array_num_value(19) := p_source_59;
45339
45340 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45341 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45342
45343 ---------------------------------------------------------------------------------------------------------------
45344 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45345 ---------------------------------------------------------------------------------------------------------------
45346 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45347
45348 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45349 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45350
45351 IF xla_accounting_cache_pkg.GetValueChar
45352 (p_source_code => 'LEDGER_CATEGORY_CODE'
45353 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45354 AND l_bflow_method_code = 'PRIOR_ENTRY'
45355 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45356 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45357 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45358 )
45359 THEN
45360 xla_ae_lines_pkg.BflowUpgEntry
45361 (p_business_method_code => l_bflow_method_code
45362 ,p_business_class_code => l_bflow_class_code
45363 ,p_balance_type => l_balance_type_code);
45364 ELSE
45365 NULL;
45366 XLA_AE_LINES_PKG.business_flow_validation(
45367 p_business_method_code => l_bflow_method_code
45368 ,p_business_class_code => l_bflow_class_code
45372 --
45369 ,p_inherit_description_flag => l_inherit_desc_flag);
45370 END IF;
45371
45373 -- call analytical criteria
45374 --
45375 -- Inherited Analytical Criteria for business flow method of Prior Entry.
45376 --
45377 -- call description
45378 --
45379 -- No description or it is inherited.
45380 --
45381 -- call ADRs
45382 -- Bug 4922099
45383 --
45384 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45385 (NVL(l_actual_upg_option, 'N') = 'O') OR
45386 (NVL(l_enc_upg_option, 'N') = 'O')
45387 )
45388 THEN
45389 NULL;
45390 --
45391 --
45392
45393 --
45394 --
45395 END IF;
45396 --
45397 -- Bug 4922099
45398 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45399 (NVL(l_enc_upg_option, 'N') = 'O')
45400 ) AND
45401 (l_bflow_method_code = 'PRIOR_ENTRY')
45402 )
45403 THEN
45404 IF
45405 --
45406 1 = 1
45407 --
45408 THEN
45409 xla_accounting_err_pkg.build_message
45410 (p_appli_s_name => 'XLA'
45411 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45412 ,p_token_1 => 'LINE_NUMBER'
45413 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45414 ,p_token_2 => 'LINE_TYPE_NAME'
45415 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45416 l_component_type
45417 ,l_component_code
45418 ,l_component_type_code
45419 ,l_component_appl_id
45420 ,l_amb_context_code
45421 ,l_entity_code
45422 ,l_event_class_code
45423 )
45424 ,p_token_3 => 'OWNER'
45425 ,p_value_3 => xla_lookups_pkg.get_meaning(
45426 p_lookup_type => 'XLA_OWNER_TYPE'
45427 ,p_lookup_code => l_component_type_code
45428 )
45429 ,p_token_4 => 'PRODUCT_NAME'
45430 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45431 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45432 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45433 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45434 ,p_ae_header_id => NULL
45435 );
45436
45437 IF (C_LEVEL_ERROR>= g_log_level) THEN
45438 trace
45439 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45440 ,p_level => C_LEVEL_ERROR
45441 ,p_module => l_log_module);
45442 END IF;
45443 END IF;
45444 END IF;
45445 --
45446 --
45447 ------------------------------------------------------------------------------------------------
45448 -- 4219869 Business Flow
45449 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45450 -- Prior Entry. Currently, the following code is always generated.
45451 ------------------------------------------------------------------------------------------------
45452 -- No ValidateCurrentLine for business flow method of Prior Entry
45453
45454 ------------------------------------------------------------------------------------
45455 -- 4219869 Business Flow
45456 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45457 ------------------------------------------------------------------------------------
45458 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45459
45460 ----------------------------------------------------------------------------------
45461 -- 4219869 Business Flow
45462 -- Update journal entry status -- Need to generate this within IF <condition>
45463 ----------------------------------------------------------------------------------
45464 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45465 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45466 ,p_balance_type_code => l_balance_type_code
45467 );
45468
45469 -------------------------------------------------------------------------------------------
45470 -- 4262811 - Generate the Accrual Reversal lines
45471 -------------------------------------------------------------------------------------------
45472 BEGIN
45473 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45477 END IF;
45474 (g_array_event(p_event_id).array_value_num('header_index'));
45475 IF l_acc_rev_flag IS NULL THEN
45476 l_acc_rev_flag := 'N';
45478 EXCEPTION
45479 WHEN OTHERS THEN
45480 l_acc_rev_flag := 'N';
45481 END;
45482 --
45483 IF (l_acc_rev_flag = 'Y') THEN
45484
45485 -- 4645092 ------------------------------------------------------------------------------
45486 -- To allow MPA report to determine if it should generate report process
45487 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45488 ------------------------------------------------------------------------------------------
45489
45490 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45491 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45492 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
45493 -- call ADRs
45494 -- Bug 4922099
45495 --
45496 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45497 (NVL(l_actual_upg_option, 'N') = 'O') OR
45498 (NVL(l_enc_upg_option, 'N') = 'O')
45499 )
45500 THEN
45501 NULL;
45502 --
45503 --
45504
45505 --
45506 --
45507 END IF;
45508
45509 --
45510 -- Update the line information that should be overwritten
45511 --
45512 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45513 p_header_num => 1);
45514 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45515
45516 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45517
45518 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45519 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45520 END IF;
45521
45522 --
45523 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45524 --
45525 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45526 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45527 ELSE
45528 ---------------------------------------------------------------------------------------------------
45529 -- 4262811a Switch Sign
45530 ---------------------------------------------------------------------------------------------------
45531 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45532 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45533 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45534 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45535 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45536 -- 5132302
45537 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45538 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45539
45540 END IF;
45541
45542 -- 4955764
45543 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45544 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45545
45546
45547 XLA_AE_LINES_PKG.ValidateCurrentLine;
45548 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45549
45550 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45551 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45552 ,p_balance_type_code => l_balance_type_code);
45553
45554 END IF;
45555
45556 -----------------------------------------------------------------------------------------
45557 -- 4262811 Multiperiod Accounting
45558 -----------------------------------------------------------------------------------------
45559 -- No MPA option is assigned.
45560
45561
45562 END IF;
45563 END IF;
45564 --
45565
45566 --
45567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45568 trace
45569 (p_msg => 'END of AcctLineType_92'
45570 ,p_level => C_LEVEL_PROCEDURE
45571 ,p_module => l_log_module);
45572 END IF;
45573 --
45574 EXCEPTION
45575 WHEN xla_exceptions_pkg.application_exception THEN
45576 RAISE;
45577 WHEN OTHERS THEN
45578 xla_exceptions_pkg.raise_message
45579 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_92');
45580 END AcctLineType_92;
45581 --
45582
45583 ---------------------------------------
45584 --
45585 -- PRIVATE FUNCTION
45586 -- AcctLineType_93
45587 --
45588 ---------------------------------------
45589 PROCEDURE AcctLineType_93 (
45590 p_application_id IN NUMBER
45591 ,p_event_id IN NUMBER
45592 ,p_calculate_acctd_flag IN VARCHAR2
45593 ,p_calculate_g_l_flag IN VARCHAR2
45594 ,p_actual_flag IN OUT VARCHAR2
45595 ,p_balance_type_code OUT VARCHAR2
45596 ,p_gain_or_loss_ref OUT VARCHAR2
45597
45598 --Payment Distribution (Payment Rate) Ledger Amount
45599 , p_source_9 IN NUMBER
45603 , p_source_20 IN VARCHAR2
45600 --Invoice Distribution Account
45601 , p_source_17 IN NUMBER
45602 --Invoice Distribution Type
45604 , p_source_20_meaning IN VARCHAR2
45605 --When to Account for Payment Option
45606 , p_source_38 IN VARCHAR2
45607 --Payment Distribution Type
45608 , p_source_39 IN VARCHAR2
45609 , p_source_39_meaning IN VARCHAR2
45610 --Accounting Reversal Indicator
45611 , p_source_40 IN VARCHAR2
45612 --Payment Distribution Amount
45613 , p_source_41 IN NUMBER
45614 --Business Flow Accounts Payable Application Identifier
45615 , p_source_42 IN NUMBER
45616 --Payment Distribution Identifier
45617 , p_source_47 IN NUMBER
45618 --Distribution Link Type
45619 , p_source_48 IN VARCHAR2
45620 --Payment Currency Code
45621 , p_source_49 IN VARCHAR2
45622 --Override Accounted Amount Indicator
45623 , p_source_53 IN VARCHAR2
45624 , p_source_53_meaning IN VARCHAR2
45625 --Payment Supplier Identifier
45626 , p_source_54 IN NUMBER
45627 --Payment Supplier Site Identifier
45628 , p_source_55 IN NUMBER
45629 --Third Party Type
45630 , p_source_56 IN VARCHAR2
45631 --Payment Distribution Reversed Identifier
45632 , p_source_57 IN NUMBER
45633 --Invoice Distribution Tax Line Identifier
45634 , p_source_58 IN NUMBER
45635 --Invoice Distribution Summary Tax Line Identifier
45636 , p_source_59 IN NUMBER
45637 --Payment Type
45638 , p_source_60 IN VARCHAR2
45639 , p_source_60_meaning IN VARCHAR2
45640 --Invoice Distribution Amount of the Payment Distribution
45641 , p_source_61 IN NUMBER
45642 --Business Flow Invoice Distribution Type
45643 , p_source_62 IN VARCHAR2
45644 --Business Flow Invoice Entity Code
45645 , p_source_63 IN VARCHAR2
45646 --Business Flow Invoice Distribution Identifier
45647 , p_source_64 IN NUMBER
45648 --Business Flow Invoice Identifier
45649 , p_source_65 IN NUMBER
45650 --Invoice Distribution Tax Distribution Identifier from Tax
45651 , p_source_66 IN NUMBER
45652 --Payment Exchange Date
45653 , p_source_114 IN DATE
45654 --Payment Exchange Rate
45655 , p_source_115 IN NUMBER
45656 --Payment Exchange Rate Type
45657 , p_source_116 IN VARCHAR2
45658 )
45659 IS
45660
45661 l_component_type VARCHAR2(80);
45662 l_component_code VARCHAR2(30);
45663 l_component_type_code VARCHAR2(1);
45664 l_component_appl_id INTEGER;
45665 l_amb_context_code VARCHAR2(30);
45666 l_entity_code VARCHAR2(30);
45667 l_event_class_code VARCHAR2(30);
45668 l_ae_header_id NUMBER;
45669 l_event_type_code VARCHAR2(30);
45670 l_line_definition_code VARCHAR2(30);
45671 l_line_definition_owner_code VARCHAR2(1);
45672 --
45673 -- adr variables
45674 l_segment VARCHAR2(30);
45675 l_ccid NUMBER;
45676 l_adr_transaction_coa_id NUMBER;
45677 l_adr_accounting_coa_id NUMBER;
45678 l_adr_flexfield_segment_code VARCHAR2(30);
45679 l_adr_flex_value_set_id NUMBER;
45680 l_adr_value_type_code VARCHAR2(30);
45681 l_adr_value_combination_id NUMBER;
45682 l_adr_value_segment_code VARCHAR2(30);
45683
45684 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45685 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45686 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45687 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45688
45689 -- 4262811 Variables ------------------------------------------------------------------------------------------
45690 l_entered_amt_idx NUMBER;
45691 l_accted_amt_idx NUMBER;
45692 l_acc_rev_flag VARCHAR2(1);
45693 l_accrual_line_num NUMBER;
45694 l_tmp_amt NUMBER;
45695 l_acc_rev_natural_side_code VARCHAR2(1);
45696
45697 l_num_entries NUMBER;
45698 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45699 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45700 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45701 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45702 l_recog_line_1 NUMBER;
45703 l_recog_line_2 NUMBER;
45704
45705 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45706 l_bflow_applied_to_amt NUMBER; -- 5132302
45707 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45708
45709 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45710
45711 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45712 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45713
45714 ---------------------------------------------------------------------------------------------------------------
45715
45716
45717 --
45718 -- bulk performance
45719 --
45720 l_balance_type_code VARCHAR2(1);
45721 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45725 -- Upgrade strategy
45722 l_log_module VARCHAR2(240);
45723
45724 --
45726 --
45727 l_actual_upg_option VARCHAR2(1);
45728 l_enc_upg_option VARCHAR2(1);
45729
45730 --
45731 BEGIN
45732 --
45733 IF g_log_enabled THEN
45734 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
45735 END IF;
45736 --
45737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45738
45739 trace
45740 (p_msg => 'BEGIN of AcctLineType_93'
45741 ,p_level => C_LEVEL_PROCEDURE
45742 ,p_module => l_log_module);
45743
45744 END IF;
45745 --
45746 l_component_type := 'AMB_JLT';
45747 l_component_code := 'AP_FREIGHT_EXPENSE_PMT';
45748 l_component_type_code := 'S';
45749 l_component_appl_id := 200;
45750 l_amb_context_code := 'DEFAULT';
45751 l_entity_code := 'AP_PAYMENTS';
45752 l_event_class_code := 'PAYMENTS';
45753 l_event_type_code := 'PAYMENTS_ALL';
45754 l_line_definition_owner_code := 'S';
45755 l_line_definition_code := 'CASH_PAYMENTS_ALL';
45756 --
45757 l_balance_type_code := 'A';
45758 l_segment := NULL;
45759 l_ccid := NULL;
45760 l_adr_transaction_coa_id := NULL;
45761 l_adr_accounting_coa_id := NULL;
45762 l_adr_flexfield_segment_code := NULL;
45763 l_adr_flex_value_set_id := NULL;
45764 l_adr_value_type_code := NULL;
45765 l_adr_value_combination_id := NULL;
45766 l_adr_value_segment_code := NULL;
45767
45768 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45769 l_bflow_class_code := ''; -- 4219869 Business Flow
45770 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45771 l_budgetary_control_flag := 'N';
45772
45773 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45774 l_bflow_applied_to_amt := NULL; -- 5132302
45775 l_entered_amt_idx := NULL; -- 4262811
45776 l_accted_amt_idx := NULL; -- 4262811
45777 l_acc_rev_flag := NULL; -- 4262811
45778 l_accrual_line_num := NULL; -- 4262811
45779 l_tmp_amt := NULL; -- 4262811
45780 --
45781
45782 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45783 l_balance_type_code <> 'B' THEN
45784 IF NVL(p_source_38,'
45785 ') <> 'CLEAR_CLEAR' AND
45786 NVL(p_source_20,'
45787 ') = 'FREIGHT' AND
45788 (NVL(p_source_39,'
45789 ') = 'CASH' OR
45790 NVL(p_source_39,'
45791 ') = 'AWT' OR
45792 NVL(p_source_39,'
45793 ') = 'DISCOUNT') AND
45794 NVL(p_source_60,'
45795 ') <> 'R'
45796 THEN
45797
45798 --
45799 XLA_AE_LINES_PKG.SetNewLine;
45800
45801 p_balance_type_code := l_balance_type_code;
45802 -- set the flag so later we will know whether the gain loss line needs to be created
45803
45804 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45805 p_actual_flag :='A';
45806 END IF;
45807
45808 --
45809 -- bulk performance
45810 --
45811 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45812 p_header_num => 0); -- 4262811
45813 --
45814 -- set accounting line options
45815 --
45816 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45817 p_natural_side_code => 'D'
45818 , p_gain_or_loss_flag => 'N'
45819 , p_gl_transfer_mode_code => 'S'
45820 , p_acct_entry_type_code => 'A'
45821 , p_switch_side_flag => 'Y'
45822 , p_merge_duplicate_code => 'A'
45823 );
45824 --
45825 l_acc_rev_natural_side_code := 'C'; -- 4262811
45826 --
45827 --
45828 -- set accounting line type info
45829 --
45830 xla_ae_lines_pkg.SetAcctLineType
45831 (p_component_type => l_component_type
45832 ,p_event_type_code => l_event_type_code
45833 ,p_line_definition_owner_code => l_line_definition_owner_code
45834 ,p_line_definition_code => l_line_definition_code
45835 ,p_accounting_line_code => l_component_code
45836 ,p_accounting_line_type_code => l_component_type_code
45837 ,p_accounting_line_appl_id => l_component_appl_id
45838 ,p_amb_context_code => l_amb_context_code
45839 ,p_entity_code => l_entity_code
45840 ,p_event_class_code => l_event_class_code);
45841 --
45842 -- set accounting class
45843 --
45844 xla_ae_lines_pkg.SetAcctClass(
45845 p_accounting_class_code => 'FREIGHT'
45846 , p_ae_header_id => l_ae_header_id
45847 );
45848
45849 --
45850 -- set rounding class
45851 --
45852 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45853 'FREIGHT';
45854
45855 --
45856 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45857 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45858 --
45859 -- bulk performance
45860 --
45864 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45861 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45862
45863 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45865
45866 -- 4955764
45867 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45868 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45869
45870 -- 4458381 Public Sector Enh
45871
45872 --
45873 -- set accounting attributes for the line type
45874 --
45875 l_entered_amt_idx := 10;
45876 l_accted_amt_idx := 15;
45877 l_bflow_applied_to_amt_idx := 2; -- 5132302
45878 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45879 l_rec_acct_attrs.array_char_value(1) := p_source_40;
45880 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45881 l_rec_acct_attrs.array_num_value(2) := p_source_61;
45882 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45883 l_rec_acct_attrs.array_num_value(3) := p_source_42;
45884 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45885 l_rec_acct_attrs.array_char_value(4) := p_source_62;
45886 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45887 l_rec_acct_attrs.array_char_value(5) := p_source_63;
45888 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45889 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
45890 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45891 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
45892 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45893 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
45894 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45895 l_rec_acct_attrs.array_char_value(9) := p_source_48;
45896 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45897 l_rec_acct_attrs.array_num_value(10) := p_source_41;
45898 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45899 l_rec_acct_attrs.array_char_value(11) := p_source_49;
45900 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
45901 l_rec_acct_attrs.array_date_value(12) := p_source_114;
45902 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
45903 l_rec_acct_attrs.array_num_value(13) := p_source_115;
45904 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
45905 l_rec_acct_attrs.array_char_value(14) := p_source_116;
45906 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
45907 l_rec_acct_attrs.array_num_value(15) := p_source_9;
45908 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
45909 l_rec_acct_attrs.array_char_value(16) := p_source_53;
45910 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
45911 l_rec_acct_attrs.array_num_value(17) := p_source_54;
45912 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
45913 l_rec_acct_attrs.array_num_value(18) := p_source_55;
45914 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
45915 l_rec_acct_attrs.array_char_value(19) := p_source_56;
45916 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
45917 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
45918 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
45919 l_rec_acct_attrs.array_char_value(21) := p_source_48;
45920 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
45921 l_rec_acct_attrs.array_num_value(22) := p_source_58;
45922 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
45923 l_rec_acct_attrs.array_num_value(23) := p_source_66;
45924 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
45925 l_rec_acct_attrs.array_num_value(24) := p_source_59;
45926
45927 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45928 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45929
45930 ---------------------------------------------------------------------------------------------------------------
45931 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45932 ---------------------------------------------------------------------------------------------------------------
45933 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45934
45935 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45936 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45937
45938 IF xla_accounting_cache_pkg.GetValueChar
45939 (p_source_code => 'LEDGER_CATEGORY_CODE'
45940 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45941 AND l_bflow_method_code = 'PRIOR_ENTRY'
45942 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45943 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45944 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45945 )
45946 THEN
45947 xla_ae_lines_pkg.BflowUpgEntry
45948 (p_business_method_code => l_bflow_method_code
45949 ,p_business_class_code => l_bflow_class_code
45950 ,p_balance_type => l_balance_type_code);
45954 END IF;
45951 ELSE
45952 NULL;
45953 -- No business flow processing for business flow method of NONE.
45955
45956 --
45957 -- call analytical criteria
45958 --
45959
45960 --
45961 -- call description
45962 --
45963 -- No description or it is inherited.
45964 --
45965 -- call ADRs
45966 -- Bug 4922099
45967 --
45968 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45969 (NVL(l_actual_upg_option, 'N') = 'O') OR
45970 (NVL(l_enc_upg_option, 'N') = 'O')
45971 )
45972 THEN
45973 NULL;
45974 --
45975 --
45976
45977 l_ccid := AcctDerRule_26(
45978 p_application_id => p_application_id
45979 , p_ae_header_id => l_ae_header_id
45980 , p_source_17 => p_source_17
45981 , x_transaction_coa_id => l_adr_transaction_coa_id
45982 , x_accounting_coa_id => l_adr_accounting_coa_id
45983 , x_value_type_code => l_adr_value_type_code
45984 , p_side => 'NA'
45985 );
45986
45987 xla_ae_lines_pkg.set_ccid(
45988 p_code_combination_id => l_ccid
45989 , p_value_type_code => l_adr_value_type_code
45990 , p_transaction_coa_id => l_adr_transaction_coa_id
45991 , p_accounting_coa_id => l_adr_accounting_coa_id
45992 , p_adr_code => 'AP_INVOICE_DIST'
45993 , p_adr_type_code => 'S'
45994 , p_component_type => l_component_type
45995 , p_component_code => l_component_code
45996 , p_component_type_code => l_component_type_code
45997 , p_component_appl_id => l_component_appl_id
45998 , p_amb_context_code => l_amb_context_code
45999 , p_side => 'NA'
46000 );
46001
46002
46003 --
46004 --
46005 END IF;
46006 --
46007 -- Bug 4922099
46008 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46009 (NVL(l_enc_upg_option, 'N') = 'O')
46010 ) AND
46011 (l_bflow_method_code = 'PRIOR_ENTRY')
46012 )
46013 THEN
46014 IF
46015 --
46016 1 = 2
46017 --
46018 THEN
46019 xla_accounting_err_pkg.build_message
46020 (p_appli_s_name => 'XLA'
46021 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46022 ,p_token_1 => 'LINE_NUMBER'
46023 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46024 ,p_token_2 => 'LINE_TYPE_NAME'
46025 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46026 l_component_type
46027 ,l_component_code
46028 ,l_component_type_code
46029 ,l_component_appl_id
46030 ,l_amb_context_code
46031 ,l_entity_code
46032 ,l_event_class_code
46033 )
46034 ,p_token_3 => 'OWNER'
46035 ,p_value_3 => xla_lookups_pkg.get_meaning(
46036 p_lookup_type => 'XLA_OWNER_TYPE'
46037 ,p_lookup_code => l_component_type_code
46038 )
46039 ,p_token_4 => 'PRODUCT_NAME'
46040 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46041 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46042 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46043 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46044 ,p_ae_header_id => NULL
46045 );
46046
46047 IF (C_LEVEL_ERROR>= g_log_level) THEN
46048 trace
46049 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46050 ,p_level => C_LEVEL_ERROR
46051 ,p_module => l_log_module);
46052 END IF;
46053 END IF;
46054 END IF;
46055 --
46056 --
46057 ------------------------------------------------------------------------------------------------
46058 -- 4219869 Business Flow
46059 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46060 -- Prior Entry. Currently, the following code is always generated.
46061 ------------------------------------------------------------------------------------------------
46062 XLA_AE_LINES_PKG.ValidateCurrentLine;
46063
46067 ------------------------------------------------------------------------------------
46064 ------------------------------------------------------------------------------------
46065 -- 4219869 Business Flow
46066 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46068 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46069
46070 ----------------------------------------------------------------------------------
46071 -- 4219869 Business Flow
46072 -- Update journal entry status -- Need to generate this within IF <condition>
46073 ----------------------------------------------------------------------------------
46074 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46075 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46076 ,p_balance_type_code => l_balance_type_code
46077 );
46078
46079 -------------------------------------------------------------------------------------------
46080 -- 4262811 - Generate the Accrual Reversal lines
46081 -------------------------------------------------------------------------------------------
46082 BEGIN
46083 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46084 (g_array_event(p_event_id).array_value_num('header_index'));
46085 IF l_acc_rev_flag IS NULL THEN
46086 l_acc_rev_flag := 'N';
46087 END IF;
46088 EXCEPTION
46089 WHEN OTHERS THEN
46090 l_acc_rev_flag := 'N';
46091 END;
46092 --
46093 IF (l_acc_rev_flag = 'Y') THEN
46094
46095 -- 4645092 ------------------------------------------------------------------------------
46096 -- To allow MPA report to determine if it should generate report process
46097 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46098 ------------------------------------------------------------------------------------------
46099
46100 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46101 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46102 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46103 -- call ADRs
46104 -- Bug 4922099
46105 --
46106 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46107 (NVL(l_actual_upg_option, 'N') = 'O') OR
46108 (NVL(l_enc_upg_option, 'N') = 'O')
46109 )
46110 THEN
46111 NULL;
46112 --
46113 --
46114
46115 l_ccid := AcctDerRule_26(
46116 p_application_id => p_application_id
46117 , p_ae_header_id => l_ae_header_id
46118 , p_source_17 => p_source_17
46119 , x_transaction_coa_id => l_adr_transaction_coa_id
46120 , x_accounting_coa_id => l_adr_accounting_coa_id
46121 , x_value_type_code => l_adr_value_type_code
46122 , p_side => 'NA'
46123 );
46124
46125 xla_ae_lines_pkg.set_ccid(
46126 p_code_combination_id => l_ccid
46127 , p_value_type_code => l_adr_value_type_code
46128 , p_transaction_coa_id => l_adr_transaction_coa_id
46129 , p_accounting_coa_id => l_adr_accounting_coa_id
46130 , p_adr_code => 'AP_INVOICE_DIST'
46131 , p_adr_type_code => 'S'
46132 , p_component_type => l_component_type
46133 , p_component_code => l_component_code
46134 , p_component_type_code => l_component_type_code
46135 , p_component_appl_id => l_component_appl_id
46136 , p_amb_context_code => l_amb_context_code
46137 , p_side => 'NA'
46138 );
46139
46140
46141 --
46142 --
46143 END IF;
46144
46145 --
46146 -- Update the line information that should be overwritten
46147 --
46148 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46149 p_header_num => 1);
46150 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46151
46152 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46153
46154 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46155 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46156 END IF;
46157
46158 --
46159 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46160 --
46161 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46162 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46163 ELSE
46164 ---------------------------------------------------------------------------------------------------
46165 -- 4262811a Switch Sign
46166 ---------------------------------------------------------------------------------------------------
46167 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46168 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46169 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46170 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46171 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46172 -- 5132302
46176 END IF;
46173 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46174 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46175
46177
46178 -- 4955764
46179 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46180 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46181
46182
46183 XLA_AE_LINES_PKG.ValidateCurrentLine;
46184 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46185
46186 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46187 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46188 ,p_balance_type_code => l_balance_type_code);
46189
46190 END IF;
46191
46192 -----------------------------------------------------------------------------------------
46193 -- 4262811 Multiperiod Accounting
46194 -----------------------------------------------------------------------------------------
46195 -- No MPA option is assigned.
46196
46197
46198 END IF;
46199 END IF;
46200 --
46201
46202 --
46203 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46204 trace
46205 (p_msg => 'END of AcctLineType_93'
46206 ,p_level => C_LEVEL_PROCEDURE
46207 ,p_module => l_log_module);
46208 END IF;
46209 --
46210 EXCEPTION
46211 WHEN xla_exceptions_pkg.application_exception THEN
46212 RAISE;
46213 WHEN OTHERS THEN
46214 xla_exceptions_pkg.raise_message
46215 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_93');
46216 END AcctLineType_93;
46217 --
46218
46219 ---------------------------------------
46220 --
46221 -- PRIVATE FUNCTION
46222 -- AcctLineType_94
46223 --
46224 ---------------------------------------
46225 PROCEDURE AcctLineType_94 (
46226 p_application_id IN NUMBER
46227 ,p_event_id IN NUMBER
46228 ,p_calculate_acctd_flag IN VARCHAR2
46229 ,p_calculate_g_l_flag IN VARCHAR2
46230 ,p_actual_flag IN OUT VARCHAR2
46231 ,p_balance_type_code OUT VARCHAR2
46232 ,p_gain_or_loss_ref OUT VARCHAR2
46233
46234 --Payment Distribution (Payment Rate) Ledger Amount
46235 , p_source_9 IN NUMBER
46236 --Invoice Distribution Type
46237 , p_source_20 IN VARCHAR2
46238 , p_source_20_meaning IN VARCHAR2
46239 --When to Account for Payment Option
46240 , p_source_38 IN VARCHAR2
46241 --Payment Distribution Type
46242 , p_source_39 IN VARCHAR2
46243 , p_source_39_meaning IN VARCHAR2
46244 --Accounting Reversal Indicator
46245 , p_source_40 IN VARCHAR2
46246 --Payment Distribution Amount
46247 , p_source_41 IN NUMBER
46248 --Business Flow Accounts Payable Application Identifier
46249 , p_source_42 IN NUMBER
46250 --Payment Distribution Identifier
46251 , p_source_47 IN NUMBER
46252 --Distribution Link Type
46253 , p_source_48 IN VARCHAR2
46254 --Payment Currency Code
46255 , p_source_49 IN VARCHAR2
46256 --Override Accounted Amount Indicator
46257 , p_source_53 IN VARCHAR2
46258 , p_source_53_meaning IN VARCHAR2
46259 --Third Party Type
46260 , p_source_56 IN VARCHAR2
46261 --Payment Distribution Reversed Identifier
46262 , p_source_57 IN NUMBER
46263 --Invoice Distribution Tax Line Identifier
46264 , p_source_58 IN NUMBER
46265 --Invoice Distribution Summary Tax Line Identifier
46266 , p_source_59 IN NUMBER
46267 --Payment Type
46268 , p_source_60 IN VARCHAR2
46269 , p_source_60_meaning IN VARCHAR2
46270 --Invoice Distribution Amount of the Payment Distribution
46271 , p_source_61 IN NUMBER
46272 --Business Flow Invoice Distribution Type
46273 , p_source_62 IN VARCHAR2
46274 --Business Flow Invoice Entity Code
46275 , p_source_63 IN VARCHAR2
46276 --Business Flow Invoice Distribution Identifier
46277 , p_source_64 IN NUMBER
46278 --Business Flow Invoice Identifier
46279 , p_source_65 IN NUMBER
46280 --Invoice Distribution Tax Distribution Identifier from Tax
46281 , p_source_66 IN NUMBER
46282 --Invoice Type Paid
46283 , p_source_101 IN VARCHAR2
46284 , p_source_101_meaning IN VARCHAR2
46285 --Purchasing Encumbrance Option
46286 , p_source_102 IN VARCHAR2
46287 , p_source_102_meaning IN VARCHAR2
46288 --Invoice Encumbered Option
46289 , p_source_104 IN VARCHAR2
46290 , p_source_104_meaning IN VARCHAR2
46291 )
46292 IS
46293
46294 l_component_type VARCHAR2(80);
46295 l_component_code VARCHAR2(30);
46296 l_component_type_code VARCHAR2(1);
46297 l_component_appl_id INTEGER;
46298 l_amb_context_code VARCHAR2(30);
46299 l_entity_code VARCHAR2(30);
46300 l_event_class_code VARCHAR2(30);
46301 l_ae_header_id NUMBER;
46302 l_event_type_code VARCHAR2(30);
46303 l_line_definition_code VARCHAR2(30);
46304 l_line_definition_owner_code VARCHAR2(1);
46305 --
46306 -- adr variables
46307 l_segment VARCHAR2(30);
46311 l_adr_flexfield_segment_code VARCHAR2(30);
46308 l_ccid NUMBER;
46309 l_adr_transaction_coa_id NUMBER;
46310 l_adr_accounting_coa_id NUMBER;
46312 l_adr_flex_value_set_id NUMBER;
46313 l_adr_value_type_code VARCHAR2(30);
46314 l_adr_value_combination_id NUMBER;
46315 l_adr_value_segment_code VARCHAR2(30);
46316
46317 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46318 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46319 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46320 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46321
46322 -- 4262811 Variables ------------------------------------------------------------------------------------------
46323 l_entered_amt_idx NUMBER;
46324 l_accted_amt_idx NUMBER;
46325 l_acc_rev_flag VARCHAR2(1);
46326 l_accrual_line_num NUMBER;
46327 l_tmp_amt NUMBER;
46328 l_acc_rev_natural_side_code VARCHAR2(1);
46329
46330 l_num_entries NUMBER;
46331 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46332 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46333 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46334 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46335 l_recog_line_1 NUMBER;
46336 l_recog_line_2 NUMBER;
46337
46338 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46339 l_bflow_applied_to_amt NUMBER; -- 5132302
46340 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46341
46342 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46343
46344 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46345 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46346
46347 ---------------------------------------------------------------------------------------------------------------
46348
46349
46350 --
46351 -- bulk performance
46352 --
46353 l_balance_type_code VARCHAR2(1);
46354 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46355 l_log_module VARCHAR2(240);
46356
46357 --
46358 -- Upgrade strategy
46359 --
46360 l_actual_upg_option VARCHAR2(1);
46361 l_enc_upg_option VARCHAR2(1);
46362
46363 --
46364 BEGIN
46365 --
46366 IF g_log_enabled THEN
46367 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
46368 END IF;
46369 --
46370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46371
46372 trace
46373 (p_msg => 'BEGIN of AcctLineType_94'
46374 ,p_level => C_LEVEL_PROCEDURE
46375 ,p_module => l_log_module);
46376
46377 END IF;
46378 --
46379 l_component_type := 'AMB_JLT';
46380 l_component_code := 'AP_FREIGHT_EXPENSE_PMT_ENC';
46381 l_component_type_code := 'S';
46382 l_component_appl_id := 200;
46383 l_amb_context_code := 'DEFAULT';
46384 l_entity_code := 'AP_PAYMENTS';
46385 l_event_class_code := 'PAYMENTS';
46386 l_event_type_code := 'PAYMENTS_ALL';
46387 l_line_definition_owner_code := 'S';
46388 l_line_definition_code := 'ENC_PAYMENTS_ALL';
46389 --
46390 l_balance_type_code := 'E';
46391 l_segment := NULL;
46392 l_ccid := NULL;
46393 l_adr_transaction_coa_id := NULL;
46394 l_adr_accounting_coa_id := NULL;
46395 l_adr_flexfield_segment_code := NULL;
46396 l_adr_flex_value_set_id := NULL;
46397 l_adr_value_type_code := NULL;
46398 l_adr_value_combination_id := NULL;
46399 l_adr_value_segment_code := NULL;
46400
46401 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
46402 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
46403 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46404 l_budgetary_control_flag := 'N';
46405
46406 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46407 l_bflow_applied_to_amt := NULL; -- 5132302
46408 l_entered_amt_idx := NULL; -- 4262811
46409 l_accted_amt_idx := NULL; -- 4262811
46410 l_acc_rev_flag := NULL; -- 4262811
46411 l_accrual_line_num := NULL; -- 4262811
46412 l_tmp_amt := NULL; -- 4262811
46413 --
46414
46415 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46416 l_balance_type_code <> 'B' THEN
46417 IF NVL(p_source_38,'
46418 ') <> 'CLEAR_CLEAR' AND
46419 NVL(p_source_20,'
46420 ') = 'FREIGHT' AND
46421 NVL(p_source_101,'
46422 ') <> 'INTEREST' AND
46423 (NVL(p_source_39,'
46424 ') = 'CASH' OR
46425 NVL(p_source_39,'
46426 ') = 'DISCOUNT') AND
46427 NVL(p_source_60,'
46428 ') <> 'R' AND
46429 NVL(p_source_102,'
46430 ') = 'Y' AND
46431 NVL(p_source_104,'
46432 ') = 'Y'
46433 THEN
46434
46435 --
46436 XLA_AE_LINES_PKG.SetNewLine;
46437
46438 p_balance_type_code := l_balance_type_code;
46442 p_actual_flag :='A';
46439 -- set the flag so later we will know whether the gain loss line needs to be created
46440
46441 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46443 END IF;
46444
46445 --
46446 -- bulk performance
46447 --
46448 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46449 p_header_num => 0); -- 4262811
46450 --
46451 -- set accounting line options
46452 --
46453 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46454 p_natural_side_code => 'C'
46455 , p_gain_or_loss_flag => 'N'
46456 , p_gl_transfer_mode_code => 'S'
46457 , p_acct_entry_type_code => 'E'
46458 , p_switch_side_flag => 'Y'
46459 , p_merge_duplicate_code => 'A'
46460 );
46461 --
46462 l_acc_rev_natural_side_code := 'D'; -- 4262811
46463 --
46464 --
46465 -- set accounting line type info
46466 --
46467 xla_ae_lines_pkg.SetAcctLineType
46468 (p_component_type => l_component_type
46469 ,p_event_type_code => l_event_type_code
46470 ,p_line_definition_owner_code => l_line_definition_owner_code
46471 ,p_line_definition_code => l_line_definition_code
46472 ,p_accounting_line_code => l_component_code
46473 ,p_accounting_line_type_code => l_component_type_code
46474 ,p_accounting_line_appl_id => l_component_appl_id
46475 ,p_amb_context_code => l_amb_context_code
46476 ,p_entity_code => l_entity_code
46477 ,p_event_class_code => l_event_class_code);
46478 --
46479 -- set accounting class
46480 --
46481 xla_ae_lines_pkg.SetAcctClass(
46482 p_accounting_class_code => 'FREIGHT'
46483 , p_ae_header_id => l_ae_header_id
46484 );
46485
46486 --
46487 -- set rounding class
46488 --
46489 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46490 'FREIGHT';
46491
46492 --
46493 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46494 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46495 --
46496 -- bulk performance
46497 --
46498 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46499
46500 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46501 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46502
46503 -- 4955764
46504 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46505 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46506
46507 -- 4458381 Public Sector Enh
46508
46509 --
46510 -- set accounting attributes for the line type
46511 --
46512 l_entered_amt_idx := 10;
46513 l_accted_amt_idx := 12;
46514 l_bflow_applied_to_amt_idx := 2; -- 5132302
46515 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46516 l_rec_acct_attrs.array_char_value(1) := p_source_40;
46517 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
46518 l_rec_acct_attrs.array_num_value(2) := p_source_61;
46519 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
46520 l_rec_acct_attrs.array_num_value(3) := p_source_42;
46521 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46522 l_rec_acct_attrs.array_char_value(4) := p_source_62;
46523 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
46524 l_rec_acct_attrs.array_char_value(5) := p_source_63;
46525 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
46526 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
46527 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46528 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
46529 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
46530 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
46531 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
46532 l_rec_acct_attrs.array_char_value(9) := p_source_48;
46533 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
46534 l_rec_acct_attrs.array_num_value(10) := p_source_41;
46535 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
46536 l_rec_acct_attrs.array_char_value(11) := p_source_49;
46537 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
46538 l_rec_acct_attrs.array_num_value(12) := p_source_9;
46539 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
46540 l_rec_acct_attrs.array_char_value(13) := p_source_53;
46541 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
46542 l_rec_acct_attrs.array_char_value(14) := p_source_56;
46543 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
46544 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
46545 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
46546 l_rec_acct_attrs.array_char_value(16) := p_source_48;
46547 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
46551 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
46548 l_rec_acct_attrs.array_num_value(17) := p_source_58;
46549 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
46550 l_rec_acct_attrs.array_num_value(18) := p_source_66;
46552 l_rec_acct_attrs.array_num_value(19) := p_source_59;
46553
46554 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46555 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46556
46557 ---------------------------------------------------------------------------------------------------------------
46558 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46559 ---------------------------------------------------------------------------------------------------------------
46560 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46561
46562 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46563 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46564
46565 IF xla_accounting_cache_pkg.GetValueChar
46566 (p_source_code => 'LEDGER_CATEGORY_CODE'
46567 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46568 AND l_bflow_method_code = 'PRIOR_ENTRY'
46569 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46570 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46571 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46572 )
46573 THEN
46574 xla_ae_lines_pkg.BflowUpgEntry
46575 (p_business_method_code => l_bflow_method_code
46576 ,p_business_class_code => l_bflow_class_code
46577 ,p_balance_type => l_balance_type_code);
46578 ELSE
46579 NULL;
46580 XLA_AE_LINES_PKG.business_flow_validation(
46581 p_business_method_code => l_bflow_method_code
46582 ,p_business_class_code => l_bflow_class_code
46583 ,p_inherit_description_flag => l_inherit_desc_flag);
46584 END IF;
46585
46586 --
46587 -- call analytical criteria
46588 --
46589 -- Inherited Analytical Criteria for business flow method of Prior Entry.
46590 --
46591 -- call description
46592 --
46593 -- No description or it is inherited.
46594 --
46595 -- call ADRs
46596 -- Bug 4922099
46597 --
46598 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46599 (NVL(l_actual_upg_option, 'N') = 'O') OR
46600 (NVL(l_enc_upg_option, 'N') = 'O')
46601 )
46602 THEN
46603 NULL;
46604 --
46605 --
46606
46607 --
46608 --
46609 END IF;
46610 --
46611 -- Bug 4922099
46612 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46613 (NVL(l_enc_upg_option, 'N') = 'O')
46614 ) AND
46615 (l_bflow_method_code = 'PRIOR_ENTRY')
46616 )
46617 THEN
46618 IF
46619 --
46620 1 = 1
46621 --
46622 THEN
46623 xla_accounting_err_pkg.build_message
46624 (p_appli_s_name => 'XLA'
46625 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46626 ,p_token_1 => 'LINE_NUMBER'
46627 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46628 ,p_token_2 => 'LINE_TYPE_NAME'
46629 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46630 l_component_type
46631 ,l_component_code
46632 ,l_component_type_code
46633 ,l_component_appl_id
46634 ,l_amb_context_code
46635 ,l_entity_code
46636 ,l_event_class_code
46637 )
46638 ,p_token_3 => 'OWNER'
46639 ,p_value_3 => xla_lookups_pkg.get_meaning(
46640 p_lookup_type => 'XLA_OWNER_TYPE'
46641 ,p_lookup_code => l_component_type_code
46642 )
46643 ,p_token_4 => 'PRODUCT_NAME'
46644 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46645 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46646 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46647 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46651 IF (C_LEVEL_ERROR>= g_log_level) THEN
46648 ,p_ae_header_id => NULL
46649 );
46650
46652 trace
46653 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46654 ,p_level => C_LEVEL_ERROR
46655 ,p_module => l_log_module);
46656 END IF;
46657 END IF;
46658 END IF;
46659 --
46660 --
46661 ------------------------------------------------------------------------------------------------
46662 -- 4219869 Business Flow
46663 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46664 -- Prior Entry. Currently, the following code is always generated.
46665 ------------------------------------------------------------------------------------------------
46666 -- No ValidateCurrentLine for business flow method of Prior Entry
46667
46668 ------------------------------------------------------------------------------------
46669 -- 4219869 Business Flow
46670 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46671 ------------------------------------------------------------------------------------
46672 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46673
46674 ----------------------------------------------------------------------------------
46675 -- 4219869 Business Flow
46676 -- Update journal entry status -- Need to generate this within IF <condition>
46677 ----------------------------------------------------------------------------------
46678 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46679 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46680 ,p_balance_type_code => l_balance_type_code
46681 );
46682
46683 -------------------------------------------------------------------------------------------
46684 -- 4262811 - Generate the Accrual Reversal lines
46685 -------------------------------------------------------------------------------------------
46686 BEGIN
46687 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46688 (g_array_event(p_event_id).array_value_num('header_index'));
46689 IF l_acc_rev_flag IS NULL THEN
46690 l_acc_rev_flag := 'N';
46691 END IF;
46692 EXCEPTION
46693 WHEN OTHERS THEN
46694 l_acc_rev_flag := 'N';
46695 END;
46696 --
46697 IF (l_acc_rev_flag = 'Y') THEN
46698
46699 -- 4645092 ------------------------------------------------------------------------------
46700 -- To allow MPA report to determine if it should generate report process
46701 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46702 ------------------------------------------------------------------------------------------
46703
46704 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46705 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46706 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46707 -- call ADRs
46708 -- Bug 4922099
46709 --
46710 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46711 (NVL(l_actual_upg_option, 'N') = 'O') OR
46712 (NVL(l_enc_upg_option, 'N') = 'O')
46713 )
46714 THEN
46715 NULL;
46716 --
46717 --
46718
46719 --
46720 --
46721 END IF;
46722
46723 --
46724 -- Update the line information that should be overwritten
46725 --
46726 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46727 p_header_num => 1);
46728 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46729
46730 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46731
46732 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46733 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46734 END IF;
46735
46736 --
46737 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46738 --
46739 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46740 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46741 ELSE
46742 ---------------------------------------------------------------------------------------------------
46743 -- 4262811a Switch Sign
46744 ---------------------------------------------------------------------------------------------------
46745 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46746 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46747 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46748 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46749 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46750 -- 5132302
46751 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46752 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46753
46757 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46754 END IF;
46755
46756 -- 4955764
46758 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46759
46760
46761 XLA_AE_LINES_PKG.ValidateCurrentLine;
46762 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46763
46764 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46765 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46766 ,p_balance_type_code => l_balance_type_code);
46767
46768 END IF;
46769
46770 -----------------------------------------------------------------------------------------
46771 -- 4262811 Multiperiod Accounting
46772 -----------------------------------------------------------------------------------------
46773 -- No MPA option is assigned.
46774
46775
46776 END IF;
46777 END IF;
46778 --
46779
46780 --
46781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46782 trace
46783 (p_msg => 'END of AcctLineType_94'
46784 ,p_level => C_LEVEL_PROCEDURE
46785 ,p_module => l_log_module);
46786 END IF;
46787 --
46788 EXCEPTION
46789 WHEN xla_exceptions_pkg.application_exception THEN
46790 RAISE;
46791 WHEN OTHERS THEN
46792 xla_exceptions_pkg.raise_message
46793 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_94');
46794 END AcctLineType_94;
46795 --
46796
46797 ---------------------------------------
46798 --
46799 -- PRIVATE FUNCTION
46800 -- AcctLineType_95
46801 --
46802 ---------------------------------------
46803 PROCEDURE AcctLineType_95 (
46804 p_application_id IN NUMBER
46805 ,p_event_id IN NUMBER
46806 ,p_calculate_acctd_flag IN VARCHAR2
46807 ,p_calculate_g_l_flag IN VARCHAR2
46808 ,p_actual_flag IN OUT VARCHAR2
46809 ,p_balance_type_code OUT VARCHAR2
46810 ,p_gain_or_loss_ref OUT VARCHAR2
46811
46812 --Payment Distribution (Payment Rate) Ledger Amount
46813 , p_source_9 IN NUMBER
46814 --Invoice Distribution Account
46815 , p_source_17 IN NUMBER
46816 --Invoice Distribution Type
46817 , p_source_20 IN VARCHAR2
46818 , p_source_20_meaning IN VARCHAR2
46819 --When to Account for Payment Option
46820 , p_source_38 IN VARCHAR2
46821 --Payment Distribution Type
46822 , p_source_39 IN VARCHAR2
46823 , p_source_39_meaning IN VARCHAR2
46824 --Accounting Reversal Indicator
46825 , p_source_40 IN VARCHAR2
46826 --Payment Distribution Amount
46827 , p_source_41 IN NUMBER
46828 --Business Flow Accounts Payable Application Identifier
46829 , p_source_42 IN NUMBER
46830 --Payment Distribution Identifier
46831 , p_source_47 IN NUMBER
46832 --Distribution Link Type
46833 , p_source_48 IN VARCHAR2
46834 --Payment Currency Code
46835 , p_source_49 IN VARCHAR2
46836 --Override Accounted Amount Indicator
46837 , p_source_53 IN VARCHAR2
46838 , p_source_53_meaning IN VARCHAR2
46839 --Payment Supplier Identifier
46840 , p_source_54 IN NUMBER
46841 --Payment Supplier Site Identifier
46842 , p_source_55 IN NUMBER
46843 --Third Party Type
46844 , p_source_56 IN VARCHAR2
46845 --Payment Distribution Reversed Identifier
46846 , p_source_57 IN NUMBER
46847 --Invoice Distribution Tax Line Identifier
46848 , p_source_58 IN NUMBER
46849 --Invoice Distribution Summary Tax Line Identifier
46850 , p_source_59 IN NUMBER
46851 --Payment Type
46852 , p_source_60 IN VARCHAR2
46853 , p_source_60_meaning IN VARCHAR2
46854 --Business Flow Invoice Distribution Type
46855 , p_source_62 IN VARCHAR2
46856 --Business Flow Invoice Entity Code
46857 , p_source_63 IN VARCHAR2
46858 --Business Flow Invoice Distribution Identifier
46859 , p_source_64 IN NUMBER
46860 --Business Flow Invoice Identifier
46861 , p_source_65 IN NUMBER
46862 --Invoice Distribution Tax Distribution Identifier from Tax
46863 , p_source_66 IN NUMBER
46864 --Payment Exchange Date
46865 , p_source_114 IN DATE
46866 --Payment Exchange Rate
46867 , p_source_115 IN NUMBER
46868 --Payment Exchange Rate Type
46869 , p_source_116 IN VARCHAR2
46870 )
46871 IS
46872
46873 l_component_type VARCHAR2(80);
46874 l_component_code VARCHAR2(30);
46875 l_component_type_code VARCHAR2(1);
46876 l_component_appl_id INTEGER;
46877 l_amb_context_code VARCHAR2(30);
46878 l_entity_code VARCHAR2(30);
46879 l_event_class_code VARCHAR2(30);
46880 l_ae_header_id NUMBER;
46881 l_event_type_code VARCHAR2(30);
46882 l_line_definition_code VARCHAR2(30);
46883 l_line_definition_owner_code VARCHAR2(1);
46884 --
46885 -- adr variables
46886 l_segment VARCHAR2(30);
46887 l_ccid NUMBER;
46888 l_adr_transaction_coa_id NUMBER;
46889 l_adr_accounting_coa_id NUMBER;
46890 l_adr_flexfield_segment_code VARCHAR2(30);
46891 l_adr_flex_value_set_id NUMBER;
46892 l_adr_value_type_code VARCHAR2(30);
46893 l_adr_value_combination_id NUMBER;
46897 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46894 l_adr_value_segment_code VARCHAR2(30);
46895
46896 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46898 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46899 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46900
46901 -- 4262811 Variables ------------------------------------------------------------------------------------------
46902 l_entered_amt_idx NUMBER;
46903 l_accted_amt_idx NUMBER;
46904 l_acc_rev_flag VARCHAR2(1);
46905 l_accrual_line_num NUMBER;
46906 l_tmp_amt NUMBER;
46907 l_acc_rev_natural_side_code VARCHAR2(1);
46908
46909 l_num_entries NUMBER;
46910 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46911 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46912 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46913 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46914 l_recog_line_1 NUMBER;
46915 l_recog_line_2 NUMBER;
46916
46917 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46918 l_bflow_applied_to_amt NUMBER; -- 5132302
46919 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46920
46921 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46922
46923 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46924 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46925
46926 ---------------------------------------------------------------------------------------------------------------
46927
46928
46929 --
46930 -- bulk performance
46931 --
46932 l_balance_type_code VARCHAR2(1);
46933 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46934 l_log_module VARCHAR2(240);
46935
46936 --
46937 -- Upgrade strategy
46938 --
46939 l_actual_upg_option VARCHAR2(1);
46940 l_enc_upg_option VARCHAR2(1);
46941
46942 --
46943 BEGIN
46944 --
46945 IF g_log_enabled THEN
46946 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
46947 END IF;
46948 --
46949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46950
46951 trace
46952 (p_msg => 'BEGIN of AcctLineType_95'
46953 ,p_level => C_LEVEL_PROCEDURE
46954 ,p_module => l_log_module);
46955
46956 END IF;
46957 --
46958 l_component_type := 'AMB_JLT';
46959 l_component_code := 'AP_FREIGHT_EXPENSE_REF';
46960 l_component_type_code := 'S';
46961 l_component_appl_id := 200;
46962 l_amb_context_code := 'DEFAULT';
46963 l_entity_code := 'AP_PAYMENTS';
46964 l_event_class_code := 'REFUNDS';
46965 l_event_type_code := 'REFUNDS_ALL';
46966 l_line_definition_owner_code := 'S';
46967 l_line_definition_code := 'CASH_REFUNDS_ALL';
46968 --
46969 l_balance_type_code := 'A';
46970 l_segment := NULL;
46971 l_ccid := NULL;
46972 l_adr_transaction_coa_id := NULL;
46973 l_adr_accounting_coa_id := NULL;
46974 l_adr_flexfield_segment_code := NULL;
46975 l_adr_flex_value_set_id := NULL;
46976 l_adr_value_type_code := NULL;
46977 l_adr_value_combination_id := NULL;
46978 l_adr_value_segment_code := NULL;
46979
46980 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46981 l_bflow_class_code := ''; -- 4219869 Business Flow
46982 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46983 l_budgetary_control_flag := 'N';
46984
46985 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46986 l_bflow_applied_to_amt := NULL; -- 5132302
46987 l_entered_amt_idx := NULL; -- 4262811
46988 l_accted_amt_idx := NULL; -- 4262811
46989 l_acc_rev_flag := NULL; -- 4262811
46990 l_accrual_line_num := NULL; -- 4262811
46991 l_tmp_amt := NULL; -- 4262811
46992 --
46993
46994 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46995 l_balance_type_code <> 'B' THEN
46996 IF NVL(p_source_38,'
46997 ') <> 'CLEAR_CLEAR' AND
46998 NVL(p_source_20,'
46999 ') = 'FREIGHT' AND
47000 (NVL(p_source_39,'
47001 ') = 'CASH' OR
47002 NVL(p_source_39,'
47003 ') = 'DISCOUNT') AND
47004 NVL(p_source_60,'
47005 ') = 'R'
47006 THEN
47007
47008 --
47009 XLA_AE_LINES_PKG.SetNewLine;
47010
47011 p_balance_type_code := l_balance_type_code;
47012 -- set the flag so later we will know whether the gain loss line needs to be created
47013
47014 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47015 p_actual_flag :='A';
47016 END IF;
47017
47018 --
47019 -- bulk performance
47020 --
47021 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47022 p_header_num => 0); -- 4262811
47023 --
47024 -- set accounting line options
47025 --
47029 , p_gl_transfer_mode_code => 'S'
47026 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47027 p_natural_side_code => 'D'
47028 , p_gain_or_loss_flag => 'N'
47030 , p_acct_entry_type_code => 'A'
47031 , p_switch_side_flag => 'Y'
47032 , p_merge_duplicate_code => 'A'
47033 );
47034 --
47035 l_acc_rev_natural_side_code := 'C'; -- 4262811
47036 --
47037 --
47038 -- set accounting line type info
47039 --
47040 xla_ae_lines_pkg.SetAcctLineType
47041 (p_component_type => l_component_type
47042 ,p_event_type_code => l_event_type_code
47043 ,p_line_definition_owner_code => l_line_definition_owner_code
47044 ,p_line_definition_code => l_line_definition_code
47045 ,p_accounting_line_code => l_component_code
47046 ,p_accounting_line_type_code => l_component_type_code
47047 ,p_accounting_line_appl_id => l_component_appl_id
47048 ,p_amb_context_code => l_amb_context_code
47049 ,p_entity_code => l_entity_code
47050 ,p_event_class_code => l_event_class_code);
47051 --
47052 -- set accounting class
47053 --
47054 xla_ae_lines_pkg.SetAcctClass(
47055 p_accounting_class_code => 'FREIGHT'
47056 , p_ae_header_id => l_ae_header_id
47057 );
47058
47059 --
47060 -- set rounding class
47061 --
47062 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47063 'FREIGHT';
47064
47065 --
47066 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47067 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47068 --
47069 -- bulk performance
47070 --
47071 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47072
47073 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47074 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47075
47076 -- 4955764
47077 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47078 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47079
47080 -- 4458381 Public Sector Enh
47081
47082 --
47083 -- set accounting attributes for the line type
47084 --
47085 l_entered_amt_idx := 9;
47086 l_accted_amt_idx := 14;
47087 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47088 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47089 l_rec_acct_attrs.array_char_value(1) := p_source_40;
47090 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
47091 l_rec_acct_attrs.array_num_value(2) := p_source_42;
47092 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47093 l_rec_acct_attrs.array_char_value(3) := p_source_62;
47094 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
47095 l_rec_acct_attrs.array_char_value(4) := p_source_63;
47096 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
47097 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
47098 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47099 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
47100 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
47101 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
47102 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
47103 l_rec_acct_attrs.array_char_value(8) := p_source_48;
47104 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
47105 l_rec_acct_attrs.array_num_value(9) := p_source_41;
47106 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
47107 l_rec_acct_attrs.array_char_value(10) := p_source_49;
47108 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
47109 l_rec_acct_attrs.array_date_value(11) := p_source_114;
47110 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
47111 l_rec_acct_attrs.array_num_value(12) := p_source_115;
47112 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
47113 l_rec_acct_attrs.array_char_value(13) := p_source_116;
47114 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
47115 l_rec_acct_attrs.array_num_value(14) := p_source_9;
47116 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
47117 l_rec_acct_attrs.array_char_value(15) := p_source_53;
47118 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
47119 l_rec_acct_attrs.array_num_value(16) := p_source_54;
47120 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
47121 l_rec_acct_attrs.array_num_value(17) := p_source_55;
47122 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
47123 l_rec_acct_attrs.array_char_value(18) := p_source_56;
47124 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
47125 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
47126 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
47127 l_rec_acct_attrs.array_char_value(20) := p_source_48;
47128 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
47132 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
47129 l_rec_acct_attrs.array_num_value(21) := p_source_58;
47130 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
47131 l_rec_acct_attrs.array_num_value(22) := p_source_66;
47133 l_rec_acct_attrs.array_num_value(23) := p_source_59;
47134
47135 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47136 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47137
47138 ---------------------------------------------------------------------------------------------------------------
47139 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47140 ---------------------------------------------------------------------------------------------------------------
47141 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47142
47143 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47144 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47145
47146 IF xla_accounting_cache_pkg.GetValueChar
47147 (p_source_code => 'LEDGER_CATEGORY_CODE'
47148 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47149 AND l_bflow_method_code = 'PRIOR_ENTRY'
47150 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47151 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47152 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47153 )
47154 THEN
47155 xla_ae_lines_pkg.BflowUpgEntry
47156 (p_business_method_code => l_bflow_method_code
47157 ,p_business_class_code => l_bflow_class_code
47158 ,p_balance_type => l_balance_type_code);
47159 ELSE
47160 NULL;
47161 -- No business flow processing for business flow method of NONE.
47162 END IF;
47163
47164 --
47165 -- call analytical criteria
47166 --
47167
47168 --
47169 -- call description
47170 --
47171 -- No description or it is inherited.
47172 --
47173 -- call ADRs
47174 -- Bug 4922099
47175 --
47176 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47177 (NVL(l_actual_upg_option, 'N') = 'O') OR
47178 (NVL(l_enc_upg_option, 'N') = 'O')
47179 )
47180 THEN
47181 NULL;
47182 --
47183 --
47184
47185 l_ccid := AcctDerRule_26(
47186 p_application_id => p_application_id
47187 , p_ae_header_id => l_ae_header_id
47188 , p_source_17 => p_source_17
47189 , x_transaction_coa_id => l_adr_transaction_coa_id
47190 , x_accounting_coa_id => l_adr_accounting_coa_id
47191 , x_value_type_code => l_adr_value_type_code
47192 , p_side => 'NA'
47193 );
47194
47195 xla_ae_lines_pkg.set_ccid(
47196 p_code_combination_id => l_ccid
47197 , p_value_type_code => l_adr_value_type_code
47198 , p_transaction_coa_id => l_adr_transaction_coa_id
47199 , p_accounting_coa_id => l_adr_accounting_coa_id
47200 , p_adr_code => 'AP_INVOICE_DIST'
47201 , p_adr_type_code => 'S'
47202 , p_component_type => l_component_type
47203 , p_component_code => l_component_code
47204 , p_component_type_code => l_component_type_code
47205 , p_component_appl_id => l_component_appl_id
47206 , p_amb_context_code => l_amb_context_code
47207 , p_side => 'NA'
47208 );
47209
47210
47211 --
47212 --
47213 END IF;
47214 --
47215 -- Bug 4922099
47216 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47217 (NVL(l_enc_upg_option, 'N') = 'O')
47218 ) AND
47219 (l_bflow_method_code = 'PRIOR_ENTRY')
47220 )
47221 THEN
47222 IF
47223 --
47224 1 = 2
47225 --
47226 THEN
47227 xla_accounting_err_pkg.build_message
47228 (p_appli_s_name => 'XLA'
47229 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47230 ,p_token_1 => 'LINE_NUMBER'
47231 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47232 ,p_token_2 => 'LINE_TYPE_NAME'
47233 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47234 l_component_type
47235 ,l_component_code
47236 ,l_component_type_code
47237 ,l_component_appl_id
47238 ,l_amb_context_code
47239 ,l_entity_code
47240 ,l_event_class_code
47244 p_lookup_type => 'XLA_OWNER_TYPE'
47241 )
47242 ,p_token_3 => 'OWNER'
47243 ,p_value_3 => xla_lookups_pkg.get_meaning(
47245 ,p_lookup_code => l_component_type_code
47246 )
47247 ,p_token_4 => 'PRODUCT_NAME'
47248 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47249 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47250 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47251 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47252 ,p_ae_header_id => NULL
47253 );
47254
47255 IF (C_LEVEL_ERROR>= g_log_level) THEN
47256 trace
47257 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47258 ,p_level => C_LEVEL_ERROR
47259 ,p_module => l_log_module);
47260 END IF;
47261 END IF;
47262 END IF;
47263 --
47264 --
47265 ------------------------------------------------------------------------------------------------
47266 -- 4219869 Business Flow
47267 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47268 -- Prior Entry. Currently, the following code is always generated.
47269 ------------------------------------------------------------------------------------------------
47270 XLA_AE_LINES_PKG.ValidateCurrentLine;
47271
47272 ------------------------------------------------------------------------------------
47273 -- 4219869 Business Flow
47274 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47275 ------------------------------------------------------------------------------------
47276 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47277
47278 ----------------------------------------------------------------------------------
47279 -- 4219869 Business Flow
47280 -- Update journal entry status -- Need to generate this within IF <condition>
47281 ----------------------------------------------------------------------------------
47282 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47283 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47284 ,p_balance_type_code => l_balance_type_code
47285 );
47286
47287 -------------------------------------------------------------------------------------------
47288 -- 4262811 - Generate the Accrual Reversal lines
47289 -------------------------------------------------------------------------------------------
47290 BEGIN
47291 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47292 (g_array_event(p_event_id).array_value_num('header_index'));
47293 IF l_acc_rev_flag IS NULL THEN
47294 l_acc_rev_flag := 'N';
47295 END IF;
47296 EXCEPTION
47297 WHEN OTHERS THEN
47298 l_acc_rev_flag := 'N';
47299 END;
47300 --
47301 IF (l_acc_rev_flag = 'Y') THEN
47302
47303 -- 4645092 ------------------------------------------------------------------------------
47304 -- To allow MPA report to determine if it should generate report process
47305 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47306 ------------------------------------------------------------------------------------------
47307
47308 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47309 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47310 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47311 -- call ADRs
47312 -- Bug 4922099
47313 --
47314 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47315 (NVL(l_actual_upg_option, 'N') = 'O') OR
47316 (NVL(l_enc_upg_option, 'N') = 'O')
47317 )
47318 THEN
47319 NULL;
47320 --
47321 --
47322
47323 l_ccid := AcctDerRule_26(
47324 p_application_id => p_application_id
47325 , p_ae_header_id => l_ae_header_id
47326 , p_source_17 => p_source_17
47327 , x_transaction_coa_id => l_adr_transaction_coa_id
47328 , x_accounting_coa_id => l_adr_accounting_coa_id
47329 , x_value_type_code => l_adr_value_type_code
47330 , p_side => 'NA'
47331 );
47332
47333 xla_ae_lines_pkg.set_ccid(
47334 p_code_combination_id => l_ccid
47335 , p_value_type_code => l_adr_value_type_code
47336 , p_transaction_coa_id => l_adr_transaction_coa_id
47337 , p_accounting_coa_id => l_adr_accounting_coa_id
47338 , p_adr_code => 'AP_INVOICE_DIST'
47339 , p_adr_type_code => 'S'
47340 , p_component_type => l_component_type
47341 , p_component_code => l_component_code
47342 , p_component_type_code => l_component_type_code
47343 , p_component_appl_id => l_component_appl_id
47347
47344 , p_amb_context_code => l_amb_context_code
47345 , p_side => 'NA'
47346 );
47348
47349 --
47350 --
47351 END IF;
47352
47353 --
47354 -- Update the line information that should be overwritten
47355 --
47356 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47357 p_header_num => 1);
47358 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47359
47360 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47361
47362 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47363 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47364 END IF;
47365
47366 --
47367 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47368 --
47369 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47370 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47371 ELSE
47372 ---------------------------------------------------------------------------------------------------
47373 -- 4262811a Switch Sign
47374 ---------------------------------------------------------------------------------------------------
47375 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47376 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47377 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47378 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47379 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47380 -- 5132302
47381 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47382 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47383
47384 END IF;
47385
47386 -- 4955764
47387 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47388 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47389
47390
47391 XLA_AE_LINES_PKG.ValidateCurrentLine;
47392 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47393
47394 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47395 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47396 ,p_balance_type_code => l_balance_type_code);
47397
47398 END IF;
47399
47400 -----------------------------------------------------------------------------------------
47401 -- 4262811 Multiperiod Accounting
47402 -----------------------------------------------------------------------------------------
47403 -- No MPA option is assigned.
47404
47405
47406 END IF;
47407 END IF;
47408 --
47409
47410 --
47411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47412 trace
47413 (p_msg => 'END of AcctLineType_95'
47414 ,p_level => C_LEVEL_PROCEDURE
47415 ,p_module => l_log_module);
47416 END IF;
47417 --
47418 EXCEPTION
47419 WHEN xla_exceptions_pkg.application_exception THEN
47420 RAISE;
47421 WHEN OTHERS THEN
47422 xla_exceptions_pkg.raise_message
47423 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_95');
47424 END AcctLineType_95;
47425 --
47426
47427 ---------------------------------------
47428 --
47429 -- PRIVATE FUNCTION
47430 -- AcctLineType_96
47431 --
47432 ---------------------------------------
47433 PROCEDURE AcctLineType_96 (
47434 p_application_id IN NUMBER
47435 ,p_event_id IN NUMBER
47436 ,p_calculate_acctd_flag IN VARCHAR2
47437 ,p_calculate_g_l_flag IN VARCHAR2
47438 ,p_actual_flag IN OUT VARCHAR2
47439 ,p_balance_type_code OUT VARCHAR2
47440 ,p_gain_or_loss_ref OUT VARCHAR2
47441
47442 --Payment Distribution (Payment Rate) Ledger Amount
47443 , p_source_9 IN NUMBER
47444 --Invoice Distribution Type
47445 , p_source_20 IN VARCHAR2
47446 , p_source_20_meaning IN VARCHAR2
47447 --When to Account for Payment Option
47448 , p_source_38 IN VARCHAR2
47449 --Payment Distribution Type
47450 , p_source_39 IN VARCHAR2
47451 , p_source_39_meaning IN VARCHAR2
47452 --Accounting Reversal Indicator
47453 , p_source_40 IN VARCHAR2
47454 --Payment Distribution Amount
47455 , p_source_41 IN NUMBER
47456 --Business Flow Accounts Payable Application Identifier
47457 , p_source_42 IN NUMBER
47458 --Payment Distribution Identifier
47459 , p_source_47 IN NUMBER
47460 --Distribution Link Type
47461 , p_source_48 IN VARCHAR2
47462 --Payment Currency Code
47463 , p_source_49 IN VARCHAR2
47464 --Override Accounted Amount Indicator
47465 , p_source_53 IN VARCHAR2
47466 , p_source_53_meaning IN VARCHAR2
47467 --Third Party Type
47468 , p_source_56 IN VARCHAR2
47472 , p_source_58 IN NUMBER
47469 --Payment Distribution Reversed Identifier
47470 , p_source_57 IN NUMBER
47471 --Invoice Distribution Tax Line Identifier
47473 --Invoice Distribution Summary Tax Line Identifier
47474 , p_source_59 IN NUMBER
47475 --Payment Type
47476 , p_source_60 IN VARCHAR2
47477 , p_source_60_meaning IN VARCHAR2
47478 --Business Flow Invoice Distribution Type
47479 , p_source_62 IN VARCHAR2
47480 --Business Flow Invoice Entity Code
47481 , p_source_63 IN VARCHAR2
47482 --Business Flow Invoice Distribution Identifier
47483 , p_source_64 IN NUMBER
47484 --Business Flow Invoice Identifier
47485 , p_source_65 IN NUMBER
47486 --Invoice Distribution Tax Distribution Identifier from Tax
47487 , p_source_66 IN NUMBER
47488 --Invoice Type Paid
47489 , p_source_101 IN VARCHAR2
47490 , p_source_101_meaning IN VARCHAR2
47491 --Purchasing Encumbrance Option
47492 , p_source_102 IN VARCHAR2
47493 , p_source_102_meaning IN VARCHAR2
47494 --Invoice Encumbered Option
47495 , p_source_104 IN VARCHAR2
47496 , p_source_104_meaning IN VARCHAR2
47497 )
47498 IS
47499
47500 l_component_type VARCHAR2(80);
47501 l_component_code VARCHAR2(30);
47502 l_component_type_code VARCHAR2(1);
47503 l_component_appl_id INTEGER;
47504 l_amb_context_code VARCHAR2(30);
47505 l_entity_code VARCHAR2(30);
47506 l_event_class_code VARCHAR2(30);
47507 l_ae_header_id NUMBER;
47508 l_event_type_code VARCHAR2(30);
47509 l_line_definition_code VARCHAR2(30);
47510 l_line_definition_owner_code VARCHAR2(1);
47511 --
47512 -- adr variables
47513 l_segment VARCHAR2(30);
47514 l_ccid NUMBER;
47515 l_adr_transaction_coa_id NUMBER;
47516 l_adr_accounting_coa_id NUMBER;
47517 l_adr_flexfield_segment_code VARCHAR2(30);
47518 l_adr_flex_value_set_id NUMBER;
47519 l_adr_value_type_code VARCHAR2(30);
47520 l_adr_value_combination_id NUMBER;
47521 l_adr_value_segment_code VARCHAR2(30);
47522
47523 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47524 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47525 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47526 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47527
47528 -- 4262811 Variables ------------------------------------------------------------------------------------------
47529 l_entered_amt_idx NUMBER;
47530 l_accted_amt_idx NUMBER;
47531 l_acc_rev_flag VARCHAR2(1);
47532 l_accrual_line_num NUMBER;
47533 l_tmp_amt NUMBER;
47534 l_acc_rev_natural_side_code VARCHAR2(1);
47535
47536 l_num_entries NUMBER;
47537 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47538 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47539 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47540 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47541 l_recog_line_1 NUMBER;
47542 l_recog_line_2 NUMBER;
47543
47544 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47545 l_bflow_applied_to_amt NUMBER; -- 5132302
47546 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47547
47548 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47549
47550 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47551 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47552
47553 ---------------------------------------------------------------------------------------------------------------
47554
47555
47556 --
47557 -- bulk performance
47558 --
47559 l_balance_type_code VARCHAR2(1);
47560 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47561 l_log_module VARCHAR2(240);
47562
47563 --
47564 -- Upgrade strategy
47565 --
47566 l_actual_upg_option VARCHAR2(1);
47567 l_enc_upg_option VARCHAR2(1);
47568
47569 --
47570 BEGIN
47571 --
47572 IF g_log_enabled THEN
47573 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
47574 END IF;
47575 --
47576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47577
47578 trace
47579 (p_msg => 'BEGIN of AcctLineType_96'
47580 ,p_level => C_LEVEL_PROCEDURE
47581 ,p_module => l_log_module);
47582
47583 END IF;
47584 --
47585 l_component_type := 'AMB_JLT';
47586 l_component_code := 'AP_FREIGHT_EXPENSE_REF_ENC';
47587 l_component_type_code := 'S';
47588 l_component_appl_id := 200;
47589 l_amb_context_code := 'DEFAULT';
47590 l_entity_code := 'AP_PAYMENTS';
47591 l_event_class_code := 'REFUNDS';
47592 l_event_type_code := 'REFUNDS_ALL';
47593 l_line_definition_owner_code := 'S';
47594 l_line_definition_code := 'ENC_REFUNDS_ALL';
47595 --
47596 l_balance_type_code := 'E';
47597 l_segment := NULL;
47598 l_ccid := NULL;
47599 l_adr_transaction_coa_id := NULL;
47600 l_adr_accounting_coa_id := NULL;
47604 l_adr_value_combination_id := NULL;
47601 l_adr_flexfield_segment_code := NULL;
47602 l_adr_flex_value_set_id := NULL;
47603 l_adr_value_type_code := NULL;
47605 l_adr_value_segment_code := NULL;
47606
47607 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
47608 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
47609 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47610 l_budgetary_control_flag := 'N';
47611
47612 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47613 l_bflow_applied_to_amt := NULL; -- 5132302
47614 l_entered_amt_idx := NULL; -- 4262811
47615 l_accted_amt_idx := NULL; -- 4262811
47616 l_acc_rev_flag := NULL; -- 4262811
47617 l_accrual_line_num := NULL; -- 4262811
47618 l_tmp_amt := NULL; -- 4262811
47619 --
47620
47621 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47622 l_balance_type_code <> 'B' THEN
47623 IF NVL(p_source_38,'
47624 ') <> 'CLEAR_CLEAR' AND
47625 NVL(p_source_20,'
47626 ') = 'FREIGHT' AND
47627 NVL(p_source_101,'
47628 ') <> 'INTEREST' AND
47629 (NVL(p_source_39,'
47630 ') = 'CASH' OR
47631 NVL(p_source_39,'
47632 ') = 'DISCOUNT') AND
47633 NVL(p_source_60,'
47634 ') = 'R' AND
47635 NVL(p_source_102,'
47636 ') = 'Y' AND
47637 NVL(p_source_104,'
47638 ') = 'Y'
47639 THEN
47640
47641 --
47642 XLA_AE_LINES_PKG.SetNewLine;
47643
47644 p_balance_type_code := l_balance_type_code;
47645 -- set the flag so later we will know whether the gain loss line needs to be created
47646
47647 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47648 p_actual_flag :='A';
47649 END IF;
47650
47651 --
47652 -- bulk performance
47653 --
47654 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47655 p_header_num => 0); -- 4262811
47656 --
47657 -- set accounting line options
47658 --
47659 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47660 p_natural_side_code => 'D'
47661 , p_gain_or_loss_flag => 'N'
47662 , p_gl_transfer_mode_code => 'S'
47663 , p_acct_entry_type_code => 'E'
47664 , p_switch_side_flag => 'Y'
47665 , p_merge_duplicate_code => 'A'
47666 );
47667 --
47668 l_acc_rev_natural_side_code := 'C'; -- 4262811
47669 --
47670 --
47671 -- set accounting line type info
47672 --
47673 xla_ae_lines_pkg.SetAcctLineType
47674 (p_component_type => l_component_type
47675 ,p_event_type_code => l_event_type_code
47676 ,p_line_definition_owner_code => l_line_definition_owner_code
47677 ,p_line_definition_code => l_line_definition_code
47678 ,p_accounting_line_code => l_component_code
47679 ,p_accounting_line_type_code => l_component_type_code
47680 ,p_accounting_line_appl_id => l_component_appl_id
47681 ,p_amb_context_code => l_amb_context_code
47682 ,p_entity_code => l_entity_code
47683 ,p_event_class_code => l_event_class_code);
47684 --
47685 -- set accounting class
47686 --
47687 xla_ae_lines_pkg.SetAcctClass(
47688 p_accounting_class_code => 'FREIGHT'
47689 , p_ae_header_id => l_ae_header_id
47690 );
47691
47692 --
47693 -- set rounding class
47694 --
47695 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47696 'FREIGHT';
47697
47698 --
47699 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47700 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47701 --
47702 -- bulk performance
47703 --
47704 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47705
47706 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47707 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47708
47709 -- 4955764
47710 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47711 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47712
47713 -- 4458381 Public Sector Enh
47714
47715 --
47716 -- set accounting attributes for the line type
47717 --
47718 l_entered_amt_idx := 9;
47719 l_accted_amt_idx := 11;
47720 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47721 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47722 l_rec_acct_attrs.array_char_value(1) := p_source_40;
47723 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
47724 l_rec_acct_attrs.array_num_value(2) := p_source_42;
47725 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47726 l_rec_acct_attrs.array_char_value(3) := p_source_62;
47727 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
47728 l_rec_acct_attrs.array_char_value(4) := p_source_63;
47732 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
47729 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
47730 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
47731 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47733 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
47734 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
47735 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
47736 l_rec_acct_attrs.array_char_value(8) := p_source_48;
47737 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
47738 l_rec_acct_attrs.array_num_value(9) := p_source_41;
47739 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
47740 l_rec_acct_attrs.array_char_value(10) := p_source_49;
47741 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
47742 l_rec_acct_attrs.array_num_value(11) := p_source_9;
47743 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
47744 l_rec_acct_attrs.array_char_value(12) := p_source_53;
47745 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
47746 l_rec_acct_attrs.array_char_value(13) := p_source_56;
47747 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
47748 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
47749 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
47750 l_rec_acct_attrs.array_char_value(15) := p_source_48;
47751 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
47752 l_rec_acct_attrs.array_num_value(16) := p_source_58;
47753 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
47754 l_rec_acct_attrs.array_num_value(17) := p_source_66;
47755 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
47756 l_rec_acct_attrs.array_num_value(18) := p_source_59;
47757
47758 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47759 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47760
47761 ---------------------------------------------------------------------------------------------------------------
47762 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47763 ---------------------------------------------------------------------------------------------------------------
47764 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47765
47766 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47767 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47768
47769 IF xla_accounting_cache_pkg.GetValueChar
47770 (p_source_code => 'LEDGER_CATEGORY_CODE'
47771 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47772 AND l_bflow_method_code = 'PRIOR_ENTRY'
47773 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47774 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47775 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47776 )
47777 THEN
47778 xla_ae_lines_pkg.BflowUpgEntry
47779 (p_business_method_code => l_bflow_method_code
47780 ,p_business_class_code => l_bflow_class_code
47781 ,p_balance_type => l_balance_type_code);
47782 ELSE
47783 NULL;
47784 XLA_AE_LINES_PKG.business_flow_validation(
47785 p_business_method_code => l_bflow_method_code
47786 ,p_business_class_code => l_bflow_class_code
47787 ,p_inherit_description_flag => l_inherit_desc_flag);
47788 END IF;
47789
47790 --
47791 -- call analytical criteria
47792 --
47793 -- Inherited Analytical Criteria for business flow method of Prior Entry.
47794 --
47795 -- call description
47796 --
47797 -- No description or it is inherited.
47798 --
47799 -- call ADRs
47800 -- Bug 4922099
47801 --
47802 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47803 (NVL(l_actual_upg_option, 'N') = 'O') OR
47804 (NVL(l_enc_upg_option, 'N') = 'O')
47805 )
47806 THEN
47807 NULL;
47808 --
47809 --
47810
47811 --
47812 --
47813 END IF;
47814 --
47815 -- Bug 4922099
47816 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47817 (NVL(l_enc_upg_option, 'N') = 'O')
47818 ) AND
47819 (l_bflow_method_code = 'PRIOR_ENTRY')
47820 )
47821 THEN
47822 IF
47823 --
47824 1 = 1
47825 --
47826 THEN
47827 xla_accounting_err_pkg.build_message
47828 (p_appli_s_name => 'XLA'
47829 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47830 ,p_token_1 => 'LINE_NUMBER'
47831 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47832 ,p_token_2 => 'LINE_TYPE_NAME'
47833 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47834 l_component_type
47838 ,l_amb_context_code
47835 ,l_component_code
47836 ,l_component_type_code
47837 ,l_component_appl_id
47839 ,l_entity_code
47840 ,l_event_class_code
47841 )
47842 ,p_token_3 => 'OWNER'
47843 ,p_value_3 => xla_lookups_pkg.get_meaning(
47844 p_lookup_type => 'XLA_OWNER_TYPE'
47845 ,p_lookup_code => l_component_type_code
47846 )
47847 ,p_token_4 => 'PRODUCT_NAME'
47848 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47849 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47850 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47851 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47852 ,p_ae_header_id => NULL
47853 );
47854
47855 IF (C_LEVEL_ERROR>= g_log_level) THEN
47856 trace
47857 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47858 ,p_level => C_LEVEL_ERROR
47859 ,p_module => l_log_module);
47860 END IF;
47861 END IF;
47862 END IF;
47863 --
47864 --
47865 ------------------------------------------------------------------------------------------------
47866 -- 4219869 Business Flow
47867 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47868 -- Prior Entry. Currently, the following code is always generated.
47869 ------------------------------------------------------------------------------------------------
47870 -- No ValidateCurrentLine for business flow method of Prior Entry
47871
47872 ------------------------------------------------------------------------------------
47873 -- 4219869 Business Flow
47874 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47875 ------------------------------------------------------------------------------------
47876 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47877
47878 ----------------------------------------------------------------------------------
47879 -- 4219869 Business Flow
47880 -- Update journal entry status -- Need to generate this within IF <condition>
47881 ----------------------------------------------------------------------------------
47882 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47883 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47884 ,p_balance_type_code => l_balance_type_code
47885 );
47886
47887 -------------------------------------------------------------------------------------------
47888 -- 4262811 - Generate the Accrual Reversal lines
47889 -------------------------------------------------------------------------------------------
47890 BEGIN
47891 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47892 (g_array_event(p_event_id).array_value_num('header_index'));
47893 IF l_acc_rev_flag IS NULL THEN
47894 l_acc_rev_flag := 'N';
47895 END IF;
47896 EXCEPTION
47897 WHEN OTHERS THEN
47898 l_acc_rev_flag := 'N';
47899 END;
47900 --
47901 IF (l_acc_rev_flag = 'Y') THEN
47902
47903 -- 4645092 ------------------------------------------------------------------------------
47904 -- To allow MPA report to determine if it should generate report process
47905 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47906 ------------------------------------------------------------------------------------------
47907
47908 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47909 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47910 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47911 -- call ADRs
47912 -- Bug 4922099
47913 --
47914 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47915 (NVL(l_actual_upg_option, 'N') = 'O') OR
47916 (NVL(l_enc_upg_option, 'N') = 'O')
47917 )
47918 THEN
47919 NULL;
47920 --
47921 --
47922
47923 --
47924 --
47925 END IF;
47926
47927 --
47928 -- Update the line information that should be overwritten
47929 --
47930 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47931 p_header_num => 1);
47932 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47933
47937 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47934 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47935
47936 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47938 END IF;
47939
47940 --
47941 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47942 --
47943 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47944 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47945 ELSE
47946 ---------------------------------------------------------------------------------------------------
47947 -- 4262811a Switch Sign
47948 ---------------------------------------------------------------------------------------------------
47949 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47950 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47951 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47952 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47953 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47954 -- 5132302
47955 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47956 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47957
47958 END IF;
47959
47960 -- 4955764
47961 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47962 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47963
47964
47965 XLA_AE_LINES_PKG.ValidateCurrentLine;
47966 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47967
47968 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47969 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47970 ,p_balance_type_code => l_balance_type_code);
47971
47972 END IF;
47973
47974 -----------------------------------------------------------------------------------------
47975 -- 4262811 Multiperiod Accounting
47976 -----------------------------------------------------------------------------------------
47977 -- No MPA option is assigned.
47978
47979
47980 END IF;
47981 END IF;
47982 --
47983
47984 --
47985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47986 trace
47987 (p_msg => 'END of AcctLineType_96'
47988 ,p_level => C_LEVEL_PROCEDURE
47989 ,p_module => l_log_module);
47990 END IF;
47991 --
47992 EXCEPTION
47993 WHEN xla_exceptions_pkg.application_exception THEN
47994 RAISE;
47995 WHEN OTHERS THEN
47996 xla_exceptions_pkg.raise_message
47997 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_96');
47998 END AcctLineType_96;
47999 --
48000
48001 ---------------------------------------
48002 --
48003 -- PRIVATE FUNCTION
48004 -- AcctLineType_97
48005 --
48006 ---------------------------------------
48007 PROCEDURE AcctLineType_97 (
48008 p_application_id IN NUMBER
48009 ,p_event_id IN NUMBER
48010 ,p_calculate_acctd_flag IN VARCHAR2
48011 ,p_calculate_g_l_flag IN VARCHAR2
48012 ,p_actual_flag IN OUT VARCHAR2
48013 ,p_balance_type_code OUT VARCHAR2
48014 ,p_gain_or_loss_ref OUT VARCHAR2
48015
48016 --Recipient Invoice Distribution Account
48017 , p_source_36 IN NUMBER
48018 --When to Account for Payment Option
48019 , p_source_38 IN VARCHAR2
48020 --Accounting Reversal Indicator
48021 , p_source_40 IN VARCHAR2
48022 --Business Flow Accounts Payable Application Identifier
48023 , p_source_42 IN NUMBER
48024 --Distribution Link Type
48025 , p_source_48 IN VARCHAR2
48026 --Override Accounted Amount Indicator
48027 , p_source_53 IN VARCHAR2
48028 , p_source_53_meaning IN VARCHAR2
48029 --Third Party Type
48030 , p_source_56 IN VARCHAR2
48031 --Invoice Distribution Tax Line Identifier
48032 , p_source_58 IN NUMBER
48033 --Invoice Distribution Summary Tax Line Identifier
48034 , p_source_59 IN NUMBER
48035 --Invoice Distribution Tax Distribution Identifier from Tax
48036 , p_source_66 IN NUMBER
48037 --Prepayment Distribution Type
48038 , p_source_67 IN VARCHAR2
48039 --Recipient Invoice Distribution Type
48040 , p_source_68 IN VARCHAR2
48041 , p_source_68_meaning IN VARCHAR2
48042 --Prepayment Application Distribution Identifier
48043 , p_source_71 IN NUMBER
48044 --Invoice Identifier
48045 , p_source_72 IN NUMBER
48046 --Business Flow Prepayment Invoice Distribution Type
48047 , p_source_73 IN VARCHAR2
48048 --Business Flow Prepayment Invoice Entity Code
48049 , p_source_74 IN VARCHAR2
48050 --Business Flow Prepayment Invoice Distribution Identifier
48051 , p_source_75 IN NUMBER
48052 --Business Flow Prepayment Invoice Identifier
48053 , p_source_76 IN NUMBER
48054 --Upgrade Encumbrance Credit Account Class
48055 , p_source_77 IN VARCHAR2
48059 , p_source_79 IN NUMBER
48056 --Payables Encumbrance Upgrade Credit Account
48057 , p_source_78 IN NUMBER
48058 --Payables Encumbrance Upgrade Credit Amount
48060 --Invoice Currency Code
48061 , p_source_80 IN VARCHAR2
48062 --Payables Encumbrance Upgrade Credit Base Amount
48063 , p_source_81 IN NUMBER
48064 --Upgrade Encumbrance Debit Account Class
48065 , p_source_82 IN VARCHAR2
48066 --Payables Encumbrance Upgrade Debit Account
48067 , p_source_83 IN NUMBER
48068 --Payables Encumbrance Upgrade Debit Amount
48069 , p_source_84 IN NUMBER
48070 --Payables Encumbrance Upgrade Debit Base Amount
48071 , p_source_85 IN NUMBER
48072 --Payables Encumbrance Upgrade Option
48073 , p_source_86 IN VARCHAR2
48074 --Prepayment Distribution Amount
48075 , p_source_87 IN NUMBER
48076 --Prepayment Clearing Currency Code
48077 , p_source_88 IN VARCHAR2
48078 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
48079 , p_source_89 IN NUMBER
48080 --Deferred Accounting End Date
48081 , p_source_90 IN DATE
48082 --Deferred Accounting Option
48083 , p_source_91 IN VARCHAR2
48084 --Deferred Accounting Start Date
48085 , p_source_92 IN DATE
48086 --Invoice Supplier Identifier
48087 , p_source_93 IN NUMBER
48088 --Invoice Supplier Site Identifier
48089 , p_source_94 IN NUMBER
48090 --Identifier of the Prepayment Application Reversed
48091 , p_source_95 IN NUMBER
48092 --Payables Upgrade Credit Encumbrance Type Identifier
48093 , p_source_96 IN NUMBER
48094 --Payables Upgrade Debit Encumbrance Type Identifier
48095 , p_source_97 IN NUMBER
48096 --Prepayment Clearing Exchange Date
48097 , p_source_118 IN DATE
48098 --Prepayment Clearing Exchange Rate
48099 , p_source_119 IN NUMBER
48100 --Prepayment Clearing Exchange Rate Type
48101 , p_source_120 IN VARCHAR2
48102 )
48103 IS
48104
48105 l_component_type VARCHAR2(80);
48106 l_component_code VARCHAR2(30);
48107 l_component_type_code VARCHAR2(1);
48108 l_component_appl_id INTEGER;
48109 l_amb_context_code VARCHAR2(30);
48110 l_entity_code VARCHAR2(30);
48111 l_event_class_code VARCHAR2(30);
48112 l_ae_header_id NUMBER;
48113 l_event_type_code VARCHAR2(30);
48114 l_line_definition_code VARCHAR2(30);
48115 l_line_definition_owner_code VARCHAR2(1);
48116 --
48117 -- adr variables
48118 l_segment VARCHAR2(30);
48119 l_ccid NUMBER;
48120 l_adr_transaction_coa_id NUMBER;
48121 l_adr_accounting_coa_id NUMBER;
48122 l_adr_flexfield_segment_code VARCHAR2(30);
48123 l_adr_flex_value_set_id NUMBER;
48124 l_adr_value_type_code VARCHAR2(30);
48125 l_adr_value_combination_id NUMBER;
48126 l_adr_value_segment_code VARCHAR2(30);
48127
48128 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48129 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48130 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48131 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48132
48133 -- 4262811 Variables ------------------------------------------------------------------------------------------
48134 l_entered_amt_idx NUMBER;
48135 l_accted_amt_idx NUMBER;
48136 l_acc_rev_flag VARCHAR2(1);
48137 l_accrual_line_num NUMBER;
48138 l_tmp_amt NUMBER;
48139 l_acc_rev_natural_side_code VARCHAR2(1);
48140
48141 l_num_entries NUMBER;
48142 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48143 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48144 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48145 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48146 l_recog_line_1 NUMBER;
48147 l_recog_line_2 NUMBER;
48148
48149 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48150 l_bflow_applied_to_amt NUMBER; -- 5132302
48151 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48152
48153 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48154
48155 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48156 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48157
48158 ---------------------------------------------------------------------------------------------------------------
48159
48160
48161 --
48162 -- bulk performance
48163 --
48164 l_balance_type_code VARCHAR2(1);
48165 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48166 l_log_module VARCHAR2(240);
48167
48168 --
48169 -- Upgrade strategy
48170 --
48171 l_actual_upg_option VARCHAR2(1);
48172 l_enc_upg_option VARCHAR2(1);
48173
48174 --
48175 BEGIN
48176 --
48177 IF g_log_enabled THEN
48178 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
48179 END IF;
48180 --
48181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48182
48183 trace
48184 (p_msg => 'BEGIN of AcctLineType_97'
48188 END IF;
48185 ,p_level => C_LEVEL_PROCEDURE
48186 ,p_module => l_log_module);
48187
48189 --
48190 l_component_type := 'AMB_JLT';
48191 l_component_code := 'AP_FREIGHT_PREPAY_CLR_RATE_APP';
48192 l_component_type_code := 'S';
48193 l_component_appl_id := 200;
48194 l_amb_context_code := 'DEFAULT';
48195 l_entity_code := 'AP_INVOICES';
48196 l_event_class_code := 'PREPAYMENT APPLICATIONS';
48197 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
48198 l_line_definition_owner_code := 'S';
48199 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
48200 --
48201 l_balance_type_code := 'A';
48202 l_segment := NULL;
48203 l_ccid := NULL;
48204 l_adr_transaction_coa_id := NULL;
48205 l_adr_accounting_coa_id := NULL;
48206 l_adr_flexfield_segment_code := NULL;
48207 l_adr_flex_value_set_id := NULL;
48208 l_adr_value_type_code := NULL;
48209 l_adr_value_combination_id := NULL;
48210 l_adr_value_segment_code := NULL;
48211
48212 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48213 l_bflow_class_code := ''; -- 4219869 Business Flow
48214 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48215 l_budgetary_control_flag := 'N';
48216
48217 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48218 l_bflow_applied_to_amt := NULL; -- 5132302
48219 l_entered_amt_idx := NULL; -- 4262811
48220 l_accted_amt_idx := NULL; -- 4262811
48221 l_acc_rev_flag := NULL; -- 4262811
48222 l_accrual_line_num := NULL; -- 4262811
48223 l_tmp_amt := NULL; -- 4262811
48224 --
48225
48226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48227 l_balance_type_code <> 'B' THEN
48228 IF NVL(p_source_38,'
48229 ') = 'CLEAR_CLEAR' AND
48230 (NVL(p_source_67,'
48231 ') = 'PREPAY APPL' OR
48232 NVL(p_source_67,'
48233 ') = 'PREPAY APPL NONREC TAX' OR
48234 NVL(p_source_67,'
48235 ') = 'PREPAY APPL REC TAX') AND
48236 NVL(p_source_68,'
48237 ') = 'FREIGHT'
48238 THEN
48239
48240 --
48241 XLA_AE_LINES_PKG.SetNewLine;
48242
48243 p_balance_type_code := l_balance_type_code;
48244 -- set the flag so later we will know whether the gain loss line needs to be created
48245
48246 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48247 p_actual_flag :='A';
48248 END IF;
48249
48250 --
48251 -- bulk performance
48252 --
48253 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48254 p_header_num => 0); -- 4262811
48255 --
48256 -- set accounting line options
48257 --
48258 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48259 p_natural_side_code => 'C'
48260 , p_gain_or_loss_flag => 'N'
48261 , p_gl_transfer_mode_code => 'S'
48262 , p_acct_entry_type_code => 'A'
48263 , p_switch_side_flag => 'Y'
48264 , p_merge_duplicate_code => 'A'
48265 );
48266 --
48267 l_acc_rev_natural_side_code := 'D'; -- 4262811
48268 --
48269 --
48270 -- set accounting line type info
48271 --
48272 xla_ae_lines_pkg.SetAcctLineType
48273 (p_component_type => l_component_type
48274 ,p_event_type_code => l_event_type_code
48275 ,p_line_definition_owner_code => l_line_definition_owner_code
48276 ,p_line_definition_code => l_line_definition_code
48277 ,p_accounting_line_code => l_component_code
48278 ,p_accounting_line_type_code => l_component_type_code
48279 ,p_accounting_line_appl_id => l_component_appl_id
48280 ,p_amb_context_code => l_amb_context_code
48281 ,p_entity_code => l_entity_code
48282 ,p_event_class_code => l_event_class_code);
48283 --
48284 -- set accounting class
48285 --
48286 xla_ae_lines_pkg.SetAcctClass(
48287 p_accounting_class_code => 'FREIGHT'
48288 , p_ae_header_id => l_ae_header_id
48289 );
48290
48291 --
48292 -- set rounding class
48293 --
48294 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48295 'FREIGHT';
48296
48297 --
48298 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48299 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48300 --
48301 -- bulk performance
48302 --
48303 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48304
48305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48306 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48307
48308 -- 4955764
48309 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48310 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48311
48312 -- 4458381 Public Sector Enh
48313
48314 --
48318 l_accted_amt_idx := 30;
48315 -- set accounting attributes for the line type
48316 --
48317 l_entered_amt_idx := 25;
48319 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48320 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48321 l_rec_acct_attrs.array_char_value(1) := p_source_40;
48322 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
48323 l_rec_acct_attrs.array_num_value(2) :=
48324 xla_ae_sources_pkg.GetSystemSourceNum(
48325 p_source_code => 'XLA_EVENT_APPL_ID'
48326 , p_source_type_code => 'Y'
48327 , p_source_application_id => 602
48328 );
48329 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
48330 l_rec_acct_attrs.array_char_value(3) := p_source_48;
48331 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
48332 l_rec_acct_attrs.array_char_value(4) :=
48333 xla_ae_sources_pkg.GetSystemSourceChar(
48334 p_source_code => 'XLA_ENTITY_CODE'
48335 , p_source_type_code => 'Y'
48336 , p_source_application_id => 602
48337 );
48338 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
48339 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
48340 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
48341 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
48342 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
48343 l_rec_acct_attrs.array_num_value(7) := p_source_42;
48344 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48345 l_rec_acct_attrs.array_char_value(8) := p_source_73;
48346 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
48347 l_rec_acct_attrs.array_char_value(9) := p_source_74;
48348 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
48349 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
48350 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48351 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
48352 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
48353 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
48354 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
48355 l_rec_acct_attrs.array_char_value(13) := p_source_48;
48356 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
48357 l_rec_acct_attrs.array_char_value(14) := p_source_77;
48358 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
48359 l_rec_acct_attrs.array_num_value(15) := p_source_78;
48360 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
48361 l_rec_acct_attrs.array_num_value(16) := p_source_79;
48362 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
48363 l_rec_acct_attrs.array_char_value(17) := p_source_80;
48364 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
48365 l_rec_acct_attrs.array_num_value(18) := p_source_81;
48366 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
48367 l_rec_acct_attrs.array_char_value(19) := p_source_82;
48368 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
48369 l_rec_acct_attrs.array_num_value(20) := p_source_83;
48370 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
48371 l_rec_acct_attrs.array_num_value(21) := p_source_84;
48372 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
48373 l_rec_acct_attrs.array_char_value(22) := p_source_80;
48374 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
48375 l_rec_acct_attrs.array_num_value(23) := p_source_85;
48376 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
48377 l_rec_acct_attrs.array_char_value(24) := p_source_86;
48378 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
48379 l_rec_acct_attrs.array_num_value(25) := p_source_87;
48380 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
48381 l_rec_acct_attrs.array_char_value(26) := p_source_88;
48382 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
48383 l_rec_acct_attrs.array_date_value(27) := p_source_118;
48384 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
48385 l_rec_acct_attrs.array_num_value(28) := p_source_119;
48386 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
48387 l_rec_acct_attrs.array_char_value(29) := p_source_120;
48388 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
48389 l_rec_acct_attrs.array_num_value(30) := p_source_89;
48390 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
48391 l_rec_acct_attrs.array_date_value(31) := p_source_90;
48392 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
48393 l_rec_acct_attrs.array_char_value(32) := p_source_91;
48394 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
48395 l_rec_acct_attrs.array_date_value(33) := p_source_92;
48396 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
48397 l_rec_acct_attrs.array_char_value(34) := p_source_53;
48398 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
48399 l_rec_acct_attrs.array_num_value(35) := p_source_93;
48400 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
48401 l_rec_acct_attrs.array_num_value(36) := p_source_94;
48402 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
48403 l_rec_acct_attrs.array_char_value(37) := p_source_56;
48404 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
48408 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
48405 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
48406 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
48407 l_rec_acct_attrs.array_char_value(39) := p_source_48;
48409 l_rec_acct_attrs.array_num_value(40) := p_source_58;
48410 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
48411 l_rec_acct_attrs.array_num_value(41) := p_source_66;
48412 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
48413 l_rec_acct_attrs.array_num_value(42) := p_source_59;
48414 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
48415 l_rec_acct_attrs.array_num_value(43) := p_source_96;
48416 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
48417 l_rec_acct_attrs.array_num_value(44) := p_source_97;
48418
48419 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48420 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48421
48422 ---------------------------------------------------------------------------------------------------------------
48423 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48424 ---------------------------------------------------------------------------------------------------------------
48425 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48426
48427 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48428 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48429
48430 IF xla_accounting_cache_pkg.GetValueChar
48431 (p_source_code => 'LEDGER_CATEGORY_CODE'
48432 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48433 AND l_bflow_method_code = 'PRIOR_ENTRY'
48434 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48435 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48436 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48437 )
48438 THEN
48439 xla_ae_lines_pkg.BflowUpgEntry
48440 (p_business_method_code => l_bflow_method_code
48441 ,p_business_class_code => l_bflow_class_code
48442 ,p_balance_type => l_balance_type_code);
48443 ELSE
48444 NULL;
48445 -- No business flow processing for business flow method of NONE.
48446 END IF;
48447
48448 --
48449 -- call analytical criteria
48450 --
48451
48452 --
48453 -- call description
48454 --
48455 -- No description or it is inherited.
48456 --
48457 -- call ADRs
48458 -- Bug 4922099
48459 --
48460 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48461 (NVL(l_actual_upg_option, 'N') = 'O') OR
48462 (NVL(l_enc_upg_option, 'N') = 'O')
48463 )
48464 THEN
48465 NULL;
48466 --
48467 --
48468
48469 l_ccid := AcctDerRule_33(
48470 p_application_id => p_application_id
48471 , p_ae_header_id => l_ae_header_id
48472 , p_source_36 => p_source_36
48473 , x_transaction_coa_id => l_adr_transaction_coa_id
48474 , x_accounting_coa_id => l_adr_accounting_coa_id
48475 , x_value_type_code => l_adr_value_type_code
48476 , p_side => 'NA'
48477 );
48478
48479 xla_ae_lines_pkg.set_ccid(
48480 p_code_combination_id => l_ccid
48481 , p_value_type_code => l_adr_value_type_code
48482 , p_transaction_coa_id => l_adr_transaction_coa_id
48483 , p_accounting_coa_id => l_adr_accounting_coa_id
48484 , p_adr_code => 'AP_RECP_INV_DIST'
48485 , p_adr_type_code => 'S'
48486 , p_component_type => l_component_type
48487 , p_component_code => l_component_code
48488 , p_component_type_code => l_component_type_code
48489 , p_component_appl_id => l_component_appl_id
48490 , p_amb_context_code => l_amb_context_code
48491 , p_side => 'NA'
48492 );
48493
48494
48495 --
48496 --
48497 END IF;
48498 --
48499 -- Bug 4922099
48500 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48501 (NVL(l_enc_upg_option, 'N') = 'O')
48502 ) AND
48503 (l_bflow_method_code = 'PRIOR_ENTRY')
48504 )
48505 THEN
48506 IF
48507 --
48508 1 = 2
48509 --
48510 THEN
48511 xla_accounting_err_pkg.build_message
48512 (p_appli_s_name => 'XLA'
48513 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48514 ,p_token_1 => 'LINE_NUMBER'
48515 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48516 ,p_token_2 => 'LINE_TYPE_NAME'
48517 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48518 l_component_type
48522 ,l_amb_context_code
48519 ,l_component_code
48520 ,l_component_type_code
48521 ,l_component_appl_id
48523 ,l_entity_code
48524 ,l_event_class_code
48525 )
48526 ,p_token_3 => 'OWNER'
48527 ,p_value_3 => xla_lookups_pkg.get_meaning(
48528 p_lookup_type => 'XLA_OWNER_TYPE'
48529 ,p_lookup_code => l_component_type_code
48530 )
48531 ,p_token_4 => 'PRODUCT_NAME'
48532 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48533 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48534 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48535 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48536 ,p_ae_header_id => NULL
48537 );
48538
48539 IF (C_LEVEL_ERROR>= g_log_level) THEN
48540 trace
48541 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48542 ,p_level => C_LEVEL_ERROR
48543 ,p_module => l_log_module);
48544 END IF;
48545 END IF;
48546 END IF;
48547 --
48548 --
48549 ------------------------------------------------------------------------------------------------
48550 -- 4219869 Business Flow
48551 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48552 -- Prior Entry. Currently, the following code is always generated.
48553 ------------------------------------------------------------------------------------------------
48554 XLA_AE_LINES_PKG.ValidateCurrentLine;
48555
48556 ------------------------------------------------------------------------------------
48557 -- 4219869 Business Flow
48558 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48559 ------------------------------------------------------------------------------------
48560 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48561
48562 ----------------------------------------------------------------------------------
48563 -- 4219869 Business Flow
48564 -- Update journal entry status -- Need to generate this within IF <condition>
48565 ----------------------------------------------------------------------------------
48566 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48567 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48568 ,p_balance_type_code => l_balance_type_code
48569 );
48570
48571 -------------------------------------------------------------------------------------------
48572 -- 4262811 - Generate the Accrual Reversal lines
48573 -------------------------------------------------------------------------------------------
48574 BEGIN
48575 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48576 (g_array_event(p_event_id).array_value_num('header_index'));
48577 IF l_acc_rev_flag IS NULL THEN
48578 l_acc_rev_flag := 'N';
48579 END IF;
48580 EXCEPTION
48581 WHEN OTHERS THEN
48582 l_acc_rev_flag := 'N';
48583 END;
48584 --
48585 IF (l_acc_rev_flag = 'Y') THEN
48586
48587 -- 4645092 ------------------------------------------------------------------------------
48588 -- To allow MPA report to determine if it should generate report process
48589 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48590 ------------------------------------------------------------------------------------------
48591
48592 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48593 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48594 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
48595 -- call ADRs
48596 -- Bug 4922099
48597 --
48598 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48599 (NVL(l_actual_upg_option, 'N') = 'O') OR
48600 (NVL(l_enc_upg_option, 'N') = 'O')
48601 )
48602 THEN
48603 NULL;
48604 --
48605 --
48606
48607 l_ccid := AcctDerRule_33(
48608 p_application_id => p_application_id
48609 , p_ae_header_id => l_ae_header_id
48610 , p_source_36 => p_source_36
48611 , x_transaction_coa_id => l_adr_transaction_coa_id
48612 , x_accounting_coa_id => l_adr_accounting_coa_id
48613 , x_value_type_code => l_adr_value_type_code
48614 , p_side => 'NA'
48615 );
48616
48620 , p_transaction_coa_id => l_adr_transaction_coa_id
48617 xla_ae_lines_pkg.set_ccid(
48618 p_code_combination_id => l_ccid
48619 , p_value_type_code => l_adr_value_type_code
48621 , p_accounting_coa_id => l_adr_accounting_coa_id
48622 , p_adr_code => 'AP_RECP_INV_DIST'
48623 , p_adr_type_code => 'S'
48624 , p_component_type => l_component_type
48625 , p_component_code => l_component_code
48626 , p_component_type_code => l_component_type_code
48627 , p_component_appl_id => l_component_appl_id
48628 , p_amb_context_code => l_amb_context_code
48629 , p_side => 'NA'
48630 );
48631
48632
48633 --
48634 --
48635 END IF;
48636
48637 --
48638 -- Update the line information that should be overwritten
48639 --
48640 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48641 p_header_num => 1);
48642 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48643
48644 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48645
48646 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48647 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48648 END IF;
48649
48650 --
48651 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48652 --
48653 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48654 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48655 ELSE
48656 ---------------------------------------------------------------------------------------------------
48657 -- 4262811a Switch Sign
48658 ---------------------------------------------------------------------------------------------------
48659 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48660 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48661 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48662 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48663 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48664 -- 5132302
48665 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48666 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48667
48668 END IF;
48669
48670 -- 4955764
48671 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48672 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48673
48674
48675 XLA_AE_LINES_PKG.ValidateCurrentLine;
48676 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48677
48678 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48679 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48680 ,p_balance_type_code => l_balance_type_code);
48681
48682 END IF;
48683
48684 -----------------------------------------------------------------------------------------
48685 -- 4262811 Multiperiod Accounting
48686 -----------------------------------------------------------------------------------------
48687 -- No MPA option is assigned.
48688
48689
48690 END IF;
48691 END IF;
48692 --
48693
48694 --
48695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48696 trace
48697 (p_msg => 'END of AcctLineType_97'
48698 ,p_level => C_LEVEL_PROCEDURE
48699 ,p_module => l_log_module);
48700 END IF;
48701 --
48702 EXCEPTION
48703 WHEN xla_exceptions_pkg.application_exception THEN
48704 RAISE;
48705 WHEN OTHERS THEN
48706 xla_exceptions_pkg.raise_message
48707 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_97');
48708 END AcctLineType_97;
48709 --
48710
48711 ---------------------------------------
48712 --
48713 -- PRIVATE FUNCTION
48714 -- AcctLineType_98
48715 --
48716 ---------------------------------------
48717 PROCEDURE AcctLineType_98 (
48718 p_application_id IN NUMBER
48719 ,p_event_id IN NUMBER
48720 ,p_calculate_acctd_flag IN VARCHAR2
48721 ,p_calculate_g_l_flag IN VARCHAR2
48722 ,p_actual_flag IN OUT VARCHAR2
48723 ,p_balance_type_code OUT VARCHAR2
48724 ,p_gain_or_loss_ref OUT VARCHAR2
48725
48726 --Recipient Invoice Distribution Account
48727 , p_source_36 IN NUMBER
48728 --When to Account for Payment Option
48729 , p_source_38 IN VARCHAR2
48730 --Accounting Reversal Indicator
48731 , p_source_40 IN VARCHAR2
48732 --Business Flow Accounts Payable Application Identifier
48733 , p_source_42 IN NUMBER
48734 --Distribution Link Type
48735 , p_source_48 IN VARCHAR2
48736 --Override Accounted Amount Indicator
48740 , p_source_56 IN VARCHAR2
48737 , p_source_53 IN VARCHAR2
48738 , p_source_53_meaning IN VARCHAR2
48739 --Third Party Type
48741 --Invoice Distribution Tax Line Identifier
48742 , p_source_58 IN NUMBER
48743 --Invoice Distribution Summary Tax Line Identifier
48744 , p_source_59 IN NUMBER
48745 --Invoice Distribution Tax Distribution Identifier from Tax
48746 , p_source_66 IN NUMBER
48747 --Prepayment Distribution Type
48748 , p_source_67 IN VARCHAR2
48749 --Recipient Invoice Distribution Type
48750 , p_source_68 IN VARCHAR2
48751 , p_source_68_meaning IN VARCHAR2
48752 --Prepayment Application Distribution Identifier
48753 , p_source_71 IN NUMBER
48754 --Invoice Identifier
48755 , p_source_72 IN NUMBER
48756 --Business Flow Prepayment Invoice Distribution Type
48757 , p_source_73 IN VARCHAR2
48758 --Business Flow Prepayment Invoice Entity Code
48759 , p_source_74 IN VARCHAR2
48760 --Business Flow Prepayment Invoice Distribution Identifier
48761 , p_source_75 IN NUMBER
48762 --Business Flow Prepayment Invoice Identifier
48763 , p_source_76 IN NUMBER
48764 --Upgrade Encumbrance Credit Account Class
48765 , p_source_77 IN VARCHAR2
48766 --Payables Encumbrance Upgrade Credit Account
48767 , p_source_78 IN NUMBER
48768 --Payables Encumbrance Upgrade Credit Amount
48769 , p_source_79 IN NUMBER
48770 --Invoice Currency Code
48771 , p_source_80 IN VARCHAR2
48772 --Payables Encumbrance Upgrade Credit Base Amount
48773 , p_source_81 IN NUMBER
48774 --Upgrade Encumbrance Debit Account Class
48775 , p_source_82 IN VARCHAR2
48776 --Payables Encumbrance Upgrade Debit Account
48777 , p_source_83 IN NUMBER
48778 --Payables Encumbrance Upgrade Debit Amount
48779 , p_source_84 IN NUMBER
48780 --Payables Encumbrance Upgrade Debit Base Amount
48781 , p_source_85 IN NUMBER
48782 --Payables Encumbrance Upgrade Option
48783 , p_source_86 IN VARCHAR2
48784 --Prepayment Distribution Amount
48785 , p_source_87 IN NUMBER
48786 --Deferred Accounting End Date
48787 , p_source_90 IN DATE
48788 --Deferred Accounting Option
48789 , p_source_91 IN VARCHAR2
48790 --Deferred Accounting Start Date
48791 , p_source_92 IN DATE
48792 --Invoice Supplier Identifier
48793 , p_source_93 IN NUMBER
48794 --Invoice Supplier Site Identifier
48795 , p_source_94 IN NUMBER
48796 --Identifier of the Prepayment Application Reversed
48797 , p_source_95 IN NUMBER
48798 --Payables Upgrade Credit Encumbrance Type Identifier
48799 , p_source_96 IN NUMBER
48800 --Payables Upgrade Debit Encumbrance Type Identifier
48801 , p_source_97 IN NUMBER
48802 --Prepayment Payment Currency Code
48803 , p_source_98 IN VARCHAR2
48804 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
48805 , p_source_99 IN NUMBER
48806 --Prepayment Payment Exchange Date
48807 , p_source_121 IN DATE
48808 --Prepayment Payment Exchange Rate
48809 , p_source_122 IN NUMBER
48810 --Prepayment Payment Exchange Rate Type
48811 , p_source_123 IN VARCHAR2
48812 )
48813 IS
48814
48815 l_component_type VARCHAR2(80);
48816 l_component_code VARCHAR2(30);
48817 l_component_type_code VARCHAR2(1);
48818 l_component_appl_id INTEGER;
48819 l_amb_context_code VARCHAR2(30);
48820 l_entity_code VARCHAR2(30);
48821 l_event_class_code VARCHAR2(30);
48822 l_ae_header_id NUMBER;
48823 l_event_type_code VARCHAR2(30);
48824 l_line_definition_code VARCHAR2(30);
48825 l_line_definition_owner_code VARCHAR2(1);
48826 --
48827 -- adr variables
48828 l_segment VARCHAR2(30);
48829 l_ccid NUMBER;
48830 l_adr_transaction_coa_id NUMBER;
48831 l_adr_accounting_coa_id NUMBER;
48832 l_adr_flexfield_segment_code VARCHAR2(30);
48833 l_adr_flex_value_set_id NUMBER;
48834 l_adr_value_type_code VARCHAR2(30);
48835 l_adr_value_combination_id NUMBER;
48836 l_adr_value_segment_code VARCHAR2(30);
48837
48838 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48839 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48840 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48841 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48842
48843 -- 4262811 Variables ------------------------------------------------------------------------------------------
48844 l_entered_amt_idx NUMBER;
48845 l_accted_amt_idx NUMBER;
48846 l_acc_rev_flag VARCHAR2(1);
48847 l_accrual_line_num NUMBER;
48848 l_tmp_amt NUMBER;
48849 l_acc_rev_natural_side_code VARCHAR2(1);
48850
48851 l_num_entries NUMBER;
48852 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48853 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48854 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48855 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48856 l_recog_line_1 NUMBER;
48857 l_recog_line_2 NUMBER;
48858
48859 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48863 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48860 l_bflow_applied_to_amt NUMBER; -- 5132302
48861 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48862
48864
48865 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48866 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48867
48868 ---------------------------------------------------------------------------------------------------------------
48869
48870
48871 --
48872 -- bulk performance
48873 --
48874 l_balance_type_code VARCHAR2(1);
48875 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48876 l_log_module VARCHAR2(240);
48877
48878 --
48879 -- Upgrade strategy
48880 --
48881 l_actual_upg_option VARCHAR2(1);
48882 l_enc_upg_option VARCHAR2(1);
48883
48884 --
48885 BEGIN
48886 --
48887 IF g_log_enabled THEN
48888 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
48889 END IF;
48890 --
48891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48892
48893 trace
48894 (p_msg => 'BEGIN of AcctLineType_98'
48895 ,p_level => C_LEVEL_PROCEDURE
48896 ,p_module => l_log_module);
48897
48898 END IF;
48899 --
48900 l_component_type := 'AMB_JLT';
48901 l_component_code := 'AP_FREIGHT_PREPAY_PAY_RATE_APP';
48902 l_component_type_code := 'S';
48903 l_component_appl_id := 200;
48904 l_amb_context_code := 'DEFAULT';
48905 l_entity_code := 'AP_INVOICES';
48906 l_event_class_code := 'PREPAYMENT APPLICATIONS';
48907 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
48908 l_line_definition_owner_code := 'S';
48909 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
48910 --
48911 l_balance_type_code := 'A';
48912 l_segment := NULL;
48913 l_ccid := NULL;
48914 l_adr_transaction_coa_id := NULL;
48915 l_adr_accounting_coa_id := NULL;
48916 l_adr_flexfield_segment_code := NULL;
48917 l_adr_flex_value_set_id := NULL;
48918 l_adr_value_type_code := NULL;
48919 l_adr_value_combination_id := NULL;
48920 l_adr_value_segment_code := NULL;
48921
48922 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48923 l_bflow_class_code := ''; -- 4219869 Business Flow
48924 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48925 l_budgetary_control_flag := 'N';
48926
48927 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48928 l_bflow_applied_to_amt := NULL; -- 5132302
48929 l_entered_amt_idx := NULL; -- 4262811
48930 l_accted_amt_idx := NULL; -- 4262811
48931 l_acc_rev_flag := NULL; -- 4262811
48932 l_accrual_line_num := NULL; -- 4262811
48933 l_tmp_amt := NULL; -- 4262811
48934 --
48935
48936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48937 l_balance_type_code <> 'B' THEN
48938 IF NVL(p_source_38,'
48939 ') <> 'CLEAR_CLEAR' AND
48940 (NVL(p_source_67,'
48941 ') = 'PREPAY APPL' OR
48942 NVL(p_source_67,'
48943 ') = 'PREPAY APPL NONREC TAX' OR
48944 NVL(p_source_67,'
48945 ') = 'PREPAY APPL REC TAX') AND
48946 NVL(p_source_68,'
48947 ') = 'FREIGHT'
48948 THEN
48949
48950 --
48951 XLA_AE_LINES_PKG.SetNewLine;
48952
48953 p_balance_type_code := l_balance_type_code;
48954 -- set the flag so later we will know whether the gain loss line needs to be created
48955
48956 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48957 p_actual_flag :='A';
48958 END IF;
48959
48960 --
48961 -- bulk performance
48962 --
48963 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48964 p_header_num => 0); -- 4262811
48965 --
48966 -- set accounting line options
48967 --
48968 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48969 p_natural_side_code => 'C'
48970 , p_gain_or_loss_flag => 'N'
48971 , p_gl_transfer_mode_code => 'S'
48972 , p_acct_entry_type_code => 'A'
48973 , p_switch_side_flag => 'Y'
48974 , p_merge_duplicate_code => 'A'
48975 );
48976 --
48977 l_acc_rev_natural_side_code := 'D'; -- 4262811
48978 --
48979 --
48980 -- set accounting line type info
48981 --
48982 xla_ae_lines_pkg.SetAcctLineType
48983 (p_component_type => l_component_type
48984 ,p_event_type_code => l_event_type_code
48985 ,p_line_definition_owner_code => l_line_definition_owner_code
48986 ,p_line_definition_code => l_line_definition_code
48987 ,p_accounting_line_code => l_component_code
48988 ,p_accounting_line_type_code => l_component_type_code
48989 ,p_accounting_line_appl_id => l_component_appl_id
48990 ,p_amb_context_code => l_amb_context_code
48991 ,p_entity_code => l_entity_code
48992 ,p_event_class_code => l_event_class_code);
48993 --
48994 -- set accounting class
48998 , p_ae_header_id => l_ae_header_id
48995 --
48996 xla_ae_lines_pkg.SetAcctClass(
48997 p_accounting_class_code => 'FREIGHT'
48999 );
49000
49001 --
49002 -- set rounding class
49003 --
49004 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49005 'FREIGHT';
49006
49007 --
49008 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49009 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49010 --
49011 -- bulk performance
49012 --
49013 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49014
49015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49016 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49017
49018 -- 4955764
49019 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49020 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49021
49022 -- 4458381 Public Sector Enh
49023
49024 --
49025 -- set accounting attributes for the line type
49026 --
49027 l_entered_amt_idx := 25;
49028 l_accted_amt_idx := 30;
49029 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49030 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49031 l_rec_acct_attrs.array_char_value(1) := p_source_40;
49032 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
49033 l_rec_acct_attrs.array_num_value(2) :=
49034 xla_ae_sources_pkg.GetSystemSourceNum(
49035 p_source_code => 'XLA_EVENT_APPL_ID'
49036 , p_source_type_code => 'Y'
49037 , p_source_application_id => 602
49038 );
49039 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
49040 l_rec_acct_attrs.array_char_value(3) := p_source_48;
49041 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
49042 l_rec_acct_attrs.array_char_value(4) :=
49043 xla_ae_sources_pkg.GetSystemSourceChar(
49044 p_source_code => 'XLA_ENTITY_CODE'
49045 , p_source_type_code => 'Y'
49046 , p_source_application_id => 602
49047 );
49048 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
49049 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
49050 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
49051 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
49052 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
49053 l_rec_acct_attrs.array_num_value(7) := p_source_42;
49054 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49055 l_rec_acct_attrs.array_char_value(8) := p_source_73;
49056 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
49057 l_rec_acct_attrs.array_char_value(9) := p_source_74;
49058 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
49059 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
49060 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49061 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
49062 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
49063 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
49064 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
49065 l_rec_acct_attrs.array_char_value(13) := p_source_48;
49066 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
49067 l_rec_acct_attrs.array_char_value(14) := p_source_77;
49068 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
49069 l_rec_acct_attrs.array_num_value(15) := p_source_78;
49070 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
49071 l_rec_acct_attrs.array_num_value(16) := p_source_79;
49072 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
49073 l_rec_acct_attrs.array_char_value(17) := p_source_80;
49074 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
49075 l_rec_acct_attrs.array_num_value(18) := p_source_81;
49076 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
49077 l_rec_acct_attrs.array_char_value(19) := p_source_82;
49078 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
49079 l_rec_acct_attrs.array_num_value(20) := p_source_83;
49080 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
49081 l_rec_acct_attrs.array_num_value(21) := p_source_84;
49082 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
49083 l_rec_acct_attrs.array_char_value(22) := p_source_80;
49084 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
49085 l_rec_acct_attrs.array_num_value(23) := p_source_85;
49086 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
49087 l_rec_acct_attrs.array_char_value(24) := p_source_86;
49088 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
49089 l_rec_acct_attrs.array_num_value(25) := p_source_87;
49090 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
49091 l_rec_acct_attrs.array_char_value(26) := p_source_98;
49092 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
49093 l_rec_acct_attrs.array_date_value(27) := p_source_121;
49094 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
49098 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
49095 l_rec_acct_attrs.array_num_value(28) := p_source_122;
49096 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
49097 l_rec_acct_attrs.array_char_value(29) := p_source_123;
49099 l_rec_acct_attrs.array_num_value(30) := p_source_99;
49100 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
49101 l_rec_acct_attrs.array_date_value(31) := p_source_90;
49102 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
49103 l_rec_acct_attrs.array_char_value(32) := p_source_91;
49104 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
49105 l_rec_acct_attrs.array_date_value(33) := p_source_92;
49106 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
49107 l_rec_acct_attrs.array_char_value(34) := p_source_53;
49108 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
49109 l_rec_acct_attrs.array_num_value(35) := p_source_93;
49110 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
49111 l_rec_acct_attrs.array_num_value(36) := p_source_94;
49112 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
49113 l_rec_acct_attrs.array_char_value(37) := p_source_56;
49114 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
49115 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
49116 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
49117 l_rec_acct_attrs.array_char_value(39) := p_source_48;
49118 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
49119 l_rec_acct_attrs.array_num_value(40) := p_source_58;
49120 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
49121 l_rec_acct_attrs.array_num_value(41) := p_source_66;
49122 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
49123 l_rec_acct_attrs.array_num_value(42) := p_source_59;
49124 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
49125 l_rec_acct_attrs.array_num_value(43) := p_source_96;
49126 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
49127 l_rec_acct_attrs.array_num_value(44) := p_source_97;
49128
49129 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49130 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49131
49132 ---------------------------------------------------------------------------------------------------------------
49133 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49134 ---------------------------------------------------------------------------------------------------------------
49135 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49136
49137 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49138 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49139
49140 IF xla_accounting_cache_pkg.GetValueChar
49141 (p_source_code => 'LEDGER_CATEGORY_CODE'
49142 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49143 AND l_bflow_method_code = 'PRIOR_ENTRY'
49144 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49145 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49146 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49147 )
49148 THEN
49149 xla_ae_lines_pkg.BflowUpgEntry
49150 (p_business_method_code => l_bflow_method_code
49151 ,p_business_class_code => l_bflow_class_code
49152 ,p_balance_type => l_balance_type_code);
49153 ELSE
49154 NULL;
49155 -- No business flow processing for business flow method of NONE.
49156 END IF;
49157
49158 --
49159 -- call analytical criteria
49160 --
49161
49162 --
49163 -- call description
49164 --
49165 -- No description or it is inherited.
49166 --
49167 -- call ADRs
49168 -- Bug 4922099
49169 --
49170 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49171 (NVL(l_actual_upg_option, 'N') = 'O') OR
49172 (NVL(l_enc_upg_option, 'N') = 'O')
49173 )
49174 THEN
49175 NULL;
49176 --
49177 --
49178
49179 l_ccid := AcctDerRule_33(
49180 p_application_id => p_application_id
49181 , p_ae_header_id => l_ae_header_id
49182 , p_source_36 => p_source_36
49183 , x_transaction_coa_id => l_adr_transaction_coa_id
49184 , x_accounting_coa_id => l_adr_accounting_coa_id
49185 , x_value_type_code => l_adr_value_type_code
49186 , p_side => 'NA'
49187 );
49188
49189 xla_ae_lines_pkg.set_ccid(
49190 p_code_combination_id => l_ccid
49191 , p_value_type_code => l_adr_value_type_code
49192 , p_transaction_coa_id => l_adr_transaction_coa_id
49193 , p_accounting_coa_id => l_adr_accounting_coa_id
49194 , p_adr_code => 'AP_RECP_INV_DIST'
49195 , p_adr_type_code => 'S'
49196 , p_component_type => l_component_type
49197 , p_component_code => l_component_code
49198 , p_component_type_code => l_component_type_code
49199 , p_component_appl_id => l_component_appl_id
49203
49200 , p_amb_context_code => l_amb_context_code
49201 , p_side => 'NA'
49202 );
49204
49205 --
49206 --
49207 END IF;
49208 --
49209 -- Bug 4922099
49210 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49211 (NVL(l_enc_upg_option, 'N') = 'O')
49212 ) AND
49213 (l_bflow_method_code = 'PRIOR_ENTRY')
49214 )
49215 THEN
49216 IF
49217 --
49218 1 = 2
49219 --
49220 THEN
49221 xla_accounting_err_pkg.build_message
49222 (p_appli_s_name => 'XLA'
49223 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49224 ,p_token_1 => 'LINE_NUMBER'
49225 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49226 ,p_token_2 => 'LINE_TYPE_NAME'
49227 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49228 l_component_type
49229 ,l_component_code
49230 ,l_component_type_code
49231 ,l_component_appl_id
49232 ,l_amb_context_code
49233 ,l_entity_code
49234 ,l_event_class_code
49235 )
49236 ,p_token_3 => 'OWNER'
49237 ,p_value_3 => xla_lookups_pkg.get_meaning(
49238 p_lookup_type => 'XLA_OWNER_TYPE'
49239 ,p_lookup_code => l_component_type_code
49240 )
49241 ,p_token_4 => 'PRODUCT_NAME'
49242 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49243 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49244 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49245 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49246 ,p_ae_header_id => NULL
49247 );
49248
49249 IF (C_LEVEL_ERROR>= g_log_level) THEN
49250 trace
49251 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49252 ,p_level => C_LEVEL_ERROR
49253 ,p_module => l_log_module);
49254 END IF;
49255 END IF;
49256 END IF;
49257 --
49258 --
49259 ------------------------------------------------------------------------------------------------
49260 -- 4219869 Business Flow
49261 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49262 -- Prior Entry. Currently, the following code is always generated.
49263 ------------------------------------------------------------------------------------------------
49264 XLA_AE_LINES_PKG.ValidateCurrentLine;
49265
49266 ------------------------------------------------------------------------------------
49267 -- 4219869 Business Flow
49268 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49269 ------------------------------------------------------------------------------------
49270 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49271
49272 ----------------------------------------------------------------------------------
49273 -- 4219869 Business Flow
49274 -- Update journal entry status -- Need to generate this within IF <condition>
49275 ----------------------------------------------------------------------------------
49276 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49277 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49278 ,p_balance_type_code => l_balance_type_code
49279 );
49280
49281 -------------------------------------------------------------------------------------------
49282 -- 4262811 - Generate the Accrual Reversal lines
49283 -------------------------------------------------------------------------------------------
49284 BEGIN
49285 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49286 (g_array_event(p_event_id).array_value_num('header_index'));
49287 IF l_acc_rev_flag IS NULL THEN
49288 l_acc_rev_flag := 'N';
49289 END IF;
49290 EXCEPTION
49291 WHEN OTHERS THEN
49292 l_acc_rev_flag := 'N';
49293 END;
49294 --
49295 IF (l_acc_rev_flag = 'Y') THEN
49296
49297 -- 4645092 ------------------------------------------------------------------------------
49301
49298 -- To allow MPA report to determine if it should generate report process
49299 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49300 ------------------------------------------------------------------------------------------
49302 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49303 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49304 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
49305 -- call ADRs
49306 -- Bug 4922099
49307 --
49308 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49309 (NVL(l_actual_upg_option, 'N') = 'O') OR
49310 (NVL(l_enc_upg_option, 'N') = 'O')
49311 )
49312 THEN
49313 NULL;
49314 --
49315 --
49316
49317 l_ccid := AcctDerRule_33(
49318 p_application_id => p_application_id
49319 , p_ae_header_id => l_ae_header_id
49320 , p_source_36 => p_source_36
49321 , x_transaction_coa_id => l_adr_transaction_coa_id
49322 , x_accounting_coa_id => l_adr_accounting_coa_id
49323 , x_value_type_code => l_adr_value_type_code
49324 , p_side => 'NA'
49325 );
49326
49327 xla_ae_lines_pkg.set_ccid(
49328 p_code_combination_id => l_ccid
49329 , p_value_type_code => l_adr_value_type_code
49330 , p_transaction_coa_id => l_adr_transaction_coa_id
49331 , p_accounting_coa_id => l_adr_accounting_coa_id
49332 , p_adr_code => 'AP_RECP_INV_DIST'
49333 , p_adr_type_code => 'S'
49334 , p_component_type => l_component_type
49335 , p_component_code => l_component_code
49336 , p_component_type_code => l_component_type_code
49337 , p_component_appl_id => l_component_appl_id
49338 , p_amb_context_code => l_amb_context_code
49339 , p_side => 'NA'
49340 );
49341
49342
49343 --
49344 --
49345 END IF;
49346
49347 --
49348 -- Update the line information that should be overwritten
49349 --
49350 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49351 p_header_num => 1);
49352 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49353
49354 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49355
49356 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49357 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49358 END IF;
49359
49360 --
49361 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49362 --
49363 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49364 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49365 ELSE
49366 ---------------------------------------------------------------------------------------------------
49367 -- 4262811a Switch Sign
49368 ---------------------------------------------------------------------------------------------------
49369 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49370 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49371 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49372 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49373 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49374 -- 5132302
49375 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49376 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49377
49378 END IF;
49379
49380 -- 4955764
49381 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49382 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49383
49384
49385 XLA_AE_LINES_PKG.ValidateCurrentLine;
49386 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49387
49388 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49389 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49390 ,p_balance_type_code => l_balance_type_code);
49391
49392 END IF;
49393
49394 -----------------------------------------------------------------------------------------
49395 -- 4262811 Multiperiod Accounting
49396 -----------------------------------------------------------------------------------------
49397 -- No MPA option is assigned.
49398
49399
49400 END IF;
49401 END IF;
49402 --
49403
49404 --
49405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49406 trace
49407 (p_msg => 'END of AcctLineType_98'
49408 ,p_level => C_LEVEL_PROCEDURE
49409 ,p_module => l_log_module);
49410 END IF;
49411 --
49412 EXCEPTION
49413 WHEN xla_exceptions_pkg.application_exception THEN
49417 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_98');
49414 RAISE;
49415 WHEN OTHERS THEN
49416 xla_exceptions_pkg.raise_message
49418 END AcctLineType_98;
49419 --
49420
49421 ---------------------------------------
49422 --
49423 -- PRIVATE FUNCTION
49424 -- AcctLineType_99
49425 --
49426 ---------------------------------------
49427 PROCEDURE AcctLineType_99 (
49428 p_application_id IN NUMBER
49429 ,p_event_id IN NUMBER
49430 ,p_calculate_acctd_flag IN VARCHAR2
49431 ,p_calculate_g_l_flag IN VARCHAR2
49432 ,p_actual_flag IN OUT VARCHAR2
49433 ,p_balance_type_code OUT VARCHAR2
49434 ,p_gain_or_loss_ref OUT VARCHAR2
49435
49436 --Automatic Offsets Value
49437 , p_source_4 IN VARCHAR2
49438 , p_source_4_meaning IN VARCHAR2
49439 --Payment Distribution (Payment Rate) Ledger Amount
49440 , p_source_9 IN NUMBER
49441 --Bank Future Dated Payment Account
49442 , p_source_11 IN NUMBER
49443 --Future Dated Payment Account Source Option
49444 , p_source_12 IN VARCHAR2
49445 , p_source_12_meaning IN VARCHAR2
49446 --Financials Options Future Dated Payment Account
49447 , p_source_13 IN NUMBER
49448 --Supplier Site Future Dated Payment Account
49449 , p_source_14 IN NUMBER
49450 --Invoice Distribution Account
49451 , p_source_17 IN NUMBER
49452 --When to Account for Payment Option
49453 , p_source_38 IN VARCHAR2
49454 --Payment Distribution Type
49455 , p_source_39 IN VARCHAR2
49456 , p_source_39_meaning IN VARCHAR2
49457 --Accounting Reversal Indicator
49458 , p_source_40 IN VARCHAR2
49459 --Payment Distribution Amount
49460 , p_source_41 IN NUMBER
49461 --Business Flow Accounts Payable Application Identifier
49462 , p_source_42 IN NUMBER
49463 --Payment Distribution Identifier
49464 , p_source_47 IN NUMBER
49465 --Distribution Link Type
49466 , p_source_48 IN VARCHAR2
49467 --Payment Currency Code
49468 , p_source_49 IN VARCHAR2
49469 --Override Accounted Amount Indicator
49470 , p_source_53 IN VARCHAR2
49471 , p_source_53_meaning IN VARCHAR2
49472 --Payment Supplier Identifier
49473 , p_source_54 IN NUMBER
49474 --Payment Supplier Site Identifier
49475 , p_source_55 IN NUMBER
49476 --Third Party Type
49477 , p_source_56 IN VARCHAR2
49478 --Payment Distribution Reversed Identifier
49479 , p_source_57 IN NUMBER
49480 --Invoice Distribution Tax Line Identifier
49481 , p_source_58 IN NUMBER
49482 --Invoice Distribution Summary Tax Line Identifier
49483 , p_source_59 IN NUMBER
49484 --Invoice Distribution Amount of the Payment Distribution
49485 , p_source_61 IN NUMBER
49486 --Business Flow Invoice Distribution Type
49487 , p_source_62 IN VARCHAR2
49488 --Business Flow Invoice Entity Code
49489 , p_source_63 IN VARCHAR2
49490 --Business Flow Invoice Distribution Identifier
49491 , p_source_64 IN NUMBER
49492 --Business Flow Invoice Identifier
49493 , p_source_65 IN NUMBER
49494 --Invoice Distribution Tax Distribution Identifier from Tax
49495 , p_source_66 IN NUMBER
49496 --Payment Maturity Date
49497 , p_source_111 IN DATE
49498 --Payment Processing Type
49499 , p_source_113 IN VARCHAR2
49500 --Payment Exchange Date
49501 , p_source_114 IN DATE
49502 --Payment Exchange Rate
49503 , p_source_115 IN NUMBER
49504 --Payment Exchange Rate Type
49505 , p_source_116 IN VARCHAR2
49506 )
49507 IS
49508
49509 l_component_type VARCHAR2(80);
49510 l_component_code VARCHAR2(30);
49511 l_component_type_code VARCHAR2(1);
49512 l_component_appl_id INTEGER;
49513 l_amb_context_code VARCHAR2(30);
49514 l_entity_code VARCHAR2(30);
49515 l_event_class_code VARCHAR2(30);
49516 l_ae_header_id NUMBER;
49517 l_event_type_code VARCHAR2(30);
49518 l_line_definition_code VARCHAR2(30);
49519 l_line_definition_owner_code VARCHAR2(1);
49520 --
49521 -- adr variables
49522 l_segment VARCHAR2(30);
49523 l_ccid NUMBER;
49524 l_adr_transaction_coa_id NUMBER;
49525 l_adr_accounting_coa_id NUMBER;
49526 l_adr_flexfield_segment_code VARCHAR2(30);
49527 l_adr_flex_value_set_id NUMBER;
49528 l_adr_value_type_code VARCHAR2(30);
49529 l_adr_value_combination_id NUMBER;
49530 l_adr_value_segment_code VARCHAR2(30);
49531
49532 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49533 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49534 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49535 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49536
49537 -- 4262811 Variables ------------------------------------------------------------------------------------------
49538 l_entered_amt_idx NUMBER;
49539 l_accted_amt_idx NUMBER;
49540 l_acc_rev_flag VARCHAR2(1);
49541 l_accrual_line_num NUMBER;
49542 l_tmp_amt NUMBER;
49543 l_acc_rev_natural_side_code VARCHAR2(1);
49544
49545 l_num_entries NUMBER;
49546 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49550 l_recog_line_1 NUMBER;
49547 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49548 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49549 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49551 l_recog_line_2 NUMBER;
49552
49553 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49554 l_bflow_applied_to_amt NUMBER; -- 5132302
49555 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49556
49557 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49558
49559 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49560 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49561
49562 ---------------------------------------------------------------------------------------------------------------
49563
49564
49565 --
49566 -- bulk performance
49567 --
49568 l_balance_type_code VARCHAR2(1);
49569 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49570 l_log_module VARCHAR2(240);
49571
49572 --
49573 -- Upgrade strategy
49574 --
49575 l_actual_upg_option VARCHAR2(1);
49576 l_enc_upg_option VARCHAR2(1);
49577
49578 --
49579 BEGIN
49580 --
49581 IF g_log_enabled THEN
49582 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
49583 END IF;
49584 --
49585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49586
49587 trace
49588 (p_msg => 'BEGIN of AcctLineType_99'
49589 ,p_level => C_LEVEL_PROCEDURE
49590 ,p_module => l_log_module);
49591
49592 END IF;
49593 --
49594 l_component_type := 'AMB_JLT';
49595 l_component_code := 'AP_FUTURE_DATED_PMT';
49596 l_component_type_code := 'S';
49597 l_component_appl_id := 200;
49598 l_amb_context_code := 'DEFAULT';
49599 l_entity_code := 'AP_PAYMENTS';
49600 l_event_class_code := 'PAYMENTS';
49601 l_event_type_code := 'PAYMENTS_ALL';
49602 l_line_definition_owner_code := 'S';
49603 l_line_definition_code := 'CASH_PAYMENTS_ALL';
49604 --
49605 l_balance_type_code := 'A';
49606 l_segment := NULL;
49607 l_ccid := NULL;
49608 l_adr_transaction_coa_id := NULL;
49609 l_adr_accounting_coa_id := NULL;
49610 l_adr_flexfield_segment_code := NULL;
49611 l_adr_flex_value_set_id := NULL;
49612 l_adr_value_type_code := NULL;
49613 l_adr_value_combination_id := NULL;
49614 l_adr_value_segment_code := NULL;
49615
49616 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49617 l_bflow_class_code := 'AP_FUTURE_DTD_PMT'; -- 4219869 Business Flow
49618 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49619 l_budgetary_control_flag := 'N';
49620
49621 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49622 l_bflow_applied_to_amt := NULL; -- 5132302
49623 l_entered_amt_idx := NULL; -- 4262811
49624 l_accted_amt_idx := NULL; -- 4262811
49625 l_acc_rev_flag := NULL; -- 4262811
49626 l_accrual_line_num := NULL; -- 4262811
49627 l_tmp_amt := NULL; -- 4262811
49628 --
49629
49630 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49631 l_balance_type_code <> 'B' THEN
49632 IF NVL(p_source_38,'
49633 ') <> 'CLEAR_CLEAR' AND
49634 NVL(p_source_38,'
49635 ') <> 'ALWAYS_CLEAR' AND
49636 NVL(p_source_39,'
49637 ') = 'CASH' AND
49638 p_source_111 IS NOT NULL AND
49639 NVL(p_source_113,'
49640 ') <> 'PAYMENTCARD'
49641 THEN
49642
49643 --
49644 XLA_AE_LINES_PKG.SetNewLine;
49645
49646 p_balance_type_code := l_balance_type_code;
49647 -- set the flag so later we will know whether the gain loss line needs to be created
49648
49649 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49650 p_actual_flag :='A';
49651 END IF;
49652
49653 --
49654 -- bulk performance
49655 --
49656 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49657 p_header_num => 0); -- 4262811
49658 --
49659 -- set accounting line options
49660 --
49661 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49662 p_natural_side_code => 'C'
49663 , p_gain_or_loss_flag => 'N'
49664 , p_gl_transfer_mode_code => 'S'
49665 , p_acct_entry_type_code => 'A'
49666 , p_switch_side_flag => 'Y'
49667 , p_merge_duplicate_code => 'A'
49668 );
49669 --
49670 l_acc_rev_natural_side_code := 'D'; -- 4262811
49671 --
49672 --
49673 -- set accounting line type info
49674 --
49675 xla_ae_lines_pkg.SetAcctLineType
49676 (p_component_type => l_component_type
49677 ,p_event_type_code => l_event_type_code
49678 ,p_line_definition_owner_code => l_line_definition_owner_code
49679 ,p_line_definition_code => l_line_definition_code
49680 ,p_accounting_line_code => l_component_code
49684 ,p_entity_code => l_entity_code
49681 ,p_accounting_line_type_code => l_component_type_code
49682 ,p_accounting_line_appl_id => l_component_appl_id
49683 ,p_amb_context_code => l_amb_context_code
49685 ,p_event_class_code => l_event_class_code);
49686 --
49687 -- set accounting class
49688 --
49689 xla_ae_lines_pkg.SetAcctClass(
49690 p_accounting_class_code => 'FUTURE_DATED_PMT'
49691 , p_ae_header_id => l_ae_header_id
49692 );
49693
49694 --
49695 -- set rounding class
49696 --
49697 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49698 'FUTURE_DATED_PMT';
49699
49700 --
49701 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49702 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49703 --
49704 -- bulk performance
49705 --
49706 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49707
49708 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49709 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49710
49711 -- 4955764
49712 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49713 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49714
49715 -- 4458381 Public Sector Enh
49716
49717 --
49718 -- set accounting attributes for the line type
49719 --
49720 l_entered_amt_idx := 10;
49721 l_accted_amt_idx := 15;
49722 l_bflow_applied_to_amt_idx := 2; -- 5132302
49723 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49724 l_rec_acct_attrs.array_char_value(1) := p_source_40;
49725 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49726 l_rec_acct_attrs.array_num_value(2) := p_source_61;
49727 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49728 l_rec_acct_attrs.array_num_value(3) := p_source_42;
49729 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49730 l_rec_acct_attrs.array_char_value(4) := p_source_62;
49731 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49732 l_rec_acct_attrs.array_char_value(5) := p_source_63;
49733 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49734 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
49735 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49736 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
49737 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49738 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
49739 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49740 l_rec_acct_attrs.array_char_value(9) := p_source_48;
49741 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49742 l_rec_acct_attrs.array_num_value(10) := p_source_41;
49743 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49744 l_rec_acct_attrs.array_char_value(11) := p_source_49;
49745 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49746 l_rec_acct_attrs.array_date_value(12) := p_source_114;
49747 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49748 l_rec_acct_attrs.array_num_value(13) := p_source_115;
49749 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49750 l_rec_acct_attrs.array_char_value(14) := p_source_116;
49751 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49752 l_rec_acct_attrs.array_num_value(15) := p_source_9;
49753 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49754 l_rec_acct_attrs.array_char_value(16) := p_source_53;
49755 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49756 l_rec_acct_attrs.array_num_value(17) := p_source_54;
49757 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49758 l_rec_acct_attrs.array_num_value(18) := p_source_55;
49759 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49760 l_rec_acct_attrs.array_char_value(19) := p_source_56;
49761 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49762 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
49763 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49764 l_rec_acct_attrs.array_char_value(21) := p_source_48;
49765 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49766 l_rec_acct_attrs.array_num_value(22) := p_source_58;
49767 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49768 l_rec_acct_attrs.array_num_value(23) := p_source_66;
49769 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49770 l_rec_acct_attrs.array_num_value(24) := p_source_59;
49771
49772 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49773 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49774
49775 ---------------------------------------------------------------------------------------------------------------
49776 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49777 ---------------------------------------------------------------------------------------------------------------
49781 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49778 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49779
49780 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49782
49783 IF xla_accounting_cache_pkg.GetValueChar
49784 (p_source_code => 'LEDGER_CATEGORY_CODE'
49785 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49786 AND l_bflow_method_code = 'PRIOR_ENTRY'
49787 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49788 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49789 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49790 )
49791 THEN
49792 xla_ae_lines_pkg.BflowUpgEntry
49793 (p_business_method_code => l_bflow_method_code
49794 ,p_business_class_code => l_bflow_class_code
49795 ,p_balance_type => l_balance_type_code);
49796 ELSE
49797 NULL;
49798 -- No business flow processing for business flow method of NONE.
49799 END IF;
49800
49801 --
49802 -- call analytical criteria
49803 --
49804
49805 --
49806 -- call description
49807 --
49808 -- No description or it is inherited.
49809 --
49810 -- call ADRs
49811 -- Bug 4922099
49812 --
49813 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49814 (NVL(l_actual_upg_option, 'N') = 'O') OR
49815 (NVL(l_enc_upg_option, 'N') = 'O')
49816 )
49817 THEN
49818 NULL;
49819 --
49820 --
49821
49822 l_ccid := AcctDerRule_24(
49823 p_application_id => p_application_id
49824 , p_ae_header_id => l_ae_header_id
49825 , p_source_4 => p_source_4
49826 , p_source_4_meaning => p_source_4_meaning
49827 , p_source_11 => p_source_11
49828 , p_source_12 => p_source_12
49829 , p_source_12_meaning => p_source_12_meaning
49830 , p_source_13 => p_source_13
49831 , p_source_14 => p_source_14
49832 , p_source_17 => p_source_17
49833 , x_transaction_coa_id => l_adr_transaction_coa_id
49834 , x_accounting_coa_id => l_adr_accounting_coa_id
49835 , x_value_type_code => l_adr_value_type_code
49836 , p_side => 'NA'
49837 );
49838
49839 xla_ae_lines_pkg.set_ccid(
49840 p_code_combination_id => l_ccid
49841 , p_value_type_code => l_adr_value_type_code
49842 , p_transaction_coa_id => l_adr_transaction_coa_id
49843 , p_accounting_coa_id => l_adr_accounting_coa_id
49844 , p_adr_code => 'AP_FUTURE_DATED_PMT'
49845 , p_adr_type_code => 'S'
49846 , p_component_type => l_component_type
49847 , p_component_code => l_component_code
49848 , p_component_type_code => l_component_type_code
49849 , p_component_appl_id => l_component_appl_id
49850 , p_amb_context_code => l_amb_context_code
49851 , p_side => 'NA'
49852 );
49853
49854
49855 l_segment := AcctDerRule_7(
49856 p_application_id => p_application_id
49857 , p_ae_header_id => l_ae_header_id
49858 , p_source_4 => p_source_4
49859 , p_source_4_meaning => p_source_4_meaning
49860 , p_source_11 => p_source_11
49861 , p_source_12 => p_source_12
49862 , p_source_12_meaning => p_source_12_meaning
49863 , p_source_13 => p_source_13
49864 , p_source_14 => p_source_14
49865 , x_transaction_coa_id => l_adr_transaction_coa_id
49866 , x_accounting_coa_id => l_adr_accounting_coa_id
49867 , x_flexfield_segment_code => l_adr_flexfield_segment_code
49868 , x_flex_value_set_id => l_adr_flex_value_set_id
49869 , x_value_type_code => l_adr_value_type_code
49870 , x_value_combination_id => l_adr_value_combination_id
49871 , x_value_segment_code => l_adr_value_segment_code
49872 , p_side => 'NA'
49873 , p_override_seg_flag => 'Y'
49874 );
49875
49876 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
49877
49878 xla_ae_lines_pkg.set_segment(
49879 p_to_segment_code => 'GL_ACCOUNT'
49880 , p_segment_value => l_segment
49881 , p_from_segment_code => l_adr_value_segment_code
49882 , p_from_combination_id => l_adr_value_combination_id
49883 , p_value_type_code => l_adr_value_type_code
49884 , p_transaction_coa_id => l_adr_transaction_coa_id
49885 , p_accounting_coa_id => l_adr_accounting_coa_id
49886 , p_flexfield_segment_code => l_adr_flexfield_segment_code
49887 , p_flex_value_set_id => l_adr_flex_value_set_id
49888 , p_adr_code => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
49889 , p_adr_type_code => 'S'
49890 , p_component_type => l_component_type
49891 , p_component_code => l_component_code
49892 , p_component_type_code => l_component_type_code
49893 , p_component_appl_id => l_component_appl_id
49894 , p_amb_context_code => l_amb_context_code
49895 , p_entity_code => 'AP_PAYMENTS'
49899
49896 , p_event_class_code => 'PAYMENTS'
49897 , p_side => 'NA'
49898 );
49900 END IF;
49901
49902 l_segment := AcctDerRule_14(
49903 p_application_id => p_application_id
49904 , p_ae_header_id => l_ae_header_id
49905 , p_source_4 => p_source_4
49906 , p_source_4_meaning => p_source_4_meaning
49907 , p_source_17 => p_source_17
49908 , x_transaction_coa_id => l_adr_transaction_coa_id
49909 , x_accounting_coa_id => l_adr_accounting_coa_id
49910 , x_flexfield_segment_code => l_adr_flexfield_segment_code
49911 , x_flex_value_set_id => l_adr_flex_value_set_id
49912 , x_value_type_code => l_adr_value_type_code
49913 , x_value_combination_id => l_adr_value_combination_id
49914 , x_value_segment_code => l_adr_value_segment_code
49915 , p_side => 'NA'
49916 , p_override_seg_flag => 'Y'
49917 );
49918
49919 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
49920
49921 xla_ae_lines_pkg.set_segment(
49922 p_to_segment_code => 'GL_BALANCING'
49923 , p_segment_value => l_segment
49924 , p_from_segment_code => l_adr_value_segment_code
49925 , p_from_combination_id => l_adr_value_combination_id
49926 , p_value_type_code => l_adr_value_type_code
49927 , p_transaction_coa_id => l_adr_transaction_coa_id
49928 , p_accounting_coa_id => l_adr_accounting_coa_id
49929 , p_flexfield_segment_code => l_adr_flexfield_segment_code
49930 , p_flex_value_set_id => l_adr_flex_value_set_id
49931 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
49932 , p_adr_type_code => 'S'
49933 , p_component_type => l_component_type
49934 , p_component_code => l_component_code
49935 , p_component_type_code => l_component_type_code
49936 , p_component_appl_id => l_component_appl_id
49937 , p_amb_context_code => l_amb_context_code
49938 , p_entity_code => 'AP_PAYMENTS'
49939 , p_event_class_code => 'PAYMENTS'
49940 , p_side => 'NA'
49941 );
49942
49943 END IF;
49944
49945 --
49946 --
49947 END IF;
49948 --
49949 -- Bug 4922099
49950 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49951 (NVL(l_enc_upg_option, 'N') = 'O')
49952 ) AND
49953 (l_bflow_method_code = 'PRIOR_ENTRY')
49954 )
49955 THEN
49956 IF
49957 --
49958 1 = 2
49959 --
49960 THEN
49961 xla_accounting_err_pkg.build_message
49962 (p_appli_s_name => 'XLA'
49963 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49964 ,p_token_1 => 'LINE_NUMBER'
49965 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49966 ,p_token_2 => 'LINE_TYPE_NAME'
49967 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49968 l_component_type
49969 ,l_component_code
49970 ,l_component_type_code
49971 ,l_component_appl_id
49972 ,l_amb_context_code
49973 ,l_entity_code
49974 ,l_event_class_code
49975 )
49976 ,p_token_3 => 'OWNER'
49977 ,p_value_3 => xla_lookups_pkg.get_meaning(
49978 p_lookup_type => 'XLA_OWNER_TYPE'
49979 ,p_lookup_code => l_component_type_code
49980 )
49981 ,p_token_4 => 'PRODUCT_NAME'
49982 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49983 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49984 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49985 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49986 ,p_ae_header_id => NULL
49987 );
49988
49989 IF (C_LEVEL_ERROR>= g_log_level) THEN
49990 trace
49991 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49992 ,p_level => C_LEVEL_ERROR
49993 ,p_module => l_log_module);
49994 END IF;
49998 --
49995 END IF;
49996 END IF;
49997 --
49999 ------------------------------------------------------------------------------------------------
50000 -- 4219869 Business Flow
50001 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50002 -- Prior Entry. Currently, the following code is always generated.
50003 ------------------------------------------------------------------------------------------------
50004 XLA_AE_LINES_PKG.ValidateCurrentLine;
50005
50006 ------------------------------------------------------------------------------------
50007 -- 4219869 Business Flow
50008 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50009 ------------------------------------------------------------------------------------
50010 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50011
50012 ----------------------------------------------------------------------------------
50013 -- 4219869 Business Flow
50014 -- Update journal entry status -- Need to generate this within IF <condition>
50015 ----------------------------------------------------------------------------------
50016 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50017 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50018 ,p_balance_type_code => l_balance_type_code
50019 );
50020
50021 -------------------------------------------------------------------------------------------
50022 -- 4262811 - Generate the Accrual Reversal lines
50023 -------------------------------------------------------------------------------------------
50024 BEGIN
50025 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50026 (g_array_event(p_event_id).array_value_num('header_index'));
50027 IF l_acc_rev_flag IS NULL THEN
50028 l_acc_rev_flag := 'N';
50029 END IF;
50030 EXCEPTION
50031 WHEN OTHERS THEN
50032 l_acc_rev_flag := 'N';
50033 END;
50034 --
50035 IF (l_acc_rev_flag = 'Y') THEN
50036
50037 -- 4645092 ------------------------------------------------------------------------------
50038 -- To allow MPA report to determine if it should generate report process
50039 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50040 ------------------------------------------------------------------------------------------
50041
50042 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50043 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50044 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50045 -- call ADRs
50046 -- Bug 4922099
50047 --
50048 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50049 (NVL(l_actual_upg_option, 'N') = 'O') OR
50050 (NVL(l_enc_upg_option, 'N') = 'O')
50051 )
50052 THEN
50053 NULL;
50054 --
50055 --
50056
50057 l_ccid := AcctDerRule_24(
50058 p_application_id => p_application_id
50059 , p_ae_header_id => l_ae_header_id
50060 , p_source_4 => p_source_4
50061 , p_source_4_meaning => p_source_4_meaning
50062 , p_source_11 => p_source_11
50063 , p_source_12 => p_source_12
50064 , p_source_12_meaning => p_source_12_meaning
50065 , p_source_13 => p_source_13
50066 , p_source_14 => p_source_14
50067 , p_source_17 => p_source_17
50068 , x_transaction_coa_id => l_adr_transaction_coa_id
50069 , x_accounting_coa_id => l_adr_accounting_coa_id
50070 , x_value_type_code => l_adr_value_type_code
50071 , p_side => 'NA'
50072 );
50073
50074 xla_ae_lines_pkg.set_ccid(
50075 p_code_combination_id => l_ccid
50076 , p_value_type_code => l_adr_value_type_code
50077 , p_transaction_coa_id => l_adr_transaction_coa_id
50078 , p_accounting_coa_id => l_adr_accounting_coa_id
50079 , p_adr_code => 'AP_FUTURE_DATED_PMT'
50080 , p_adr_type_code => 'S'
50081 , p_component_type => l_component_type
50082 , p_component_code => l_component_code
50083 , p_component_type_code => l_component_type_code
50084 , p_component_appl_id => l_component_appl_id
50085 , p_amb_context_code => l_amb_context_code
50086 , p_side => 'NA'
50087 );
50088
50089
50090 l_segment := AcctDerRule_7(
50091 p_application_id => p_application_id
50092 , p_ae_header_id => l_ae_header_id
50093 , p_source_4 => p_source_4
50094 , p_source_4_meaning => p_source_4_meaning
50095 , p_source_11 => p_source_11
50096 , p_source_12 => p_source_12
50097 , p_source_12_meaning => p_source_12_meaning
50098 , p_source_13 => p_source_13
50099 , p_source_14 => p_source_14
50100 , x_transaction_coa_id => l_adr_transaction_coa_id
50101 , x_accounting_coa_id => l_adr_accounting_coa_id
50102 , x_flexfield_segment_code => l_adr_flexfield_segment_code
50103 , x_flex_value_set_id => l_adr_flex_value_set_id
50104 , x_value_type_code => l_adr_value_type_code
50105 , x_value_combination_id => l_adr_value_combination_id
50106 , x_value_segment_code => l_adr_value_segment_code
50107 , p_side => 'NA'
50108 , p_override_seg_flag => 'Y'
50112
50109 );
50110
50111 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
50113 xla_ae_lines_pkg.set_segment(
50114 p_to_segment_code => 'GL_ACCOUNT'
50115 , p_segment_value => l_segment
50116 , p_from_segment_code => l_adr_value_segment_code
50117 , p_from_combination_id => l_adr_value_combination_id
50118 , p_value_type_code => l_adr_value_type_code
50119 , p_transaction_coa_id => l_adr_transaction_coa_id
50120 , p_accounting_coa_id => l_adr_accounting_coa_id
50121 , p_flexfield_segment_code => l_adr_flexfield_segment_code
50122 , p_flex_value_set_id => l_adr_flex_value_set_id
50123 , p_adr_code => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
50124 , p_adr_type_code => 'S'
50125 , p_component_type => l_component_type
50126 , p_component_code => l_component_code
50127 , p_component_type_code => l_component_type_code
50128 , p_component_appl_id => l_component_appl_id
50129 , p_amb_context_code => l_amb_context_code
50130 , p_entity_code => 'AP_PAYMENTS'
50131 , p_event_class_code => 'PAYMENTS'
50132 , p_side => 'NA'
50133 );
50134
50135 END IF;
50136
50137 l_segment := AcctDerRule_14(
50138 p_application_id => p_application_id
50139 , p_ae_header_id => l_ae_header_id
50140 , p_source_4 => p_source_4
50141 , p_source_4_meaning => p_source_4_meaning
50142 , p_source_17 => p_source_17
50143 , x_transaction_coa_id => l_adr_transaction_coa_id
50144 , x_accounting_coa_id => l_adr_accounting_coa_id
50145 , x_flexfield_segment_code => l_adr_flexfield_segment_code
50146 , x_flex_value_set_id => l_adr_flex_value_set_id
50147 , x_value_type_code => l_adr_value_type_code
50148 , x_value_combination_id => l_adr_value_combination_id
50149 , x_value_segment_code => l_adr_value_segment_code
50150 , p_side => 'NA'
50151 , p_override_seg_flag => 'Y'
50152 );
50153
50154 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
50155
50156 xla_ae_lines_pkg.set_segment(
50157 p_to_segment_code => 'GL_BALANCING'
50158 , p_segment_value => l_segment
50159 , p_from_segment_code => l_adr_value_segment_code
50160 , p_from_combination_id => l_adr_value_combination_id
50161 , p_value_type_code => l_adr_value_type_code
50162 , p_transaction_coa_id => l_adr_transaction_coa_id
50163 , p_accounting_coa_id => l_adr_accounting_coa_id
50164 , p_flexfield_segment_code => l_adr_flexfield_segment_code
50165 , p_flex_value_set_id => l_adr_flex_value_set_id
50166 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
50167 , p_adr_type_code => 'S'
50168 , p_component_type => l_component_type
50169 , p_component_code => l_component_code
50170 , p_component_type_code => l_component_type_code
50171 , p_component_appl_id => l_component_appl_id
50172 , p_amb_context_code => l_amb_context_code
50173 , p_entity_code => 'AP_PAYMENTS'
50174 , p_event_class_code => 'PAYMENTS'
50175 , p_side => 'NA'
50176 );
50177
50178 END IF;
50179
50180 --
50181 --
50182 END IF;
50183
50184 --
50185 -- Update the line information that should be overwritten
50186 --
50187 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50188 p_header_num => 1);
50189 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50190
50191 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50192
50193 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50194 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50195 END IF;
50196
50197 --
50198 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50199 --
50200 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50201 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50202 ELSE
50203 ---------------------------------------------------------------------------------------------------
50204 -- 4262811a Switch Sign
50205 ---------------------------------------------------------------------------------------------------
50206 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50207 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50208 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50209 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50210 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50211 -- 5132302
50212 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50216
50213 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50214
50215 END IF;
50217 -- 4955764
50218 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50219 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50220
50221
50222 XLA_AE_LINES_PKG.ValidateCurrentLine;
50223 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50224
50225 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50226 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50227 ,p_balance_type_code => l_balance_type_code);
50228
50229 END IF;
50230
50231 -----------------------------------------------------------------------------------------
50232 -- 4262811 Multiperiod Accounting
50233 -----------------------------------------------------------------------------------------
50234 -- No MPA option is assigned.
50235
50236
50237 END IF;
50238 END IF;
50239 --
50240
50241 --
50242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50243 trace
50244 (p_msg => 'END of AcctLineType_99'
50245 ,p_level => C_LEVEL_PROCEDURE
50246 ,p_module => l_log_module);
50247 END IF;
50248 --
50249 EXCEPTION
50250 WHEN xla_exceptions_pkg.application_exception THEN
50251 RAISE;
50252 WHEN OTHERS THEN
50253 xla_exceptions_pkg.raise_message
50254 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_99');
50255 END AcctLineType_99;
50256 --
50257
50258 ---------------------------------------
50259 --
50260 -- PRIVATE FUNCTION
50261 -- AcctLineType_100
50262 --
50263 ---------------------------------------
50264 PROCEDURE AcctLineType_100 (
50265 p_application_id IN NUMBER
50266 ,p_event_id IN NUMBER
50267 ,p_calculate_acctd_flag IN VARCHAR2
50268 ,p_calculate_g_l_flag IN VARCHAR2
50269 ,p_actual_flag IN OUT VARCHAR2
50270 ,p_balance_type_code OUT VARCHAR2
50271 ,p_gain_or_loss_ref OUT VARCHAR2
50272
50273 --Payment Distribution (Payment Rate) Ledger Amount
50274 , p_source_9 IN NUMBER
50275 --When to Account for Payment Option
50276 , p_source_38 IN VARCHAR2
50277 --Payment Distribution Type
50278 , p_source_39 IN VARCHAR2
50279 , p_source_39_meaning IN VARCHAR2
50280 --Accounting Reversal Indicator
50281 , p_source_40 IN VARCHAR2
50282 --Payment Distribution Amount
50283 , p_source_41 IN NUMBER
50284 --Business Flow Accounts Payable Application Identifier
50285 , p_source_42 IN NUMBER
50286 --Business Flow Payment Distribution Type
50287 , p_source_43 IN VARCHAR2
50288 --Business Flow Payment Entity Code
50289 , p_source_44 IN VARCHAR2
50290 --Business Flow Payment Distribution Identifier
50291 , p_source_45 IN NUMBER
50292 --Business Flow Payment Identifier
50293 , p_source_46 IN NUMBER
50294 --Payment Distribution Identifier
50295 , p_source_47 IN NUMBER
50296 --Distribution Link Type
50297 , p_source_48 IN VARCHAR2
50298 --Payment Currency Code
50299 , p_source_49 IN VARCHAR2
50300 --Override Accounted Amount Indicator
50301 , p_source_53 IN VARCHAR2
50302 , p_source_53_meaning IN VARCHAR2
50303 --Third Party Type
50304 , p_source_56 IN VARCHAR2
50305 --Payment Distribution Reversed Identifier
50306 , p_source_57 IN NUMBER
50307 --Payment Maturity Date
50308 , p_source_111 IN DATE
50309 )
50310 IS
50311
50312 l_component_type VARCHAR2(80);
50313 l_component_code VARCHAR2(30);
50314 l_component_type_code VARCHAR2(1);
50315 l_component_appl_id INTEGER;
50316 l_amb_context_code VARCHAR2(30);
50317 l_entity_code VARCHAR2(30);
50318 l_event_class_code VARCHAR2(30);
50319 l_ae_header_id NUMBER;
50320 l_event_type_code VARCHAR2(30);
50321 l_line_definition_code VARCHAR2(30);
50322 l_line_definition_owner_code VARCHAR2(1);
50323 --
50324 -- adr variables
50325 l_segment VARCHAR2(30);
50326 l_ccid NUMBER;
50327 l_adr_transaction_coa_id NUMBER;
50328 l_adr_accounting_coa_id NUMBER;
50329 l_adr_flexfield_segment_code VARCHAR2(30);
50330 l_adr_flex_value_set_id NUMBER;
50331 l_adr_value_type_code VARCHAR2(30);
50332 l_adr_value_combination_id NUMBER;
50333 l_adr_value_segment_code VARCHAR2(30);
50334
50335 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50336 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50337 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50338 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50339
50340 -- 4262811 Variables ------------------------------------------------------------------------------------------
50341 l_entered_amt_idx NUMBER;
50342 l_accted_amt_idx NUMBER;
50343 l_acc_rev_flag VARCHAR2(1);
50344 l_accrual_line_num NUMBER;
50345 l_tmp_amt NUMBER;
50346 l_acc_rev_natural_side_code VARCHAR2(1);
50347
50351 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50348 l_num_entries NUMBER;
50349 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50350 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50352 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50353 l_recog_line_1 NUMBER;
50354 l_recog_line_2 NUMBER;
50355
50356 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50357 l_bflow_applied_to_amt NUMBER; -- 5132302
50358 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50359
50360 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50361
50362 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50363 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50364
50365 ---------------------------------------------------------------------------------------------------------------
50366
50367
50368 --
50369 -- bulk performance
50370 --
50371 l_balance_type_code VARCHAR2(1);
50372 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50373 l_log_module VARCHAR2(240);
50374
50375 --
50376 -- Upgrade strategy
50377 --
50378 l_actual_upg_option VARCHAR2(1);
50379 l_enc_upg_option VARCHAR2(1);
50380
50381 --
50382 BEGIN
50383 --
50384 IF g_log_enabled THEN
50385 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
50386 END IF;
50387 --
50388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50389
50390 trace
50391 (p_msg => 'BEGIN of AcctLineType_100'
50392 ,p_level => C_LEVEL_PROCEDURE
50393 ,p_module => l_log_module);
50394
50395 END IF;
50396 --
50397 l_component_type := 'AMB_JLT';
50398 l_component_code := 'AP_FUTURE_DATED_PMT_MAT';
50399 l_component_type_code := 'S';
50400 l_component_appl_id := 200;
50401 l_amb_context_code := 'DEFAULT';
50402 l_entity_code := 'AP_PAYMENTS';
50403 l_event_class_code := 'FUTURE DATED PAYMENTS';
50404 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
50405 l_line_definition_owner_code := 'S';
50406 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
50407 --
50408 l_balance_type_code := 'A';
50409 l_segment := NULL;
50410 l_ccid := NULL;
50411 l_adr_transaction_coa_id := NULL;
50412 l_adr_accounting_coa_id := NULL;
50413 l_adr_flexfield_segment_code := NULL;
50414 l_adr_flex_value_set_id := NULL;
50415 l_adr_value_type_code := NULL;
50416 l_adr_value_combination_id := NULL;
50417 l_adr_value_segment_code := NULL;
50418
50419 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
50420 l_bflow_class_code := 'AP_FUTURE_DTD_PMT'; -- 4219869 Business Flow
50421 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50422 l_budgetary_control_flag := 'N';
50423
50424 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50425 l_bflow_applied_to_amt := NULL; -- 5132302
50426 l_entered_amt_idx := NULL; -- 4262811
50427 l_accted_amt_idx := NULL; -- 4262811
50428 l_acc_rev_flag := NULL; -- 4262811
50429 l_accrual_line_num := NULL; -- 4262811
50430 l_tmp_amt := NULL; -- 4262811
50431 --
50432
50433 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50434 l_balance_type_code <> 'B' THEN
50435 IF NVL(p_source_38,'
50436 ') <> 'CLEAR_CLEAR' AND
50437 p_source_111 IS NOT NULL AND
50438 (NVL(p_source_39,'
50439 ') = 'CASH' OR
50440 NVL(p_source_39,'
50441 ') = 'ROUNDING')
50442 THEN
50443
50444 --
50445 XLA_AE_LINES_PKG.SetNewLine;
50446
50447 p_balance_type_code := l_balance_type_code;
50448 -- set the flag so later we will know whether the gain loss line needs to be created
50449
50450 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50451 p_actual_flag :='A';
50452 END IF;
50453
50454 --
50455 -- bulk performance
50456 --
50457 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50458 p_header_num => 0); -- 4262811
50459 --
50460 -- set accounting line options
50461 --
50462 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50463 p_natural_side_code => 'D'
50464 , p_gain_or_loss_flag => 'N'
50465 , p_gl_transfer_mode_code => 'S'
50466 , p_acct_entry_type_code => 'A'
50467 , p_switch_side_flag => 'Y'
50468 , p_merge_duplicate_code => 'A'
50469 );
50470 --
50471 l_acc_rev_natural_side_code := 'C'; -- 4262811
50472 --
50473 --
50474 -- set accounting line type info
50475 --
50476 xla_ae_lines_pkg.SetAcctLineType
50477 (p_component_type => l_component_type
50478 ,p_event_type_code => l_event_type_code
50479 ,p_line_definition_owner_code => l_line_definition_owner_code
50483 ,p_accounting_line_appl_id => l_component_appl_id
50480 ,p_line_definition_code => l_line_definition_code
50481 ,p_accounting_line_code => l_component_code
50482 ,p_accounting_line_type_code => l_component_type_code
50484 ,p_amb_context_code => l_amb_context_code
50485 ,p_entity_code => l_entity_code
50486 ,p_event_class_code => l_event_class_code);
50487 --
50488 -- set accounting class
50489 --
50490 xla_ae_lines_pkg.SetAcctClass(
50491 p_accounting_class_code => 'FUTURE_DATED_PMT'
50492 , p_ae_header_id => l_ae_header_id
50493 );
50494
50495 --
50496 -- set rounding class
50497 --
50498 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50499 'FUTURE_DATED_PMT';
50500
50501 --
50502 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50503 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50504 --
50505 -- bulk performance
50506 --
50507 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50508
50509 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50510 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50511
50512 -- 4955764
50513 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50514 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50515
50516 -- 4458381 Public Sector Enh
50517
50518 --
50519 -- set accounting attributes for the line type
50520 --
50521 l_entered_amt_idx := 9;
50522 l_accted_amt_idx := 11;
50523 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50524 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50525 l_rec_acct_attrs.array_char_value(1) := p_source_40;
50526 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
50527 l_rec_acct_attrs.array_num_value(2) := p_source_42;
50528 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50529 l_rec_acct_attrs.array_char_value(3) := p_source_43;
50530 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
50531 l_rec_acct_attrs.array_char_value(4) := p_source_44;
50532 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
50533 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
50534 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50535 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
50536 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
50537 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
50538 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
50539 l_rec_acct_attrs.array_char_value(8) := p_source_48;
50540 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
50541 l_rec_acct_attrs.array_num_value(9) := p_source_41;
50542 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
50543 l_rec_acct_attrs.array_char_value(10) := p_source_49;
50544 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
50545 l_rec_acct_attrs.array_num_value(11) := p_source_9;
50546 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
50547 l_rec_acct_attrs.array_char_value(12) := p_source_53;
50548 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
50549 l_rec_acct_attrs.array_char_value(13) := p_source_56;
50550 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
50551 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
50552 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
50553 l_rec_acct_attrs.array_char_value(15) := p_source_48;
50554
50555 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50556 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50557
50558 ---------------------------------------------------------------------------------------------------------------
50559 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50560 ---------------------------------------------------------------------------------------------------------------
50561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50562
50563 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50564 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50565
50566 IF xla_accounting_cache_pkg.GetValueChar
50567 (p_source_code => 'LEDGER_CATEGORY_CODE'
50568 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50569 AND l_bflow_method_code = 'PRIOR_ENTRY'
50570 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50571 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50572 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50573 )
50574 THEN
50575 xla_ae_lines_pkg.BflowUpgEntry
50576 (p_business_method_code => l_bflow_method_code
50577 ,p_business_class_code => l_bflow_class_code
50581 XLA_AE_LINES_PKG.business_flow_validation(
50578 ,p_balance_type => l_balance_type_code);
50579 ELSE
50580 NULL;
50582 p_business_method_code => l_bflow_method_code
50583 ,p_business_class_code => l_bflow_class_code
50584 ,p_inherit_description_flag => l_inherit_desc_flag);
50585 END IF;
50586
50587 --
50588 -- call analytical criteria
50589 --
50590 -- Inherited Analytical Criteria for business flow method of Prior Entry.
50591 --
50592 -- call description
50593 --
50594 -- No description or it is inherited.
50595 --
50596 -- call ADRs
50597 -- Bug 4922099
50598 --
50599 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50600 (NVL(l_actual_upg_option, 'N') = 'O') OR
50601 (NVL(l_enc_upg_option, 'N') = 'O')
50602 )
50603 THEN
50604 NULL;
50605 --
50606 --
50607
50608 --
50609 --
50610 END IF;
50611 --
50612 -- Bug 4922099
50613 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50614 (NVL(l_enc_upg_option, 'N') = 'O')
50615 ) AND
50616 (l_bflow_method_code = 'PRIOR_ENTRY')
50617 )
50618 THEN
50619 IF
50620 --
50621 1 = 1
50622 --
50623 THEN
50624 xla_accounting_err_pkg.build_message
50625 (p_appli_s_name => 'XLA'
50626 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50627 ,p_token_1 => 'LINE_NUMBER'
50628 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50629 ,p_token_2 => 'LINE_TYPE_NAME'
50630 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50631 l_component_type
50632 ,l_component_code
50633 ,l_component_type_code
50634 ,l_component_appl_id
50635 ,l_amb_context_code
50636 ,l_entity_code
50637 ,l_event_class_code
50638 )
50639 ,p_token_3 => 'OWNER'
50640 ,p_value_3 => xla_lookups_pkg.get_meaning(
50641 p_lookup_type => 'XLA_OWNER_TYPE'
50642 ,p_lookup_code => l_component_type_code
50643 )
50644 ,p_token_4 => 'PRODUCT_NAME'
50645 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50646 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50647 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50648 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50649 ,p_ae_header_id => NULL
50650 );
50651
50652 IF (C_LEVEL_ERROR>= g_log_level) THEN
50653 trace
50654 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50655 ,p_level => C_LEVEL_ERROR
50656 ,p_module => l_log_module);
50657 END IF;
50658 END IF;
50659 END IF;
50660 --
50661 --
50662 ------------------------------------------------------------------------------------------------
50663 -- 4219869 Business Flow
50664 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50665 -- Prior Entry. Currently, the following code is always generated.
50666 ------------------------------------------------------------------------------------------------
50667 -- No ValidateCurrentLine for business flow method of Prior Entry
50668
50669 ------------------------------------------------------------------------------------
50670 -- 4219869 Business Flow
50671 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50672 ------------------------------------------------------------------------------------
50673 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50674
50675 ----------------------------------------------------------------------------------
50676 -- 4219869 Business Flow
50677 -- Update journal entry status -- Need to generate this within IF <condition>
50678 ----------------------------------------------------------------------------------
50679 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50680 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50681 ,p_balance_type_code => l_balance_type_code
50685 -- 4262811 - Generate the Accrual Reversal lines
50682 );
50683
50684 -------------------------------------------------------------------------------------------
50686 -------------------------------------------------------------------------------------------
50687 BEGIN
50688 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50689 (g_array_event(p_event_id).array_value_num('header_index'));
50690 IF l_acc_rev_flag IS NULL THEN
50691 l_acc_rev_flag := 'N';
50692 END IF;
50693 EXCEPTION
50694 WHEN OTHERS THEN
50695 l_acc_rev_flag := 'N';
50696 END;
50697 --
50698 IF (l_acc_rev_flag = 'Y') THEN
50699
50700 -- 4645092 ------------------------------------------------------------------------------
50701 -- To allow MPA report to determine if it should generate report process
50702 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50703 ------------------------------------------------------------------------------------------
50704
50705 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50706 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50707 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50708 -- call ADRs
50709 -- Bug 4922099
50710 --
50711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50712 (NVL(l_actual_upg_option, 'N') = 'O') OR
50713 (NVL(l_enc_upg_option, 'N') = 'O')
50714 )
50715 THEN
50716 NULL;
50717 --
50718 --
50719
50720 --
50721 --
50722 END IF;
50723
50724 --
50725 -- Update the line information that should be overwritten
50726 --
50727 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50728 p_header_num => 1);
50729 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50730
50731 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50732
50733 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50734 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50735 END IF;
50736
50737 --
50738 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50739 --
50740 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50741 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50742 ELSE
50743 ---------------------------------------------------------------------------------------------------
50744 -- 4262811a Switch Sign
50745 ---------------------------------------------------------------------------------------------------
50746 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50747 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50748 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50749 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50750 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50751 -- 5132302
50752 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50753 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50754
50755 END IF;
50756
50757 -- 4955764
50758 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50759 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50760
50761
50762 XLA_AE_LINES_PKG.ValidateCurrentLine;
50763 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50764
50765 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50766 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50767 ,p_balance_type_code => l_balance_type_code);
50768
50769 END IF;
50770
50771 -----------------------------------------------------------------------------------------
50772 -- 4262811 Multiperiod Accounting
50773 -----------------------------------------------------------------------------------------
50774 -- No MPA option is assigned.
50775
50776
50777 END IF;
50778 END IF;
50779 --
50780
50781 --
50782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50783 trace
50784 (p_msg => 'END of AcctLineType_100'
50785 ,p_level => C_LEVEL_PROCEDURE
50786 ,p_module => l_log_module);
50787 END IF;
50788 --
50789 EXCEPTION
50790 WHEN xla_exceptions_pkg.application_exception THEN
50791 RAISE;
50792 WHEN OTHERS THEN
50793 xla_exceptions_pkg.raise_message
50794 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_100');
50795 END AcctLineType_100;
50796 --
50797
50798 ---------------------------------------
50799 --
50800 -- PRIVATE FUNCTION
50801 -- AcctLineType_101
50802 --
50803 ---------------------------------------
50804 PROCEDURE AcctLineType_101 (
50805 p_application_id IN NUMBER
50809 ,p_actual_flag IN OUT VARCHAR2
50806 ,p_event_id IN NUMBER
50807 ,p_calculate_acctd_flag IN VARCHAR2
50808 ,p_calculate_g_l_flag IN VARCHAR2
50810 ,p_balance_type_code OUT VARCHAR2
50811 ,p_gain_or_loss_ref OUT VARCHAR2
50812
50813 --Automatic Offsets Value
50814 , p_source_4 IN VARCHAR2
50815 , p_source_4_meaning IN VARCHAR2
50816 --Payment Distribution (Payment Rate) Ledger Amount
50817 , p_source_9 IN NUMBER
50818 --Invoice Distribution Account
50819 , p_source_17 IN NUMBER
50820 --Payables Options Rounding Account
50821 , p_source_37 IN NUMBER
50822 --When to Account for Payment Option
50823 , p_source_38 IN VARCHAR2
50824 --Payment Distribution Type
50825 , p_source_39 IN VARCHAR2
50826 , p_source_39_meaning IN VARCHAR2
50827 --Accounting Reversal Indicator
50828 , p_source_40 IN VARCHAR2
50829 --Payment Distribution Amount
50830 , p_source_41 IN NUMBER
50831 --Business Flow Accounts Payable Application Identifier
50832 , p_source_42 IN NUMBER
50833 --Business Flow Payment Distribution Type
50834 , p_source_43 IN VARCHAR2
50835 --Business Flow Payment Entity Code
50836 , p_source_44 IN VARCHAR2
50837 --Business Flow Payment Distribution Identifier
50838 , p_source_45 IN NUMBER
50839 --Business Flow Payment Identifier
50840 , p_source_46 IN NUMBER
50841 --Payment Distribution Identifier
50842 , p_source_47 IN NUMBER
50843 --Distribution Link Type
50844 , p_source_48 IN VARCHAR2
50845 --Payment Currency Code
50846 , p_source_49 IN VARCHAR2
50847 --Override Accounted Amount Indicator
50848 , p_source_53 IN VARCHAR2
50849 , p_source_53_meaning IN VARCHAR2
50850 --Payment Supplier Identifier
50851 , p_source_54 IN NUMBER
50852 --Payment Supplier Site Identifier
50853 , p_source_55 IN NUMBER
50854 --Third Party Type
50855 , p_source_56 IN VARCHAR2
50856 --Payment Distribution Reversed Identifier
50857 , p_source_57 IN NUMBER
50858 --Payment Exchange Date
50859 , p_source_114 IN DATE
50860 --Payment Exchange Rate
50861 , p_source_115 IN NUMBER
50862 --Payment Exchange Rate Type
50863 , p_source_116 IN VARCHAR2
50864 )
50865 IS
50866
50867 l_component_type VARCHAR2(80);
50868 l_component_code VARCHAR2(30);
50869 l_component_type_code VARCHAR2(1);
50870 l_component_appl_id INTEGER;
50871 l_amb_context_code VARCHAR2(30);
50872 l_entity_code VARCHAR2(30);
50873 l_event_class_code VARCHAR2(30);
50874 l_ae_header_id NUMBER;
50875 l_event_type_code VARCHAR2(30);
50876 l_line_definition_code VARCHAR2(30);
50877 l_line_definition_owner_code VARCHAR2(1);
50878 --
50879 -- adr variables
50880 l_segment VARCHAR2(30);
50881 l_ccid NUMBER;
50882 l_adr_transaction_coa_id NUMBER;
50883 l_adr_accounting_coa_id NUMBER;
50884 l_adr_flexfield_segment_code VARCHAR2(30);
50885 l_adr_flex_value_set_id NUMBER;
50886 l_adr_value_type_code VARCHAR2(30);
50887 l_adr_value_combination_id NUMBER;
50888 l_adr_value_segment_code VARCHAR2(30);
50889
50890 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50891 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50892 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50893 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50894
50895 -- 4262811 Variables ------------------------------------------------------------------------------------------
50896 l_entered_amt_idx NUMBER;
50897 l_accted_amt_idx NUMBER;
50898 l_acc_rev_flag VARCHAR2(1);
50899 l_accrual_line_num NUMBER;
50900 l_tmp_amt NUMBER;
50901 l_acc_rev_natural_side_code VARCHAR2(1);
50902
50903 l_num_entries NUMBER;
50904 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50905 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50906 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50907 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50908 l_recog_line_1 NUMBER;
50909 l_recog_line_2 NUMBER;
50910
50911 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50912 l_bflow_applied_to_amt NUMBER; -- 5132302
50913 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50914
50915 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50916
50917 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50918 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50919
50920 ---------------------------------------------------------------------------------------------------------------
50921
50922
50923 --
50924 -- bulk performance
50925 --
50926 l_balance_type_code VARCHAR2(1);
50927 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50928 l_log_module VARCHAR2(240);
50929
50930 --
50931 -- Upgrade strategy
50932 --
50936 --
50933 l_actual_upg_option VARCHAR2(1);
50934 l_enc_upg_option VARCHAR2(1);
50935
50937 BEGIN
50938 --
50939 IF g_log_enabled THEN
50940 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
50941 END IF;
50942 --
50943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50944
50945 trace
50946 (p_msg => 'BEGIN of AcctLineType_101'
50947 ,p_level => C_LEVEL_PROCEDURE
50948 ,p_module => l_log_module);
50949
50950 END IF;
50951 --
50952 l_component_type := 'AMB_JLT';
50953 l_component_code := 'AP_FUTURE_PMT_ROUNDING_MAT';
50954 l_component_type_code := 'S';
50955 l_component_appl_id := 200;
50956 l_amb_context_code := 'DEFAULT';
50957 l_entity_code := 'AP_PAYMENTS';
50958 l_event_class_code := 'FUTURE DATED PAYMENTS';
50959 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
50960 l_line_definition_owner_code := 'S';
50961 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
50962 --
50963 l_balance_type_code := 'A';
50964 l_segment := NULL;
50965 l_ccid := NULL;
50966 l_adr_transaction_coa_id := NULL;
50967 l_adr_accounting_coa_id := NULL;
50968 l_adr_flexfield_segment_code := NULL;
50969 l_adr_flex_value_set_id := NULL;
50970 l_adr_value_type_code := NULL;
50971 l_adr_value_combination_id := NULL;
50972 l_adr_value_segment_code := NULL;
50973
50974 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50975 l_bflow_class_code := ''; -- 4219869 Business Flow
50976 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50977 l_budgetary_control_flag := 'N';
50978
50979 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50980 l_bflow_applied_to_amt := NULL; -- 5132302
50981 l_entered_amt_idx := NULL; -- 4262811
50982 l_accted_amt_idx := NULL; -- 4262811
50983 l_acc_rev_flag := NULL; -- 4262811
50984 l_accrual_line_num := NULL; -- 4262811
50985 l_tmp_amt := NULL; -- 4262811
50986 --
50987
50988 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50989 l_balance_type_code <> 'B' THEN
50990 IF NVL(p_source_38,'
50991 ') <> 'CLEAR_CLEAR' AND
50992 NVL(p_source_39,'
50993 ') = 'FUTURE PAYMENT ROUNDING'
50994 THEN
50995
50996 --
50997 XLA_AE_LINES_PKG.SetNewLine;
50998
50999 p_balance_type_code := l_balance_type_code;
51000 -- set the flag so later we will know whether the gain loss line needs to be created
51001
51002 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51003 p_actual_flag :='A';
51004 END IF;
51005
51006 --
51007 -- bulk performance
51008 --
51009 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51010 p_header_num => 0); -- 4262811
51011 --
51012 -- set accounting line options
51013 --
51014 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51015 p_natural_side_code => 'D'
51016 , p_gain_or_loss_flag => 'N'
51017 , p_gl_transfer_mode_code => 'S'
51018 , p_acct_entry_type_code => 'A'
51019 , p_switch_side_flag => 'Y'
51020 , p_merge_duplicate_code => 'A'
51021 );
51022 --
51023 l_acc_rev_natural_side_code := 'C'; -- 4262811
51024 --
51025 --
51026 -- set accounting line type info
51027 --
51028 xla_ae_lines_pkg.SetAcctLineType
51029 (p_component_type => l_component_type
51030 ,p_event_type_code => l_event_type_code
51031 ,p_line_definition_owner_code => l_line_definition_owner_code
51032 ,p_line_definition_code => l_line_definition_code
51033 ,p_accounting_line_code => l_component_code
51034 ,p_accounting_line_type_code => l_component_type_code
51035 ,p_accounting_line_appl_id => l_component_appl_id
51036 ,p_amb_context_code => l_amb_context_code
51037 ,p_entity_code => l_entity_code
51038 ,p_event_class_code => l_event_class_code);
51039 --
51040 -- set accounting class
51041 --
51042 xla_ae_lines_pkg.SetAcctClass(
51043 p_accounting_class_code => 'ROUNDING'
51044 , p_ae_header_id => l_ae_header_id
51045 );
51046
51047 --
51048 -- set rounding class
51049 --
51050 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51051 'ROUNDING';
51052
51053 --
51054 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51055 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51056 --
51057 -- bulk performance
51058 --
51059 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51060
51061 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51062 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51063
51064 -- 4955764
51065 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51069
51066 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51067
51068 -- 4458381 Public Sector Enh
51070 --
51071 -- set accounting attributes for the line type
51072 --
51073 l_entered_amt_idx := 9;
51074 l_accted_amt_idx := 14;
51075 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51076 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51077 l_rec_acct_attrs.array_char_value(1) := p_source_40;
51078 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
51079 l_rec_acct_attrs.array_num_value(2) := p_source_42;
51080 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51081 l_rec_acct_attrs.array_char_value(3) := p_source_43;
51082 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
51083 l_rec_acct_attrs.array_char_value(4) := p_source_44;
51084 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
51085 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
51086 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51087 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
51088 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
51089 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
51090 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
51091 l_rec_acct_attrs.array_char_value(8) := p_source_48;
51092 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
51093 l_rec_acct_attrs.array_num_value(9) := p_source_41;
51094 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
51095 l_rec_acct_attrs.array_char_value(10) := p_source_49;
51096 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
51097 l_rec_acct_attrs.array_date_value(11) := p_source_114;
51098 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
51099 l_rec_acct_attrs.array_num_value(12) := p_source_115;
51100 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
51101 l_rec_acct_attrs.array_char_value(13) := p_source_116;
51102 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
51103 l_rec_acct_attrs.array_num_value(14) := p_source_9;
51104 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
51105 l_rec_acct_attrs.array_char_value(15) := p_source_53;
51106 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
51107 l_rec_acct_attrs.array_num_value(16) := p_source_54;
51108 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
51109 l_rec_acct_attrs.array_num_value(17) := p_source_55;
51110 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
51111 l_rec_acct_attrs.array_char_value(18) := p_source_56;
51112 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
51113 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
51114 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
51115 l_rec_acct_attrs.array_char_value(20) := p_source_48;
51116
51117 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51118 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51119
51120 ---------------------------------------------------------------------------------------------------------------
51121 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51122 ---------------------------------------------------------------------------------------------------------------
51123 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51124
51125 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51126 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51127
51128 IF xla_accounting_cache_pkg.GetValueChar
51129 (p_source_code => 'LEDGER_CATEGORY_CODE'
51130 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51131 AND l_bflow_method_code = 'PRIOR_ENTRY'
51132 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51133 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51134 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51135 )
51136 THEN
51137 xla_ae_lines_pkg.BflowUpgEntry
51138 (p_business_method_code => l_bflow_method_code
51139 ,p_business_class_code => l_bflow_class_code
51140 ,p_balance_type => l_balance_type_code);
51141 ELSE
51142 NULL;
51143 -- No business flow processing for business flow method of NONE.
51144 END IF;
51145
51146 --
51147 -- call analytical criteria
51148 --
51149
51150 --
51151 -- call description
51152 --
51153 -- No description or it is inherited.
51154 --
51155 -- call ADRs
51156 -- Bug 4922099
51157 --
51158 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51159 (NVL(l_actual_upg_option, 'N') = 'O') OR
51160 (NVL(l_enc_upg_option, 'N') = 'O')
51161 )
51162 THEN
51163 NULL;
51164 --
51165 --
51166
51167 l_ccid := AcctDerRule_35(
51168 p_application_id => p_application_id
51169 , p_ae_header_id => l_ae_header_id
51173 , p_source_37 => p_source_37
51170 , p_source_4 => p_source_4
51171 , p_source_4_meaning => p_source_4_meaning
51172 , p_source_17 => p_source_17
51174 , x_transaction_coa_id => l_adr_transaction_coa_id
51175 , x_accounting_coa_id => l_adr_accounting_coa_id
51176 , x_value_type_code => l_adr_value_type_code
51177 , p_side => 'NA'
51178 );
51179
51180 xla_ae_lines_pkg.set_ccid(
51181 p_code_combination_id => l_ccid
51182 , p_value_type_code => l_adr_value_type_code
51183 , p_transaction_coa_id => l_adr_transaction_coa_id
51184 , p_accounting_coa_id => l_adr_accounting_coa_id
51185 , p_adr_code => 'AP_ROUNDING'
51186 , p_adr_type_code => 'S'
51187 , p_component_type => l_component_type
51188 , p_component_code => l_component_code
51189 , p_component_type_code => l_component_type_code
51190 , p_component_appl_id => l_component_appl_id
51191 , p_amb_context_code => l_amb_context_code
51192 , p_side => 'NA'
51193 );
51194
51195
51196 --
51197 --
51198 END IF;
51199 --
51200 -- Bug 4922099
51201 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51202 (NVL(l_enc_upg_option, 'N') = 'O')
51203 ) AND
51204 (l_bflow_method_code = 'PRIOR_ENTRY')
51205 )
51206 THEN
51207 IF
51208 --
51209 1 = 2
51210 --
51211 THEN
51212 xla_accounting_err_pkg.build_message
51213 (p_appli_s_name => 'XLA'
51214 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51215 ,p_token_1 => 'LINE_NUMBER'
51216 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51217 ,p_token_2 => 'LINE_TYPE_NAME'
51218 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51219 l_component_type
51220 ,l_component_code
51221 ,l_component_type_code
51222 ,l_component_appl_id
51223 ,l_amb_context_code
51224 ,l_entity_code
51225 ,l_event_class_code
51226 )
51227 ,p_token_3 => 'OWNER'
51228 ,p_value_3 => xla_lookups_pkg.get_meaning(
51229 p_lookup_type => 'XLA_OWNER_TYPE'
51230 ,p_lookup_code => l_component_type_code
51231 )
51232 ,p_token_4 => 'PRODUCT_NAME'
51233 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51234 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51235 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51236 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51237 ,p_ae_header_id => NULL
51238 );
51239
51240 IF (C_LEVEL_ERROR>= g_log_level) THEN
51241 trace
51242 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51243 ,p_level => C_LEVEL_ERROR
51244 ,p_module => l_log_module);
51245 END IF;
51246 END IF;
51247 END IF;
51248 --
51249 --
51250 ------------------------------------------------------------------------------------------------
51251 -- 4219869 Business Flow
51252 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51253 -- Prior Entry. Currently, the following code is always generated.
51254 ------------------------------------------------------------------------------------------------
51255 XLA_AE_LINES_PKG.ValidateCurrentLine;
51256
51257 ------------------------------------------------------------------------------------
51258 -- 4219869 Business Flow
51259 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51260 ------------------------------------------------------------------------------------
51261 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51262
51263 ----------------------------------------------------------------------------------
51264 -- 4219869 Business Flow
51265 -- Update journal entry status -- Need to generate this within IF <condition>
51266 ----------------------------------------------------------------------------------
51270 );
51267 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51268 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51269 ,p_balance_type_code => l_balance_type_code
51271
51272 -------------------------------------------------------------------------------------------
51273 -- 4262811 - Generate the Accrual Reversal lines
51274 -------------------------------------------------------------------------------------------
51275 BEGIN
51276 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51277 (g_array_event(p_event_id).array_value_num('header_index'));
51278 IF l_acc_rev_flag IS NULL THEN
51279 l_acc_rev_flag := 'N';
51280 END IF;
51281 EXCEPTION
51282 WHEN OTHERS THEN
51283 l_acc_rev_flag := 'N';
51284 END;
51285 --
51286 IF (l_acc_rev_flag = 'Y') THEN
51287
51288 -- 4645092 ------------------------------------------------------------------------------
51289 -- To allow MPA report to determine if it should generate report process
51290 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51291 ------------------------------------------------------------------------------------------
51292
51293 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51294 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51295 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51296 -- call ADRs
51297 -- Bug 4922099
51298 --
51299 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51300 (NVL(l_actual_upg_option, 'N') = 'O') OR
51301 (NVL(l_enc_upg_option, 'N') = 'O')
51302 )
51303 THEN
51304 NULL;
51305 --
51306 --
51307
51308 l_ccid := AcctDerRule_35(
51309 p_application_id => p_application_id
51310 , p_ae_header_id => l_ae_header_id
51311 , p_source_4 => p_source_4
51312 , p_source_4_meaning => p_source_4_meaning
51313 , p_source_17 => p_source_17
51314 , p_source_37 => p_source_37
51315 , x_transaction_coa_id => l_adr_transaction_coa_id
51316 , x_accounting_coa_id => l_adr_accounting_coa_id
51317 , x_value_type_code => l_adr_value_type_code
51318 , p_side => 'NA'
51319 );
51320
51321 xla_ae_lines_pkg.set_ccid(
51322 p_code_combination_id => l_ccid
51323 , p_value_type_code => l_adr_value_type_code
51324 , p_transaction_coa_id => l_adr_transaction_coa_id
51325 , p_accounting_coa_id => l_adr_accounting_coa_id
51326 , p_adr_code => 'AP_ROUNDING'
51327 , p_adr_type_code => 'S'
51328 , p_component_type => l_component_type
51329 , p_component_code => l_component_code
51330 , p_component_type_code => l_component_type_code
51331 , p_component_appl_id => l_component_appl_id
51332 , p_amb_context_code => l_amb_context_code
51333 , p_side => 'NA'
51334 );
51335
51336
51337 --
51338 --
51339 END IF;
51340
51341 --
51342 -- Update the line information that should be overwritten
51343 --
51344 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51345 p_header_num => 1);
51346 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51347
51348 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51349
51350 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51351 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51352 END IF;
51353
51354 --
51355 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51356 --
51357 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51358 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51359 ELSE
51360 ---------------------------------------------------------------------------------------------------
51361 -- 4262811a Switch Sign
51362 ---------------------------------------------------------------------------------------------------
51363 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51365 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51366 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51367 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51368 -- 5132302
51369 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51370 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51371
51372 END IF;
51373
51374 -- 4955764
51375 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51376 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51377
51378
51382 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51379 XLA_AE_LINES_PKG.ValidateCurrentLine;
51380 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51381
51383 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51384 ,p_balance_type_code => l_balance_type_code);
51385
51386 END IF;
51387
51388 -----------------------------------------------------------------------------------------
51389 -- 4262811 Multiperiod Accounting
51390 -----------------------------------------------------------------------------------------
51391 -- No MPA option is assigned.
51392
51393
51394 END IF;
51395 END IF;
51396 --
51397
51398 --
51399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51400 trace
51401 (p_msg => 'END of AcctLineType_101'
51402 ,p_level => C_LEVEL_PROCEDURE
51403 ,p_module => l_log_module);
51404 END IF;
51405 --
51406 EXCEPTION
51407 WHEN xla_exceptions_pkg.application_exception THEN
51408 RAISE;
51409 WHEN OTHERS THEN
51410 xla_exceptions_pkg.raise_message
51411 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_101');
51412 END AcctLineType_101;
51413 --
51414
51415 ---------------------------------------
51416 --
51417 -- PRIVATE FUNCTION
51418 -- AcctLineType_102
51419 --
51420 ---------------------------------------
51421 PROCEDURE AcctLineType_102 (
51422 p_application_id IN NUMBER
51423 ,p_event_id IN NUMBER
51424 ,p_calculate_acctd_flag IN VARCHAR2
51425 ,p_calculate_g_l_flag IN VARCHAR2
51426 ,p_actual_flag IN OUT VARCHAR2
51427 ,p_balance_type_code OUT VARCHAR2
51428 ,p_gain_or_loss_ref OUT VARCHAR2
51429
51430 --Automatic Offsets Value
51431 , p_source_4 IN VARCHAR2
51432 , p_source_4_meaning IN VARCHAR2
51433 --Invoice Distribution Account
51434 , p_source_17 IN NUMBER
51435 --Internal Realized Gain Account
51436 , p_source_32 IN NUMBER
51437 --Bank Gain Account
51438 , p_source_33 IN NUMBER
51439 --Internal Realized Loss Account
51440 , p_source_34 IN NUMBER
51441 --Bank Loss Account
51442 , p_source_35 IN NUMBER
51443 --When to Account for Payment Option
51444 , p_source_38 IN VARCHAR2
51445 --Payment Distribution Type
51446 , p_source_39 IN VARCHAR2
51447 , p_source_39_meaning IN VARCHAR2
51448 --Accounting Reversal Indicator
51449 , p_source_40 IN VARCHAR2
51450 --Payment Distribution Amount
51451 , p_source_41 IN NUMBER
51452 --Business Flow Accounts Payable Application Identifier
51453 , p_source_42 IN NUMBER
51454 --Business Flow Payment Distribution Type
51455 , p_source_43 IN VARCHAR2
51456 --Business Flow Payment Entity Code
51457 , p_source_44 IN VARCHAR2
51458 --Business Flow Payment Distribution Identifier
51459 , p_source_45 IN NUMBER
51460 --Business Flow Payment Identifier
51461 , p_source_46 IN NUMBER
51462 --Payment Distribution Identifier
51463 , p_source_47 IN NUMBER
51464 --Distribution Link Type
51465 , p_source_48 IN VARCHAR2
51466 --Override Accounted Amount Indicator
51467 , p_source_53 IN VARCHAR2
51468 , p_source_53_meaning IN VARCHAR2
51469 --Payment Supplier Identifier
51470 , p_source_54 IN NUMBER
51471 --Payment Supplier Site Identifier
51472 , p_source_55 IN NUMBER
51473 --Third Party Type
51474 , p_source_56 IN VARCHAR2
51475 --Payment Distribution Reversed Identifier
51476 , p_source_57 IN NUMBER
51477 --Invoice Distribution Tax Line Identifier
51478 , p_source_58 IN NUMBER
51479 --Invoice Distribution Summary Tax Line Identifier
51480 , p_source_59 IN NUMBER
51481 --Payment Maturity Date
51482 , p_source_111 IN DATE
51483 --Invoice/Clearing Ledger Amount Difference
51484 , p_source_127 IN NUMBER
51485 )
51486 IS
51487
51488 l_component_type VARCHAR2(80);
51489 l_component_code VARCHAR2(30);
51490 l_component_type_code VARCHAR2(1);
51491 l_component_appl_id INTEGER;
51492 l_amb_context_code VARCHAR2(30);
51493 l_entity_code VARCHAR2(30);
51494 l_event_class_code VARCHAR2(30);
51495 l_ae_header_id NUMBER;
51496 l_event_type_code VARCHAR2(30);
51497 l_line_definition_code VARCHAR2(30);
51498 l_line_definition_owner_code VARCHAR2(1);
51499 --
51500 -- adr variables
51501 l_segment VARCHAR2(30);
51502 l_ccid NUMBER;
51503 l_adr_transaction_coa_id NUMBER;
51504 l_adr_accounting_coa_id NUMBER;
51505 l_adr_flexfield_segment_code VARCHAR2(30);
51506 l_adr_flex_value_set_id NUMBER;
51507 l_adr_value_type_code VARCHAR2(30);
51508 l_adr_value_combination_id NUMBER;
51509 l_adr_value_segment_code VARCHAR2(30);
51510
51511 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51512 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51513 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51514 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51515
51519 l_acc_rev_flag VARCHAR2(1);
51516 -- 4262811 Variables ------------------------------------------------------------------------------------------
51517 l_entered_amt_idx NUMBER;
51518 l_accted_amt_idx NUMBER;
51520 l_accrual_line_num NUMBER;
51521 l_tmp_amt NUMBER;
51522 l_acc_rev_natural_side_code VARCHAR2(1);
51523
51524 l_num_entries NUMBER;
51525 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51526 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51527 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51528 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51529 l_recog_line_1 NUMBER;
51530 l_recog_line_2 NUMBER;
51531
51532 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51533 l_bflow_applied_to_amt NUMBER; -- 5132302
51534 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51535
51536 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51537
51538 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51539 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51540
51541 ---------------------------------------------------------------------------------------------------------------
51542
51543
51544 --
51545 -- bulk performance
51546 --
51547 l_balance_type_code VARCHAR2(1);
51548 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51549 l_log_module VARCHAR2(240);
51550
51551 --
51552 -- Upgrade strategy
51553 --
51554 l_actual_upg_option VARCHAR2(1);
51555 l_enc_upg_option VARCHAR2(1);
51556
51557 --
51558 BEGIN
51559 --
51560 IF g_log_enabled THEN
51561 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
51562 END IF;
51563 --
51564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51565
51566 trace
51567 (p_msg => 'BEGIN of AcctLineType_102'
51568 ,p_level => C_LEVEL_PROCEDURE
51569 ,p_module => l_log_module);
51570
51571 END IF;
51572 --
51573 l_component_type := 'AMB_JLT';
51574 l_component_code := 'AP_GAIN_LOSS_PAY_CLEAR';
51575 l_component_type_code := 'S';
51576 l_component_appl_id := 200;
51577 l_amb_context_code := 'DEFAULT';
51578 l_entity_code := 'AP_PAYMENTS';
51579 l_event_class_code := 'RECONCILED PAYMENTS';
51580 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
51581 l_line_definition_owner_code := 'S';
51582 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
51583 --
51584 l_balance_type_code := 'A';
51585 l_segment := NULL;
51586 l_ccid := NULL;
51587 l_adr_transaction_coa_id := NULL;
51588 l_adr_accounting_coa_id := NULL;
51589 l_adr_flexfield_segment_code := NULL;
51590 l_adr_flex_value_set_id := NULL;
51591 l_adr_value_type_code := NULL;
51592 l_adr_value_combination_id := NULL;
51593 l_adr_value_segment_code := NULL;
51594
51595 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51596 l_bflow_class_code := ''; -- 4219869 Business Flow
51597 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51598 l_budgetary_control_flag := 'N';
51599
51600 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51601 l_bflow_applied_to_amt := NULL; -- 5132302
51602 l_entered_amt_idx := NULL; -- 4262811
51603 l_accted_amt_idx := NULL; -- 4262811
51604 l_acc_rev_flag := NULL; -- 4262811
51605 l_accrual_line_num := NULL; -- 4262811
51606 l_tmp_amt := NULL; -- 4262811
51607 --
51608 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
51609 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
51610 return;
51611 END IF;
51612
51613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51614 l_balance_type_code <> 'B' THEN
51615 IF (NVL(p_source_38,'
51616 ') = 'CLEAR_CLEAR' OR
51617 NVL(p_source_38,'
51618 ') = 'ALWAYS_CLEAR' OR
51619 NVL(p_source_38,'
51620 ') = 'ALWAYS_ALWAYS') AND
51621 p_source_111 IS NULL AND
51622 NVL(p_source_39,'
51623 ') <> 'EXCHANGE RATE VARIANCE' AND
51624 NVL(p_source_39,'
51625 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
51626 NVL(p_source_39,'
51627 ') <> 'BANK CHARGE' AND
51628 NVL(p_source_39,'
51629 ') <> 'BANK ERROR'
51630 THEN
51631
51632 --
51633 XLA_AE_LINES_PKG.SetNewLine;
51634
51635 p_balance_type_code := l_balance_type_code;
51636 -- set the flag so later we will know whether the gain loss line needs to be created
51637
51638 IF(l_balance_type_code = 'A' ) THEN
51639 p_actual_flag :='G';
51640 END IF;
51641
51642 --
51643 -- bulk performance
51644 --
51645 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51646 p_header_num => 0); -- 4262811
51647 --
51651 p_natural_side_code => 'G'
51648 -- set accounting line options
51649 --
51650 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51652 , p_gain_or_loss_flag => 'N'
51653 , p_gl_transfer_mode_code => 'S'
51654 , p_acct_entry_type_code => 'A'
51655 , p_switch_side_flag => ''
51656 , p_merge_duplicate_code => 'A'
51657 );
51658 --
51659 l_acc_rev_natural_side_code := 'C'; -- 4262811
51660 --
51661 --
51662 -- set accounting line type info
51663 --
51664 xla_ae_lines_pkg.SetAcctLineType
51665 (p_component_type => l_component_type
51666 ,p_event_type_code => l_event_type_code
51667 ,p_line_definition_owner_code => l_line_definition_owner_code
51668 ,p_line_definition_code => l_line_definition_code
51669 ,p_accounting_line_code => l_component_code
51670 ,p_accounting_line_type_code => l_component_type_code
51671 ,p_accounting_line_appl_id => l_component_appl_id
51672 ,p_amb_context_code => l_amb_context_code
51673 ,p_entity_code => l_entity_code
51674 ,p_event_class_code => l_event_class_code);
51675 --
51676 -- set accounting class
51677 --
51678 xla_ae_lines_pkg.SetAcctClass(
51679 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
51680 , p_ae_header_id => l_ae_header_id
51681 );
51682
51683 --
51684 -- set rounding class
51685 --
51686 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51687 'EXCHANGE_GAIN_LOSS';
51688
51689 --
51690 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51691 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51692 --
51693 -- bulk performance
51694 --
51695 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51696
51697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51698 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51699
51700 -- 4955764
51701 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51702 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51703
51704 -- 4458381 Public Sector Enh
51705
51706 --
51707 -- set accounting attributes for the line type
51708 --
51709 l_entered_amt_idx := NULL;
51710 l_accted_amt_idx := 10;
51711 l_bflow_applied_to_amt_idx := 2; -- 5132302
51712 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51713 l_rec_acct_attrs.array_char_value(1) := p_source_40;
51714 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
51715 l_rec_acct_attrs.array_num_value(2) := p_source_41;
51716 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
51717 l_rec_acct_attrs.array_num_value(3) := p_source_42;
51718 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51719 l_rec_acct_attrs.array_char_value(4) := p_source_43;
51720 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
51721 l_rec_acct_attrs.array_char_value(5) := p_source_44;
51722 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
51723 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
51724 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51725 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
51726 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
51727 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
51728 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
51729 l_rec_acct_attrs.array_char_value(9) := p_source_48;
51730 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
51731 l_rec_acct_attrs.array_num_value(10) := p_source_127;
51732 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
51733 l_rec_acct_attrs.array_char_value(11) := p_source_53;
51734 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
51735 l_rec_acct_attrs.array_num_value(12) := p_source_54;
51736 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
51737 l_rec_acct_attrs.array_num_value(13) := p_source_55;
51738 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
51739 l_rec_acct_attrs.array_char_value(14) := p_source_56;
51740 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
51741 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
51742 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
51743 l_rec_acct_attrs.array_char_value(16) := p_source_48;
51744 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
51745 l_rec_acct_attrs.array_num_value(17) := p_source_58;
51746 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
51747 l_rec_acct_attrs.array_num_value(18) := p_source_58;
51748 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
51749 l_rec_acct_attrs.array_num_value(19) := p_source_59;
51750
51751 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51755 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51752 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51753
51754 ---------------------------------------------------------------------------------------------------------------
51756 ---------------------------------------------------------------------------------------------------------------
51757 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51758
51759 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51760 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51761
51762 IF xla_accounting_cache_pkg.GetValueChar
51763 (p_source_code => 'LEDGER_CATEGORY_CODE'
51764 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51765 AND l_bflow_method_code = 'PRIOR_ENTRY'
51766 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51767 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51768 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51769 )
51770 THEN
51771 xla_ae_lines_pkg.BflowUpgEntry
51772 (p_business_method_code => l_bflow_method_code
51773 ,p_business_class_code => l_bflow_class_code
51774 ,p_balance_type => l_balance_type_code);
51775 ELSE
51776 NULL;
51777 -- No business flow processing for business flow method of NONE.
51778 END IF;
51779
51780 --
51781 -- call analytical criteria
51782 --
51783
51784 --
51785 -- call description
51786 --
51787 -- No description or it is inherited.
51788 --
51789 -- call ADRs
51790 -- Bug 4922099
51791 --
51792 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51793 (NVL(l_actual_upg_option, 'N') = 'O') OR
51794 (NVL(l_enc_upg_option, 'N') = 'O')
51795 )
51796 THEN
51797 NULL;
51798 --
51799 --
51800
51801 l_ccid := AcctDerRule_31(
51802 p_application_id => p_application_id
51803 , p_ae_header_id => l_ae_header_id
51804 , p_source_4 => p_source_4
51805 , p_source_4_meaning => p_source_4_meaning
51806 , p_source_17 => p_source_17
51807 , p_source_32 => p_source_32
51808 , p_source_33 => p_source_33
51809 , x_transaction_coa_id => l_adr_transaction_coa_id
51810 , x_accounting_coa_id => l_adr_accounting_coa_id
51811 , x_value_type_code => l_adr_value_type_code
51812 , p_side => 'CREDIT'
51813 );
51814
51815 xla_ae_lines_pkg.set_ccid(
51816 p_code_combination_id => l_ccid
51817 , p_value_type_code => l_adr_value_type_code
51818 , p_transaction_coa_id => l_adr_transaction_coa_id
51819 , p_accounting_coa_id => l_adr_accounting_coa_id
51820 , p_adr_code => 'AP_REAL_GAIN'
51821 , p_adr_type_code => 'S'
51822 , p_component_type => l_component_type
51823 , p_component_code => l_component_code
51824 , p_component_type_code => l_component_type_code
51825 , p_component_appl_id => l_component_appl_id
51826 , p_amb_context_code => l_amb_context_code
51827 , p_side => 'CREDIT'
51828 );
51829
51830
51831 l_ccid := AcctDerRule_32(
51832 p_application_id => p_application_id
51833 , p_ae_header_id => l_ae_header_id
51834 , p_source_4 => p_source_4
51835 , p_source_4_meaning => p_source_4_meaning
51836 , p_source_17 => p_source_17
51837 , p_source_34 => p_source_34
51838 , p_source_35 => p_source_35
51839 , x_transaction_coa_id => l_adr_transaction_coa_id
51840 , x_accounting_coa_id => l_adr_accounting_coa_id
51841 , x_value_type_code => l_adr_value_type_code
51842 , p_side => 'DEBIT'
51843 );
51844
51845 xla_ae_lines_pkg.set_ccid(
51846 p_code_combination_id => l_ccid
51847 , p_value_type_code => l_adr_value_type_code
51848 , p_transaction_coa_id => l_adr_transaction_coa_id
51849 , p_accounting_coa_id => l_adr_accounting_coa_id
51850 , p_adr_code => 'AP_REAL_LOSS'
51851 , p_adr_type_code => 'S'
51852 , p_component_type => l_component_type
51853 , p_component_code => l_component_code
51854 , p_component_type_code => l_component_type_code
51855 , p_component_appl_id => l_component_appl_id
51856 , p_amb_context_code => l_amb_context_code
51857 , p_side => 'DEBIT'
51858 );
51859
51860
51861 --
51862 --
51863 END IF;
51864 --
51865 -- Bug 4922099
51866 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51867 (NVL(l_enc_upg_option, 'N') = 'O')
51868 ) AND
51869 (l_bflow_method_code = 'PRIOR_ENTRY')
51870 )
51871 THEN
51872 IF
51873 --
51874 1 = 2
51875 --
51876 THEN
51877 xla_accounting_err_pkg.build_message
51881 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51878 (p_appli_s_name => 'XLA'
51879 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51880 ,p_token_1 => 'LINE_NUMBER'
51882 ,p_token_2 => 'LINE_TYPE_NAME'
51883 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51884 l_component_type
51885 ,l_component_code
51886 ,l_component_type_code
51887 ,l_component_appl_id
51888 ,l_amb_context_code
51889 ,l_entity_code
51890 ,l_event_class_code
51891 )
51892 ,p_token_3 => 'OWNER'
51893 ,p_value_3 => xla_lookups_pkg.get_meaning(
51894 p_lookup_type => 'XLA_OWNER_TYPE'
51895 ,p_lookup_code => l_component_type_code
51896 )
51897 ,p_token_4 => 'PRODUCT_NAME'
51898 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51899 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51900 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51901 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51902 ,p_ae_header_id => NULL
51903 );
51904
51905 IF (C_LEVEL_ERROR>= g_log_level) THEN
51906 trace
51907 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51908 ,p_level => C_LEVEL_ERROR
51909 ,p_module => l_log_module);
51910 END IF;
51911 END IF;
51912 END IF;
51913 --
51914 --
51915 ------------------------------------------------------------------------------------------------
51916 -- 4219869 Business Flow
51917 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51918 -- Prior Entry. Currently, the following code is always generated.
51919 ------------------------------------------------------------------------------------------------
51920 XLA_AE_LINES_PKG.ValidateCurrentLine;
51921
51922 ------------------------------------------------------------------------------------
51923 -- 4219869 Business Flow
51924 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51925 ------------------------------------------------------------------------------------
51926 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51927
51928 ----------------------------------------------------------------------------------
51929 -- 4219869 Business Flow
51930 -- Update journal entry status -- Need to generate this within IF <condition>
51931 ----------------------------------------------------------------------------------
51932 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51933 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51934 ,p_balance_type_code => l_balance_type_code
51935 );
51936
51937 -------------------------------------------------------------------------------------------
51938 -- 4262811 - Generate the Accrual Reversal lines
51939 -------------------------------------------------------------------------------------------
51940 BEGIN
51941 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51942 (g_array_event(p_event_id).array_value_num('header_index'));
51943 IF l_acc_rev_flag IS NULL THEN
51944 l_acc_rev_flag := 'N';
51945 END IF;
51946 EXCEPTION
51947 WHEN OTHERS THEN
51948 l_acc_rev_flag := 'N';
51949 END;
51950 --
51951 IF (l_acc_rev_flag = 'Y') THEN
51952
51953 -- 4645092 ------------------------------------------------------------------------------
51954 -- To allow MPA report to determine if it should generate report process
51955 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51956 ------------------------------------------------------------------------------------------
51957
51958 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51959 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51960 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51961 -- call ADRs
51962 -- Bug 4922099
51963 --
51964 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51965 (NVL(l_actual_upg_option, 'N') = 'O') OR
51966 (NVL(l_enc_upg_option, 'N') = 'O')
51967 )
51968 THEN
51972
51969 NULL;
51970 --
51971 --
51973 l_ccid := AcctDerRule_31(
51974 p_application_id => p_application_id
51975 , p_ae_header_id => l_ae_header_id
51976 , p_source_4 => p_source_4
51977 , p_source_4_meaning => p_source_4_meaning
51978 , p_source_17 => p_source_17
51979 , p_source_32 => p_source_32
51980 , p_source_33 => p_source_33
51981 , x_transaction_coa_id => l_adr_transaction_coa_id
51982 , x_accounting_coa_id => l_adr_accounting_coa_id
51983 , x_value_type_code => l_adr_value_type_code
51984 , p_side => 'CREDIT'
51985 );
51986
51987 xla_ae_lines_pkg.set_ccid(
51988 p_code_combination_id => l_ccid
51989 , p_value_type_code => l_adr_value_type_code
51990 , p_transaction_coa_id => l_adr_transaction_coa_id
51991 , p_accounting_coa_id => l_adr_accounting_coa_id
51992 , p_adr_code => 'AP_REAL_GAIN'
51993 , p_adr_type_code => 'S'
51994 , p_component_type => l_component_type
51995 , p_component_code => l_component_code
51996 , p_component_type_code => l_component_type_code
51997 , p_component_appl_id => l_component_appl_id
51998 , p_amb_context_code => l_amb_context_code
51999 , p_side => 'CREDIT'
52000 );
52001
52002
52003 l_ccid := AcctDerRule_32(
52004 p_application_id => p_application_id
52005 , p_ae_header_id => l_ae_header_id
52006 , p_source_4 => p_source_4
52007 , p_source_4_meaning => p_source_4_meaning
52008 , p_source_17 => p_source_17
52009 , p_source_34 => p_source_34
52010 , p_source_35 => p_source_35
52011 , x_transaction_coa_id => l_adr_transaction_coa_id
52012 , x_accounting_coa_id => l_adr_accounting_coa_id
52013 , x_value_type_code => l_adr_value_type_code
52014 , p_side => 'DEBIT'
52015 );
52016
52017 xla_ae_lines_pkg.set_ccid(
52018 p_code_combination_id => l_ccid
52019 , p_value_type_code => l_adr_value_type_code
52020 , p_transaction_coa_id => l_adr_transaction_coa_id
52021 , p_accounting_coa_id => l_adr_accounting_coa_id
52022 , p_adr_code => 'AP_REAL_LOSS'
52023 , p_adr_type_code => 'S'
52024 , p_component_type => l_component_type
52025 , p_component_code => l_component_code
52026 , p_component_type_code => l_component_type_code
52027 , p_component_appl_id => l_component_appl_id
52028 , p_amb_context_code => l_amb_context_code
52029 , p_side => 'DEBIT'
52030 );
52031
52032
52033 --
52034 --
52035 END IF;
52036
52037 --
52038 -- Update the line information that should be overwritten
52039 --
52040 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52041 p_header_num => 1);
52042 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52043
52044 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52045
52046 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52047 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52048 END IF;
52049
52050 --
52051 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52052 --
52053 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52054 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52055 ELSE
52056 ---------------------------------------------------------------------------------------------------
52057 -- 4262811a Switch Sign
52058 ---------------------------------------------------------------------------------------------------
52059 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52060 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52061 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52062 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52063 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52064 -- 5132302
52065 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52066 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52067
52068 END IF;
52069
52070 -- 4955764
52071 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52072 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52073
52074
52075 XLA_AE_LINES_PKG.ValidateCurrentLine;
52076 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52077
52078 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52079 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52083
52080 ,p_balance_type_code => l_balance_type_code);
52081
52082 END IF;
52084 -----------------------------------------------------------------------------------------
52085 -- 4262811 Multiperiod Accounting
52086 -----------------------------------------------------------------------------------------
52087 -- No MPA option is assigned.
52088
52089
52090 END IF;
52091 END IF;
52092 --
52093
52094 --
52095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52096 trace
52097 (p_msg => 'END of AcctLineType_102'
52098 ,p_level => C_LEVEL_PROCEDURE
52099 ,p_module => l_log_module);
52100 END IF;
52101 --
52102 EXCEPTION
52103 WHEN xla_exceptions_pkg.application_exception THEN
52104 RAISE;
52105 WHEN OTHERS THEN
52106 xla_exceptions_pkg.raise_message
52107 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_102');
52108 END AcctLineType_102;
52109 --
52110
52111 ---------------------------------------
52112 --
52113 -- PRIVATE FUNCTION
52114 -- AcctLineType_103
52115 --
52116 ---------------------------------------
52117 PROCEDURE AcctLineType_103 (
52118 p_application_id IN NUMBER
52119 ,p_event_id IN NUMBER
52120 ,p_calculate_acctd_flag IN VARCHAR2
52121 ,p_calculate_g_l_flag IN VARCHAR2
52122 ,p_actual_flag IN OUT VARCHAR2
52123 ,p_balance_type_code OUT VARCHAR2
52124 ,p_gain_or_loss_ref OUT VARCHAR2
52125
52126 --Automatic Offsets Value
52127 , p_source_4 IN VARCHAR2
52128 , p_source_4_meaning IN VARCHAR2
52129 --Invoice Distribution Account
52130 , p_source_17 IN NUMBER
52131 --Internal Realized Gain Account
52132 , p_source_32 IN NUMBER
52133 --Bank Gain Account
52134 , p_source_33 IN NUMBER
52135 --Internal Realized Loss Account
52136 , p_source_34 IN NUMBER
52137 --Bank Loss Account
52138 , p_source_35 IN NUMBER
52139 --When to Account for Payment Option
52140 , p_source_38 IN VARCHAR2
52141 --Payment Distribution Type
52142 , p_source_39 IN VARCHAR2
52143 , p_source_39_meaning IN VARCHAR2
52144 --Accounting Reversal Indicator
52145 , p_source_40 IN VARCHAR2
52146 --Business Flow Accounts Payable Application Identifier
52147 , p_source_42 IN NUMBER
52148 --Business Flow Payment Distribution Type
52149 , p_source_43 IN VARCHAR2
52150 --Business Flow Payment Entity Code
52151 , p_source_44 IN VARCHAR2
52152 --Business Flow Payment Distribution Identifier
52153 , p_source_45 IN NUMBER
52154 --Business Flow Payment Identifier
52155 , p_source_46 IN NUMBER
52156 --Payment Distribution Identifier
52157 , p_source_47 IN NUMBER
52158 --Distribution Link Type
52159 , p_source_48 IN VARCHAR2
52160 --Override Accounted Amount Indicator
52161 , p_source_53 IN VARCHAR2
52162 , p_source_53_meaning IN VARCHAR2
52163 --Payment Supplier Identifier
52164 , p_source_54 IN NUMBER
52165 --Payment Supplier Site Identifier
52166 , p_source_55 IN NUMBER
52167 --Third Party Type
52168 , p_source_56 IN VARCHAR2
52169 --Payment Distribution Reversed Identifier
52170 , p_source_57 IN NUMBER
52171 --Payment Maturity Date
52172 , p_source_111 IN DATE
52173 --Payment/Maturity Ledger Amount Difference
52174 , p_source_128 IN NUMBER
52175 )
52176 IS
52177
52178 l_component_type VARCHAR2(80);
52179 l_component_code VARCHAR2(30);
52180 l_component_type_code VARCHAR2(1);
52181 l_component_appl_id INTEGER;
52182 l_amb_context_code VARCHAR2(30);
52183 l_entity_code VARCHAR2(30);
52184 l_event_class_code VARCHAR2(30);
52185 l_ae_header_id NUMBER;
52186 l_event_type_code VARCHAR2(30);
52187 l_line_definition_code VARCHAR2(30);
52188 l_line_definition_owner_code VARCHAR2(1);
52189 --
52190 -- adr variables
52191 l_segment VARCHAR2(30);
52192 l_ccid NUMBER;
52193 l_adr_transaction_coa_id NUMBER;
52194 l_adr_accounting_coa_id NUMBER;
52195 l_adr_flexfield_segment_code VARCHAR2(30);
52196 l_adr_flex_value_set_id NUMBER;
52197 l_adr_value_type_code VARCHAR2(30);
52198 l_adr_value_combination_id NUMBER;
52199 l_adr_value_segment_code VARCHAR2(30);
52200
52201 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52202 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52203 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52204 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52205
52206 -- 4262811 Variables ------------------------------------------------------------------------------------------
52207 l_entered_amt_idx NUMBER;
52208 l_accted_amt_idx NUMBER;
52209 l_acc_rev_flag VARCHAR2(1);
52210 l_accrual_line_num NUMBER;
52211 l_tmp_amt NUMBER;
52212 l_acc_rev_natural_side_code VARCHAR2(1);
52213
52214 l_num_entries NUMBER;
52215 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52216 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52217 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52221
52218 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52219 l_recog_line_1 NUMBER;
52220 l_recog_line_2 NUMBER;
52222 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52223 l_bflow_applied_to_amt NUMBER; -- 5132302
52224 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52225
52226 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52227
52228 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52229 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52230
52231 ---------------------------------------------------------------------------------------------------------------
52232
52233
52234 --
52235 -- bulk performance
52236 --
52237 l_balance_type_code VARCHAR2(1);
52238 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52239 l_log_module VARCHAR2(240);
52240
52241 --
52242 -- Upgrade strategy
52243 --
52244 l_actual_upg_option VARCHAR2(1);
52245 l_enc_upg_option VARCHAR2(1);
52246
52247 --
52248 BEGIN
52249 --
52250 IF g_log_enabled THEN
52251 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
52252 END IF;
52253 --
52254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52255
52256 trace
52257 (p_msg => 'BEGIN of AcctLineType_103'
52258 ,p_level => C_LEVEL_PROCEDURE
52259 ,p_module => l_log_module);
52260
52261 END IF;
52262 --
52263 l_component_type := 'AMB_JLT';
52264 l_component_code := 'AP_GAIN_LOSS_PMT_MAT';
52265 l_component_type_code := 'S';
52266 l_component_appl_id := 200;
52267 l_amb_context_code := 'DEFAULT';
52268 l_entity_code := 'AP_PAYMENTS';
52269 l_event_class_code := 'FUTURE DATED PAYMENTS';
52270 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
52271 l_line_definition_owner_code := 'S';
52272 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
52273 --
52274 l_balance_type_code := 'A';
52275 l_segment := NULL;
52276 l_ccid := NULL;
52277 l_adr_transaction_coa_id := NULL;
52278 l_adr_accounting_coa_id := NULL;
52279 l_adr_flexfield_segment_code := NULL;
52280 l_adr_flex_value_set_id := NULL;
52281 l_adr_value_type_code := NULL;
52282 l_adr_value_combination_id := NULL;
52283 l_adr_value_segment_code := NULL;
52284
52285 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52286 l_bflow_class_code := ''; -- 4219869 Business Flow
52287 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52288 l_budgetary_control_flag := 'N';
52289
52290 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52291 l_bflow_applied_to_amt := NULL; -- 5132302
52292 l_entered_amt_idx := NULL; -- 4262811
52293 l_accted_amt_idx := NULL; -- 4262811
52294 l_acc_rev_flag := NULL; -- 4262811
52295 l_accrual_line_num := NULL; -- 4262811
52296 l_tmp_amt := NULL; -- 4262811
52297 --
52298 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52299 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
52300 return;
52301 END IF;
52302
52303 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52304 l_balance_type_code <> 'B' THEN
52305 IF (NVL(p_source_38,'
52306 ') = 'ALWAYS_ALWAYS' OR
52307 NVL(p_source_38,'
52308 ') = 'ALWAYS_ISSUE') AND
52309 p_source_111 IS NOT NULL AND
52310 NVL(p_source_39,'
52311 ') <> 'EXCHANGE RATE VARIANCE' AND
52312 NVL(p_source_39,'
52313 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
52314 NVL(p_source_39,'
52315 ') <> 'BANK CHARGE' AND
52316 NVL(p_source_39,'
52317 ') <> 'BANK ERROR'
52318 THEN
52319
52320 --
52321 XLA_AE_LINES_PKG.SetNewLine;
52322
52323 p_balance_type_code := l_balance_type_code;
52324 -- set the flag so later we will know whether the gain loss line needs to be created
52325
52326 IF(l_balance_type_code = 'A' ) THEN
52327 p_actual_flag :='G';
52328 END IF;
52329
52330 --
52331 -- bulk performance
52332 --
52333 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52334 p_header_num => 0); -- 4262811
52335 --
52336 -- set accounting line options
52337 --
52338 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52339 p_natural_side_code => 'G'
52340 , p_gain_or_loss_flag => 'N'
52341 , p_gl_transfer_mode_code => 'S'
52342 , p_acct_entry_type_code => 'A'
52343 , p_switch_side_flag => ''
52344 , p_merge_duplicate_code => 'A'
52345 );
52346 --
52347 l_acc_rev_natural_side_code := 'C'; -- 4262811
52348 --
52349 --
52350 -- set accounting line type info
52351 --
52355 ,p_line_definition_owner_code => l_line_definition_owner_code
52352 xla_ae_lines_pkg.SetAcctLineType
52353 (p_component_type => l_component_type
52354 ,p_event_type_code => l_event_type_code
52356 ,p_line_definition_code => l_line_definition_code
52357 ,p_accounting_line_code => l_component_code
52358 ,p_accounting_line_type_code => l_component_type_code
52359 ,p_accounting_line_appl_id => l_component_appl_id
52360 ,p_amb_context_code => l_amb_context_code
52361 ,p_entity_code => l_entity_code
52362 ,p_event_class_code => l_event_class_code);
52363 --
52364 -- set accounting class
52365 --
52366 xla_ae_lines_pkg.SetAcctClass(
52367 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
52368 , p_ae_header_id => l_ae_header_id
52369 );
52370
52371 --
52372 -- set rounding class
52373 --
52374 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52375 'EXCHANGE_GAIN_LOSS';
52376
52377 --
52378 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52379 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52380 --
52381 -- bulk performance
52382 --
52383 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52384
52385 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52386 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52387
52388 -- 4955764
52389 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52390 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52391
52392 -- 4458381 Public Sector Enh
52393
52394 --
52395 -- set accounting attributes for the line type
52396 --
52397 l_entered_amt_idx := NULL;
52398 l_accted_amt_idx := 9;
52399 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52400 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52401 l_rec_acct_attrs.array_char_value(1) := p_source_40;
52402 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
52403 l_rec_acct_attrs.array_num_value(2) := p_source_42;
52404 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52405 l_rec_acct_attrs.array_char_value(3) := p_source_43;
52406 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
52407 l_rec_acct_attrs.array_char_value(4) := p_source_44;
52408 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
52409 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
52410 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52411 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
52412 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
52413 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
52414 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
52415 l_rec_acct_attrs.array_char_value(8) := p_source_48;
52416 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
52417 l_rec_acct_attrs.array_num_value(9) := p_source_128;
52418 l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
52419 l_rec_acct_attrs.array_char_value(10) := p_source_53;
52420 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
52421 l_rec_acct_attrs.array_num_value(11) := p_source_54;
52422 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
52423 l_rec_acct_attrs.array_num_value(12) := p_source_55;
52424 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
52425 l_rec_acct_attrs.array_char_value(13) := p_source_56;
52426 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
52427 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
52428 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
52429 l_rec_acct_attrs.array_char_value(15) := p_source_48;
52430
52431 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52432 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52433
52434 ---------------------------------------------------------------------------------------------------------------
52435 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52436 ---------------------------------------------------------------------------------------------------------------
52437 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52438
52439 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52440 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52441
52442 IF xla_accounting_cache_pkg.GetValueChar
52443 (p_source_code => 'LEDGER_CATEGORY_CODE'
52444 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52445 AND l_bflow_method_code = 'PRIOR_ENTRY'
52446 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52447 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52451 xla_ae_lines_pkg.BflowUpgEntry
52448 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52449 )
52450 THEN
52452 (p_business_method_code => l_bflow_method_code
52453 ,p_business_class_code => l_bflow_class_code
52454 ,p_balance_type => l_balance_type_code);
52455 ELSE
52456 NULL;
52457 -- No business flow processing for business flow method of NONE.
52458 END IF;
52459
52460 --
52461 -- call analytical criteria
52462 --
52463
52464 --
52465 -- call description
52466 --
52467 -- No description or it is inherited.
52468 --
52469 -- call ADRs
52470 -- Bug 4922099
52471 --
52472 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52473 (NVL(l_actual_upg_option, 'N') = 'O') OR
52474 (NVL(l_enc_upg_option, 'N') = 'O')
52475 )
52476 THEN
52477 NULL;
52478 --
52479 --
52480
52481 l_ccid := AcctDerRule_31(
52482 p_application_id => p_application_id
52483 , p_ae_header_id => l_ae_header_id
52484 , p_source_4 => p_source_4
52485 , p_source_4_meaning => p_source_4_meaning
52486 , p_source_17 => p_source_17
52487 , p_source_32 => p_source_32
52488 , p_source_33 => p_source_33
52489 , x_transaction_coa_id => l_adr_transaction_coa_id
52490 , x_accounting_coa_id => l_adr_accounting_coa_id
52491 , x_value_type_code => l_adr_value_type_code
52492 , p_side => 'CREDIT'
52493 );
52494
52495 xla_ae_lines_pkg.set_ccid(
52496 p_code_combination_id => l_ccid
52497 , p_value_type_code => l_adr_value_type_code
52498 , p_transaction_coa_id => l_adr_transaction_coa_id
52499 , p_accounting_coa_id => l_adr_accounting_coa_id
52500 , p_adr_code => 'AP_REAL_GAIN'
52501 , p_adr_type_code => 'S'
52502 , p_component_type => l_component_type
52503 , p_component_code => l_component_code
52504 , p_component_type_code => l_component_type_code
52505 , p_component_appl_id => l_component_appl_id
52506 , p_amb_context_code => l_amb_context_code
52507 , p_side => 'CREDIT'
52508 );
52509
52510
52511 l_ccid := AcctDerRule_32(
52512 p_application_id => p_application_id
52513 , p_ae_header_id => l_ae_header_id
52514 , p_source_4 => p_source_4
52515 , p_source_4_meaning => p_source_4_meaning
52516 , p_source_17 => p_source_17
52517 , p_source_34 => p_source_34
52518 , p_source_35 => p_source_35
52519 , x_transaction_coa_id => l_adr_transaction_coa_id
52520 , x_accounting_coa_id => l_adr_accounting_coa_id
52521 , x_value_type_code => l_adr_value_type_code
52522 , p_side => 'DEBIT'
52523 );
52524
52525 xla_ae_lines_pkg.set_ccid(
52526 p_code_combination_id => l_ccid
52527 , p_value_type_code => l_adr_value_type_code
52528 , p_transaction_coa_id => l_adr_transaction_coa_id
52529 , p_accounting_coa_id => l_adr_accounting_coa_id
52530 , p_adr_code => 'AP_REAL_LOSS'
52531 , p_adr_type_code => 'S'
52532 , p_component_type => l_component_type
52533 , p_component_code => l_component_code
52534 , p_component_type_code => l_component_type_code
52535 , p_component_appl_id => l_component_appl_id
52536 , p_amb_context_code => l_amb_context_code
52537 , p_side => 'DEBIT'
52538 );
52539
52540
52541 --
52542 --
52543 END IF;
52544 --
52545 -- Bug 4922099
52546 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52547 (NVL(l_enc_upg_option, 'N') = 'O')
52548 ) AND
52549 (l_bflow_method_code = 'PRIOR_ENTRY')
52550 )
52551 THEN
52552 IF
52553 --
52554 1 = 2
52555 --
52556 THEN
52557 xla_accounting_err_pkg.build_message
52558 (p_appli_s_name => 'XLA'
52559 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52560 ,p_token_1 => 'LINE_NUMBER'
52561 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52562 ,p_token_2 => 'LINE_TYPE_NAME'
52563 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52564 l_component_type
52565 ,l_component_code
52566 ,l_component_type_code
52567 ,l_component_appl_id
52568 ,l_amb_context_code
52569 ,l_entity_code
52570 ,l_event_class_code
52574 p_lookup_type => 'XLA_OWNER_TYPE'
52571 )
52572 ,p_token_3 => 'OWNER'
52573 ,p_value_3 => xla_lookups_pkg.get_meaning(
52575 ,p_lookup_code => l_component_type_code
52576 )
52577 ,p_token_4 => 'PRODUCT_NAME'
52578 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52579 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52580 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52581 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52582 ,p_ae_header_id => NULL
52583 );
52584
52585 IF (C_LEVEL_ERROR>= g_log_level) THEN
52586 trace
52587 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52588 ,p_level => C_LEVEL_ERROR
52589 ,p_module => l_log_module);
52590 END IF;
52591 END IF;
52592 END IF;
52593 --
52594 --
52595 ------------------------------------------------------------------------------------------------
52596 -- 4219869 Business Flow
52597 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52598 -- Prior Entry. Currently, the following code is always generated.
52599 ------------------------------------------------------------------------------------------------
52600 XLA_AE_LINES_PKG.ValidateCurrentLine;
52601
52602 ------------------------------------------------------------------------------------
52603 -- 4219869 Business Flow
52604 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52605 ------------------------------------------------------------------------------------
52606 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52607
52608 ----------------------------------------------------------------------------------
52609 -- 4219869 Business Flow
52610 -- Update journal entry status -- Need to generate this within IF <condition>
52611 ----------------------------------------------------------------------------------
52612 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52613 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52614 ,p_balance_type_code => l_balance_type_code
52615 );
52616
52617 -------------------------------------------------------------------------------------------
52618 -- 4262811 - Generate the Accrual Reversal lines
52619 -------------------------------------------------------------------------------------------
52620 BEGIN
52621 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52622 (g_array_event(p_event_id).array_value_num('header_index'));
52623 IF l_acc_rev_flag IS NULL THEN
52624 l_acc_rev_flag := 'N';
52625 END IF;
52626 EXCEPTION
52627 WHEN OTHERS THEN
52628 l_acc_rev_flag := 'N';
52629 END;
52630 --
52631 IF (l_acc_rev_flag = 'Y') THEN
52632
52633 -- 4645092 ------------------------------------------------------------------------------
52634 -- To allow MPA report to determine if it should generate report process
52635 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52636 ------------------------------------------------------------------------------------------
52637
52638 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52639 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52640 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
52641 -- call ADRs
52642 -- Bug 4922099
52643 --
52644 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52645 (NVL(l_actual_upg_option, 'N') = 'O') OR
52646 (NVL(l_enc_upg_option, 'N') = 'O')
52647 )
52648 THEN
52649 NULL;
52650 --
52651 --
52652
52653 l_ccid := AcctDerRule_31(
52654 p_application_id => p_application_id
52655 , p_ae_header_id => l_ae_header_id
52656 , p_source_4 => p_source_4
52657 , p_source_4_meaning => p_source_4_meaning
52658 , p_source_17 => p_source_17
52659 , p_source_32 => p_source_32
52660 , p_source_33 => p_source_33
52661 , x_transaction_coa_id => l_adr_transaction_coa_id
52662 , x_accounting_coa_id => l_adr_accounting_coa_id
52663 , x_value_type_code => l_adr_value_type_code
52664 , p_side => 'CREDIT'
52665 );
52666
52667 xla_ae_lines_pkg.set_ccid(
52668 p_code_combination_id => l_ccid
52669 , p_value_type_code => l_adr_value_type_code
52670 , p_transaction_coa_id => l_adr_transaction_coa_id
52671 , p_accounting_coa_id => l_adr_accounting_coa_id
52672 , p_adr_code => 'AP_REAL_GAIN'
52673 , p_adr_type_code => 'S'
52674 , p_component_type => l_component_type
52678 , p_amb_context_code => l_amb_context_code
52675 , p_component_code => l_component_code
52676 , p_component_type_code => l_component_type_code
52677 , p_component_appl_id => l_component_appl_id
52679 , p_side => 'CREDIT'
52680 );
52681
52682
52683 l_ccid := AcctDerRule_32(
52684 p_application_id => p_application_id
52685 , p_ae_header_id => l_ae_header_id
52686 , p_source_4 => p_source_4
52687 , p_source_4_meaning => p_source_4_meaning
52688 , p_source_17 => p_source_17
52689 , p_source_34 => p_source_34
52690 , p_source_35 => p_source_35
52691 , x_transaction_coa_id => l_adr_transaction_coa_id
52692 , x_accounting_coa_id => l_adr_accounting_coa_id
52693 , x_value_type_code => l_adr_value_type_code
52694 , p_side => 'DEBIT'
52695 );
52696
52697 xla_ae_lines_pkg.set_ccid(
52698 p_code_combination_id => l_ccid
52699 , p_value_type_code => l_adr_value_type_code
52700 , p_transaction_coa_id => l_adr_transaction_coa_id
52701 , p_accounting_coa_id => l_adr_accounting_coa_id
52702 , p_adr_code => 'AP_REAL_LOSS'
52703 , p_adr_type_code => 'S'
52704 , p_component_type => l_component_type
52705 , p_component_code => l_component_code
52706 , p_component_type_code => l_component_type_code
52707 , p_component_appl_id => l_component_appl_id
52708 , p_amb_context_code => l_amb_context_code
52709 , p_side => 'DEBIT'
52710 );
52711
52712
52713 --
52714 --
52715 END IF;
52716
52717 --
52718 -- Update the line information that should be overwritten
52719 --
52720 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52721 p_header_num => 1);
52722 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52723
52724 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52725
52726 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52727 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52728 END IF;
52729
52730 --
52731 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52732 --
52733 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52734 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52735 ELSE
52736 ---------------------------------------------------------------------------------------------------
52737 -- 4262811a Switch Sign
52738 ---------------------------------------------------------------------------------------------------
52739 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52740 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52741 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52742 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52743 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52744 -- 5132302
52745 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52746 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52747
52748 END IF;
52749
52750 -- 4955764
52751 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52752 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52753
52754
52755 XLA_AE_LINES_PKG.ValidateCurrentLine;
52756 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52757
52758 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52759 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52760 ,p_balance_type_code => l_balance_type_code);
52761
52762 END IF;
52763
52764 -----------------------------------------------------------------------------------------
52765 -- 4262811 Multiperiod Accounting
52766 -----------------------------------------------------------------------------------------
52767 -- No MPA option is assigned.
52768
52769
52770 END IF;
52771 END IF;
52772 --
52773
52774 --
52775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52776 trace
52777 (p_msg => 'END of AcctLineType_103'
52778 ,p_level => C_LEVEL_PROCEDURE
52779 ,p_module => l_log_module);
52780 END IF;
52781 --
52782 EXCEPTION
52783 WHEN xla_exceptions_pkg.application_exception THEN
52784 RAISE;
52785 WHEN OTHERS THEN
52786 xla_exceptions_pkg.raise_message
52787 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_103');
52788 END AcctLineType_103;
52789 --
52790
52791 ---------------------------------------
52792 --
52793 -- PRIVATE FUNCTION
52794 -- AcctLineType_104
52795 --
52799 ,p_event_id IN NUMBER
52796 ---------------------------------------
52797 PROCEDURE AcctLineType_104 (
52798 p_application_id IN NUMBER
52800 ,p_calculate_acctd_flag IN VARCHAR2
52801 ,p_calculate_g_l_flag IN VARCHAR2
52802 ,p_actual_flag IN OUT VARCHAR2
52803 ,p_balance_type_code OUT VARCHAR2
52804 ,p_gain_or_loss_ref OUT VARCHAR2
52805
52806 --Automatic Offsets Value
52807 , p_source_4 IN VARCHAR2
52808 , p_source_4_meaning IN VARCHAR2
52809 --Invoice Distribution Account
52810 , p_source_17 IN NUMBER
52811 --Internal Realized Gain Account
52812 , p_source_32 IN NUMBER
52813 --Bank Gain Account
52814 , p_source_33 IN NUMBER
52815 --When to Account for Payment Option
52816 , p_source_38 IN VARCHAR2
52817 --Payment Distribution Type
52818 , p_source_39 IN VARCHAR2
52819 , p_source_39_meaning IN VARCHAR2
52820 --Accounting Reversal Indicator
52821 , p_source_40 IN VARCHAR2
52822 --Payment Distribution Amount
52823 , p_source_41 IN NUMBER
52824 --Business Flow Accounts Payable Application Identifier
52825 , p_source_42 IN NUMBER
52826 --Business Flow Payment Distribution Type
52827 , p_source_43 IN VARCHAR2
52828 --Business Flow Payment Entity Code
52829 , p_source_44 IN VARCHAR2
52830 --Business Flow Payment Distribution Identifier
52831 , p_source_45 IN NUMBER
52832 --Business Flow Payment Identifier
52833 , p_source_46 IN NUMBER
52834 --Payment Distribution Identifier
52835 , p_source_47 IN NUMBER
52836 --Distribution Link Type
52837 , p_source_48 IN VARCHAR2
52838 --Payment Currency Code
52839 , p_source_49 IN VARCHAR2
52840 --Override Accounted Amount Indicator
52841 , p_source_53 IN VARCHAR2
52842 , p_source_53_meaning IN VARCHAR2
52843 --Payment Supplier Identifier
52844 , p_source_54 IN NUMBER
52845 --Payment Supplier Site Identifier
52846 , p_source_55 IN NUMBER
52847 --Third Party Type
52848 , p_source_56 IN VARCHAR2
52849 --Payment Distribution Reversed Identifier
52850 , p_source_57 IN NUMBER
52851 --Invoice Distribution Tax Line Identifier
52852 , p_source_58 IN NUMBER
52853 --Invoice Distribution Summary Tax Line Identifier
52854 , p_source_59 IN NUMBER
52855 --Cleared Exchange Date
52856 , p_source_107 IN DATE
52857 --Cleared Exchange Rate
52858 , p_source_108 IN NUMBER
52859 --Cleared Exchange Rate Type
52860 , p_source_109 IN VARCHAR2
52861 --Payment Maturity Date
52862 , p_source_111 IN DATE
52863 --Gain or Loss Indicator between Maturity and Clearing
52864 , p_source_129 IN VARCHAR2
52865 --Maturity/Clearing Ledger Amount Difference
52866 , p_source_130 IN NUMBER
52867 )
52868 IS
52869
52870 l_component_type VARCHAR2(80);
52871 l_component_code VARCHAR2(30);
52872 l_component_type_code VARCHAR2(1);
52873 l_component_appl_id INTEGER;
52874 l_amb_context_code VARCHAR2(30);
52875 l_entity_code VARCHAR2(30);
52876 l_event_class_code VARCHAR2(30);
52877 l_ae_header_id NUMBER;
52878 l_event_type_code VARCHAR2(30);
52879 l_line_definition_code VARCHAR2(30);
52880 l_line_definition_owner_code VARCHAR2(1);
52881 --
52882 -- adr variables
52883 l_segment VARCHAR2(30);
52884 l_ccid NUMBER;
52885 l_adr_transaction_coa_id NUMBER;
52886 l_adr_accounting_coa_id NUMBER;
52887 l_adr_flexfield_segment_code VARCHAR2(30);
52888 l_adr_flex_value_set_id NUMBER;
52889 l_adr_value_type_code VARCHAR2(30);
52890 l_adr_value_combination_id NUMBER;
52891 l_adr_value_segment_code VARCHAR2(30);
52892
52893 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52894 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52895 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52896 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52897
52898 -- 4262811 Variables ------------------------------------------------------------------------------------------
52899 l_entered_amt_idx NUMBER;
52900 l_accted_amt_idx NUMBER;
52901 l_acc_rev_flag VARCHAR2(1);
52902 l_accrual_line_num NUMBER;
52903 l_tmp_amt NUMBER;
52904 l_acc_rev_natural_side_code VARCHAR2(1);
52905
52906 l_num_entries NUMBER;
52907 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52908 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52909 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52910 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52911 l_recog_line_1 NUMBER;
52912 l_recog_line_2 NUMBER;
52913
52914 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52915 l_bflow_applied_to_amt NUMBER; -- 5132302
52916 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52917
52918 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52919
52920 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52921 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52925
52922
52923 ---------------------------------------------------------------------------------------------------------------
52924
52926 --
52927 -- bulk performance
52928 --
52929 l_balance_type_code VARCHAR2(1);
52930 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52931 l_log_module VARCHAR2(240);
52932
52933 --
52934 -- Upgrade strategy
52935 --
52936 l_actual_upg_option VARCHAR2(1);
52937 l_enc_upg_option VARCHAR2(1);
52938
52939 --
52940 BEGIN
52941 --
52942 IF g_log_enabled THEN
52943 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
52944 END IF;
52945 --
52946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52947
52948 trace
52949 (p_msg => 'BEGIN of AcctLineType_104'
52950 ,p_level => C_LEVEL_PROCEDURE
52951 ,p_module => l_log_module);
52952
52953 END IF;
52954 --
52955 l_component_type := 'AMB_JLT';
52956 l_component_code := 'AP_GAIN_MAT_CLEAR';
52957 l_component_type_code := 'S';
52958 l_component_appl_id := 200;
52959 l_amb_context_code := 'DEFAULT';
52960 l_entity_code := 'AP_PAYMENTS';
52961 l_event_class_code := 'RECONCILED PAYMENTS';
52962 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
52963 l_line_definition_owner_code := 'S';
52964 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
52965 --
52966 l_balance_type_code := 'A';
52967 l_segment := NULL;
52968 l_ccid := NULL;
52969 l_adr_transaction_coa_id := NULL;
52970 l_adr_accounting_coa_id := NULL;
52971 l_adr_flexfield_segment_code := NULL;
52972 l_adr_flex_value_set_id := NULL;
52973 l_adr_value_type_code := NULL;
52974 l_adr_value_combination_id := NULL;
52975 l_adr_value_segment_code := NULL;
52976
52977 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52978 l_bflow_class_code := ''; -- 4219869 Business Flow
52979 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52980 l_budgetary_control_flag := 'N';
52981
52982 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52983 l_bflow_applied_to_amt := NULL; -- 5132302
52984 l_entered_amt_idx := NULL; -- 4262811
52985 l_accted_amt_idx := NULL; -- 4262811
52986 l_acc_rev_flag := NULL; -- 4262811
52987 l_accrual_line_num := NULL; -- 4262811
52988 l_tmp_amt := NULL; -- 4262811
52989 --
52990 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52991 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
52992 return;
52993 END IF;
52994
52995 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52996 l_balance_type_code <> 'B' THEN
52997 IF NVL(p_source_38,'
52998 ') = 'ALWAYS_ALWAYS' AND
52999 p_source_111 IS NOT NULL AND
53000 NVL(p_source_129,'
53001 ') = 'GAIN' AND
53002 NVL(p_source_39,'
53003 ') <> 'EXCHANGE RATE VARIANCE' AND
53004 NVL(p_source_39,'
53005 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
53006 NVL(p_source_39,'
53007 ') <> 'BANK CHARGE' AND
53008 NVL(p_source_39,'
53009 ') <> 'BANK ERROR'
53010 THEN
53011
53012 --
53013 XLA_AE_LINES_PKG.SetNewLine;
53014
53015 p_balance_type_code := l_balance_type_code;
53016 -- set the flag so later we will know whether the gain loss line needs to be created
53017
53018 IF(l_balance_type_code = 'A' ) THEN
53019 p_actual_flag :='G';
53020 END IF;
53021
53022 --
53023 -- bulk performance
53024 --
53025 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53026 p_header_num => 0); -- 4262811
53027 --
53028 -- set accounting line options
53029 --
53030 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53031 p_natural_side_code => 'C'
53032 , p_gain_or_loss_flag => 'Y'
53033 , p_gl_transfer_mode_code => 'S'
53034 , p_acct_entry_type_code => 'A'
53035 , p_switch_side_flag => 'Y'
53036 , p_merge_duplicate_code => 'A'
53037 );
53038 --
53039 l_acc_rev_natural_side_code := 'D'; -- 4262811
53040 --
53041 --
53042 -- set accounting line type info
53043 --
53044 xla_ae_lines_pkg.SetAcctLineType
53045 (p_component_type => l_component_type
53046 ,p_event_type_code => l_event_type_code
53047 ,p_line_definition_owner_code => l_line_definition_owner_code
53048 ,p_line_definition_code => l_line_definition_code
53049 ,p_accounting_line_code => l_component_code
53050 ,p_accounting_line_type_code => l_component_type_code
53051 ,p_accounting_line_appl_id => l_component_appl_id
53052 ,p_amb_context_code => l_amb_context_code
53053 ,p_entity_code => l_entity_code
53054 ,p_event_class_code => l_event_class_code);
53055 --
53056 -- set accounting class
53060 , p_ae_header_id => l_ae_header_id
53057 --
53058 xla_ae_lines_pkg.SetAcctClass(
53059 p_accounting_class_code => 'GAIN'
53061 );
53062
53063 --
53064 -- set rounding class
53065 --
53066 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53067 'GAIN';
53068
53069 --
53070 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53071 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53072 --
53073 -- bulk performance
53074 --
53075 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53076
53077 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53078 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53079
53080 -- 4955764
53081 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53082 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53083
53084 -- 4458381 Public Sector Enh
53085
53086 --
53087 -- set accounting attributes for the line type
53088 --
53089 l_entered_amt_idx := 10;
53090 l_accted_amt_idx := 15;
53091 l_bflow_applied_to_amt_idx := 2; -- 5132302
53092 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53093 l_rec_acct_attrs.array_char_value(1) := p_source_40;
53094 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
53095 l_rec_acct_attrs.array_num_value(2) := p_source_41;
53096 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
53097 l_rec_acct_attrs.array_num_value(3) := p_source_42;
53098 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53099 l_rec_acct_attrs.array_char_value(4) := p_source_43;
53100 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
53101 l_rec_acct_attrs.array_char_value(5) := p_source_44;
53102 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
53103 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
53104 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53105 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
53106 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
53107 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
53108 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
53109 l_rec_acct_attrs.array_char_value(9) := p_source_48;
53110 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
53111 l_rec_acct_attrs.array_num_value(10) := p_source_41;
53112 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
53113 l_rec_acct_attrs.array_char_value(11) := p_source_49;
53114 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
53115 l_rec_acct_attrs.array_date_value(12) := p_source_107;
53116 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
53117 l_rec_acct_attrs.array_num_value(13) := p_source_108;
53118 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
53119 l_rec_acct_attrs.array_char_value(14) := p_source_109;
53120 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
53121 l_rec_acct_attrs.array_num_value(15) := p_source_130;
53122 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
53123 l_rec_acct_attrs.array_char_value(16) := p_source_53;
53124 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
53125 l_rec_acct_attrs.array_num_value(17) := p_source_54;
53126 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
53127 l_rec_acct_attrs.array_num_value(18) := p_source_55;
53128 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
53129 l_rec_acct_attrs.array_char_value(19) := p_source_56;
53130 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
53131 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
53132 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
53133 l_rec_acct_attrs.array_char_value(21) := p_source_48;
53134 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
53135 l_rec_acct_attrs.array_num_value(22) := p_source_58;
53136 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
53137 l_rec_acct_attrs.array_num_value(23) := p_source_58;
53138 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
53139 l_rec_acct_attrs.array_num_value(24) := p_source_59;
53140
53141 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53142 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53143
53144 ---------------------------------------------------------------------------------------------------------------
53145 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53146 ---------------------------------------------------------------------------------------------------------------
53147 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53148
53149 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53153 (p_source_code => 'LEDGER_CATEGORY_CODE'
53150 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53151
53152 IF xla_accounting_cache_pkg.GetValueChar
53154 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53155 AND l_bflow_method_code = 'PRIOR_ENTRY'
53156 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53157 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53158 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53159 )
53160 THEN
53161 xla_ae_lines_pkg.BflowUpgEntry
53162 (p_business_method_code => l_bflow_method_code
53163 ,p_business_class_code => l_bflow_class_code
53164 ,p_balance_type => l_balance_type_code);
53165 ELSE
53166 NULL;
53167 -- No business flow processing for business flow method of NONE.
53168 END IF;
53169
53170 --
53171 -- call analytical criteria
53172 --
53173
53174 --
53175 -- call description
53176 --
53177 -- No description or it is inherited.
53178 --
53179 -- call ADRs
53180 -- Bug 4922099
53181 --
53182 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53183 (NVL(l_actual_upg_option, 'N') = 'O') OR
53184 (NVL(l_enc_upg_option, 'N') = 'O')
53185 )
53186 THEN
53187 NULL;
53188 --
53189 --
53190
53191 l_ccid := AcctDerRule_31(
53192 p_application_id => p_application_id
53193 , p_ae_header_id => l_ae_header_id
53194 , p_source_4 => p_source_4
53195 , p_source_4_meaning => p_source_4_meaning
53196 , p_source_17 => p_source_17
53197 , p_source_32 => p_source_32
53198 , p_source_33 => p_source_33
53199 , x_transaction_coa_id => l_adr_transaction_coa_id
53200 , x_accounting_coa_id => l_adr_accounting_coa_id
53201 , x_value_type_code => l_adr_value_type_code
53202 , p_side => 'NA'
53203 );
53204
53205 xla_ae_lines_pkg.set_ccid(
53206 p_code_combination_id => l_ccid
53207 , p_value_type_code => l_adr_value_type_code
53208 , p_transaction_coa_id => l_adr_transaction_coa_id
53209 , p_accounting_coa_id => l_adr_accounting_coa_id
53210 , p_adr_code => 'AP_REAL_GAIN'
53211 , p_adr_type_code => 'S'
53212 , p_component_type => l_component_type
53213 , p_component_code => l_component_code
53214 , p_component_type_code => l_component_type_code
53215 , p_component_appl_id => l_component_appl_id
53216 , p_amb_context_code => l_amb_context_code
53217 , p_side => 'NA'
53218 );
53219
53220
53221 --
53222 --
53223 END IF;
53224 --
53225 -- Bug 4922099
53226 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53227 (NVL(l_enc_upg_option, 'N') = 'O')
53228 ) AND
53229 (l_bflow_method_code = 'PRIOR_ENTRY')
53230 )
53231 THEN
53232 IF
53233 --
53234 1 = 2
53235 --
53236 THEN
53237 xla_accounting_err_pkg.build_message
53238 (p_appli_s_name => 'XLA'
53239 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53240 ,p_token_1 => 'LINE_NUMBER'
53241 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53242 ,p_token_2 => 'LINE_TYPE_NAME'
53243 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53244 l_component_type
53245 ,l_component_code
53246 ,l_component_type_code
53247 ,l_component_appl_id
53248 ,l_amb_context_code
53249 ,l_entity_code
53250 ,l_event_class_code
53251 )
53252 ,p_token_3 => 'OWNER'
53253 ,p_value_3 => xla_lookups_pkg.get_meaning(
53254 p_lookup_type => 'XLA_OWNER_TYPE'
53255 ,p_lookup_code => l_component_type_code
53256 )
53257 ,p_token_4 => 'PRODUCT_NAME'
53258 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53259 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53260 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53264
53261 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53262 ,p_ae_header_id => NULL
53263 );
53265 IF (C_LEVEL_ERROR>= g_log_level) THEN
53266 trace
53267 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53268 ,p_level => C_LEVEL_ERROR
53269 ,p_module => l_log_module);
53270 END IF;
53271 END IF;
53272 END IF;
53273 --
53274 --
53275 ------------------------------------------------------------------------------------------------
53276 -- 4219869 Business Flow
53277 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53278 -- Prior Entry. Currently, the following code is always generated.
53279 ------------------------------------------------------------------------------------------------
53280 XLA_AE_LINES_PKG.ValidateCurrentLine;
53281
53282 ------------------------------------------------------------------------------------
53283 -- 4219869 Business Flow
53284 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53285 ------------------------------------------------------------------------------------
53286 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53287
53288 ----------------------------------------------------------------------------------
53289 -- 4219869 Business Flow
53290 -- Update journal entry status -- Need to generate this within IF <condition>
53291 ----------------------------------------------------------------------------------
53292 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53293 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53294 ,p_balance_type_code => l_balance_type_code
53295 );
53296
53297 -------------------------------------------------------------------------------------------
53298 -- 4262811 - Generate the Accrual Reversal lines
53299 -------------------------------------------------------------------------------------------
53300 BEGIN
53301 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53302 (g_array_event(p_event_id).array_value_num('header_index'));
53303 IF l_acc_rev_flag IS NULL THEN
53304 l_acc_rev_flag := 'N';
53305 END IF;
53306 EXCEPTION
53307 WHEN OTHERS THEN
53308 l_acc_rev_flag := 'N';
53309 END;
53310 --
53311 IF (l_acc_rev_flag = 'Y') THEN
53312
53313 -- 4645092 ------------------------------------------------------------------------------
53314 -- To allow MPA report to determine if it should generate report process
53315 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53316 ------------------------------------------------------------------------------------------
53317
53318 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53319 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53320 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53321 -- call ADRs
53322 -- Bug 4922099
53323 --
53324 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53325 (NVL(l_actual_upg_option, 'N') = 'O') OR
53326 (NVL(l_enc_upg_option, 'N') = 'O')
53327 )
53328 THEN
53329 NULL;
53330 --
53331 --
53332
53333 l_ccid := AcctDerRule_31(
53334 p_application_id => p_application_id
53335 , p_ae_header_id => l_ae_header_id
53336 , p_source_4 => p_source_4
53337 , p_source_4_meaning => p_source_4_meaning
53338 , p_source_17 => p_source_17
53339 , p_source_32 => p_source_32
53340 , p_source_33 => p_source_33
53341 , x_transaction_coa_id => l_adr_transaction_coa_id
53342 , x_accounting_coa_id => l_adr_accounting_coa_id
53343 , x_value_type_code => l_adr_value_type_code
53344 , p_side => 'NA'
53345 );
53346
53347 xla_ae_lines_pkg.set_ccid(
53348 p_code_combination_id => l_ccid
53349 , p_value_type_code => l_adr_value_type_code
53350 , p_transaction_coa_id => l_adr_transaction_coa_id
53351 , p_accounting_coa_id => l_adr_accounting_coa_id
53352 , p_adr_code => 'AP_REAL_GAIN'
53353 , p_adr_type_code => 'S'
53354 , p_component_type => l_component_type
53355 , p_component_code => l_component_code
53356 , p_component_type_code => l_component_type_code
53357 , p_component_appl_id => l_component_appl_id
53358 , p_amb_context_code => l_amb_context_code
53359 , p_side => 'NA'
53360 );
53361
53362
53363 --
53364 --
53365 END IF;
53366
53367 --
53368 -- Update the line information that should be overwritten
53369 --
53370 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53371 p_header_num => 1);
53372 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53373
53374 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53375
53376 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53380 --
53377 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53378 END IF;
53379
53381 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53382 --
53383 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53384 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53385 ELSE
53386 ---------------------------------------------------------------------------------------------------
53387 -- 4262811a Switch Sign
53388 ---------------------------------------------------------------------------------------------------
53389 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53390 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53391 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53392 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53393 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53394 -- 5132302
53395 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53396 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53397
53398 END IF;
53399
53400 -- 4955764
53401 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53402 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53403
53404
53405 XLA_AE_LINES_PKG.ValidateCurrentLine;
53406 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53407
53408 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53409 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53410 ,p_balance_type_code => l_balance_type_code);
53411
53412 END IF;
53413
53414 -----------------------------------------------------------------------------------------
53415 -- 4262811 Multiperiod Accounting
53416 -----------------------------------------------------------------------------------------
53417 -- No MPA option is assigned.
53418
53419
53420 END IF;
53421 END IF;
53422 --
53423
53424 --
53425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53426 trace
53427 (p_msg => 'END of AcctLineType_104'
53428 ,p_level => C_LEVEL_PROCEDURE
53429 ,p_module => l_log_module);
53430 END IF;
53431 --
53432 EXCEPTION
53433 WHEN xla_exceptions_pkg.application_exception THEN
53434 RAISE;
53435 WHEN OTHERS THEN
53436 xla_exceptions_pkg.raise_message
53437 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_104');
53438 END AcctLineType_104;
53439 --
53440
53441 ---------------------------------------
53442 --
53443 -- PRIVATE FUNCTION
53444 -- AcctLineType_105
53445 --
53446 ---------------------------------------
53447 PROCEDURE AcctLineType_105 (
53448 p_application_id IN NUMBER
53449 ,p_event_id IN NUMBER
53450 ,p_calculate_acctd_flag IN VARCHAR2
53451 ,p_calculate_g_l_flag IN VARCHAR2
53452 ,p_actual_flag IN OUT VARCHAR2
53453 ,p_balance_type_code OUT VARCHAR2
53454 ,p_gain_or_loss_ref OUT VARCHAR2
53455
53456 --Automatic Offsets Value
53457 , p_source_4 IN VARCHAR2
53458 , p_source_4_meaning IN VARCHAR2
53459 --Invoice Distribution Account
53460 , p_source_17 IN NUMBER
53461 --Internal Realized Gain Account
53462 , p_source_32 IN NUMBER
53463 --Bank Gain Account
53464 , p_source_33 IN NUMBER
53465 --When to Account for Payment Option
53466 , p_source_38 IN VARCHAR2
53467 --Payment Distribution Type
53468 , p_source_39 IN VARCHAR2
53469 , p_source_39_meaning IN VARCHAR2
53470 --Accounting Reversal Indicator
53471 , p_source_40 IN VARCHAR2
53472 --Payment Distribution Amount
53473 , p_source_41 IN NUMBER
53474 --Business Flow Accounts Payable Application Identifier
53475 , p_source_42 IN NUMBER
53476 --Business Flow Payment Distribution Type
53477 , p_source_43 IN VARCHAR2
53478 --Business Flow Payment Entity Code
53479 , p_source_44 IN VARCHAR2
53480 --Business Flow Payment Distribution Identifier
53481 , p_source_45 IN NUMBER
53482 --Business Flow Payment Identifier
53483 , p_source_46 IN NUMBER
53484 --Payment Distribution Identifier
53485 , p_source_47 IN NUMBER
53486 --Distribution Link Type
53487 , p_source_48 IN VARCHAR2
53488 --Payment Currency Code
53489 , p_source_49 IN VARCHAR2
53490 --Override Accounted Amount Indicator
53491 , p_source_53 IN VARCHAR2
53492 , p_source_53_meaning IN VARCHAR2
53493 --Payment Supplier Identifier
53494 , p_source_54 IN NUMBER
53495 --Payment Supplier Site Identifier
53496 , p_source_55 IN NUMBER
53497 --Third Party Type
53498 , p_source_56 IN VARCHAR2
53499 --Payment Distribution Reversed Identifier
53500 , p_source_57 IN NUMBER
53501 --Invoice Distribution Tax Line Identifier
53505 --Cleared Exchange Date
53502 , p_source_58 IN NUMBER
53503 --Invoice Distribution Summary Tax Line Identifier
53504 , p_source_59 IN NUMBER
53506 , p_source_107 IN DATE
53507 --Cleared Exchange Rate
53508 , p_source_108 IN NUMBER
53509 --Cleared Exchange Rate Type
53510 , p_source_109 IN VARCHAR2
53511 --Payment Maturity Date
53512 , p_source_111 IN DATE
53513 --Gain or Loss Indicator between Payment and Clearing
53514 , p_source_131 IN VARCHAR2
53515 --Payment/Clearing Ledger Amount Difference
53516 , p_source_132 IN NUMBER
53517 )
53518 IS
53519
53520 l_component_type VARCHAR2(80);
53521 l_component_code VARCHAR2(30);
53522 l_component_type_code VARCHAR2(1);
53523 l_component_appl_id INTEGER;
53524 l_amb_context_code VARCHAR2(30);
53525 l_entity_code VARCHAR2(30);
53526 l_event_class_code VARCHAR2(30);
53527 l_ae_header_id NUMBER;
53528 l_event_type_code VARCHAR2(30);
53529 l_line_definition_code VARCHAR2(30);
53530 l_line_definition_owner_code VARCHAR2(1);
53531 --
53532 -- adr variables
53533 l_segment VARCHAR2(30);
53534 l_ccid NUMBER;
53535 l_adr_transaction_coa_id NUMBER;
53536 l_adr_accounting_coa_id NUMBER;
53537 l_adr_flexfield_segment_code VARCHAR2(30);
53538 l_adr_flex_value_set_id NUMBER;
53539 l_adr_value_type_code VARCHAR2(30);
53540 l_adr_value_combination_id NUMBER;
53541 l_adr_value_segment_code VARCHAR2(30);
53542
53543 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53544 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53545 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53546 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53547
53548 -- 4262811 Variables ------------------------------------------------------------------------------------------
53549 l_entered_amt_idx NUMBER;
53550 l_accted_amt_idx NUMBER;
53551 l_acc_rev_flag VARCHAR2(1);
53552 l_accrual_line_num NUMBER;
53553 l_tmp_amt NUMBER;
53554 l_acc_rev_natural_side_code VARCHAR2(1);
53555
53556 l_num_entries NUMBER;
53557 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53558 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53559 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53560 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53561 l_recog_line_1 NUMBER;
53562 l_recog_line_2 NUMBER;
53563
53564 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53565 l_bflow_applied_to_amt NUMBER; -- 5132302
53566 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53567
53568 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53569
53570 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53571 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53572
53573 ---------------------------------------------------------------------------------------------------------------
53574
53575
53576 --
53577 -- bulk performance
53578 --
53579 l_balance_type_code VARCHAR2(1);
53580 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53581 l_log_module VARCHAR2(240);
53582
53583 --
53584 -- Upgrade strategy
53585 --
53586 l_actual_upg_option VARCHAR2(1);
53587 l_enc_upg_option VARCHAR2(1);
53588
53589 --
53590 BEGIN
53591 --
53592 IF g_log_enabled THEN
53593 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
53594 END IF;
53595 --
53596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53597
53598 trace
53599 (p_msg => 'BEGIN of AcctLineType_105'
53600 ,p_level => C_LEVEL_PROCEDURE
53601 ,p_module => l_log_module);
53602
53603 END IF;
53604 --
53605 l_component_type := 'AMB_JLT';
53606 l_component_code := 'AP_GAIN_PMT_CLEAR';
53607 l_component_type_code := 'S';
53608 l_component_appl_id := 200;
53609 l_amb_context_code := 'DEFAULT';
53610 l_entity_code := 'AP_PAYMENTS';
53611 l_event_class_code := 'RECONCILED PAYMENTS';
53612 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
53613 l_line_definition_owner_code := 'S';
53614 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
53615 --
53616 l_balance_type_code := 'A';
53617 l_segment := NULL;
53618 l_ccid := NULL;
53619 l_adr_transaction_coa_id := NULL;
53620 l_adr_accounting_coa_id := NULL;
53621 l_adr_flexfield_segment_code := NULL;
53622 l_adr_flex_value_set_id := NULL;
53623 l_adr_value_type_code := NULL;
53624 l_adr_value_combination_id := NULL;
53625 l_adr_value_segment_code := NULL;
53626
53627 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53628 l_bflow_class_code := ''; -- 4219869 Business Flow
53632 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53629 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53630 l_budgetary_control_flag := 'N';
53631
53633 l_bflow_applied_to_amt := NULL; -- 5132302
53634 l_entered_amt_idx := NULL; -- 4262811
53635 l_accted_amt_idx := NULL; -- 4262811
53636 l_acc_rev_flag := NULL; -- 4262811
53637 l_accrual_line_num := NULL; -- 4262811
53638 l_tmp_amt := NULL; -- 4262811
53639 --
53640 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53641 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
53642 return;
53643 END IF;
53644
53645 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53646 l_balance_type_code <> 'B' THEN
53647 IF NVL(p_source_38,'
53648 ') = 'ALWAYS_ALWAYS' AND
53649 p_source_111 IS NULL AND
53650 NVL(p_source_131,'
53651 ') = 'GAIN' AND
53652 NVL(p_source_39,'
53653 ') <> 'EXCHANGE RATE VARIANCE' AND
53654 NVL(p_source_39,'
53655 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
53656 NVL(p_source_39,'
53657 ') <> 'BANK CHARGE' AND
53658 NVL(p_source_39,'
53659 ') <> 'BANK ERROR' AND
53660 NVL(p_source_39,'
53661 ') <> 'AWT'
53662 THEN
53663
53664 --
53665 XLA_AE_LINES_PKG.SetNewLine;
53666
53667 p_balance_type_code := l_balance_type_code;
53668 -- set the flag so later we will know whether the gain loss line needs to be created
53669
53670 IF(l_balance_type_code = 'A' ) THEN
53671 p_actual_flag :='G';
53672 END IF;
53673
53674 --
53675 -- bulk performance
53676 --
53677 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53678 p_header_num => 0); -- 4262811
53679 --
53680 -- set accounting line options
53681 --
53682 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53683 p_natural_side_code => 'C'
53684 , p_gain_or_loss_flag => 'Y'
53685 , p_gl_transfer_mode_code => 'S'
53686 , p_acct_entry_type_code => 'A'
53687 , p_switch_side_flag => 'Y'
53688 , p_merge_duplicate_code => 'A'
53689 );
53690 --
53691 l_acc_rev_natural_side_code := 'D'; -- 4262811
53692 --
53693 --
53694 -- set accounting line type info
53695 --
53696 xla_ae_lines_pkg.SetAcctLineType
53697 (p_component_type => l_component_type
53698 ,p_event_type_code => l_event_type_code
53699 ,p_line_definition_owner_code => l_line_definition_owner_code
53700 ,p_line_definition_code => l_line_definition_code
53701 ,p_accounting_line_code => l_component_code
53702 ,p_accounting_line_type_code => l_component_type_code
53703 ,p_accounting_line_appl_id => l_component_appl_id
53704 ,p_amb_context_code => l_amb_context_code
53705 ,p_entity_code => l_entity_code
53706 ,p_event_class_code => l_event_class_code);
53707 --
53708 -- set accounting class
53709 --
53710 xla_ae_lines_pkg.SetAcctClass(
53711 p_accounting_class_code => 'GAIN'
53712 , p_ae_header_id => l_ae_header_id
53713 );
53714
53715 --
53716 -- set rounding class
53717 --
53718 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53719 'GAIN';
53720
53721 --
53722 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53723 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53724 --
53725 -- bulk performance
53726 --
53727 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53728
53729 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53730 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53731
53732 -- 4955764
53733 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53734 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53735
53736 -- 4458381 Public Sector Enh
53737
53738 --
53739 -- set accounting attributes for the line type
53740 --
53741 l_entered_amt_idx := 10;
53742 l_accted_amt_idx := 15;
53743 l_bflow_applied_to_amt_idx := 2; -- 5132302
53744 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53745 l_rec_acct_attrs.array_char_value(1) := p_source_40;
53746 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
53747 l_rec_acct_attrs.array_num_value(2) := p_source_41;
53748 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
53749 l_rec_acct_attrs.array_num_value(3) := p_source_42;
53750 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53751 l_rec_acct_attrs.array_char_value(4) := p_source_43;
53755 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
53752 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
53753 l_rec_acct_attrs.array_char_value(5) := p_source_44;
53754 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
53756 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53757 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
53758 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
53759 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
53760 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
53761 l_rec_acct_attrs.array_char_value(9) := p_source_48;
53762 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
53763 l_rec_acct_attrs.array_num_value(10) := p_source_41;
53764 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
53765 l_rec_acct_attrs.array_char_value(11) := p_source_49;
53766 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
53767 l_rec_acct_attrs.array_date_value(12) := p_source_107;
53768 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
53769 l_rec_acct_attrs.array_num_value(13) := p_source_108;
53770 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
53771 l_rec_acct_attrs.array_char_value(14) := p_source_109;
53772 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
53773 l_rec_acct_attrs.array_num_value(15) := p_source_132;
53774 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
53775 l_rec_acct_attrs.array_char_value(16) := p_source_53;
53776 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
53777 l_rec_acct_attrs.array_num_value(17) := p_source_54;
53778 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
53779 l_rec_acct_attrs.array_num_value(18) := p_source_55;
53780 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
53781 l_rec_acct_attrs.array_char_value(19) := p_source_56;
53782 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
53783 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
53784 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
53785 l_rec_acct_attrs.array_char_value(21) := p_source_48;
53786 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
53787 l_rec_acct_attrs.array_num_value(22) := p_source_58;
53788 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
53789 l_rec_acct_attrs.array_num_value(23) := p_source_58;
53790 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
53791 l_rec_acct_attrs.array_num_value(24) := p_source_59;
53792
53793 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53794 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53795
53796 ---------------------------------------------------------------------------------------------------------------
53797 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53798 ---------------------------------------------------------------------------------------------------------------
53799 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53800
53801 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53802 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53803
53804 IF xla_accounting_cache_pkg.GetValueChar
53805 (p_source_code => 'LEDGER_CATEGORY_CODE'
53806 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53807 AND l_bflow_method_code = 'PRIOR_ENTRY'
53808 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53809 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53810 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53811 )
53812 THEN
53813 xla_ae_lines_pkg.BflowUpgEntry
53814 (p_business_method_code => l_bflow_method_code
53815 ,p_business_class_code => l_bflow_class_code
53816 ,p_balance_type => l_balance_type_code);
53817 ELSE
53818 NULL;
53819 -- No business flow processing for business flow method of NONE.
53820 END IF;
53821
53822 --
53823 -- call analytical criteria
53824 --
53825
53826 --
53827 -- call description
53828 --
53829 -- No description or it is inherited.
53830 --
53831 -- call ADRs
53832 -- Bug 4922099
53833 --
53834 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53835 (NVL(l_actual_upg_option, 'N') = 'O') OR
53836 (NVL(l_enc_upg_option, 'N') = 'O')
53837 )
53838 THEN
53839 NULL;
53840 --
53841 --
53842
53843 l_ccid := AcctDerRule_31(
53844 p_application_id => p_application_id
53845 , p_ae_header_id => l_ae_header_id
53846 , p_source_4 => p_source_4
53847 , p_source_4_meaning => p_source_4_meaning
53848 , p_source_17 => p_source_17
53849 , p_source_32 => p_source_32
53850 , p_source_33 => p_source_33
53851 , x_transaction_coa_id => l_adr_transaction_coa_id
53852 , x_accounting_coa_id => l_adr_accounting_coa_id
53853 , x_value_type_code => l_adr_value_type_code
53857 xla_ae_lines_pkg.set_ccid(
53854 , p_side => 'NA'
53855 );
53856
53858 p_code_combination_id => l_ccid
53859 , p_value_type_code => l_adr_value_type_code
53860 , p_transaction_coa_id => l_adr_transaction_coa_id
53861 , p_accounting_coa_id => l_adr_accounting_coa_id
53862 , p_adr_code => 'AP_REAL_GAIN'
53863 , p_adr_type_code => 'S'
53864 , p_component_type => l_component_type
53865 , p_component_code => l_component_code
53866 , p_component_type_code => l_component_type_code
53867 , p_component_appl_id => l_component_appl_id
53868 , p_amb_context_code => l_amb_context_code
53869 , p_side => 'NA'
53870 );
53871
53872
53873 --
53874 --
53875 END IF;
53876 --
53877 -- Bug 4922099
53878 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53879 (NVL(l_enc_upg_option, 'N') = 'O')
53880 ) AND
53881 (l_bflow_method_code = 'PRIOR_ENTRY')
53882 )
53883 THEN
53884 IF
53885 --
53886 1 = 2
53887 --
53888 THEN
53889 xla_accounting_err_pkg.build_message
53890 (p_appli_s_name => 'XLA'
53891 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53892 ,p_token_1 => 'LINE_NUMBER'
53893 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53894 ,p_token_2 => 'LINE_TYPE_NAME'
53895 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53896 l_component_type
53897 ,l_component_code
53898 ,l_component_type_code
53899 ,l_component_appl_id
53900 ,l_amb_context_code
53901 ,l_entity_code
53902 ,l_event_class_code
53903 )
53904 ,p_token_3 => 'OWNER'
53905 ,p_value_3 => xla_lookups_pkg.get_meaning(
53906 p_lookup_type => 'XLA_OWNER_TYPE'
53907 ,p_lookup_code => l_component_type_code
53908 )
53909 ,p_token_4 => 'PRODUCT_NAME'
53910 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53911 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53912 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53913 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53914 ,p_ae_header_id => NULL
53915 );
53916
53917 IF (C_LEVEL_ERROR>= g_log_level) THEN
53918 trace
53919 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53920 ,p_level => C_LEVEL_ERROR
53921 ,p_module => l_log_module);
53922 END IF;
53923 END IF;
53924 END IF;
53925 --
53926 --
53927 ------------------------------------------------------------------------------------------------
53928 -- 4219869 Business Flow
53929 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53930 -- Prior Entry. Currently, the following code is always generated.
53931 ------------------------------------------------------------------------------------------------
53932 XLA_AE_LINES_PKG.ValidateCurrentLine;
53933
53934 ------------------------------------------------------------------------------------
53935 -- 4219869 Business Flow
53936 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53937 ------------------------------------------------------------------------------------
53938 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53939
53940 ----------------------------------------------------------------------------------
53941 -- 4219869 Business Flow
53942 -- Update journal entry status -- Need to generate this within IF <condition>
53943 ----------------------------------------------------------------------------------
53944 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53945 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53946 ,p_balance_type_code => l_balance_type_code
53947 );
53948
53949 -------------------------------------------------------------------------------------------
53950 -- 4262811 - Generate the Accrual Reversal lines
53951 -------------------------------------------------------------------------------------------
53955 IF l_acc_rev_flag IS NULL THEN
53952 BEGIN
53953 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53954 (g_array_event(p_event_id).array_value_num('header_index'));
53956 l_acc_rev_flag := 'N';
53957 END IF;
53958 EXCEPTION
53959 WHEN OTHERS THEN
53960 l_acc_rev_flag := 'N';
53961 END;
53962 --
53963 IF (l_acc_rev_flag = 'Y') THEN
53964
53965 -- 4645092 ------------------------------------------------------------------------------
53966 -- To allow MPA report to determine if it should generate report process
53967 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53968 ------------------------------------------------------------------------------------------
53969
53970 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53971 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53972 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53973 -- call ADRs
53974 -- Bug 4922099
53975 --
53976 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53977 (NVL(l_actual_upg_option, 'N') = 'O') OR
53978 (NVL(l_enc_upg_option, 'N') = 'O')
53979 )
53980 THEN
53981 NULL;
53982 --
53983 --
53984
53985 l_ccid := AcctDerRule_31(
53986 p_application_id => p_application_id
53987 , p_ae_header_id => l_ae_header_id
53988 , p_source_4 => p_source_4
53989 , p_source_4_meaning => p_source_4_meaning
53990 , p_source_17 => p_source_17
53991 , p_source_32 => p_source_32
53992 , p_source_33 => p_source_33
53993 , x_transaction_coa_id => l_adr_transaction_coa_id
53994 , x_accounting_coa_id => l_adr_accounting_coa_id
53995 , x_value_type_code => l_adr_value_type_code
53996 , p_side => 'NA'
53997 );
53998
53999 xla_ae_lines_pkg.set_ccid(
54000 p_code_combination_id => l_ccid
54001 , p_value_type_code => l_adr_value_type_code
54002 , p_transaction_coa_id => l_adr_transaction_coa_id
54003 , p_accounting_coa_id => l_adr_accounting_coa_id
54004 , p_adr_code => 'AP_REAL_GAIN'
54005 , p_adr_type_code => 'S'
54006 , p_component_type => l_component_type
54007 , p_component_code => l_component_code
54008 , p_component_type_code => l_component_type_code
54009 , p_component_appl_id => l_component_appl_id
54010 , p_amb_context_code => l_amb_context_code
54011 , p_side => 'NA'
54012 );
54013
54014
54015 --
54016 --
54017 END IF;
54018
54019 --
54020 -- Update the line information that should be overwritten
54021 --
54022 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54023 p_header_num => 1);
54024 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54025
54026 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54027
54028 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54029 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54030 END IF;
54031
54032 --
54033 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54034 --
54035 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54036 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54037 ELSE
54038 ---------------------------------------------------------------------------------------------------
54039 -- 4262811a Switch Sign
54040 ---------------------------------------------------------------------------------------------------
54041 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54042 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54043 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54044 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54045 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54046 -- 5132302
54047 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54048 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54049
54050 END IF;
54051
54052 -- 4955764
54053 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54054 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54055
54056
54057 XLA_AE_LINES_PKG.ValidateCurrentLine;
54058 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54059
54060 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54061 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54062 ,p_balance_type_code => l_balance_type_code);
54063
54064 END IF;
54065
54069 -- No MPA option is assigned.
54066 -----------------------------------------------------------------------------------------
54067 -- 4262811 Multiperiod Accounting
54068 -----------------------------------------------------------------------------------------
54070
54071
54072 END IF;
54073 END IF;
54074 --
54075
54076 --
54077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54078 trace
54079 (p_msg => 'END of AcctLineType_105'
54080 ,p_level => C_LEVEL_PROCEDURE
54081 ,p_module => l_log_module);
54082 END IF;
54083 --
54084 EXCEPTION
54085 WHEN xla_exceptions_pkg.application_exception THEN
54086 RAISE;
54087 WHEN OTHERS THEN
54088 xla_exceptions_pkg.raise_message
54089 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_105');
54090 END AcctLineType_105;
54091 --
54092
54093 ---------------------------------------
54094 --
54095 -- PRIVATE FUNCTION
54096 -- AcctLineType_106
54097 --
54098 ---------------------------------------
54099 PROCEDURE AcctLineType_106 (
54100 p_application_id IN NUMBER
54101 ,p_event_id IN NUMBER
54102 ,p_calculate_acctd_flag IN VARCHAR2
54103 ,p_calculate_g_l_flag IN VARCHAR2
54104 ,p_actual_flag IN OUT VARCHAR2
54105 ,p_balance_type_code OUT VARCHAR2
54106 ,p_gain_or_loss_ref OUT VARCHAR2
54107
54108 --Automatic Offsets Value
54109 , p_source_4 IN VARCHAR2
54110 , p_source_4_meaning IN VARCHAR2
54111 --Invoice Distribution Account
54112 , p_source_17 IN NUMBER
54113 --Internal Realized Gain Account
54114 , p_source_32 IN NUMBER
54115 --Bank Gain Account
54116 , p_source_33 IN NUMBER
54117 --When to Account for Payment Option
54118 , p_source_38 IN VARCHAR2
54119 --Payment Distribution Type
54120 , p_source_39 IN VARCHAR2
54121 , p_source_39_meaning IN VARCHAR2
54122 --Accounting Reversal Indicator
54123 , p_source_40 IN VARCHAR2
54124 --Payment Distribution Amount
54125 , p_source_41 IN NUMBER
54126 --Business Flow Accounts Payable Application Identifier
54127 , p_source_42 IN NUMBER
54128 --Business Flow Payment Distribution Type
54129 , p_source_43 IN VARCHAR2
54130 --Business Flow Payment Entity Code
54131 , p_source_44 IN VARCHAR2
54132 --Business Flow Payment Distribution Identifier
54133 , p_source_45 IN NUMBER
54134 --Business Flow Payment Identifier
54135 , p_source_46 IN NUMBER
54136 --Payment Distribution Identifier
54137 , p_source_47 IN NUMBER
54138 --Distribution Link Type
54139 , p_source_48 IN VARCHAR2
54140 --Payment Currency Code
54141 , p_source_49 IN VARCHAR2
54142 --Override Accounted Amount Indicator
54143 , p_source_53 IN VARCHAR2
54144 , p_source_53_meaning IN VARCHAR2
54145 --Payment Supplier Identifier
54146 , p_source_54 IN NUMBER
54147 --Payment Supplier Site Identifier
54148 , p_source_55 IN NUMBER
54149 --Third Party Type
54150 , p_source_56 IN VARCHAR2
54151 --Payment Distribution Reversed Identifier
54152 , p_source_57 IN NUMBER
54153 --Payment Maturity Date
54154 , p_source_111 IN DATE
54155 --Payment Exchange Date
54156 , p_source_114 IN DATE
54157 --Payment Exchange Rate
54158 , p_source_115 IN NUMBER
54159 --Payment Exchange Rate Type
54160 , p_source_116 IN VARCHAR2
54161 --Payment/Maturity Ledger Amount Difference
54162 , p_source_128 IN NUMBER
54163 --Gain or Loss Indicator between Payment and Maturity
54164 , p_source_133 IN VARCHAR2
54165 )
54166 IS
54167
54168 l_component_type VARCHAR2(80);
54169 l_component_code VARCHAR2(30);
54170 l_component_type_code VARCHAR2(1);
54171 l_component_appl_id INTEGER;
54172 l_amb_context_code VARCHAR2(30);
54173 l_entity_code VARCHAR2(30);
54174 l_event_class_code VARCHAR2(30);
54175 l_ae_header_id NUMBER;
54176 l_event_type_code VARCHAR2(30);
54177 l_line_definition_code VARCHAR2(30);
54178 l_line_definition_owner_code VARCHAR2(1);
54179 --
54180 -- adr variables
54181 l_segment VARCHAR2(30);
54182 l_ccid NUMBER;
54183 l_adr_transaction_coa_id NUMBER;
54184 l_adr_accounting_coa_id NUMBER;
54185 l_adr_flexfield_segment_code VARCHAR2(30);
54186 l_adr_flex_value_set_id NUMBER;
54187 l_adr_value_type_code VARCHAR2(30);
54188 l_adr_value_combination_id NUMBER;
54189 l_adr_value_segment_code VARCHAR2(30);
54190
54191 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54192 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54193 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54194 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54195
54196 -- 4262811 Variables ------------------------------------------------------------------------------------------
54197 l_entered_amt_idx NUMBER;
54198 l_accted_amt_idx NUMBER;
54199 l_acc_rev_flag VARCHAR2(1);
54200 l_accrual_line_num NUMBER;
54204 l_num_entries NUMBER;
54201 l_tmp_amt NUMBER;
54202 l_acc_rev_natural_side_code VARCHAR2(1);
54203
54205 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54206 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54207 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54208 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54209 l_recog_line_1 NUMBER;
54210 l_recog_line_2 NUMBER;
54211
54212 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54213 l_bflow_applied_to_amt NUMBER; -- 5132302
54214 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54215
54216 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54217
54218 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54219 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54220
54221 ---------------------------------------------------------------------------------------------------------------
54222
54223
54224 --
54225 -- bulk performance
54226 --
54227 l_balance_type_code VARCHAR2(1);
54228 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54229 l_log_module VARCHAR2(240);
54230
54231 --
54232 -- Upgrade strategy
54233 --
54234 l_actual_upg_option VARCHAR2(1);
54235 l_enc_upg_option VARCHAR2(1);
54236
54237 --
54238 BEGIN
54239 --
54240 IF g_log_enabled THEN
54241 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
54242 END IF;
54243 --
54244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54245
54246 trace
54247 (p_msg => 'BEGIN of AcctLineType_106'
54248 ,p_level => C_LEVEL_PROCEDURE
54249 ,p_module => l_log_module);
54250
54251 END IF;
54252 --
54253 l_component_type := 'AMB_JLT';
54254 l_component_code := 'AP_GAIN_PMT_MAT';
54255 l_component_type_code := 'S';
54256 l_component_appl_id := 200;
54257 l_amb_context_code := 'DEFAULT';
54258 l_entity_code := 'AP_PAYMENTS';
54259 l_event_class_code := 'FUTURE DATED PAYMENTS';
54260 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
54261 l_line_definition_owner_code := 'S';
54262 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
54263 --
54264 l_balance_type_code := 'A';
54265 l_segment := NULL;
54266 l_ccid := NULL;
54267 l_adr_transaction_coa_id := NULL;
54268 l_adr_accounting_coa_id := NULL;
54269 l_adr_flexfield_segment_code := NULL;
54270 l_adr_flex_value_set_id := NULL;
54271 l_adr_value_type_code := NULL;
54272 l_adr_value_combination_id := NULL;
54273 l_adr_value_segment_code := NULL;
54274
54275 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54276 l_bflow_class_code := ''; -- 4219869 Business Flow
54277 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54278 l_budgetary_control_flag := 'N';
54279
54280 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54281 l_bflow_applied_to_amt := NULL; -- 5132302
54282 l_entered_amt_idx := NULL; -- 4262811
54283 l_accted_amt_idx := NULL; -- 4262811
54284 l_acc_rev_flag := NULL; -- 4262811
54285 l_accrual_line_num := NULL; -- 4262811
54286 l_tmp_amt := NULL; -- 4262811
54287 --
54288 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
54289 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
54290 return;
54291 END IF;
54292
54293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54294 l_balance_type_code <> 'B' THEN
54295 IF (NVL(p_source_38,'
54296 ') = 'ALWAYS_ALWAYS' OR
54297 NVL(p_source_38,'
54298 ') = 'ISSUE_ISSUE') AND
54299 p_source_111 IS NOT NULL AND
54300 NVL(p_source_133,'
54301 ') = 'GAIN' AND
54302 NVL(p_source_39,'
54303 ') <> 'EXCHANGE RATE VARIANCE' AND
54304 NVL(p_source_39,'
54305 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
54306 NVL(p_source_39,'
54307 ') <> 'BANK CHARGE' AND
54308 NVL(p_source_39,'
54309 ') <> 'BANK ERROR' AND
54310 NVL(p_source_39,'
54311 ') <> 'AWT'
54312 THEN
54313
54314 --
54315 XLA_AE_LINES_PKG.SetNewLine;
54316
54317 p_balance_type_code := l_balance_type_code;
54318 -- set the flag so later we will know whether the gain loss line needs to be created
54319
54320 IF(l_balance_type_code = 'A' ) THEN
54321 p_actual_flag :='G';
54322 END IF;
54323
54324 --
54325 -- bulk performance
54326 --
54327 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54328 p_header_num => 0); -- 4262811
54329 --
54330 -- set accounting line options
54331 --
54332 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54333 p_natural_side_code => 'C'
54337 , p_switch_side_flag => 'Y'
54334 , p_gain_or_loss_flag => 'Y'
54335 , p_gl_transfer_mode_code => 'S'
54336 , p_acct_entry_type_code => 'A'
54338 , p_merge_duplicate_code => 'A'
54339 );
54340 --
54341 l_acc_rev_natural_side_code := 'D'; -- 4262811
54342 --
54343 --
54344 -- set accounting line type info
54345 --
54346 xla_ae_lines_pkg.SetAcctLineType
54347 (p_component_type => l_component_type
54348 ,p_event_type_code => l_event_type_code
54349 ,p_line_definition_owner_code => l_line_definition_owner_code
54350 ,p_line_definition_code => l_line_definition_code
54351 ,p_accounting_line_code => l_component_code
54352 ,p_accounting_line_type_code => l_component_type_code
54353 ,p_accounting_line_appl_id => l_component_appl_id
54354 ,p_amb_context_code => l_amb_context_code
54355 ,p_entity_code => l_entity_code
54356 ,p_event_class_code => l_event_class_code);
54357 --
54358 -- set accounting class
54359 --
54360 xla_ae_lines_pkg.SetAcctClass(
54361 p_accounting_class_code => 'GAIN'
54362 , p_ae_header_id => l_ae_header_id
54363 );
54364
54365 --
54366 -- set rounding class
54367 --
54368 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54369 'GAIN';
54370
54371 --
54372 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54373 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54374 --
54375 -- bulk performance
54376 --
54377 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54378
54379 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54380 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54381
54382 -- 4955764
54383 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54384 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54385
54386 -- 4458381 Public Sector Enh
54387
54388 --
54389 -- set accounting attributes for the line type
54390 --
54391 l_entered_amt_idx := 9;
54392 l_accted_amt_idx := 14;
54393 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54394 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54395 l_rec_acct_attrs.array_char_value(1) := p_source_40;
54396 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
54397 l_rec_acct_attrs.array_num_value(2) := p_source_42;
54398 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54399 l_rec_acct_attrs.array_char_value(3) := p_source_43;
54400 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
54401 l_rec_acct_attrs.array_char_value(4) := p_source_44;
54402 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
54403 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
54404 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54405 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
54406 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
54407 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
54408 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
54409 l_rec_acct_attrs.array_char_value(8) := p_source_48;
54410 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
54411 l_rec_acct_attrs.array_num_value(9) := p_source_41;
54412 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
54413 l_rec_acct_attrs.array_char_value(10) := p_source_49;
54414 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
54415 l_rec_acct_attrs.array_date_value(11) := p_source_114;
54416 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
54417 l_rec_acct_attrs.array_num_value(12) := p_source_115;
54418 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
54419 l_rec_acct_attrs.array_char_value(13) := p_source_116;
54420 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
54421 l_rec_acct_attrs.array_num_value(14) := p_source_128;
54422 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
54423 l_rec_acct_attrs.array_char_value(15) := p_source_53;
54424 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
54425 l_rec_acct_attrs.array_num_value(16) := p_source_54;
54426 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
54427 l_rec_acct_attrs.array_num_value(17) := p_source_55;
54428 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
54429 l_rec_acct_attrs.array_char_value(18) := p_source_56;
54430 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
54431 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
54432 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
54433 l_rec_acct_attrs.array_char_value(20) := p_source_48;
54434
54435 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54436 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54437
54441 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54438 ---------------------------------------------------------------------------------------------------------------
54439 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54440 ---------------------------------------------------------------------------------------------------------------
54442
54443 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54444 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54445
54446 IF xla_accounting_cache_pkg.GetValueChar
54447 (p_source_code => 'LEDGER_CATEGORY_CODE'
54448 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54449 AND l_bflow_method_code = 'PRIOR_ENTRY'
54450 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54451 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54452 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54453 )
54454 THEN
54455 xla_ae_lines_pkg.BflowUpgEntry
54456 (p_business_method_code => l_bflow_method_code
54457 ,p_business_class_code => l_bflow_class_code
54458 ,p_balance_type => l_balance_type_code);
54459 ELSE
54460 NULL;
54461 -- No business flow processing for business flow method of NONE.
54462 END IF;
54463
54464 --
54465 -- call analytical criteria
54466 --
54467
54468 --
54469 -- call description
54470 --
54471 -- No description or it is inherited.
54472 --
54473 -- call ADRs
54474 -- Bug 4922099
54475 --
54476 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54477 (NVL(l_actual_upg_option, 'N') = 'O') OR
54478 (NVL(l_enc_upg_option, 'N') = 'O')
54479 )
54480 THEN
54481 NULL;
54482 --
54483 --
54484
54485 l_ccid := AcctDerRule_31(
54486 p_application_id => p_application_id
54487 , p_ae_header_id => l_ae_header_id
54488 , p_source_4 => p_source_4
54489 , p_source_4_meaning => p_source_4_meaning
54490 , p_source_17 => p_source_17
54491 , p_source_32 => p_source_32
54492 , p_source_33 => p_source_33
54493 , x_transaction_coa_id => l_adr_transaction_coa_id
54494 , x_accounting_coa_id => l_adr_accounting_coa_id
54495 , x_value_type_code => l_adr_value_type_code
54496 , p_side => 'NA'
54497 );
54498
54499 xla_ae_lines_pkg.set_ccid(
54500 p_code_combination_id => l_ccid
54501 , p_value_type_code => l_adr_value_type_code
54502 , p_transaction_coa_id => l_adr_transaction_coa_id
54503 , p_accounting_coa_id => l_adr_accounting_coa_id
54504 , p_adr_code => 'AP_REAL_GAIN'
54505 , p_adr_type_code => 'S'
54506 , p_component_type => l_component_type
54507 , p_component_code => l_component_code
54508 , p_component_type_code => l_component_type_code
54509 , p_component_appl_id => l_component_appl_id
54510 , p_amb_context_code => l_amb_context_code
54511 , p_side => 'NA'
54512 );
54513
54514
54515 --
54516 --
54517 END IF;
54518 --
54519 -- Bug 4922099
54520 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54521 (NVL(l_enc_upg_option, 'N') = 'O')
54522 ) AND
54523 (l_bflow_method_code = 'PRIOR_ENTRY')
54524 )
54525 THEN
54526 IF
54527 --
54528 1 = 2
54529 --
54530 THEN
54531 xla_accounting_err_pkg.build_message
54532 (p_appli_s_name => 'XLA'
54533 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54534 ,p_token_1 => 'LINE_NUMBER'
54535 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54536 ,p_token_2 => 'LINE_TYPE_NAME'
54537 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54538 l_component_type
54539 ,l_component_code
54540 ,l_component_type_code
54541 ,l_component_appl_id
54542 ,l_amb_context_code
54543 ,l_entity_code
54544 ,l_event_class_code
54545 )
54546 ,p_token_3 => 'OWNER'
54547 ,p_value_3 => xla_lookups_pkg.get_meaning(
54548 p_lookup_type => 'XLA_OWNER_TYPE'
54549 ,p_lookup_code => l_component_type_code
54553 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54550 )
54551 ,p_token_4 => 'PRODUCT_NAME'
54552 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54554 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54555 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54556 ,p_ae_header_id => NULL
54557 );
54558
54559 IF (C_LEVEL_ERROR>= g_log_level) THEN
54560 trace
54561 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54562 ,p_level => C_LEVEL_ERROR
54563 ,p_module => l_log_module);
54564 END IF;
54565 END IF;
54566 END IF;
54567 --
54568 --
54569 ------------------------------------------------------------------------------------------------
54570 -- 4219869 Business Flow
54571 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54572 -- Prior Entry. Currently, the following code is always generated.
54573 ------------------------------------------------------------------------------------------------
54574 XLA_AE_LINES_PKG.ValidateCurrentLine;
54575
54576 ------------------------------------------------------------------------------------
54577 -- 4219869 Business Flow
54578 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54579 ------------------------------------------------------------------------------------
54580 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54581
54582 ----------------------------------------------------------------------------------
54583 -- 4219869 Business Flow
54584 -- Update journal entry status -- Need to generate this within IF <condition>
54585 ----------------------------------------------------------------------------------
54586 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54587 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54588 ,p_balance_type_code => l_balance_type_code
54589 );
54590
54591 -------------------------------------------------------------------------------------------
54592 -- 4262811 - Generate the Accrual Reversal lines
54593 -------------------------------------------------------------------------------------------
54594 BEGIN
54595 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54596 (g_array_event(p_event_id).array_value_num('header_index'));
54597 IF l_acc_rev_flag IS NULL THEN
54598 l_acc_rev_flag := 'N';
54599 END IF;
54600 EXCEPTION
54601 WHEN OTHERS THEN
54602 l_acc_rev_flag := 'N';
54603 END;
54604 --
54605 IF (l_acc_rev_flag = 'Y') THEN
54606
54607 -- 4645092 ------------------------------------------------------------------------------
54608 -- To allow MPA report to determine if it should generate report process
54609 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54610 ------------------------------------------------------------------------------------------
54611
54612 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54613 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54614 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
54615 -- call ADRs
54616 -- Bug 4922099
54617 --
54618 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54619 (NVL(l_actual_upg_option, 'N') = 'O') OR
54620 (NVL(l_enc_upg_option, 'N') = 'O')
54621 )
54622 THEN
54623 NULL;
54624 --
54625 --
54626
54627 l_ccid := AcctDerRule_31(
54628 p_application_id => p_application_id
54629 , p_ae_header_id => l_ae_header_id
54630 , p_source_4 => p_source_4
54631 , p_source_4_meaning => p_source_4_meaning
54632 , p_source_17 => p_source_17
54633 , p_source_32 => p_source_32
54634 , p_source_33 => p_source_33
54635 , x_transaction_coa_id => l_adr_transaction_coa_id
54636 , x_accounting_coa_id => l_adr_accounting_coa_id
54637 , x_value_type_code => l_adr_value_type_code
54638 , p_side => 'NA'
54639 );
54640
54641 xla_ae_lines_pkg.set_ccid(
54642 p_code_combination_id => l_ccid
54643 , p_value_type_code => l_adr_value_type_code
54644 , p_transaction_coa_id => l_adr_transaction_coa_id
54645 , p_accounting_coa_id => l_adr_accounting_coa_id
54646 , p_adr_code => 'AP_REAL_GAIN'
54647 , p_adr_type_code => 'S'
54648 , p_component_type => l_component_type
54649 , p_component_code => l_component_code
54650 , p_component_type_code => l_component_type_code
54651 , p_component_appl_id => l_component_appl_id
54652 , p_amb_context_code => l_amb_context_code
54653 , p_side => 'NA'
54654 );
54655
54656
54657 --
54658 --
54659 END IF;
54660
54661 --
54662 -- Update the line information that should be overwritten
54663 --
54667
54664 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54665 p_header_num => 1);
54666 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54668 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54669
54670 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54671 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54672 END IF;
54673
54674 --
54675 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54676 --
54677 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54678 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54679 ELSE
54680 ---------------------------------------------------------------------------------------------------
54681 -- 4262811a Switch Sign
54682 ---------------------------------------------------------------------------------------------------
54683 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54684 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54686 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54687 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54688 -- 5132302
54689 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54690 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54691
54692 END IF;
54693
54694 -- 4955764
54695 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54696 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54697
54698
54699 XLA_AE_LINES_PKG.ValidateCurrentLine;
54700 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54701
54702 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54703 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54704 ,p_balance_type_code => l_balance_type_code);
54705
54706 END IF;
54707
54708 -----------------------------------------------------------------------------------------
54709 -- 4262811 Multiperiod Accounting
54710 -----------------------------------------------------------------------------------------
54711 -- No MPA option is assigned.
54712
54713
54714 END IF;
54715 END IF;
54716 --
54717
54718 --
54719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54720 trace
54721 (p_msg => 'END of AcctLineType_106'
54722 ,p_level => C_LEVEL_PROCEDURE
54723 ,p_module => l_log_module);
54724 END IF;
54725 --
54726 EXCEPTION
54727 WHEN xla_exceptions_pkg.application_exception THEN
54728 RAISE;
54729 WHEN OTHERS THEN
54730 xla_exceptions_pkg.raise_message
54731 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_106');
54732 END AcctLineType_106;
54733 --
54734
54735 ---------------------------------------
54736 --
54737 -- PRIVATE FUNCTION
54738 -- AcctLineType_107
54739 --
54740 ---------------------------------------
54741 PROCEDURE AcctLineType_107 (
54742 p_application_id IN NUMBER
54743 ,p_event_id IN NUMBER
54744 ,p_calculate_acctd_flag IN VARCHAR2
54745 ,p_calculate_g_l_flag IN VARCHAR2
54746 ,p_actual_flag IN OUT VARCHAR2
54747 ,p_balance_type_code OUT VARCHAR2
54748 ,p_gain_or_loss_ref OUT VARCHAR2
54749
54750 --Payment Distribution (Cleared Rate) Ledger Amount
54751 , p_source_10 IN NUMBER
54752 --Interest Account
54753 , p_source_15 IN NUMBER
54754 --Prorate Interest Invoice Across Distributions Option
54755 , p_source_16 IN VARCHAR2
54756 --Invoice Distribution Account
54757 , p_source_17 IN NUMBER
54758 --Invoice Distribution Type
54759 , p_source_20 IN VARCHAR2
54760 , p_source_20_meaning IN VARCHAR2
54761 --When to Account for Payment Option
54762 , p_source_38 IN VARCHAR2
54763 --Payment Distribution Type
54764 , p_source_39 IN VARCHAR2
54765 , p_source_39_meaning IN VARCHAR2
54766 --Accounting Reversal Indicator
54767 , p_source_40 IN VARCHAR2
54768 --Payment Distribution Amount
54769 , p_source_41 IN NUMBER
54770 --Business Flow Accounts Payable Application Identifier
54771 , p_source_42 IN NUMBER
54772 --Business Flow Payment Distribution Type
54773 , p_source_43 IN VARCHAR2
54774 --Business Flow Payment Entity Code
54775 , p_source_44 IN VARCHAR2
54776 --Business Flow Payment Distribution Identifier
54777 , p_source_45 IN NUMBER
54778 --Business Flow Payment Identifier
54779 , p_source_46 IN NUMBER
54780 --Payment Distribution Identifier
54781 , p_source_47 IN NUMBER
54785 , p_source_49 IN VARCHAR2
54782 --Distribution Link Type
54783 , p_source_48 IN VARCHAR2
54784 --Payment Currency Code
54786 --Override Accounted Amount Indicator
54787 , p_source_53 IN VARCHAR2
54788 , p_source_53_meaning IN VARCHAR2
54789 --Payment Supplier Identifier
54790 , p_source_54 IN NUMBER
54791 --Payment Supplier Site Identifier
54792 , p_source_55 IN NUMBER
54793 --Third Party Type
54794 , p_source_56 IN VARCHAR2
54795 --Payment Distribution Reversed Identifier
54796 , p_source_57 IN NUMBER
54797 --Invoice Distribution Tax Line Identifier
54798 , p_source_58 IN NUMBER
54799 --Invoice Distribution Summary Tax Line Identifier
54800 , p_source_59 IN NUMBER
54801 --Payment Type
54802 , p_source_60 IN VARCHAR2
54803 , p_source_60_meaning IN VARCHAR2
54804 --Invoice Type Paid
54805 , p_source_101 IN VARCHAR2
54806 , p_source_101_meaning IN VARCHAR2
54807 --Cleared Exchange Date
54808 , p_source_107 IN DATE
54809 --Cleared Exchange Rate
54810 , p_source_108 IN NUMBER
54811 --Cleared Exchange Rate Type
54812 , p_source_109 IN VARCHAR2
54813 )
54814 IS
54815
54816 l_component_type VARCHAR2(80);
54817 l_component_code VARCHAR2(30);
54818 l_component_type_code VARCHAR2(1);
54819 l_component_appl_id INTEGER;
54820 l_amb_context_code VARCHAR2(30);
54821 l_entity_code VARCHAR2(30);
54822 l_event_class_code VARCHAR2(30);
54823 l_ae_header_id NUMBER;
54824 l_event_type_code VARCHAR2(30);
54825 l_line_definition_code VARCHAR2(30);
54826 l_line_definition_owner_code VARCHAR2(1);
54827 --
54828 -- adr variables
54829 l_segment VARCHAR2(30);
54830 l_ccid NUMBER;
54831 l_adr_transaction_coa_id NUMBER;
54832 l_adr_accounting_coa_id NUMBER;
54833 l_adr_flexfield_segment_code VARCHAR2(30);
54834 l_adr_flex_value_set_id NUMBER;
54835 l_adr_value_type_code VARCHAR2(30);
54836 l_adr_value_combination_id NUMBER;
54837 l_adr_value_segment_code VARCHAR2(30);
54838
54839 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54840 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54841 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54842 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54843
54844 -- 4262811 Variables ------------------------------------------------------------------------------------------
54845 l_entered_amt_idx NUMBER;
54846 l_accted_amt_idx NUMBER;
54847 l_acc_rev_flag VARCHAR2(1);
54848 l_accrual_line_num NUMBER;
54849 l_tmp_amt NUMBER;
54850 l_acc_rev_natural_side_code VARCHAR2(1);
54851
54852 l_num_entries NUMBER;
54853 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54854 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54855 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54856 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54857 l_recog_line_1 NUMBER;
54858 l_recog_line_2 NUMBER;
54859
54860 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54861 l_bflow_applied_to_amt NUMBER; -- 5132302
54862 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54863
54864 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54865
54866 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54867 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54868
54869 ---------------------------------------------------------------------------------------------------------------
54870
54871
54872 --
54873 -- bulk performance
54874 --
54875 l_balance_type_code VARCHAR2(1);
54876 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54877 l_log_module VARCHAR2(240);
54878
54879 --
54880 -- Upgrade strategy
54881 --
54882 l_actual_upg_option VARCHAR2(1);
54883 l_enc_upg_option VARCHAR2(1);
54884
54885 --
54886 BEGIN
54887 --
54888 IF g_log_enabled THEN
54889 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
54890 END IF;
54891 --
54892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54893
54894 trace
54895 (p_msg => 'BEGIN of AcctLineType_107'
54896 ,p_level => C_LEVEL_PROCEDURE
54897 ,p_module => l_log_module);
54898
54899 END IF;
54900 --
54901 l_component_type := 'AMB_JLT';
54902 l_component_code := 'AP_INTEREST_EXPENSE_CLEAR';
54903 l_component_type_code := 'S';
54904 l_component_appl_id := 200;
54905 l_amb_context_code := 'DEFAULT';
54906 l_entity_code := 'AP_PAYMENTS';
54907 l_event_class_code := 'RECONCILED PAYMENTS';
54908 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
54909 l_line_definition_owner_code := 'S';
54910 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
54911 --
54915 l_adr_transaction_coa_id := NULL;
54912 l_balance_type_code := 'A';
54913 l_segment := NULL;
54914 l_ccid := NULL;
54916 l_adr_accounting_coa_id := NULL;
54917 l_adr_flexfield_segment_code := NULL;
54918 l_adr_flex_value_set_id := NULL;
54919 l_adr_value_type_code := NULL;
54920 l_adr_value_combination_id := NULL;
54921 l_adr_value_segment_code := NULL;
54922
54923 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54924 l_bflow_class_code := ''; -- 4219869 Business Flow
54925 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54926 l_budgetary_control_flag := 'N';
54927
54928 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54929 l_bflow_applied_to_amt := NULL; -- 5132302
54930 l_entered_amt_idx := NULL; -- 4262811
54931 l_accted_amt_idx := NULL; -- 4262811
54932 l_acc_rev_flag := NULL; -- 4262811
54933 l_accrual_line_num := NULL; -- 4262811
54934 l_tmp_amt := NULL; -- 4262811
54935 --
54936
54937 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54938 l_balance_type_code <> 'B' THEN
54939 IF NVL(p_source_38,'
54940 ') = 'CLEAR_CLEAR' AND
54941 NVL(p_source_20,'
54942 ') = 'ITEM' AND
54943 NVL(p_source_101,'
54944 ') = 'INTEREST' AND
54945 (NVL(p_source_39,'
54946 ') = 'CASH' OR
54947 NVL(p_source_39,'
54948 ') = 'DISCOUNT') AND
54949 NVL(p_source_60,'
54950 ') <> 'R'
54951 THEN
54952
54953 --
54954 XLA_AE_LINES_PKG.SetNewLine;
54955
54956 p_balance_type_code := l_balance_type_code;
54957 -- set the flag so later we will know whether the gain loss line needs to be created
54958
54959 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54960 p_actual_flag :='A';
54961 END IF;
54962
54963 --
54964 -- bulk performance
54965 --
54966 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54967 p_header_num => 0); -- 4262811
54968 --
54969 -- set accounting line options
54970 --
54971 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54972 p_natural_side_code => 'D'
54973 , p_gain_or_loss_flag => 'N'
54974 , p_gl_transfer_mode_code => 'S'
54975 , p_acct_entry_type_code => 'A'
54976 , p_switch_side_flag => 'Y'
54977 , p_merge_duplicate_code => 'A'
54978 );
54979 --
54980 l_acc_rev_natural_side_code := 'C'; -- 4262811
54981 --
54982 --
54983 -- set accounting line type info
54984 --
54985 xla_ae_lines_pkg.SetAcctLineType
54986 (p_component_type => l_component_type
54987 ,p_event_type_code => l_event_type_code
54988 ,p_line_definition_owner_code => l_line_definition_owner_code
54989 ,p_line_definition_code => l_line_definition_code
54990 ,p_accounting_line_code => l_component_code
54991 ,p_accounting_line_type_code => l_component_type_code
54992 ,p_accounting_line_appl_id => l_component_appl_id
54993 ,p_amb_context_code => l_amb_context_code
54994 ,p_entity_code => l_entity_code
54995 ,p_event_class_code => l_event_class_code);
54996 --
54997 -- set accounting class
54998 --
54999 xla_ae_lines_pkg.SetAcctClass(
55000 p_accounting_class_code => 'INTEREST_EXPENSE'
55001 , p_ae_header_id => l_ae_header_id
55002 );
55003
55004 --
55005 -- set rounding class
55006 --
55007 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55008 'INTEREST_EXPENSE';
55009
55010 --
55011 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55012 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55013 --
55014 -- bulk performance
55015 --
55016 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55017
55018 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55019 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55020
55021 -- 4955764
55022 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55023 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55024
55025 -- 4458381 Public Sector Enh
55026
55027 --
55028 -- set accounting attributes for the line type
55029 --
55030 l_entered_amt_idx := 10;
55031 l_accted_amt_idx := 15;
55032 l_bflow_applied_to_amt_idx := 2; -- 5132302
55033 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55034 l_rec_acct_attrs.array_char_value(1) := p_source_40;
55035 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55036 l_rec_acct_attrs.array_num_value(2) := p_source_41;
55037 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55038 l_rec_acct_attrs.array_num_value(3) := p_source_42;
55039 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55043 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55040 l_rec_acct_attrs.array_char_value(4) := p_source_43;
55041 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55042 l_rec_acct_attrs.array_char_value(5) := p_source_44;
55044 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
55045 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55046 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
55047 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55048 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
55049 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55050 l_rec_acct_attrs.array_char_value(9) := p_source_48;
55051 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55052 l_rec_acct_attrs.array_num_value(10) := p_source_41;
55053 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55054 l_rec_acct_attrs.array_char_value(11) := p_source_49;
55055 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55056 l_rec_acct_attrs.array_date_value(12) := p_source_107;
55057 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55058 l_rec_acct_attrs.array_num_value(13) := p_source_108;
55059 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55060 l_rec_acct_attrs.array_char_value(14) := p_source_109;
55061 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55062 l_rec_acct_attrs.array_num_value(15) := p_source_10;
55063 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55064 l_rec_acct_attrs.array_char_value(16) := p_source_53;
55065 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55066 l_rec_acct_attrs.array_num_value(17) := p_source_54;
55067 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55068 l_rec_acct_attrs.array_num_value(18) := p_source_55;
55069 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55070 l_rec_acct_attrs.array_char_value(19) := p_source_56;
55071 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55072 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
55073 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55074 l_rec_acct_attrs.array_char_value(21) := p_source_48;
55075 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55076 l_rec_acct_attrs.array_num_value(22) := p_source_58;
55077 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55078 l_rec_acct_attrs.array_num_value(23) := p_source_58;
55079 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55080 l_rec_acct_attrs.array_num_value(24) := p_source_59;
55081
55082 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55083 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55084
55085 ---------------------------------------------------------------------------------------------------------------
55086 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55087 ---------------------------------------------------------------------------------------------------------------
55088 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55089
55090 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55091 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55092
55093 IF xla_accounting_cache_pkg.GetValueChar
55094 (p_source_code => 'LEDGER_CATEGORY_CODE'
55095 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55096 AND l_bflow_method_code = 'PRIOR_ENTRY'
55097 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55098 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55099 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55100 )
55101 THEN
55102 xla_ae_lines_pkg.BflowUpgEntry
55103 (p_business_method_code => l_bflow_method_code
55104 ,p_business_class_code => l_bflow_class_code
55105 ,p_balance_type => l_balance_type_code);
55106 ELSE
55107 NULL;
55108 -- No business flow processing for business flow method of NONE.
55109 END IF;
55110
55111 --
55112 -- call analytical criteria
55113 --
55114
55115 --
55116 -- call description
55117 --
55118 -- No description or it is inherited.
55119 --
55120 -- call ADRs
55121 -- Bug 4922099
55122 --
55123 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55124 (NVL(l_actual_upg_option, 'N') = 'O') OR
55125 (NVL(l_enc_upg_option, 'N') = 'O')
55126 )
55127 THEN
55128 NULL;
55129 --
55130 --
55131
55132 l_ccid := AcctDerRule_25(
55133 p_application_id => p_application_id
55134 , p_ae_header_id => l_ae_header_id
55135 , p_source_15 => p_source_15
55136 , p_source_16 => p_source_16
55137 , p_source_17 => p_source_17
55138 , x_transaction_coa_id => l_adr_transaction_coa_id
55139 , x_accounting_coa_id => l_adr_accounting_coa_id
55140 , x_value_type_code => l_adr_value_type_code
55141 , p_side => 'NA'
55142 );
55143
55147 , p_transaction_coa_id => l_adr_transaction_coa_id
55144 xla_ae_lines_pkg.set_ccid(
55145 p_code_combination_id => l_ccid
55146 , p_value_type_code => l_adr_value_type_code
55148 , p_accounting_coa_id => l_adr_accounting_coa_id
55149 , p_adr_code => 'AP_INTEREST'
55150 , p_adr_type_code => 'S'
55151 , p_component_type => l_component_type
55152 , p_component_code => l_component_code
55153 , p_component_type_code => l_component_type_code
55154 , p_component_appl_id => l_component_appl_id
55155 , p_amb_context_code => l_amb_context_code
55156 , p_side => 'NA'
55157 );
55158
55159
55160 l_segment := AcctDerRule_8(
55161 p_application_id => p_application_id
55162 , p_ae_header_id => l_ae_header_id
55163 , p_source_15 => p_source_15
55164 , p_source_16 => p_source_16
55165 , x_transaction_coa_id => l_adr_transaction_coa_id
55166 , x_accounting_coa_id => l_adr_accounting_coa_id
55167 , x_flexfield_segment_code => l_adr_flexfield_segment_code
55168 , x_flex_value_set_id => l_adr_flex_value_set_id
55169 , x_value_type_code => l_adr_value_type_code
55170 , x_value_combination_id => l_adr_value_combination_id
55171 , x_value_segment_code => l_adr_value_segment_code
55172 , p_side => 'NA'
55173 , p_override_seg_flag => 'Y'
55174 );
55175
55176 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
55177
55178 xla_ae_lines_pkg.set_segment(
55179 p_to_segment_code => 'GL_ACCOUNT'
55180 , p_segment_value => l_segment
55181 , p_from_segment_code => l_adr_value_segment_code
55182 , p_from_combination_id => l_adr_value_combination_id
55183 , p_value_type_code => l_adr_value_type_code
55184 , p_transaction_coa_id => l_adr_transaction_coa_id
55185 , p_accounting_coa_id => l_adr_accounting_coa_id
55186 , p_flexfield_segment_code => l_adr_flexfield_segment_code
55187 , p_flex_value_set_id => l_adr_flex_value_set_id
55188 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
55189 , p_adr_type_code => 'S'
55190 , p_component_type => l_component_type
55191 , p_component_code => l_component_code
55192 , p_component_type_code => l_component_type_code
55193 , p_component_appl_id => l_component_appl_id
55194 , p_amb_context_code => l_amb_context_code
55195 , p_entity_code => 'AP_PAYMENTS'
55196 , p_event_class_code => 'RECONCILED PAYMENTS'
55197 , p_side => 'NA'
55198 );
55199
55200 END IF;
55201
55202 --
55203 --
55204 END IF;
55205 --
55206 -- Bug 4922099
55207 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55208 (NVL(l_enc_upg_option, 'N') = 'O')
55209 ) AND
55210 (l_bflow_method_code = 'PRIOR_ENTRY')
55211 )
55212 THEN
55213 IF
55214 --
55215 1 = 2
55216 --
55217 THEN
55218 xla_accounting_err_pkg.build_message
55219 (p_appli_s_name => 'XLA'
55220 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55221 ,p_token_1 => 'LINE_NUMBER'
55222 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55223 ,p_token_2 => 'LINE_TYPE_NAME'
55224 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55225 l_component_type
55226 ,l_component_code
55227 ,l_component_type_code
55228 ,l_component_appl_id
55229 ,l_amb_context_code
55230 ,l_entity_code
55231 ,l_event_class_code
55232 )
55233 ,p_token_3 => 'OWNER'
55234 ,p_value_3 => xla_lookups_pkg.get_meaning(
55235 p_lookup_type => 'XLA_OWNER_TYPE'
55236 ,p_lookup_code => l_component_type_code
55237 )
55238 ,p_token_4 => 'PRODUCT_NAME'
55239 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55240 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55241 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55242 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55246 IF (C_LEVEL_ERROR>= g_log_level) THEN
55243 ,p_ae_header_id => NULL
55244 );
55245
55247 trace
55248 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55249 ,p_level => C_LEVEL_ERROR
55250 ,p_module => l_log_module);
55251 END IF;
55252 END IF;
55253 END IF;
55254 --
55255 --
55256 ------------------------------------------------------------------------------------------------
55257 -- 4219869 Business Flow
55258 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55259 -- Prior Entry. Currently, the following code is always generated.
55260 ------------------------------------------------------------------------------------------------
55261 XLA_AE_LINES_PKG.ValidateCurrentLine;
55262
55263 ------------------------------------------------------------------------------------
55264 -- 4219869 Business Flow
55265 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55266 ------------------------------------------------------------------------------------
55267 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55268
55269 ----------------------------------------------------------------------------------
55270 -- 4219869 Business Flow
55271 -- Update journal entry status -- Need to generate this within IF <condition>
55272 ----------------------------------------------------------------------------------
55273 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55274 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55275 ,p_balance_type_code => l_balance_type_code
55276 );
55277
55278 -------------------------------------------------------------------------------------------
55279 -- 4262811 - Generate the Accrual Reversal lines
55280 -------------------------------------------------------------------------------------------
55281 BEGIN
55282 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55283 (g_array_event(p_event_id).array_value_num('header_index'));
55284 IF l_acc_rev_flag IS NULL THEN
55285 l_acc_rev_flag := 'N';
55286 END IF;
55287 EXCEPTION
55288 WHEN OTHERS THEN
55289 l_acc_rev_flag := 'N';
55290 END;
55291 --
55292 IF (l_acc_rev_flag = 'Y') THEN
55293
55294 -- 4645092 ------------------------------------------------------------------------------
55295 -- To allow MPA report to determine if it should generate report process
55296 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55297 ------------------------------------------------------------------------------------------
55298
55299 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55300 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55301 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
55302 -- call ADRs
55303 -- Bug 4922099
55304 --
55305 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55306 (NVL(l_actual_upg_option, 'N') = 'O') OR
55307 (NVL(l_enc_upg_option, 'N') = 'O')
55308 )
55309 THEN
55310 NULL;
55311 --
55312 --
55313
55314 l_ccid := AcctDerRule_25(
55315 p_application_id => p_application_id
55316 , p_ae_header_id => l_ae_header_id
55317 , p_source_15 => p_source_15
55318 , p_source_16 => p_source_16
55319 , p_source_17 => p_source_17
55320 , x_transaction_coa_id => l_adr_transaction_coa_id
55321 , x_accounting_coa_id => l_adr_accounting_coa_id
55322 , x_value_type_code => l_adr_value_type_code
55323 , p_side => 'NA'
55324 );
55325
55326 xla_ae_lines_pkg.set_ccid(
55327 p_code_combination_id => l_ccid
55328 , p_value_type_code => l_adr_value_type_code
55329 , p_transaction_coa_id => l_adr_transaction_coa_id
55330 , p_accounting_coa_id => l_adr_accounting_coa_id
55331 , p_adr_code => 'AP_INTEREST'
55332 , p_adr_type_code => 'S'
55333 , p_component_type => l_component_type
55334 , p_component_code => l_component_code
55335 , p_component_type_code => l_component_type_code
55336 , p_component_appl_id => l_component_appl_id
55337 , p_amb_context_code => l_amb_context_code
55338 , p_side => 'NA'
55339 );
55340
55341
55342 l_segment := AcctDerRule_8(
55343 p_application_id => p_application_id
55344 , p_ae_header_id => l_ae_header_id
55345 , p_source_15 => p_source_15
55346 , p_source_16 => p_source_16
55347 , x_transaction_coa_id => l_adr_transaction_coa_id
55348 , x_accounting_coa_id => l_adr_accounting_coa_id
55349 , x_flexfield_segment_code => l_adr_flexfield_segment_code
55350 , x_flex_value_set_id => l_adr_flex_value_set_id
55351 , x_value_type_code => l_adr_value_type_code
55352 , x_value_combination_id => l_adr_value_combination_id
55353 , x_value_segment_code => l_adr_value_segment_code
55354 , p_side => 'NA'
55358 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
55355 , p_override_seg_flag => 'Y'
55356 );
55357
55359
55360 xla_ae_lines_pkg.set_segment(
55361 p_to_segment_code => 'GL_ACCOUNT'
55362 , p_segment_value => l_segment
55363 , p_from_segment_code => l_adr_value_segment_code
55364 , p_from_combination_id => l_adr_value_combination_id
55365 , p_value_type_code => l_adr_value_type_code
55366 , p_transaction_coa_id => l_adr_transaction_coa_id
55367 , p_accounting_coa_id => l_adr_accounting_coa_id
55368 , p_flexfield_segment_code => l_adr_flexfield_segment_code
55369 , p_flex_value_set_id => l_adr_flex_value_set_id
55370 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
55371 , p_adr_type_code => 'S'
55372 , p_component_type => l_component_type
55373 , p_component_code => l_component_code
55374 , p_component_type_code => l_component_type_code
55375 , p_component_appl_id => l_component_appl_id
55376 , p_amb_context_code => l_amb_context_code
55377 , p_entity_code => 'AP_PAYMENTS'
55378 , p_event_class_code => 'RECONCILED PAYMENTS'
55379 , p_side => 'NA'
55380 );
55381
55382 END IF;
55383
55384 --
55385 --
55386 END IF;
55387
55388 --
55389 -- Update the line information that should be overwritten
55390 --
55391 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55392 p_header_num => 1);
55393 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55394
55395 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55396
55397 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55398 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55399 END IF;
55400
55401 --
55402 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55403 --
55404 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55405 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55406 ELSE
55407 ---------------------------------------------------------------------------------------------------
55408 -- 4262811a Switch Sign
55409 ---------------------------------------------------------------------------------------------------
55410 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55411 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55412 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55413 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55414 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55415 -- 5132302
55416 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55417 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55418
55419 END IF;
55420
55421 -- 4955764
55422 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55423 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55424
55425
55426 XLA_AE_LINES_PKG.ValidateCurrentLine;
55427 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55428
55429 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55430 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55431 ,p_balance_type_code => l_balance_type_code);
55432
55433 END IF;
55434
55435 -----------------------------------------------------------------------------------------
55436 -- 4262811 Multiperiod Accounting
55437 -----------------------------------------------------------------------------------------
55438 -- No MPA option is assigned.
55439
55440
55441 END IF;
55442 END IF;
55443 --
55444
55445 --
55446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55447 trace
55448 (p_msg => 'END of AcctLineType_107'
55449 ,p_level => C_LEVEL_PROCEDURE
55450 ,p_module => l_log_module);
55451 END IF;
55452 --
55453 EXCEPTION
55454 WHEN xla_exceptions_pkg.application_exception THEN
55455 RAISE;
55456 WHEN OTHERS THEN
55457 xla_exceptions_pkg.raise_message
55458 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_107');
55459 END AcctLineType_107;
55460 --
55461
55462 ---------------------------------------
55463 --
55464 -- PRIVATE FUNCTION
55465 -- AcctLineType_108
55466 --
55467 ---------------------------------------
55468 PROCEDURE AcctLineType_108 (
55469 p_application_id IN NUMBER
55470 ,p_event_id IN NUMBER
55471 ,p_calculate_acctd_flag IN VARCHAR2
55475 ,p_gain_or_loss_ref OUT VARCHAR2
55472 ,p_calculate_g_l_flag IN VARCHAR2
55473 ,p_actual_flag IN OUT VARCHAR2
55474 ,p_balance_type_code OUT VARCHAR2
55476
55477 --Payment Distribution (Payment Rate) Ledger Amount
55478 , p_source_9 IN NUMBER
55479 --Interest Account
55480 , p_source_15 IN NUMBER
55481 --Prorate Interest Invoice Across Distributions Option
55482 , p_source_16 IN VARCHAR2
55483 --Invoice Distribution Account
55484 , p_source_17 IN NUMBER
55485 --Invoice Distribution Type
55486 , p_source_20 IN VARCHAR2
55487 , p_source_20_meaning IN VARCHAR2
55488 --When to Account for Payment Option
55489 , p_source_38 IN VARCHAR2
55490 --Payment Distribution Type
55491 , p_source_39 IN VARCHAR2
55492 , p_source_39_meaning IN VARCHAR2
55493 --Accounting Reversal Indicator
55494 , p_source_40 IN VARCHAR2
55495 --Payment Distribution Amount
55496 , p_source_41 IN NUMBER
55497 --Business Flow Accounts Payable Application Identifier
55498 , p_source_42 IN NUMBER
55499 --Payment Distribution Identifier
55500 , p_source_47 IN NUMBER
55501 --Distribution Link Type
55502 , p_source_48 IN VARCHAR2
55503 --Payment Currency Code
55504 , p_source_49 IN VARCHAR2
55505 --Override Accounted Amount Indicator
55506 , p_source_53 IN VARCHAR2
55507 , p_source_53_meaning IN VARCHAR2
55508 --Payment Supplier Identifier
55509 , p_source_54 IN NUMBER
55510 --Payment Supplier Site Identifier
55511 , p_source_55 IN NUMBER
55512 --Third Party Type
55513 , p_source_56 IN VARCHAR2
55514 --Payment Distribution Reversed Identifier
55515 , p_source_57 IN NUMBER
55516 --Invoice Distribution Tax Line Identifier
55517 , p_source_58 IN NUMBER
55518 --Invoice Distribution Summary Tax Line Identifier
55519 , p_source_59 IN NUMBER
55520 --Invoice Distribution Amount of the Payment Distribution
55521 , p_source_61 IN NUMBER
55522 --Business Flow Invoice Distribution Type
55523 , p_source_62 IN VARCHAR2
55524 --Business Flow Invoice Entity Code
55525 , p_source_63 IN VARCHAR2
55526 --Business Flow Invoice Distribution Identifier
55527 , p_source_64 IN NUMBER
55528 --Business Flow Invoice Identifier
55529 , p_source_65 IN NUMBER
55530 --Invoice Distribution Tax Distribution Identifier from Tax
55531 , p_source_66 IN NUMBER
55532 --Invoice Type Paid
55533 , p_source_101 IN VARCHAR2
55534 , p_source_101_meaning IN VARCHAR2
55535 --Payment Processing Type
55536 , p_source_113 IN VARCHAR2
55537 --Payment Exchange Date
55538 , p_source_114 IN DATE
55539 --Payment Exchange Rate
55540 , p_source_115 IN NUMBER
55541 --Payment Exchange Rate Type
55542 , p_source_116 IN VARCHAR2
55543 )
55544 IS
55545
55546 l_component_type VARCHAR2(80);
55547 l_component_code VARCHAR2(30);
55548 l_component_type_code VARCHAR2(1);
55549 l_component_appl_id INTEGER;
55550 l_amb_context_code VARCHAR2(30);
55551 l_entity_code VARCHAR2(30);
55552 l_event_class_code VARCHAR2(30);
55553 l_ae_header_id NUMBER;
55554 l_event_type_code VARCHAR2(30);
55555 l_line_definition_code VARCHAR2(30);
55556 l_line_definition_owner_code VARCHAR2(1);
55557 --
55558 -- adr variables
55559 l_segment VARCHAR2(30);
55560 l_ccid NUMBER;
55561 l_adr_transaction_coa_id NUMBER;
55562 l_adr_accounting_coa_id NUMBER;
55563 l_adr_flexfield_segment_code VARCHAR2(30);
55564 l_adr_flex_value_set_id NUMBER;
55565 l_adr_value_type_code VARCHAR2(30);
55566 l_adr_value_combination_id NUMBER;
55567 l_adr_value_segment_code VARCHAR2(30);
55568
55569 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55570 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55571 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55572 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55573
55574 -- 4262811 Variables ------------------------------------------------------------------------------------------
55575 l_entered_amt_idx NUMBER;
55576 l_accted_amt_idx NUMBER;
55577 l_acc_rev_flag VARCHAR2(1);
55578 l_accrual_line_num NUMBER;
55579 l_tmp_amt NUMBER;
55580 l_acc_rev_natural_side_code VARCHAR2(1);
55581
55582 l_num_entries NUMBER;
55583 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55584 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55585 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55586 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55587 l_recog_line_1 NUMBER;
55588 l_recog_line_2 NUMBER;
55589
55590 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55591 l_bflow_applied_to_amt NUMBER; -- 5132302
55592 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55593
55597 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55594 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55595
55596 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55598
55599 ---------------------------------------------------------------------------------------------------------------
55600
55601
55602 --
55603 -- bulk performance
55604 --
55605 l_balance_type_code VARCHAR2(1);
55606 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55607 l_log_module VARCHAR2(240);
55608
55609 --
55610 -- Upgrade strategy
55611 --
55612 l_actual_upg_option VARCHAR2(1);
55613 l_enc_upg_option VARCHAR2(1);
55614
55615 --
55616 BEGIN
55617 --
55618 IF g_log_enabled THEN
55619 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
55620 END IF;
55621 --
55622 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55623
55624 trace
55625 (p_msg => 'BEGIN of AcctLineType_108'
55626 ,p_level => C_LEVEL_PROCEDURE
55627 ,p_module => l_log_module);
55628
55629 END IF;
55630 --
55631 l_component_type := 'AMB_JLT';
55632 l_component_code := 'AP_INTEREST_EXPENSE_PMT';
55633 l_component_type_code := 'S';
55634 l_component_appl_id := 200;
55635 l_amb_context_code := 'DEFAULT';
55636 l_entity_code := 'AP_PAYMENTS';
55637 l_event_class_code := 'PAYMENTS';
55638 l_event_type_code := 'PAYMENTS_ALL';
55639 l_line_definition_owner_code := 'S';
55640 l_line_definition_code := 'CASH_PAYMENTS_ALL';
55641 --
55642 l_balance_type_code := 'A';
55643 l_segment := NULL;
55644 l_ccid := NULL;
55645 l_adr_transaction_coa_id := NULL;
55646 l_adr_accounting_coa_id := NULL;
55647 l_adr_flexfield_segment_code := NULL;
55648 l_adr_flex_value_set_id := NULL;
55649 l_adr_value_type_code := NULL;
55650 l_adr_value_combination_id := NULL;
55651 l_adr_value_segment_code := NULL;
55652
55653 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
55654 l_bflow_class_code := ''; -- 4219869 Business Flow
55655 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
55656 l_budgetary_control_flag := 'N';
55657
55658 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55659 l_bflow_applied_to_amt := NULL; -- 5132302
55660 l_entered_amt_idx := NULL; -- 4262811
55661 l_accted_amt_idx := NULL; -- 4262811
55662 l_acc_rev_flag := NULL; -- 4262811
55663 l_accrual_line_num := NULL; -- 4262811
55664 l_tmp_amt := NULL; -- 4262811
55665 --
55666
55667 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55668 l_balance_type_code <> 'B' THEN
55669 IF NVL(p_source_38,'
55670 ') <> 'CLEAR_CLEAR' AND
55671 NVL(p_source_101,'
55672 ') = 'INTEREST' AND
55673 NVL(p_source_20,'
55674 ') = 'ITEM' AND
55675 (NVL(p_source_39,'
55676 ') = 'CASH' OR
55677 NVL(p_source_39,'
55678 ') = 'DISCOUNT') AND
55679 NVL(p_source_113,'
55680 ') <> 'PAYMENTCARD'
55681 THEN
55682
55683 --
55684 XLA_AE_LINES_PKG.SetNewLine;
55685
55686 p_balance_type_code := l_balance_type_code;
55687 -- set the flag so later we will know whether the gain loss line needs to be created
55688
55689 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55690 p_actual_flag :='A';
55691 END IF;
55692
55693 --
55694 -- bulk performance
55695 --
55696 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55697 p_header_num => 0); -- 4262811
55698 --
55699 -- set accounting line options
55700 --
55701 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55702 p_natural_side_code => 'D'
55703 , p_gain_or_loss_flag => 'N'
55704 , p_gl_transfer_mode_code => 'S'
55705 , p_acct_entry_type_code => 'A'
55706 , p_switch_side_flag => 'Y'
55707 , p_merge_duplicate_code => 'A'
55708 );
55709 --
55710 l_acc_rev_natural_side_code := 'C'; -- 4262811
55711 --
55712 --
55713 -- set accounting line type info
55714 --
55715 xla_ae_lines_pkg.SetAcctLineType
55716 (p_component_type => l_component_type
55717 ,p_event_type_code => l_event_type_code
55718 ,p_line_definition_owner_code => l_line_definition_owner_code
55719 ,p_line_definition_code => l_line_definition_code
55720 ,p_accounting_line_code => l_component_code
55721 ,p_accounting_line_type_code => l_component_type_code
55722 ,p_accounting_line_appl_id => l_component_appl_id
55723 ,p_amb_context_code => l_amb_context_code
55724 ,p_entity_code => l_entity_code
55725 ,p_event_class_code => l_event_class_code);
55726 --
55727 -- set accounting class
55728 --
55729 xla_ae_lines_pkg.SetAcctClass(
55730 p_accounting_class_code => 'INTEREST_EXPENSE'
55731 , p_ae_header_id => l_ae_header_id
55732 );
55733
55737 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55734 --
55735 -- set rounding class
55736 --
55738 'INTEREST_EXPENSE';
55739
55740 --
55741 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55742 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55743 --
55744 -- bulk performance
55745 --
55746 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55747
55748 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55749 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55750
55751 -- 4955764
55752 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55753 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55754
55755 -- 4458381 Public Sector Enh
55756
55757 --
55758 -- set accounting attributes for the line type
55759 --
55760 l_entered_amt_idx := 10;
55761 l_accted_amt_idx := 15;
55762 l_bflow_applied_to_amt_idx := 2; -- 5132302
55763 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55764 l_rec_acct_attrs.array_char_value(1) := p_source_40;
55765 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55766 l_rec_acct_attrs.array_num_value(2) := p_source_61;
55767 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55768 l_rec_acct_attrs.array_num_value(3) := p_source_42;
55769 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55770 l_rec_acct_attrs.array_char_value(4) := p_source_62;
55771 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55772 l_rec_acct_attrs.array_char_value(5) := p_source_63;
55773 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55774 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
55775 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55776 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
55777 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55778 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
55779 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55780 l_rec_acct_attrs.array_char_value(9) := p_source_48;
55781 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55782 l_rec_acct_attrs.array_num_value(10) := p_source_41;
55783 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55784 l_rec_acct_attrs.array_char_value(11) := p_source_49;
55785 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55786 l_rec_acct_attrs.array_date_value(12) := p_source_114;
55787 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55788 l_rec_acct_attrs.array_num_value(13) := p_source_115;
55789 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55790 l_rec_acct_attrs.array_char_value(14) := p_source_116;
55791 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55792 l_rec_acct_attrs.array_num_value(15) := p_source_9;
55793 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55794 l_rec_acct_attrs.array_char_value(16) := p_source_53;
55795 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55796 l_rec_acct_attrs.array_num_value(17) := p_source_54;
55797 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55798 l_rec_acct_attrs.array_num_value(18) := p_source_55;
55799 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55800 l_rec_acct_attrs.array_char_value(19) := p_source_56;
55801 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55802 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
55803 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55804 l_rec_acct_attrs.array_char_value(21) := p_source_48;
55805 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55806 l_rec_acct_attrs.array_num_value(22) := p_source_58;
55807 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55808 l_rec_acct_attrs.array_num_value(23) := p_source_66;
55809 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55810 l_rec_acct_attrs.array_num_value(24) := p_source_59;
55811
55812 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55813 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55814
55815 ---------------------------------------------------------------------------------------------------------------
55816 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55817 ---------------------------------------------------------------------------------------------------------------
55818 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55819
55820 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55821 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55822
55823 IF xla_accounting_cache_pkg.GetValueChar
55824 (p_source_code => 'LEDGER_CATEGORY_CODE'
55825 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55826 AND l_bflow_method_code = 'PRIOR_ENTRY'
55830 )
55827 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55828 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55829 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55831 THEN
55832 xla_ae_lines_pkg.BflowUpgEntry
55833 (p_business_method_code => l_bflow_method_code
55834 ,p_business_class_code => l_bflow_class_code
55835 ,p_balance_type => l_balance_type_code);
55836 ELSE
55837 NULL;
55838 -- No business flow processing for business flow method of NONE.
55839 END IF;
55840
55841 --
55842 -- call analytical criteria
55843 --
55844
55845 --
55846 -- call description
55847 --
55848 -- No description or it is inherited.
55849 --
55850 -- call ADRs
55851 -- Bug 4922099
55852 --
55853 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55854 (NVL(l_actual_upg_option, 'N') = 'O') OR
55855 (NVL(l_enc_upg_option, 'N') = 'O')
55856 )
55857 THEN
55858 NULL;
55859 --
55860 --
55861
55862 l_ccid := AcctDerRule_25(
55863 p_application_id => p_application_id
55864 , p_ae_header_id => l_ae_header_id
55865 , p_source_15 => p_source_15
55866 , p_source_16 => p_source_16
55867 , p_source_17 => p_source_17
55868 , x_transaction_coa_id => l_adr_transaction_coa_id
55869 , x_accounting_coa_id => l_adr_accounting_coa_id
55870 , x_value_type_code => l_adr_value_type_code
55871 , p_side => 'NA'
55872 );
55873
55874 xla_ae_lines_pkg.set_ccid(
55875 p_code_combination_id => l_ccid
55876 , p_value_type_code => l_adr_value_type_code
55877 , p_transaction_coa_id => l_adr_transaction_coa_id
55878 , p_accounting_coa_id => l_adr_accounting_coa_id
55879 , p_adr_code => 'AP_INTEREST'
55880 , p_adr_type_code => 'S'
55881 , p_component_type => l_component_type
55882 , p_component_code => l_component_code
55883 , p_component_type_code => l_component_type_code
55884 , p_component_appl_id => l_component_appl_id
55885 , p_amb_context_code => l_amb_context_code
55886 , p_side => 'NA'
55887 );
55888
55889
55890 l_segment := AcctDerRule_8(
55891 p_application_id => p_application_id
55892 , p_ae_header_id => l_ae_header_id
55893 , p_source_15 => p_source_15
55894 , p_source_16 => p_source_16
55895 , x_transaction_coa_id => l_adr_transaction_coa_id
55896 , x_accounting_coa_id => l_adr_accounting_coa_id
55897 , x_flexfield_segment_code => l_adr_flexfield_segment_code
55898 , x_flex_value_set_id => l_adr_flex_value_set_id
55899 , x_value_type_code => l_adr_value_type_code
55900 , x_value_combination_id => l_adr_value_combination_id
55901 , x_value_segment_code => l_adr_value_segment_code
55902 , p_side => 'NA'
55903 , p_override_seg_flag => 'Y'
55904 );
55905
55906 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
55907
55908 xla_ae_lines_pkg.set_segment(
55909 p_to_segment_code => 'GL_ACCOUNT'
55910 , p_segment_value => l_segment
55911 , p_from_segment_code => l_adr_value_segment_code
55912 , p_from_combination_id => l_adr_value_combination_id
55913 , p_value_type_code => l_adr_value_type_code
55914 , p_transaction_coa_id => l_adr_transaction_coa_id
55915 , p_accounting_coa_id => l_adr_accounting_coa_id
55916 , p_flexfield_segment_code => l_adr_flexfield_segment_code
55917 , p_flex_value_set_id => l_adr_flex_value_set_id
55918 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
55919 , p_adr_type_code => 'S'
55920 , p_component_type => l_component_type
55921 , p_component_code => l_component_code
55922 , p_component_type_code => l_component_type_code
55923 , p_component_appl_id => l_component_appl_id
55924 , p_amb_context_code => l_amb_context_code
55925 , p_entity_code => 'AP_PAYMENTS'
55926 , p_event_class_code => 'PAYMENTS'
55927 , p_side => 'NA'
55928 );
55929
55930 END IF;
55931
55932 --
55933 --
55934 END IF;
55935 --
55936 -- Bug 4922099
55937 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55938 (NVL(l_enc_upg_option, 'N') = 'O')
55939 ) AND
55940 (l_bflow_method_code = 'PRIOR_ENTRY')
55941 )
55942 THEN
55943 IF
55944 --
55945 1 = 2
55946 --
55947 THEN
55948 xla_accounting_err_pkg.build_message
55949 (p_appli_s_name => 'XLA'
55950 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55951 ,p_token_1 => 'LINE_NUMBER'
55952 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55953 ,p_token_2 => 'LINE_TYPE_NAME'
55957 ,l_component_type_code
55954 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55955 l_component_type
55956 ,l_component_code
55958 ,l_component_appl_id
55959 ,l_amb_context_code
55960 ,l_entity_code
55961 ,l_event_class_code
55962 )
55963 ,p_token_3 => 'OWNER'
55964 ,p_value_3 => xla_lookups_pkg.get_meaning(
55965 p_lookup_type => 'XLA_OWNER_TYPE'
55966 ,p_lookup_code => l_component_type_code
55967 )
55968 ,p_token_4 => 'PRODUCT_NAME'
55969 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55970 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55971 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55972 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55973 ,p_ae_header_id => NULL
55974 );
55975
55976 IF (C_LEVEL_ERROR>= g_log_level) THEN
55977 trace
55978 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55979 ,p_level => C_LEVEL_ERROR
55980 ,p_module => l_log_module);
55981 END IF;
55982 END IF;
55983 END IF;
55984 --
55985 --
55986 ------------------------------------------------------------------------------------------------
55987 -- 4219869 Business Flow
55988 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55989 -- Prior Entry. Currently, the following code is always generated.
55990 ------------------------------------------------------------------------------------------------
55991 XLA_AE_LINES_PKG.ValidateCurrentLine;
55992
55993 ------------------------------------------------------------------------------------
55994 -- 4219869 Business Flow
55995 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55996 ------------------------------------------------------------------------------------
55997 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55998
55999 ----------------------------------------------------------------------------------
56000 -- 4219869 Business Flow
56001 -- Update journal entry status -- Need to generate this within IF <condition>
56002 ----------------------------------------------------------------------------------
56003 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56004 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56005 ,p_balance_type_code => l_balance_type_code
56006 );
56007
56008 -------------------------------------------------------------------------------------------
56009 -- 4262811 - Generate the Accrual Reversal lines
56010 -------------------------------------------------------------------------------------------
56011 BEGIN
56012 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56013 (g_array_event(p_event_id).array_value_num('header_index'));
56014 IF l_acc_rev_flag IS NULL THEN
56015 l_acc_rev_flag := 'N';
56016 END IF;
56017 EXCEPTION
56018 WHEN OTHERS THEN
56019 l_acc_rev_flag := 'N';
56020 END;
56021 --
56022 IF (l_acc_rev_flag = 'Y') THEN
56023
56024 -- 4645092 ------------------------------------------------------------------------------
56025 -- To allow MPA report to determine if it should generate report process
56026 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56027 ------------------------------------------------------------------------------------------
56028
56029 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56030 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56031 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
56032 -- call ADRs
56033 -- Bug 4922099
56034 --
56035 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56036 (NVL(l_actual_upg_option, 'N') = 'O') OR
56037 (NVL(l_enc_upg_option, 'N') = 'O')
56038 )
56039 THEN
56040 NULL;
56041 --
56042 --
56043
56044 l_ccid := AcctDerRule_25(
56045 p_application_id => p_application_id
56046 , p_ae_header_id => l_ae_header_id
56047 , p_source_15 => p_source_15
56048 , p_source_16 => p_source_16
56052 , x_value_type_code => l_adr_value_type_code
56049 , p_source_17 => p_source_17
56050 , x_transaction_coa_id => l_adr_transaction_coa_id
56051 , x_accounting_coa_id => l_adr_accounting_coa_id
56053 , p_side => 'NA'
56054 );
56055
56056 xla_ae_lines_pkg.set_ccid(
56057 p_code_combination_id => l_ccid
56058 , p_value_type_code => l_adr_value_type_code
56059 , p_transaction_coa_id => l_adr_transaction_coa_id
56060 , p_accounting_coa_id => l_adr_accounting_coa_id
56061 , p_adr_code => 'AP_INTEREST'
56062 , p_adr_type_code => 'S'
56063 , p_component_type => l_component_type
56064 , p_component_code => l_component_code
56065 , p_component_type_code => l_component_type_code
56066 , p_component_appl_id => l_component_appl_id
56067 , p_amb_context_code => l_amb_context_code
56068 , p_side => 'NA'
56069 );
56070
56071
56072 l_segment := AcctDerRule_8(
56073 p_application_id => p_application_id
56074 , p_ae_header_id => l_ae_header_id
56075 , p_source_15 => p_source_15
56076 , p_source_16 => p_source_16
56077 , x_transaction_coa_id => l_adr_transaction_coa_id
56078 , x_accounting_coa_id => l_adr_accounting_coa_id
56079 , x_flexfield_segment_code => l_adr_flexfield_segment_code
56080 , x_flex_value_set_id => l_adr_flex_value_set_id
56081 , x_value_type_code => l_adr_value_type_code
56082 , x_value_combination_id => l_adr_value_combination_id
56083 , x_value_segment_code => l_adr_value_segment_code
56084 , p_side => 'NA'
56085 , p_override_seg_flag => 'Y'
56086 );
56087
56088 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
56089
56090 xla_ae_lines_pkg.set_segment(
56091 p_to_segment_code => 'GL_ACCOUNT'
56092 , p_segment_value => l_segment
56093 , p_from_segment_code => l_adr_value_segment_code
56094 , p_from_combination_id => l_adr_value_combination_id
56095 , p_value_type_code => l_adr_value_type_code
56096 , p_transaction_coa_id => l_adr_transaction_coa_id
56097 , p_accounting_coa_id => l_adr_accounting_coa_id
56098 , p_flexfield_segment_code => l_adr_flexfield_segment_code
56099 , p_flex_value_set_id => l_adr_flex_value_set_id
56100 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
56101 , p_adr_type_code => 'S'
56102 , p_component_type => l_component_type
56103 , p_component_code => l_component_code
56104 , p_component_type_code => l_component_type_code
56105 , p_component_appl_id => l_component_appl_id
56106 , p_amb_context_code => l_amb_context_code
56107 , p_entity_code => 'AP_PAYMENTS'
56108 , p_event_class_code => 'PAYMENTS'
56109 , p_side => 'NA'
56110 );
56111
56112 END IF;
56113
56114 --
56115 --
56116 END IF;
56117
56118 --
56119 -- Update the line information that should be overwritten
56120 --
56121 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56122 p_header_num => 1);
56123 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56124
56125 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56126
56127 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56128 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56129 END IF;
56130
56131 --
56132 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56133 --
56134 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56135 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56136 ELSE
56137 ---------------------------------------------------------------------------------------------------
56138 -- 4262811a Switch Sign
56139 ---------------------------------------------------------------------------------------------------
56140 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56141 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56142 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56143 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56144 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56145 -- 5132302
56146 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56147 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56148
56149 END IF;
56150
56151 -- 4955764
56152 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56156 XLA_AE_LINES_PKG.ValidateCurrentLine;
56153 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56154
56155
56157 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56158
56159 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56160 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56161 ,p_balance_type_code => l_balance_type_code);
56162
56163 END IF;
56164
56165 -----------------------------------------------------------------------------------------
56166 -- 4262811 Multiperiod Accounting
56167 -----------------------------------------------------------------------------------------
56168 -- No MPA option is assigned.
56169
56170
56171 END IF;
56172 END IF;
56173 --
56174
56175 --
56176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56177 trace
56178 (p_msg => 'END of AcctLineType_108'
56179 ,p_level => C_LEVEL_PROCEDURE
56180 ,p_module => l_log_module);
56181 END IF;
56182 --
56183 EXCEPTION
56184 WHEN xla_exceptions_pkg.application_exception THEN
56185 RAISE;
56186 WHEN OTHERS THEN
56187 xla_exceptions_pkg.raise_message
56188 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_108');
56189 END AcctLineType_108;
56190 --
56191
56192 ---------------------------------------
56193 --
56194 -- PRIVATE FUNCTION
56195 -- AcctLineType_109
56196 --
56197 ---------------------------------------
56198 PROCEDURE AcctLineType_109 (
56199 p_application_id IN NUMBER
56200 ,p_event_id IN NUMBER
56201 ,p_calculate_acctd_flag IN VARCHAR2
56202 ,p_calculate_g_l_flag IN VARCHAR2
56203 ,p_actual_flag IN OUT VARCHAR2
56204 ,p_balance_type_code OUT VARCHAR2
56205 ,p_gain_or_loss_ref OUT VARCHAR2
56206
56207 --Payment Distribution (Cleared Rate) Ledger Amount
56208 , p_source_10 IN NUMBER
56209 --Invoice Distribution Account
56210 , p_source_17 IN NUMBER
56211 --Invoice Distribution Type
56212 , p_source_20 IN VARCHAR2
56213 , p_source_20_meaning IN VARCHAR2
56214 --When to Account for Payment Option
56215 , p_source_38 IN VARCHAR2
56216 --Payment Distribution Type
56217 , p_source_39 IN VARCHAR2
56218 , p_source_39_meaning IN VARCHAR2
56219 --Accounting Reversal Indicator
56220 , p_source_40 IN VARCHAR2
56221 --Payment Distribution Amount
56222 , p_source_41 IN NUMBER
56223 --Business Flow Accounts Payable Application Identifier
56224 , p_source_42 IN NUMBER
56225 --Business Flow Payment Distribution Type
56226 , p_source_43 IN VARCHAR2
56227 --Business Flow Payment Entity Code
56228 , p_source_44 IN VARCHAR2
56229 --Business Flow Payment Distribution Identifier
56230 , p_source_45 IN NUMBER
56231 --Business Flow Payment Identifier
56232 , p_source_46 IN NUMBER
56233 --Payment Distribution Identifier
56234 , p_source_47 IN NUMBER
56235 --Distribution Link Type
56236 , p_source_48 IN VARCHAR2
56237 --Payment Currency Code
56238 , p_source_49 IN VARCHAR2
56239 --Override Accounted Amount Indicator
56240 , p_source_53 IN VARCHAR2
56241 , p_source_53_meaning IN VARCHAR2
56242 --Payment Supplier Identifier
56243 , p_source_54 IN NUMBER
56244 --Payment Supplier Site Identifier
56245 , p_source_55 IN NUMBER
56246 --Third Party Type
56247 , p_source_56 IN VARCHAR2
56248 --Payment Distribution Reversed Identifier
56249 , p_source_57 IN NUMBER
56250 --Invoice Distribution Tax Line Identifier
56251 , p_source_58 IN NUMBER
56252 --Invoice Distribution Summary Tax Line Identifier
56253 , p_source_59 IN NUMBER
56254 --Accrue on Receipt Option
56255 , p_source_100 IN VARCHAR2
56256 , p_source_100_meaning IN VARCHAR2
56257 --Cleared Exchange Date
56258 , p_source_107 IN DATE
56259 --Cleared Exchange Rate
56260 , p_source_108 IN NUMBER
56261 --Cleared Exchange Rate Type
56262 , p_source_109 IN VARCHAR2
56263 )
56264 IS
56265
56266 l_component_type VARCHAR2(80);
56267 l_component_code VARCHAR2(30);
56268 l_component_type_code VARCHAR2(1);
56269 l_component_appl_id INTEGER;
56270 l_amb_context_code VARCHAR2(30);
56271 l_entity_code VARCHAR2(30);
56272 l_event_class_code VARCHAR2(30);
56273 l_ae_header_id NUMBER;
56274 l_event_type_code VARCHAR2(30);
56275 l_line_definition_code VARCHAR2(30);
56276 l_line_definition_owner_code VARCHAR2(1);
56277 --
56278 -- adr variables
56279 l_segment VARCHAR2(30);
56280 l_ccid NUMBER;
56281 l_adr_transaction_coa_id NUMBER;
56282 l_adr_accounting_coa_id NUMBER;
56283 l_adr_flexfield_segment_code VARCHAR2(30);
56284 l_adr_flex_value_set_id NUMBER;
56285 l_adr_value_type_code VARCHAR2(30);
56286 l_adr_value_combination_id NUMBER;
56287 l_adr_value_segment_code VARCHAR2(30);
56288
56289 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56293
56290 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56291 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56292 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56294 -- 4262811 Variables ------------------------------------------------------------------------------------------
56295 l_entered_amt_idx NUMBER;
56296 l_accted_amt_idx NUMBER;
56297 l_acc_rev_flag VARCHAR2(1);
56298 l_accrual_line_num NUMBER;
56299 l_tmp_amt NUMBER;
56300 l_acc_rev_natural_side_code VARCHAR2(1);
56301
56302 l_num_entries NUMBER;
56303 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56304 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56305 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56306 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56307 l_recog_line_1 NUMBER;
56308 l_recog_line_2 NUMBER;
56309
56310 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56311 l_bflow_applied_to_amt NUMBER; -- 5132302
56312 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56313
56314 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56315
56316 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56317 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56318
56319 ---------------------------------------------------------------------------------------------------------------
56320
56321
56322 --
56323 -- bulk performance
56324 --
56325 l_balance_type_code VARCHAR2(1);
56326 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56327 l_log_module VARCHAR2(240);
56328
56329 --
56330 -- Upgrade strategy
56331 --
56332 l_actual_upg_option VARCHAR2(1);
56333 l_enc_upg_option VARCHAR2(1);
56334
56335 --
56336 BEGIN
56337 --
56338 IF g_log_enabled THEN
56339 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
56340 END IF;
56341 --
56342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56343
56344 trace
56345 (p_msg => 'BEGIN of AcctLineType_109'
56346 ,p_level => C_LEVEL_PROCEDURE
56347 ,p_module => l_log_module);
56348
56349 END IF;
56350 --
56351 l_component_type := 'AMB_JLT';
56352 l_component_code := 'AP_INV_PRICE_VAR_CLEAR';
56353 l_component_type_code := 'S';
56354 l_component_appl_id := 200;
56355 l_amb_context_code := 'DEFAULT';
56356 l_entity_code := 'AP_PAYMENTS';
56357 l_event_class_code := 'RECONCILED PAYMENTS';
56358 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
56359 l_line_definition_owner_code := 'S';
56360 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
56361 --
56362 l_balance_type_code := 'A';
56363 l_segment := NULL;
56364 l_ccid := NULL;
56365 l_adr_transaction_coa_id := NULL;
56366 l_adr_accounting_coa_id := NULL;
56367 l_adr_flexfield_segment_code := NULL;
56368 l_adr_flex_value_set_id := NULL;
56369 l_adr_value_type_code := NULL;
56370 l_adr_value_combination_id := NULL;
56371 l_adr_value_segment_code := NULL;
56372
56373 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56374 l_bflow_class_code := ''; -- 4219869 Business Flow
56375 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56376 l_budgetary_control_flag := 'N';
56377
56378 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56379 l_bflow_applied_to_amt := NULL; -- 5132302
56380 l_entered_amt_idx := NULL; -- 4262811
56381 l_accted_amt_idx := NULL; -- 4262811
56382 l_acc_rev_flag := NULL; -- 4262811
56383 l_accrual_line_num := NULL; -- 4262811
56384 l_tmp_amt := NULL; -- 4262811
56385 --
56386
56387 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56388 l_balance_type_code <> 'B' THEN
56389 IF NVL(p_source_38,'
56390 ') = 'CLEAR_CLEAR' AND
56391 NVL(p_source_20,'
56392 ') = 'IPV' AND
56393 NVL(p_source_100,'
56394 ') = 'Y' AND
56395 (NVL(p_source_39,'
56396 ') = 'CASH' OR
56397 NVL(p_source_39,'
56398 ') = 'AWT' OR
56399 NVL(p_source_39,'
56400 ') = 'DISCOUNT')
56401 THEN
56402
56403 --
56404 XLA_AE_LINES_PKG.SetNewLine;
56405
56406 p_balance_type_code := l_balance_type_code;
56407 -- set the flag so later we will know whether the gain loss line needs to be created
56408
56409 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56410 p_actual_flag :='A';
56411 END IF;
56412
56413 --
56414 -- bulk performance
56415 --
56416 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56417 p_header_num => 0); -- 4262811
56418 --
56419 -- set accounting line options
56420 --
56421 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56422 p_natural_side_code => 'D'
56423 , p_gain_or_loss_flag => 'N'
56427 , p_merge_duplicate_code => 'A'
56424 , p_gl_transfer_mode_code => 'S'
56425 , p_acct_entry_type_code => 'A'
56426 , p_switch_side_flag => 'Y'
56428 );
56429 --
56430 l_acc_rev_natural_side_code := 'C'; -- 4262811
56431 --
56432 --
56433 -- set accounting line type info
56434 --
56435 xla_ae_lines_pkg.SetAcctLineType
56436 (p_component_type => l_component_type
56437 ,p_event_type_code => l_event_type_code
56438 ,p_line_definition_owner_code => l_line_definition_owner_code
56439 ,p_line_definition_code => l_line_definition_code
56440 ,p_accounting_line_code => l_component_code
56441 ,p_accounting_line_type_code => l_component_type_code
56442 ,p_accounting_line_appl_id => l_component_appl_id
56443 ,p_amb_context_code => l_amb_context_code
56444 ,p_entity_code => l_entity_code
56445 ,p_event_class_code => l_event_class_code);
56446 --
56447 -- set accounting class
56448 --
56449 xla_ae_lines_pkg.SetAcctClass(
56450 p_accounting_class_code => 'IPV'
56451 , p_ae_header_id => l_ae_header_id
56452 );
56453
56454 --
56455 -- set rounding class
56456 --
56457 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56458 'IPV';
56459
56460 --
56461 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56462 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56463 --
56464 -- bulk performance
56465 --
56466 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56467
56468 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56469 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56470
56471 -- 4955764
56472 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56473 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56474
56475 -- 4458381 Public Sector Enh
56476
56477 --
56478 -- set accounting attributes for the line type
56479 --
56480 l_entered_amt_idx := 10;
56481 l_accted_amt_idx := 15;
56482 l_bflow_applied_to_amt_idx := 2; -- 5132302
56483 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56484 l_rec_acct_attrs.array_char_value(1) := p_source_40;
56485 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
56486 l_rec_acct_attrs.array_num_value(2) := p_source_41;
56487 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
56488 l_rec_acct_attrs.array_num_value(3) := p_source_42;
56489 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56490 l_rec_acct_attrs.array_char_value(4) := p_source_43;
56491 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
56492 l_rec_acct_attrs.array_char_value(5) := p_source_44;
56493 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
56494 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
56495 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56496 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
56497 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
56498 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
56499 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
56500 l_rec_acct_attrs.array_char_value(9) := p_source_48;
56501 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
56502 l_rec_acct_attrs.array_num_value(10) := p_source_41;
56503 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
56504 l_rec_acct_attrs.array_char_value(11) := p_source_49;
56505 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
56506 l_rec_acct_attrs.array_date_value(12) := p_source_107;
56507 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
56508 l_rec_acct_attrs.array_num_value(13) := p_source_108;
56509 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
56510 l_rec_acct_attrs.array_char_value(14) := p_source_109;
56511 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
56512 l_rec_acct_attrs.array_num_value(15) := p_source_10;
56513 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
56514 l_rec_acct_attrs.array_char_value(16) := p_source_53;
56515 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
56516 l_rec_acct_attrs.array_num_value(17) := p_source_54;
56517 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
56518 l_rec_acct_attrs.array_num_value(18) := p_source_55;
56519 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
56520 l_rec_acct_attrs.array_char_value(19) := p_source_56;
56521 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
56522 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
56523 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
56524 l_rec_acct_attrs.array_char_value(21) := p_source_48;
56525 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
56526 l_rec_acct_attrs.array_num_value(22) := p_source_58;
56527 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
56531
56528 l_rec_acct_attrs.array_num_value(23) := p_source_58;
56529 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
56530 l_rec_acct_attrs.array_num_value(24) := p_source_59;
56532 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56533 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56534
56535 ---------------------------------------------------------------------------------------------------------------
56536 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56537 ---------------------------------------------------------------------------------------------------------------
56538 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56539
56540 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56541 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56542
56543 IF xla_accounting_cache_pkg.GetValueChar
56544 (p_source_code => 'LEDGER_CATEGORY_CODE'
56545 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56546 AND l_bflow_method_code = 'PRIOR_ENTRY'
56547 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56548 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56549 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56550 )
56551 THEN
56552 xla_ae_lines_pkg.BflowUpgEntry
56553 (p_business_method_code => l_bflow_method_code
56554 ,p_business_class_code => l_bflow_class_code
56555 ,p_balance_type => l_balance_type_code);
56556 ELSE
56557 NULL;
56558 -- No business flow processing for business flow method of NONE.
56559 END IF;
56560
56561 --
56562 -- call analytical criteria
56563 --
56564
56565 --
56566 -- call description
56567 --
56568 -- No description or it is inherited.
56569 --
56570 -- call ADRs
56571 -- Bug 4922099
56572 --
56573 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56574 (NVL(l_actual_upg_option, 'N') = 'O') OR
56575 (NVL(l_enc_upg_option, 'N') = 'O')
56576 )
56577 THEN
56578 NULL;
56579 --
56580 --
56581
56582 l_ccid := AcctDerRule_26(
56583 p_application_id => p_application_id
56584 , p_ae_header_id => l_ae_header_id
56585 , p_source_17 => p_source_17
56586 , x_transaction_coa_id => l_adr_transaction_coa_id
56587 , x_accounting_coa_id => l_adr_accounting_coa_id
56588 , x_value_type_code => l_adr_value_type_code
56589 , p_side => 'NA'
56590 );
56591
56592 xla_ae_lines_pkg.set_ccid(
56593 p_code_combination_id => l_ccid
56594 , p_value_type_code => l_adr_value_type_code
56595 , p_transaction_coa_id => l_adr_transaction_coa_id
56596 , p_accounting_coa_id => l_adr_accounting_coa_id
56597 , p_adr_code => 'AP_INVOICE_DIST'
56598 , p_adr_type_code => 'S'
56599 , p_component_type => l_component_type
56600 , p_component_code => l_component_code
56601 , p_component_type_code => l_component_type_code
56602 , p_component_appl_id => l_component_appl_id
56603 , p_amb_context_code => l_amb_context_code
56604 , p_side => 'NA'
56605 );
56606
56607
56608 --
56609 --
56610 END IF;
56611 --
56612 -- Bug 4922099
56613 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56614 (NVL(l_enc_upg_option, 'N') = 'O')
56615 ) AND
56616 (l_bflow_method_code = 'PRIOR_ENTRY')
56617 )
56618 THEN
56619 IF
56620 --
56621 1 = 2
56622 --
56623 THEN
56624 xla_accounting_err_pkg.build_message
56625 (p_appli_s_name => 'XLA'
56626 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56627 ,p_token_1 => 'LINE_NUMBER'
56628 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
56629 ,p_token_2 => 'LINE_TYPE_NAME'
56630 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
56631 l_component_type
56632 ,l_component_code
56633 ,l_component_type_code
56634 ,l_component_appl_id
56635 ,l_amb_context_code
56636 ,l_entity_code
56637 ,l_event_class_code
56638 )
56639 ,p_token_3 => 'OWNER'
56643 )
56640 ,p_value_3 => xla_lookups_pkg.get_meaning(
56641 p_lookup_type => 'XLA_OWNER_TYPE'
56642 ,p_lookup_code => l_component_type_code
56644 ,p_token_4 => 'PRODUCT_NAME'
56645 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56646 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56647 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56648 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56649 ,p_ae_header_id => NULL
56650 );
56651
56652 IF (C_LEVEL_ERROR>= g_log_level) THEN
56653 trace
56654 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56655 ,p_level => C_LEVEL_ERROR
56656 ,p_module => l_log_module);
56657 END IF;
56658 END IF;
56659 END IF;
56660 --
56661 --
56662 ------------------------------------------------------------------------------------------------
56663 -- 4219869 Business Flow
56664 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56665 -- Prior Entry. Currently, the following code is always generated.
56666 ------------------------------------------------------------------------------------------------
56667 XLA_AE_LINES_PKG.ValidateCurrentLine;
56668
56669 ------------------------------------------------------------------------------------
56670 -- 4219869 Business Flow
56671 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56672 ------------------------------------------------------------------------------------
56673 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56674
56675 ----------------------------------------------------------------------------------
56676 -- 4219869 Business Flow
56677 -- Update journal entry status -- Need to generate this within IF <condition>
56678 ----------------------------------------------------------------------------------
56679 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56680 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56681 ,p_balance_type_code => l_balance_type_code
56682 );
56683
56684 -------------------------------------------------------------------------------------------
56685 -- 4262811 - Generate the Accrual Reversal lines
56686 -------------------------------------------------------------------------------------------
56687 BEGIN
56688 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56689 (g_array_event(p_event_id).array_value_num('header_index'));
56690 IF l_acc_rev_flag IS NULL THEN
56691 l_acc_rev_flag := 'N';
56692 END IF;
56693 EXCEPTION
56694 WHEN OTHERS THEN
56695 l_acc_rev_flag := 'N';
56696 END;
56697 --
56698 IF (l_acc_rev_flag = 'Y') THEN
56699
56700 -- 4645092 ------------------------------------------------------------------------------
56701 -- To allow MPA report to determine if it should generate report process
56702 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56703 ------------------------------------------------------------------------------------------
56704
56705 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56706 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56707 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
56708 -- call ADRs
56709 -- Bug 4922099
56710 --
56711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56712 (NVL(l_actual_upg_option, 'N') = 'O') OR
56713 (NVL(l_enc_upg_option, 'N') = 'O')
56714 )
56715 THEN
56716 NULL;
56717 --
56718 --
56719
56720 l_ccid := AcctDerRule_26(
56721 p_application_id => p_application_id
56722 , p_ae_header_id => l_ae_header_id
56723 , p_source_17 => p_source_17
56724 , x_transaction_coa_id => l_adr_transaction_coa_id
56725 , x_accounting_coa_id => l_adr_accounting_coa_id
56726 , x_value_type_code => l_adr_value_type_code
56727 , p_side => 'NA'
56728 );
56729
56730 xla_ae_lines_pkg.set_ccid(
56731 p_code_combination_id => l_ccid
56732 , p_value_type_code => l_adr_value_type_code
56733 , p_transaction_coa_id => l_adr_transaction_coa_id
56734 , p_accounting_coa_id => l_adr_accounting_coa_id
56735 , p_adr_code => 'AP_INVOICE_DIST'
56736 , p_adr_type_code => 'S'
56737 , p_component_type => l_component_type
56738 , p_component_code => l_component_code
56739 , p_component_type_code => l_component_type_code
56740 , p_component_appl_id => l_component_appl_id
56741 , p_amb_context_code => l_amb_context_code
56745
56742 , p_side => 'NA'
56743 );
56744
56746 --
56747 --
56748 END IF;
56749
56750 --
56751 -- Update the line information that should be overwritten
56752 --
56753 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56754 p_header_num => 1);
56755 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56756
56757 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56758
56759 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56760 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56761 END IF;
56762
56763 --
56764 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56765 --
56766 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56767 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56768 ELSE
56769 ---------------------------------------------------------------------------------------------------
56770 -- 4262811a Switch Sign
56771 ---------------------------------------------------------------------------------------------------
56772 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56773 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56774 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56775 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56776 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56777 -- 5132302
56778 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56779 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56780
56781 END IF;
56782
56783 -- 4955764
56784 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56785 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56786
56787
56788 XLA_AE_LINES_PKG.ValidateCurrentLine;
56789 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56790
56791 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56792 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56793 ,p_balance_type_code => l_balance_type_code);
56794
56795 END IF;
56796
56797 -----------------------------------------------------------------------------------------
56798 -- 4262811 Multiperiod Accounting
56799 -----------------------------------------------------------------------------------------
56800 -- No MPA option is assigned.
56801
56802
56803 END IF;
56804 END IF;
56805 --
56806
56807 --
56808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56809 trace
56810 (p_msg => 'END of AcctLineType_109'
56811 ,p_level => C_LEVEL_PROCEDURE
56812 ,p_module => l_log_module);
56813 END IF;
56814 --
56815 EXCEPTION
56816 WHEN xla_exceptions_pkg.application_exception THEN
56817 RAISE;
56818 WHEN OTHERS THEN
56819 xla_exceptions_pkg.raise_message
56820 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_109');
56821 END AcctLineType_109;
56822 --
56823
56824 ---------------------------------------
56825 --
56826 -- PRIVATE FUNCTION
56827 -- AcctLineType_110
56828 --
56829 ---------------------------------------
56830 PROCEDURE AcctLineType_110 (
56831 p_application_id IN NUMBER
56832 ,p_event_id IN NUMBER
56833 ,p_calculate_acctd_flag IN VARCHAR2
56834 ,p_calculate_g_l_flag IN VARCHAR2
56835 ,p_actual_flag IN OUT VARCHAR2
56836 ,p_balance_type_code OUT VARCHAR2
56837 ,p_gain_or_loss_ref OUT VARCHAR2
56838
56839 --Payment Distribution (Payment Rate) Ledger Amount
56840 , p_source_9 IN NUMBER
56841 --Invoice Distribution Type
56842 , p_source_20 IN VARCHAR2
56843 , p_source_20_meaning IN VARCHAR2
56844 --When to Account for Payment Option
56845 , p_source_38 IN VARCHAR2
56846 --Payment Distribution Type
56847 , p_source_39 IN VARCHAR2
56848 , p_source_39_meaning IN VARCHAR2
56849 --Accounting Reversal Indicator
56850 , p_source_40 IN VARCHAR2
56851 --Payment Distribution Amount
56852 , p_source_41 IN NUMBER
56853 --Business Flow Accounts Payable Application Identifier
56854 , p_source_42 IN NUMBER
56855 --Payment Distribution Identifier
56856 , p_source_47 IN NUMBER
56857 --Distribution Link Type
56858 , p_source_48 IN VARCHAR2
56859 --Payment Currency Code
56860 , p_source_49 IN VARCHAR2
56861 --Override Accounted Amount Indicator
56862 , p_source_53 IN VARCHAR2
56863 , p_source_53_meaning IN VARCHAR2
56864 --Third Party Type
56865 , p_source_56 IN VARCHAR2
56869 , p_source_58 IN NUMBER
56866 --Payment Distribution Reversed Identifier
56867 , p_source_57 IN NUMBER
56868 --Invoice Distribution Tax Line Identifier
56870 --Invoice Distribution Summary Tax Line Identifier
56871 , p_source_59 IN NUMBER
56872 --Business Flow Invoice Distribution Type
56873 , p_source_62 IN VARCHAR2
56874 --Business Flow Invoice Entity Code
56875 , p_source_63 IN VARCHAR2
56876 --Business Flow Invoice Distribution Identifier
56877 , p_source_64 IN NUMBER
56878 --Business Flow Invoice Identifier
56879 , p_source_65 IN NUMBER
56880 --Purchasing Encumbrance Option
56881 , p_source_102 IN VARCHAR2
56882 , p_source_102_meaning IN VARCHAR2
56883 --Invoice Encumbered Option
56884 , p_source_104 IN VARCHAR2
56885 , p_source_104_meaning IN VARCHAR2
56886 )
56887 IS
56888
56889 l_component_type VARCHAR2(80);
56890 l_component_code VARCHAR2(30);
56891 l_component_type_code VARCHAR2(1);
56892 l_component_appl_id INTEGER;
56893 l_amb_context_code VARCHAR2(30);
56894 l_entity_code VARCHAR2(30);
56895 l_event_class_code VARCHAR2(30);
56896 l_ae_header_id NUMBER;
56897 l_event_type_code VARCHAR2(30);
56898 l_line_definition_code VARCHAR2(30);
56899 l_line_definition_owner_code VARCHAR2(1);
56900 --
56901 -- adr variables
56902 l_segment VARCHAR2(30);
56903 l_ccid NUMBER;
56904 l_adr_transaction_coa_id NUMBER;
56905 l_adr_accounting_coa_id NUMBER;
56906 l_adr_flexfield_segment_code VARCHAR2(30);
56907 l_adr_flex_value_set_id NUMBER;
56908 l_adr_value_type_code VARCHAR2(30);
56909 l_adr_value_combination_id NUMBER;
56910 l_adr_value_segment_code VARCHAR2(30);
56911
56912 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56913 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56914 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56915 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56916
56917 -- 4262811 Variables ------------------------------------------------------------------------------------------
56918 l_entered_amt_idx NUMBER;
56919 l_accted_amt_idx NUMBER;
56920 l_acc_rev_flag VARCHAR2(1);
56921 l_accrual_line_num NUMBER;
56922 l_tmp_amt NUMBER;
56923 l_acc_rev_natural_side_code VARCHAR2(1);
56924
56925 l_num_entries NUMBER;
56926 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56927 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56928 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56929 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56930 l_recog_line_1 NUMBER;
56931 l_recog_line_2 NUMBER;
56932
56933 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56934 l_bflow_applied_to_amt NUMBER; -- 5132302
56935 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56936
56937 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56938
56939 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56940 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56941
56942 ---------------------------------------------------------------------------------------------------------------
56943
56944
56945 --
56946 -- bulk performance
56947 --
56948 l_balance_type_code VARCHAR2(1);
56949 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56950 l_log_module VARCHAR2(240);
56951
56952 --
56953 -- Upgrade strategy
56954 --
56955 l_actual_upg_option VARCHAR2(1);
56956 l_enc_upg_option VARCHAR2(1);
56957
56958 --
56959 BEGIN
56960 --
56961 IF g_log_enabled THEN
56962 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
56963 END IF;
56964 --
56965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56966
56967 trace
56968 (p_msg => 'BEGIN of AcctLineType_110'
56969 ,p_level => C_LEVEL_PROCEDURE
56970 ,p_module => l_log_module);
56971
56972 END IF;
56973 --
56974 l_component_type := 'AMB_JLT';
56975 l_component_code := 'AP_INV_PRICE_VAR_CLR_ENC';
56976 l_component_type_code := 'S';
56977 l_component_appl_id := 200;
56978 l_amb_context_code := 'DEFAULT';
56979 l_entity_code := 'AP_PAYMENTS';
56980 l_event_class_code := 'RECONCILED PAYMENTS';
56981 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
56982 l_line_definition_owner_code := 'S';
56983 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
56984 --
56985 l_balance_type_code := 'E';
56986 l_segment := NULL;
56987 l_ccid := NULL;
56988 l_adr_transaction_coa_id := NULL;
56989 l_adr_accounting_coa_id := NULL;
56990 l_adr_flexfield_segment_code := NULL;
56991 l_adr_flex_value_set_id := NULL;
56992 l_adr_value_type_code := NULL;
56993 l_adr_value_combination_id := NULL;
56994 l_adr_value_segment_code := NULL;
56995
56999 l_budgetary_control_flag := 'N';
56996 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
56997 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
56998 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
57000
57001 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57002 l_bflow_applied_to_amt := NULL; -- 5132302
57003 l_entered_amt_idx := NULL; -- 4262811
57004 l_accted_amt_idx := NULL; -- 4262811
57005 l_acc_rev_flag := NULL; -- 4262811
57006 l_accrual_line_num := NULL; -- 4262811
57007 l_tmp_amt := NULL; -- 4262811
57008 --
57009
57010 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57011 l_balance_type_code <> 'B' THEN
57012 IF NVL(p_source_38,'
57013 ') = 'CLEAR_CLEAR' AND
57014 NVL(p_source_20,'
57015 ') = 'IPV' AND
57016 (NVL(p_source_39,'
57017 ') = 'CASH' OR
57018 NVL(p_source_39,'
57019 ') = 'DISCOUNT') AND
57020 NVL(p_source_102,'
57021 ') = 'Y' AND
57022 NVL(p_source_104,'
57023 ') = 'Y'
57024 THEN
57025
57026 --
57027 XLA_AE_LINES_PKG.SetNewLine;
57028
57029 p_balance_type_code := l_balance_type_code;
57030 -- set the flag so later we will know whether the gain loss line needs to be created
57031
57032 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57033 p_actual_flag :='A';
57034 END IF;
57035
57036 --
57037 -- bulk performance
57038 --
57039 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57040 p_header_num => 0); -- 4262811
57041 --
57042 -- set accounting line options
57043 --
57044 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57045 p_natural_side_code => 'C'
57046 , p_gain_or_loss_flag => 'N'
57047 , p_gl_transfer_mode_code => 'S'
57048 , p_acct_entry_type_code => 'E'
57049 , p_switch_side_flag => 'Y'
57050 , p_merge_duplicate_code => 'A'
57051 );
57052 --
57053 l_acc_rev_natural_side_code := 'D'; -- 4262811
57054 --
57055 --
57056 -- set accounting line type info
57057 --
57058 xla_ae_lines_pkg.SetAcctLineType
57059 (p_component_type => l_component_type
57060 ,p_event_type_code => l_event_type_code
57061 ,p_line_definition_owner_code => l_line_definition_owner_code
57062 ,p_line_definition_code => l_line_definition_code
57063 ,p_accounting_line_code => l_component_code
57064 ,p_accounting_line_type_code => l_component_type_code
57065 ,p_accounting_line_appl_id => l_component_appl_id
57066 ,p_amb_context_code => l_amb_context_code
57067 ,p_entity_code => l_entity_code
57068 ,p_event_class_code => l_event_class_code);
57069 --
57070 -- set accounting class
57071 --
57072 xla_ae_lines_pkg.SetAcctClass(
57073 p_accounting_class_code => 'IPV'
57074 , p_ae_header_id => l_ae_header_id
57075 );
57076
57077 --
57078 -- set rounding class
57079 --
57080 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57081 'IPV';
57082
57083 --
57084 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57085 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57086 --
57087 -- bulk performance
57088 --
57089 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57090
57091 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57092 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57093
57094 -- 4955764
57095 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57096 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57097
57098 -- 4458381 Public Sector Enh
57099
57100 --
57101 -- set accounting attributes for the line type
57102 --
57103 l_entered_amt_idx := 10;
57104 l_accted_amt_idx := 12;
57105 l_bflow_applied_to_amt_idx := 2; -- 5132302
57106 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57107 l_rec_acct_attrs.array_char_value(1) := p_source_40;
57108 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
57109 l_rec_acct_attrs.array_num_value(2) := p_source_41;
57110 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
57111 l_rec_acct_attrs.array_num_value(3) := p_source_42;
57112 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57113 l_rec_acct_attrs.array_char_value(4) := p_source_62;
57114 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
57115 l_rec_acct_attrs.array_char_value(5) := p_source_63;
57116 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
57117 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
57118 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57119 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
57123 l_rec_acct_attrs.array_char_value(9) := p_source_48;
57120 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
57121 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
57122 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
57124 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
57125 l_rec_acct_attrs.array_num_value(10) := p_source_41;
57126 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
57127 l_rec_acct_attrs.array_char_value(11) := p_source_49;
57128 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
57129 l_rec_acct_attrs.array_num_value(12) := p_source_9;
57130 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
57131 l_rec_acct_attrs.array_char_value(13) := p_source_53;
57132 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
57133 l_rec_acct_attrs.array_char_value(14) := p_source_56;
57134 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
57135 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
57136 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
57137 l_rec_acct_attrs.array_char_value(16) := p_source_48;
57138 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
57139 l_rec_acct_attrs.array_num_value(17) := p_source_58;
57140 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
57141 l_rec_acct_attrs.array_num_value(18) := p_source_58;
57142 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
57143 l_rec_acct_attrs.array_num_value(19) := p_source_59;
57144
57145 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57146 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57147
57148 ---------------------------------------------------------------------------------------------------------------
57149 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57150 ---------------------------------------------------------------------------------------------------------------
57151 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57152
57153 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57154 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57155
57156 IF xla_accounting_cache_pkg.GetValueChar
57157 (p_source_code => 'LEDGER_CATEGORY_CODE'
57158 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57159 AND l_bflow_method_code = 'PRIOR_ENTRY'
57160 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57161 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57162 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57163 )
57164 THEN
57165 xla_ae_lines_pkg.BflowUpgEntry
57166 (p_business_method_code => l_bflow_method_code
57167 ,p_business_class_code => l_bflow_class_code
57168 ,p_balance_type => l_balance_type_code);
57169 ELSE
57170 NULL;
57171 XLA_AE_LINES_PKG.business_flow_validation(
57172 p_business_method_code => l_bflow_method_code
57173 ,p_business_class_code => l_bflow_class_code
57174 ,p_inherit_description_flag => l_inherit_desc_flag);
57175 END IF;
57176
57177 --
57178 -- call analytical criteria
57179 --
57180 -- Inherited Analytical Criteria for business flow method of Prior Entry.
57181 --
57182 -- call description
57183 --
57184 -- No description or it is inherited.
57185 --
57186 -- call ADRs
57187 -- Bug 4922099
57188 --
57189 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57190 (NVL(l_actual_upg_option, 'N') = 'O') OR
57191 (NVL(l_enc_upg_option, 'N') = 'O')
57192 )
57193 THEN
57194 NULL;
57195 --
57196 --
57197
57198 --
57199 --
57200 END IF;
57201 --
57202 -- Bug 4922099
57203 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57204 (NVL(l_enc_upg_option, 'N') = 'O')
57205 ) AND
57206 (l_bflow_method_code = 'PRIOR_ENTRY')
57207 )
57208 THEN
57209 IF
57210 --
57211 1 = 1
57212 --
57213 THEN
57214 xla_accounting_err_pkg.build_message
57215 (p_appli_s_name => 'XLA'
57216 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57217 ,p_token_1 => 'LINE_NUMBER'
57218 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57219 ,p_token_2 => 'LINE_TYPE_NAME'
57220 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57221 l_component_type
57222 ,l_component_code
57223 ,l_component_type_code
57224 ,l_component_appl_id
57225 ,l_amb_context_code
57229 ,p_token_3 => 'OWNER'
57226 ,l_entity_code
57227 ,l_event_class_code
57228 )
57230 ,p_value_3 => xla_lookups_pkg.get_meaning(
57231 p_lookup_type => 'XLA_OWNER_TYPE'
57232 ,p_lookup_code => l_component_type_code
57233 )
57234 ,p_token_4 => 'PRODUCT_NAME'
57235 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57236 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57237 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57238 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57239 ,p_ae_header_id => NULL
57240 );
57241
57242 IF (C_LEVEL_ERROR>= g_log_level) THEN
57243 trace
57244 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57245 ,p_level => C_LEVEL_ERROR
57246 ,p_module => l_log_module);
57247 END IF;
57248 END IF;
57249 END IF;
57250 --
57251 --
57252 ------------------------------------------------------------------------------------------------
57253 -- 4219869 Business Flow
57254 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57255 -- Prior Entry. Currently, the following code is always generated.
57256 ------------------------------------------------------------------------------------------------
57257 -- No ValidateCurrentLine for business flow method of Prior Entry
57258
57259 ------------------------------------------------------------------------------------
57260 -- 4219869 Business Flow
57261 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57262 ------------------------------------------------------------------------------------
57263 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57264
57265 ----------------------------------------------------------------------------------
57266 -- 4219869 Business Flow
57267 -- Update journal entry status -- Need to generate this within IF <condition>
57268 ----------------------------------------------------------------------------------
57269 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57270 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57271 ,p_balance_type_code => l_balance_type_code
57272 );
57273
57274 -------------------------------------------------------------------------------------------
57275 -- 4262811 - Generate the Accrual Reversal lines
57276 -------------------------------------------------------------------------------------------
57277 BEGIN
57278 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57279 (g_array_event(p_event_id).array_value_num('header_index'));
57280 IF l_acc_rev_flag IS NULL THEN
57281 l_acc_rev_flag := 'N';
57282 END IF;
57283 EXCEPTION
57284 WHEN OTHERS THEN
57285 l_acc_rev_flag := 'N';
57286 END;
57287 --
57288 IF (l_acc_rev_flag = 'Y') THEN
57289
57290 -- 4645092 ------------------------------------------------------------------------------
57291 -- To allow MPA report to determine if it should generate report process
57292 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57293 ------------------------------------------------------------------------------------------
57294
57295 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57296 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57297 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57298 -- call ADRs
57299 -- Bug 4922099
57300 --
57301 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57302 (NVL(l_actual_upg_option, 'N') = 'O') OR
57303 (NVL(l_enc_upg_option, 'N') = 'O')
57304 )
57305 THEN
57306 NULL;
57307 --
57308 --
57309
57310 --
57311 --
57312 END IF;
57313
57314 --
57315 -- Update the line information that should be overwritten
57316 --
57317 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57318 p_header_num => 1);
57319 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57320
57321 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57322
57323 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57324 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57325 END IF;
57326
57327 --
57331 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57328 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57329 --
57330 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57332 ELSE
57333 ---------------------------------------------------------------------------------------------------
57334 -- 4262811a Switch Sign
57335 ---------------------------------------------------------------------------------------------------
57336 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57337 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57338 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57339 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57340 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57341 -- 5132302
57342 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57343 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57344
57345 END IF;
57346
57347 -- 4955764
57348 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57349 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57350
57351
57352 XLA_AE_LINES_PKG.ValidateCurrentLine;
57353 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57354
57355 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57356 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57357 ,p_balance_type_code => l_balance_type_code);
57358
57359 END IF;
57360
57361 -----------------------------------------------------------------------------------------
57362 -- 4262811 Multiperiod Accounting
57363 -----------------------------------------------------------------------------------------
57364 -- No MPA option is assigned.
57365
57366
57367 END IF;
57368 END IF;
57369 --
57370
57371 --
57372 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57373 trace
57374 (p_msg => 'END of AcctLineType_110'
57375 ,p_level => C_LEVEL_PROCEDURE
57376 ,p_module => l_log_module);
57377 END IF;
57378 --
57379 EXCEPTION
57380 WHEN xla_exceptions_pkg.application_exception THEN
57381 RAISE;
57382 WHEN OTHERS THEN
57383 xla_exceptions_pkg.raise_message
57384 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_110');
57385 END AcctLineType_110;
57386 --
57387
57388 ---------------------------------------
57389 --
57390 -- PRIVATE FUNCTION
57391 -- AcctLineType_111
57392 --
57393 ---------------------------------------
57394 PROCEDURE AcctLineType_111 (
57395 p_application_id IN NUMBER
57396 ,p_event_id IN NUMBER
57397 ,p_calculate_acctd_flag IN VARCHAR2
57398 ,p_calculate_g_l_flag IN VARCHAR2
57399 ,p_actual_flag IN OUT VARCHAR2
57400 ,p_balance_type_code OUT VARCHAR2
57401 ,p_gain_or_loss_ref OUT VARCHAR2
57402
57403 --Payment Distribution (Payment Rate) Ledger Amount
57404 , p_source_9 IN NUMBER
57405 --Invoice Distribution Account
57406 , p_source_17 IN NUMBER
57407 --Invoice Distribution Type
57408 , p_source_20 IN VARCHAR2
57409 , p_source_20_meaning IN VARCHAR2
57410 --When to Account for Payment Option
57411 , p_source_38 IN VARCHAR2
57412 --Payment Distribution Type
57413 , p_source_39 IN VARCHAR2
57414 , p_source_39_meaning IN VARCHAR2
57415 --Accounting Reversal Indicator
57416 , p_source_40 IN VARCHAR2
57417 --Payment Distribution Amount
57418 , p_source_41 IN NUMBER
57419 --Business Flow Accounts Payable Application Identifier
57420 , p_source_42 IN NUMBER
57421 --Payment Distribution Identifier
57422 , p_source_47 IN NUMBER
57423 --Distribution Link Type
57424 , p_source_48 IN VARCHAR2
57425 --Payment Currency Code
57426 , p_source_49 IN VARCHAR2
57427 --Override Accounted Amount Indicator
57428 , p_source_53 IN VARCHAR2
57429 , p_source_53_meaning IN VARCHAR2
57430 --Payment Supplier Identifier
57431 , p_source_54 IN NUMBER
57432 --Payment Supplier Site Identifier
57433 , p_source_55 IN NUMBER
57434 --Third Party Type
57435 , p_source_56 IN VARCHAR2
57436 --Payment Distribution Reversed Identifier
57437 , p_source_57 IN NUMBER
57438 --Invoice Distribution Tax Line Identifier
57439 , p_source_58 IN NUMBER
57440 --Invoice Distribution Summary Tax Line Identifier
57441 , p_source_59 IN NUMBER
57442 --Payment Type
57443 , p_source_60 IN VARCHAR2
57444 , p_source_60_meaning IN VARCHAR2
57445 --Invoice Distribution Amount of the Payment Distribution
57446 , p_source_61 IN NUMBER
57447 --Business Flow Invoice Distribution Type
57448 , p_source_62 IN VARCHAR2
57449 --Business Flow Invoice Entity Code
57453 --Business Flow Invoice Identifier
57450 , p_source_63 IN VARCHAR2
57451 --Business Flow Invoice Distribution Identifier
57452 , p_source_64 IN NUMBER
57454 , p_source_65 IN NUMBER
57455 --Invoice Distribution Tax Distribution Identifier from Tax
57456 , p_source_66 IN NUMBER
57457 --Accrue on Receipt Option
57458 , p_source_100 IN VARCHAR2
57459 , p_source_100_meaning IN VARCHAR2
57460 --Payment Exchange Date
57461 , p_source_114 IN DATE
57462 --Payment Exchange Rate
57463 , p_source_115 IN NUMBER
57464 --Payment Exchange Rate Type
57465 , p_source_116 IN VARCHAR2
57466 )
57467 IS
57468
57469 l_component_type VARCHAR2(80);
57470 l_component_code VARCHAR2(30);
57471 l_component_type_code VARCHAR2(1);
57472 l_component_appl_id INTEGER;
57473 l_amb_context_code VARCHAR2(30);
57474 l_entity_code VARCHAR2(30);
57475 l_event_class_code VARCHAR2(30);
57476 l_ae_header_id NUMBER;
57477 l_event_type_code VARCHAR2(30);
57478 l_line_definition_code VARCHAR2(30);
57479 l_line_definition_owner_code VARCHAR2(1);
57480 --
57481 -- adr variables
57482 l_segment VARCHAR2(30);
57483 l_ccid NUMBER;
57484 l_adr_transaction_coa_id NUMBER;
57485 l_adr_accounting_coa_id NUMBER;
57486 l_adr_flexfield_segment_code VARCHAR2(30);
57487 l_adr_flex_value_set_id NUMBER;
57488 l_adr_value_type_code VARCHAR2(30);
57489 l_adr_value_combination_id NUMBER;
57490 l_adr_value_segment_code VARCHAR2(30);
57491
57492 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
57493 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
57494 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
57495 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
57496
57497 -- 4262811 Variables ------------------------------------------------------------------------------------------
57498 l_entered_amt_idx NUMBER;
57499 l_accted_amt_idx NUMBER;
57500 l_acc_rev_flag VARCHAR2(1);
57501 l_accrual_line_num NUMBER;
57502 l_tmp_amt NUMBER;
57503 l_acc_rev_natural_side_code VARCHAR2(1);
57504
57505 l_num_entries NUMBER;
57506 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
57507 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
57508 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
57509 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
57510 l_recog_line_1 NUMBER;
57511 l_recog_line_2 NUMBER;
57512
57513 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
57514 l_bflow_applied_to_amt NUMBER; -- 5132302
57515 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
57516
57517 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57518
57519 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
57520 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
57521
57522 ---------------------------------------------------------------------------------------------------------------
57523
57524
57525 --
57526 -- bulk performance
57527 --
57528 l_balance_type_code VARCHAR2(1);
57529 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57530 l_log_module VARCHAR2(240);
57531
57532 --
57533 -- Upgrade strategy
57534 --
57535 l_actual_upg_option VARCHAR2(1);
57536 l_enc_upg_option VARCHAR2(1);
57537
57538 --
57539 BEGIN
57540 --
57541 IF g_log_enabled THEN
57542 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
57543 END IF;
57544 --
57545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57546
57547 trace
57548 (p_msg => 'BEGIN of AcctLineType_111'
57549 ,p_level => C_LEVEL_PROCEDURE
57550 ,p_module => l_log_module);
57551
57552 END IF;
57553 --
57554 l_component_type := 'AMB_JLT';
57555 l_component_code := 'AP_INV_PRICE_VAR_PMT';
57556 l_component_type_code := 'S';
57557 l_component_appl_id := 200;
57558 l_amb_context_code := 'DEFAULT';
57559 l_entity_code := 'AP_PAYMENTS';
57560 l_event_class_code := 'PAYMENTS';
57561 l_event_type_code := 'PAYMENTS_ALL';
57562 l_line_definition_owner_code := 'S';
57563 l_line_definition_code := 'CASH_PAYMENTS_ALL';
57564 --
57565 l_balance_type_code := 'A';
57566 l_segment := NULL;
57567 l_ccid := NULL;
57568 l_adr_transaction_coa_id := NULL;
57569 l_adr_accounting_coa_id := NULL;
57570 l_adr_flexfield_segment_code := NULL;
57571 l_adr_flex_value_set_id := NULL;
57572 l_adr_value_type_code := NULL;
57573 l_adr_value_combination_id := NULL;
57574 l_adr_value_segment_code := NULL;
57575
57576 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
57577 l_bflow_class_code := ''; -- 4219869 Business Flow
57578 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
57579 l_budgetary_control_flag := 'N';
57583 l_entered_amt_idx := NULL; -- 4262811
57580
57581 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57582 l_bflow_applied_to_amt := NULL; -- 5132302
57584 l_accted_amt_idx := NULL; -- 4262811
57585 l_acc_rev_flag := NULL; -- 4262811
57586 l_accrual_line_num := NULL; -- 4262811
57587 l_tmp_amt := NULL; -- 4262811
57588 --
57589
57590 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57591 l_balance_type_code <> 'B' THEN
57592 IF NVL(p_source_38,'
57593 ') <> 'CLEAR_CLEAR' AND
57594 NVL(p_source_20,'
57595 ') = 'IPV' AND
57596 NVL(p_source_100,'
57597 ') = 'Y' AND
57598 (NVL(p_source_39,'
57599 ') = 'CASH' OR
57600 NVL(p_source_39,'
57601 ') = 'AWT' OR
57602 NVL(p_source_39,'
57603 ') = 'DISCOUNT') AND
57604 NVL(p_source_60,'
57605 ') <> 'R'
57606 THEN
57607
57608 --
57609 XLA_AE_LINES_PKG.SetNewLine;
57610
57611 p_balance_type_code := l_balance_type_code;
57612 -- set the flag so later we will know whether the gain loss line needs to be created
57613
57614 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57615 p_actual_flag :='A';
57616 END IF;
57617
57618 --
57619 -- bulk performance
57620 --
57621 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57622 p_header_num => 0); -- 4262811
57623 --
57624 -- set accounting line options
57625 --
57626 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57627 p_natural_side_code => 'D'
57628 , p_gain_or_loss_flag => 'N'
57629 , p_gl_transfer_mode_code => 'S'
57630 , p_acct_entry_type_code => 'A'
57631 , p_switch_side_flag => 'Y'
57632 , p_merge_duplicate_code => 'A'
57633 );
57634 --
57635 l_acc_rev_natural_side_code := 'C'; -- 4262811
57636 --
57637 --
57638 -- set accounting line type info
57639 --
57640 xla_ae_lines_pkg.SetAcctLineType
57641 (p_component_type => l_component_type
57642 ,p_event_type_code => l_event_type_code
57643 ,p_line_definition_owner_code => l_line_definition_owner_code
57644 ,p_line_definition_code => l_line_definition_code
57645 ,p_accounting_line_code => l_component_code
57646 ,p_accounting_line_type_code => l_component_type_code
57647 ,p_accounting_line_appl_id => l_component_appl_id
57648 ,p_amb_context_code => l_amb_context_code
57649 ,p_entity_code => l_entity_code
57650 ,p_event_class_code => l_event_class_code);
57651 --
57652 -- set accounting class
57653 --
57654 xla_ae_lines_pkg.SetAcctClass(
57655 p_accounting_class_code => 'IPV'
57656 , p_ae_header_id => l_ae_header_id
57657 );
57658
57659 --
57660 -- set rounding class
57661 --
57662 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57663 'IPV';
57664
57665 --
57666 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57667 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57668 --
57669 -- bulk performance
57670 --
57671 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57672
57673 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57674 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57675
57676 -- 4955764
57677 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57678 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57679
57680 -- 4458381 Public Sector Enh
57681
57682 --
57683 -- set accounting attributes for the line type
57684 --
57685 l_entered_amt_idx := 10;
57686 l_accted_amt_idx := 15;
57687 l_bflow_applied_to_amt_idx := 2; -- 5132302
57688 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57689 l_rec_acct_attrs.array_char_value(1) := p_source_40;
57690 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
57691 l_rec_acct_attrs.array_num_value(2) := p_source_61;
57692 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
57693 l_rec_acct_attrs.array_num_value(3) := p_source_42;
57694 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57695 l_rec_acct_attrs.array_char_value(4) := p_source_62;
57696 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
57697 l_rec_acct_attrs.array_char_value(5) := p_source_63;
57698 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
57699 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
57700 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57701 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
57702 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
57703 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
57704 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
57708 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
57705 l_rec_acct_attrs.array_char_value(9) := p_source_48;
57706 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
57707 l_rec_acct_attrs.array_num_value(10) := p_source_41;
57709 l_rec_acct_attrs.array_char_value(11) := p_source_49;
57710 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
57711 l_rec_acct_attrs.array_date_value(12) := p_source_114;
57712 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
57713 l_rec_acct_attrs.array_num_value(13) := p_source_115;
57714 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
57715 l_rec_acct_attrs.array_char_value(14) := p_source_116;
57716 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
57717 l_rec_acct_attrs.array_num_value(15) := p_source_9;
57718 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
57719 l_rec_acct_attrs.array_char_value(16) := p_source_53;
57720 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
57721 l_rec_acct_attrs.array_num_value(17) := p_source_54;
57722 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
57723 l_rec_acct_attrs.array_num_value(18) := p_source_55;
57724 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
57725 l_rec_acct_attrs.array_char_value(19) := p_source_56;
57726 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
57727 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
57728 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
57729 l_rec_acct_attrs.array_char_value(21) := p_source_48;
57730 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
57731 l_rec_acct_attrs.array_num_value(22) := p_source_58;
57732 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
57733 l_rec_acct_attrs.array_num_value(23) := p_source_66;
57734 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
57735 l_rec_acct_attrs.array_num_value(24) := p_source_59;
57736
57737 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57738 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57739
57740 ---------------------------------------------------------------------------------------------------------------
57741 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57742 ---------------------------------------------------------------------------------------------------------------
57743 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57744
57745 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57746 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57747
57748 IF xla_accounting_cache_pkg.GetValueChar
57749 (p_source_code => 'LEDGER_CATEGORY_CODE'
57750 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57751 AND l_bflow_method_code = 'PRIOR_ENTRY'
57752 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57753 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57754 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57755 )
57756 THEN
57757 xla_ae_lines_pkg.BflowUpgEntry
57758 (p_business_method_code => l_bflow_method_code
57759 ,p_business_class_code => l_bflow_class_code
57760 ,p_balance_type => l_balance_type_code);
57761 ELSE
57762 NULL;
57763 -- No business flow processing for business flow method of NONE.
57764 END IF;
57765
57766 --
57767 -- call analytical criteria
57768 --
57769
57770 --
57771 -- call description
57772 --
57773 -- No description or it is inherited.
57774 --
57775 -- call ADRs
57776 -- Bug 4922099
57777 --
57778 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57779 (NVL(l_actual_upg_option, 'N') = 'O') OR
57780 (NVL(l_enc_upg_option, 'N') = 'O')
57781 )
57782 THEN
57783 NULL;
57784 --
57785 --
57786
57787 l_ccid := AcctDerRule_26(
57788 p_application_id => p_application_id
57789 , p_ae_header_id => l_ae_header_id
57790 , p_source_17 => p_source_17
57791 , x_transaction_coa_id => l_adr_transaction_coa_id
57792 , x_accounting_coa_id => l_adr_accounting_coa_id
57793 , x_value_type_code => l_adr_value_type_code
57794 , p_side => 'NA'
57795 );
57796
57797 xla_ae_lines_pkg.set_ccid(
57798 p_code_combination_id => l_ccid
57799 , p_value_type_code => l_adr_value_type_code
57800 , p_transaction_coa_id => l_adr_transaction_coa_id
57801 , p_accounting_coa_id => l_adr_accounting_coa_id
57802 , p_adr_code => 'AP_INVOICE_DIST'
57803 , p_adr_type_code => 'S'
57804 , p_component_type => l_component_type
57805 , p_component_code => l_component_code
57806 , p_component_type_code => l_component_type_code
57807 , p_component_appl_id => l_component_appl_id
57808 , p_amb_context_code => l_amb_context_code
57809 , p_side => 'NA'
57810 );
57811
57812
57813 --
57814 --
57818 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57815 END IF;
57816 --
57817 -- Bug 4922099
57819 (NVL(l_enc_upg_option, 'N') = 'O')
57820 ) AND
57821 (l_bflow_method_code = 'PRIOR_ENTRY')
57822 )
57823 THEN
57824 IF
57825 --
57826 1 = 2
57827 --
57828 THEN
57829 xla_accounting_err_pkg.build_message
57830 (p_appli_s_name => 'XLA'
57831 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57832 ,p_token_1 => 'LINE_NUMBER'
57833 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57834 ,p_token_2 => 'LINE_TYPE_NAME'
57835 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57836 l_component_type
57837 ,l_component_code
57838 ,l_component_type_code
57839 ,l_component_appl_id
57840 ,l_amb_context_code
57841 ,l_entity_code
57842 ,l_event_class_code
57843 )
57844 ,p_token_3 => 'OWNER'
57845 ,p_value_3 => xla_lookups_pkg.get_meaning(
57846 p_lookup_type => 'XLA_OWNER_TYPE'
57847 ,p_lookup_code => l_component_type_code
57848 )
57849 ,p_token_4 => 'PRODUCT_NAME'
57850 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57851 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57852 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57853 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57854 ,p_ae_header_id => NULL
57855 );
57856
57857 IF (C_LEVEL_ERROR>= g_log_level) THEN
57858 trace
57859 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57860 ,p_level => C_LEVEL_ERROR
57861 ,p_module => l_log_module);
57862 END IF;
57863 END IF;
57864 END IF;
57865 --
57866 --
57867 ------------------------------------------------------------------------------------------------
57868 -- 4219869 Business Flow
57869 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57870 -- Prior Entry. Currently, the following code is always generated.
57871 ------------------------------------------------------------------------------------------------
57872 XLA_AE_LINES_PKG.ValidateCurrentLine;
57873
57874 ------------------------------------------------------------------------------------
57875 -- 4219869 Business Flow
57876 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57877 ------------------------------------------------------------------------------------
57878 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57879
57880 ----------------------------------------------------------------------------------
57881 -- 4219869 Business Flow
57882 -- Update journal entry status -- Need to generate this within IF <condition>
57883 ----------------------------------------------------------------------------------
57884 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57885 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57886 ,p_balance_type_code => l_balance_type_code
57887 );
57888
57889 -------------------------------------------------------------------------------------------
57890 -- 4262811 - Generate the Accrual Reversal lines
57891 -------------------------------------------------------------------------------------------
57892 BEGIN
57893 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57894 (g_array_event(p_event_id).array_value_num('header_index'));
57895 IF l_acc_rev_flag IS NULL THEN
57896 l_acc_rev_flag := 'N';
57897 END IF;
57898 EXCEPTION
57899 WHEN OTHERS THEN
57900 l_acc_rev_flag := 'N';
57901 END;
57902 --
57903 IF (l_acc_rev_flag = 'Y') THEN
57904
57905 -- 4645092 ------------------------------------------------------------------------------
57906 -- To allow MPA report to determine if it should generate report process
57907 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57911 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57908 ------------------------------------------------------------------------------------------
57909
57910 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57912 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57913 -- call ADRs
57914 -- Bug 4922099
57915 --
57916 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57917 (NVL(l_actual_upg_option, 'N') = 'O') OR
57918 (NVL(l_enc_upg_option, 'N') = 'O')
57919 )
57920 THEN
57921 NULL;
57922 --
57923 --
57924
57925 l_ccid := AcctDerRule_26(
57926 p_application_id => p_application_id
57927 , p_ae_header_id => l_ae_header_id
57928 , p_source_17 => p_source_17
57929 , x_transaction_coa_id => l_adr_transaction_coa_id
57930 , x_accounting_coa_id => l_adr_accounting_coa_id
57931 , x_value_type_code => l_adr_value_type_code
57932 , p_side => 'NA'
57933 );
57934
57935 xla_ae_lines_pkg.set_ccid(
57936 p_code_combination_id => l_ccid
57937 , p_value_type_code => l_adr_value_type_code
57938 , p_transaction_coa_id => l_adr_transaction_coa_id
57939 , p_accounting_coa_id => l_adr_accounting_coa_id
57940 , p_adr_code => 'AP_INVOICE_DIST'
57941 , p_adr_type_code => 'S'
57942 , p_component_type => l_component_type
57943 , p_component_code => l_component_code
57944 , p_component_type_code => l_component_type_code
57945 , p_component_appl_id => l_component_appl_id
57946 , p_amb_context_code => l_amb_context_code
57947 , p_side => 'NA'
57948 );
57949
57950
57951 --
57952 --
57953 END IF;
57954
57955 --
57956 -- Update the line information that should be overwritten
57957 --
57958 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57959 p_header_num => 1);
57960 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57961
57962 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57963
57964 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57965 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57966 END IF;
57967
57968 --
57969 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57970 --
57971 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57972 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57973 ELSE
57974 ---------------------------------------------------------------------------------------------------
57975 -- 4262811a Switch Sign
57976 ---------------------------------------------------------------------------------------------------
57977 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57978 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57979 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57980 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57981 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57982 -- 5132302
57983 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57984 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57985
57986 END IF;
57987
57988 -- 4955764
57989 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57990 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57991
57992
57993 XLA_AE_LINES_PKG.ValidateCurrentLine;
57994 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57995
57996 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57997 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57998 ,p_balance_type_code => l_balance_type_code);
57999
58000 END IF;
58001
58002 -----------------------------------------------------------------------------------------
58003 -- 4262811 Multiperiod Accounting
58004 -----------------------------------------------------------------------------------------
58005 -- No MPA option is assigned.
58006
58007
58008 END IF;
58009 END IF;
58010 --
58011
58012 --
58013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58014 trace
58015 (p_msg => 'END of AcctLineType_111'
58016 ,p_level => C_LEVEL_PROCEDURE
58017 ,p_module => l_log_module);
58018 END IF;
58019 --
58020 EXCEPTION
58021 WHEN xla_exceptions_pkg.application_exception THEN
58022 RAISE;
58023 WHEN OTHERS THEN
58024 xla_exceptions_pkg.raise_message
58028
58025 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_111');
58026 END AcctLineType_111;
58027 --
58029 ---------------------------------------
58030 --
58031 -- PRIVATE FUNCTION
58032 -- AcctLineType_112
58033 --
58034 ---------------------------------------
58035 PROCEDURE AcctLineType_112 (
58036 p_application_id IN NUMBER
58037 ,p_event_id IN NUMBER
58038 ,p_calculate_acctd_flag IN VARCHAR2
58039 ,p_calculate_g_l_flag IN VARCHAR2
58040 ,p_actual_flag IN OUT VARCHAR2
58041 ,p_balance_type_code OUT VARCHAR2
58042 ,p_gain_or_loss_ref OUT VARCHAR2
58043
58044 --Payment Distribution (Payment Rate) Ledger Amount
58045 , p_source_9 IN NUMBER
58046 --Invoice Distribution Type
58047 , p_source_20 IN VARCHAR2
58048 , p_source_20_meaning IN VARCHAR2
58049 --When to Account for Payment Option
58050 , p_source_38 IN VARCHAR2
58051 --Payment Distribution Type
58052 , p_source_39 IN VARCHAR2
58053 , p_source_39_meaning IN VARCHAR2
58054 --Accounting Reversal Indicator
58055 , p_source_40 IN VARCHAR2
58056 --Payment Distribution Amount
58057 , p_source_41 IN NUMBER
58058 --Business Flow Accounts Payable Application Identifier
58059 , p_source_42 IN NUMBER
58060 --Payment Distribution Identifier
58061 , p_source_47 IN NUMBER
58062 --Distribution Link Type
58063 , p_source_48 IN VARCHAR2
58064 --Payment Currency Code
58065 , p_source_49 IN VARCHAR2
58066 --Override Accounted Amount Indicator
58067 , p_source_53 IN VARCHAR2
58068 , p_source_53_meaning IN VARCHAR2
58069 --Third Party Type
58070 , p_source_56 IN VARCHAR2
58071 --Payment Distribution Reversed Identifier
58072 , p_source_57 IN NUMBER
58073 --Invoice Distribution Tax Line Identifier
58074 , p_source_58 IN NUMBER
58075 --Invoice Distribution Summary Tax Line Identifier
58076 , p_source_59 IN NUMBER
58077 --Payment Type
58078 , p_source_60 IN VARCHAR2
58079 , p_source_60_meaning IN VARCHAR2
58080 --Invoice Distribution Amount of the Payment Distribution
58081 , p_source_61 IN NUMBER
58082 --Business Flow Invoice Distribution Type
58083 , p_source_62 IN VARCHAR2
58084 --Business Flow Invoice Entity Code
58085 , p_source_63 IN VARCHAR2
58086 --Business Flow Invoice Distribution Identifier
58087 , p_source_64 IN NUMBER
58088 --Business Flow Invoice Identifier
58089 , p_source_65 IN NUMBER
58090 --Invoice Distribution Tax Distribution Identifier from Tax
58091 , p_source_66 IN NUMBER
58092 --Purchasing Encumbrance Option
58093 , p_source_102 IN VARCHAR2
58094 , p_source_102_meaning IN VARCHAR2
58095 --Invoice Encumbered Option
58096 , p_source_104 IN VARCHAR2
58097 , p_source_104_meaning IN VARCHAR2
58098 )
58099 IS
58100
58101 l_component_type VARCHAR2(80);
58102 l_component_code VARCHAR2(30);
58103 l_component_type_code VARCHAR2(1);
58104 l_component_appl_id INTEGER;
58105 l_amb_context_code VARCHAR2(30);
58106 l_entity_code VARCHAR2(30);
58107 l_event_class_code VARCHAR2(30);
58108 l_ae_header_id NUMBER;
58109 l_event_type_code VARCHAR2(30);
58110 l_line_definition_code VARCHAR2(30);
58111 l_line_definition_owner_code VARCHAR2(1);
58112 --
58113 -- adr variables
58114 l_segment VARCHAR2(30);
58115 l_ccid NUMBER;
58116 l_adr_transaction_coa_id NUMBER;
58117 l_adr_accounting_coa_id NUMBER;
58118 l_adr_flexfield_segment_code VARCHAR2(30);
58119 l_adr_flex_value_set_id NUMBER;
58120 l_adr_value_type_code VARCHAR2(30);
58121 l_adr_value_combination_id NUMBER;
58122 l_adr_value_segment_code VARCHAR2(30);
58123
58124 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58125 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58126 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58127 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58128
58129 -- 4262811 Variables ------------------------------------------------------------------------------------------
58130 l_entered_amt_idx NUMBER;
58131 l_accted_amt_idx NUMBER;
58132 l_acc_rev_flag VARCHAR2(1);
58133 l_accrual_line_num NUMBER;
58134 l_tmp_amt NUMBER;
58135 l_acc_rev_natural_side_code VARCHAR2(1);
58136
58137 l_num_entries NUMBER;
58138 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58139 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58140 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58141 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58142 l_recog_line_1 NUMBER;
58143 l_recog_line_2 NUMBER;
58144
58145 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58146 l_bflow_applied_to_amt NUMBER; -- 5132302
58147 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58148
58152 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58149 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58150
58151 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58153
58154 ---------------------------------------------------------------------------------------------------------------
58155
58156
58157 --
58158 -- bulk performance
58159 --
58160 l_balance_type_code VARCHAR2(1);
58161 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58162 l_log_module VARCHAR2(240);
58163
58164 --
58165 -- Upgrade strategy
58166 --
58167 l_actual_upg_option VARCHAR2(1);
58168 l_enc_upg_option VARCHAR2(1);
58169
58170 --
58171 BEGIN
58172 --
58173 IF g_log_enabled THEN
58174 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
58175 END IF;
58176 --
58177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58178
58179 trace
58180 (p_msg => 'BEGIN of AcctLineType_112'
58181 ,p_level => C_LEVEL_PROCEDURE
58182 ,p_module => l_log_module);
58183
58184 END IF;
58185 --
58186 l_component_type := 'AMB_JLT';
58187 l_component_code := 'AP_INV_PRICE_VAR_PMT_ENC';
58188 l_component_type_code := 'S';
58189 l_component_appl_id := 200;
58190 l_amb_context_code := 'DEFAULT';
58191 l_entity_code := 'AP_PAYMENTS';
58192 l_event_class_code := 'PAYMENTS';
58193 l_event_type_code := 'PAYMENTS_ALL';
58194 l_line_definition_owner_code := 'S';
58195 l_line_definition_code := 'ENC_PAYMENTS_ALL';
58196 --
58197 l_balance_type_code := 'E';
58198 l_segment := NULL;
58199 l_ccid := NULL;
58200 l_adr_transaction_coa_id := NULL;
58201 l_adr_accounting_coa_id := NULL;
58202 l_adr_flexfield_segment_code := NULL;
58203 l_adr_flex_value_set_id := NULL;
58204 l_adr_value_type_code := NULL;
58205 l_adr_value_combination_id := NULL;
58206 l_adr_value_segment_code := NULL;
58207
58208 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
58209 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
58210 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58211 l_budgetary_control_flag := 'N';
58212
58213 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58214 l_bflow_applied_to_amt := NULL; -- 5132302
58215 l_entered_amt_idx := NULL; -- 4262811
58216 l_accted_amt_idx := NULL; -- 4262811
58217 l_acc_rev_flag := NULL; -- 4262811
58218 l_accrual_line_num := NULL; -- 4262811
58219 l_tmp_amt := NULL; -- 4262811
58220 --
58221
58222 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58223 l_balance_type_code <> 'B' THEN
58224 IF NVL(p_source_38,'
58225 ') <> 'CLEAR_CLEAR' AND
58226 NVL(p_source_20,'
58227 ') = 'IPV' AND
58228 (NVL(p_source_39,'
58229 ') = 'CASH' OR
58230 NVL(p_source_39,'
58231 ') = 'DISCOUNT') AND
58232 NVL(p_source_60,'
58233 ') <> 'R' AND
58234 NVL(p_source_102,'
58235 ') = 'Y' AND
58236 NVL(p_source_104,'
58237 ') = 'Y'
58238 THEN
58239
58240 --
58241 XLA_AE_LINES_PKG.SetNewLine;
58242
58243 p_balance_type_code := l_balance_type_code;
58244 -- set the flag so later we will know whether the gain loss line needs to be created
58245
58246 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58247 p_actual_flag :='A';
58248 END IF;
58249
58250 --
58251 -- bulk performance
58252 --
58253 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58254 p_header_num => 0); -- 4262811
58255 --
58256 -- set accounting line options
58257 --
58258 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58259 p_natural_side_code => 'C'
58260 , p_gain_or_loss_flag => 'N'
58261 , p_gl_transfer_mode_code => 'S'
58262 , p_acct_entry_type_code => 'E'
58263 , p_switch_side_flag => 'Y'
58264 , p_merge_duplicate_code => 'A'
58265 );
58266 --
58267 l_acc_rev_natural_side_code := 'D'; -- 4262811
58268 --
58269 --
58270 -- set accounting line type info
58271 --
58272 xla_ae_lines_pkg.SetAcctLineType
58273 (p_component_type => l_component_type
58274 ,p_event_type_code => l_event_type_code
58275 ,p_line_definition_owner_code => l_line_definition_owner_code
58276 ,p_line_definition_code => l_line_definition_code
58277 ,p_accounting_line_code => l_component_code
58278 ,p_accounting_line_type_code => l_component_type_code
58279 ,p_accounting_line_appl_id => l_component_appl_id
58280 ,p_amb_context_code => l_amb_context_code
58281 ,p_entity_code => l_entity_code
58282 ,p_event_class_code => l_event_class_code);
58283 --
58284 -- set accounting class
58285 --
58286 xla_ae_lines_pkg.SetAcctClass(
58287 p_accounting_class_code => 'IPV'
58288 , p_ae_header_id => l_ae_header_id
58292 -- set rounding class
58289 );
58290
58291 --
58293 --
58294 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58295 'IPV';
58296
58297 --
58298 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58299 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58300 --
58301 -- bulk performance
58302 --
58303 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58304
58305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58306 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58307
58308 -- 4955764
58309 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58310 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58311
58312 -- 4458381 Public Sector Enh
58313
58314 --
58315 -- set accounting attributes for the line type
58316 --
58317 l_entered_amt_idx := 10;
58318 l_accted_amt_idx := 12;
58319 l_bflow_applied_to_amt_idx := 2; -- 5132302
58320 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58321 l_rec_acct_attrs.array_char_value(1) := p_source_40;
58322 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
58323 l_rec_acct_attrs.array_num_value(2) := p_source_61;
58324 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
58325 l_rec_acct_attrs.array_num_value(3) := p_source_42;
58326 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58327 l_rec_acct_attrs.array_char_value(4) := p_source_62;
58328 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
58329 l_rec_acct_attrs.array_char_value(5) := p_source_63;
58330 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
58331 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
58332 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58333 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
58334 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
58335 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
58336 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
58337 l_rec_acct_attrs.array_char_value(9) := p_source_48;
58338 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
58339 l_rec_acct_attrs.array_num_value(10) := p_source_41;
58340 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
58341 l_rec_acct_attrs.array_char_value(11) := p_source_49;
58342 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
58343 l_rec_acct_attrs.array_num_value(12) := p_source_9;
58344 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
58345 l_rec_acct_attrs.array_char_value(13) := p_source_53;
58346 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
58347 l_rec_acct_attrs.array_char_value(14) := p_source_56;
58348 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
58349 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
58350 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
58351 l_rec_acct_attrs.array_char_value(16) := p_source_48;
58352 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
58353 l_rec_acct_attrs.array_num_value(17) := p_source_58;
58354 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
58355 l_rec_acct_attrs.array_num_value(18) := p_source_66;
58356 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
58357 l_rec_acct_attrs.array_num_value(19) := p_source_59;
58358
58359 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58360 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58361
58362 ---------------------------------------------------------------------------------------------------------------
58363 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58364 ---------------------------------------------------------------------------------------------------------------
58365 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58366
58367 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58368 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58369
58370 IF xla_accounting_cache_pkg.GetValueChar
58371 (p_source_code => 'LEDGER_CATEGORY_CODE'
58372 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58373 AND l_bflow_method_code = 'PRIOR_ENTRY'
58374 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58375 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58376 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58377 )
58378 THEN
58379 xla_ae_lines_pkg.BflowUpgEntry
58380 (p_business_method_code => l_bflow_method_code
58381 ,p_business_class_code => l_bflow_class_code
58382 ,p_balance_type => l_balance_type_code);
58383 ELSE
58384 NULL;
58385 XLA_AE_LINES_PKG.business_flow_validation(
58389 END IF;
58386 p_business_method_code => l_bflow_method_code
58387 ,p_business_class_code => l_bflow_class_code
58388 ,p_inherit_description_flag => l_inherit_desc_flag);
58390
58391 --
58392 -- call analytical criteria
58393 --
58394 -- Inherited Analytical Criteria for business flow method of Prior Entry.
58395 --
58396 -- call description
58397 --
58398 -- No description or it is inherited.
58399 --
58400 -- call ADRs
58401 -- Bug 4922099
58402 --
58403 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58404 (NVL(l_actual_upg_option, 'N') = 'O') OR
58405 (NVL(l_enc_upg_option, 'N') = 'O')
58406 )
58407 THEN
58408 NULL;
58409 --
58410 --
58411
58412 --
58413 --
58414 END IF;
58415 --
58416 -- Bug 4922099
58417 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58418 (NVL(l_enc_upg_option, 'N') = 'O')
58419 ) AND
58420 (l_bflow_method_code = 'PRIOR_ENTRY')
58421 )
58422 THEN
58423 IF
58424 --
58425 1 = 1
58426 --
58427 THEN
58428 xla_accounting_err_pkg.build_message
58429 (p_appli_s_name => 'XLA'
58430 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58431 ,p_token_1 => 'LINE_NUMBER'
58432 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58433 ,p_token_2 => 'LINE_TYPE_NAME'
58434 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58435 l_component_type
58436 ,l_component_code
58437 ,l_component_type_code
58438 ,l_component_appl_id
58439 ,l_amb_context_code
58440 ,l_entity_code
58441 ,l_event_class_code
58442 )
58443 ,p_token_3 => 'OWNER'
58444 ,p_value_3 => xla_lookups_pkg.get_meaning(
58445 p_lookup_type => 'XLA_OWNER_TYPE'
58446 ,p_lookup_code => l_component_type_code
58447 )
58448 ,p_token_4 => 'PRODUCT_NAME'
58449 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58450 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58451 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58452 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58453 ,p_ae_header_id => NULL
58454 );
58455
58456 IF (C_LEVEL_ERROR>= g_log_level) THEN
58457 trace
58458 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58459 ,p_level => C_LEVEL_ERROR
58460 ,p_module => l_log_module);
58461 END IF;
58462 END IF;
58463 END IF;
58464 --
58465 --
58466 ------------------------------------------------------------------------------------------------
58467 -- 4219869 Business Flow
58468 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58469 -- Prior Entry. Currently, the following code is always generated.
58470 ------------------------------------------------------------------------------------------------
58471 -- No ValidateCurrentLine for business flow method of Prior Entry
58472
58473 ------------------------------------------------------------------------------------
58474 -- 4219869 Business Flow
58475 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58476 ------------------------------------------------------------------------------------
58477 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58478
58479 ----------------------------------------------------------------------------------
58480 -- 4219869 Business Flow
58481 -- Update journal entry status -- Need to generate this within IF <condition>
58482 ----------------------------------------------------------------------------------
58483 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58484 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58485 ,p_balance_type_code => l_balance_type_code
58486 );
58487
58488 -------------------------------------------------------------------------------------------
58489 -- 4262811 - Generate the Accrual Reversal lines
58493 (g_array_event(p_event_id).array_value_num('header_index'));
58490 -------------------------------------------------------------------------------------------
58491 BEGIN
58492 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58494 IF l_acc_rev_flag IS NULL THEN
58495 l_acc_rev_flag := 'N';
58496 END IF;
58497 EXCEPTION
58498 WHEN OTHERS THEN
58499 l_acc_rev_flag := 'N';
58500 END;
58501 --
58502 IF (l_acc_rev_flag = 'Y') THEN
58503
58504 -- 4645092 ------------------------------------------------------------------------------
58505 -- To allow MPA report to determine if it should generate report process
58506 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58507 ------------------------------------------------------------------------------------------
58508
58509 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58510 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58511 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
58512 -- call ADRs
58513 -- Bug 4922099
58514 --
58515 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58516 (NVL(l_actual_upg_option, 'N') = 'O') OR
58517 (NVL(l_enc_upg_option, 'N') = 'O')
58518 )
58519 THEN
58520 NULL;
58521 --
58522 --
58523
58524 --
58525 --
58526 END IF;
58527
58528 --
58529 -- Update the line information that should be overwritten
58530 --
58531 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58532 p_header_num => 1);
58533 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
58534
58535 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58536
58537 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
58538 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58539 END IF;
58540
58541 --
58542 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58543 --
58544 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58545 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
58546 ELSE
58547 ---------------------------------------------------------------------------------------------------
58548 -- 4262811a Switch Sign
58549 ---------------------------------------------------------------------------------------------------
58550 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
58551 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58552 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58553 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58554 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58555 -- 5132302
58556 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58557 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58558
58559 END IF;
58560
58561 -- 4955764
58562 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58563 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58564
58565
58566 XLA_AE_LINES_PKG.ValidateCurrentLine;
58567 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58568
58569 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58570 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58571 ,p_balance_type_code => l_balance_type_code);
58572
58573 END IF;
58574
58575 -----------------------------------------------------------------------------------------
58576 -- 4262811 Multiperiod Accounting
58577 -----------------------------------------------------------------------------------------
58578 -- No MPA option is assigned.
58579
58580
58581 END IF;
58582 END IF;
58583 --
58584
58585 --
58586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58587 trace
58588 (p_msg => 'END of AcctLineType_112'
58589 ,p_level => C_LEVEL_PROCEDURE
58590 ,p_module => l_log_module);
58591 END IF;
58592 --
58593 EXCEPTION
58594 WHEN xla_exceptions_pkg.application_exception THEN
58595 RAISE;
58596 WHEN OTHERS THEN
58597 xla_exceptions_pkg.raise_message
58598 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_112');
58599 END AcctLineType_112;
58600 --
58601
58602 ---------------------------------------
58603 --
58604 -- PRIVATE FUNCTION
58605 -- AcctLineType_113
58606 --
58607 ---------------------------------------
58608 PROCEDURE AcctLineType_113 (
58609 p_application_id IN NUMBER
58610 ,p_event_id IN NUMBER
58611 ,p_calculate_acctd_flag IN VARCHAR2
58615 ,p_gain_or_loss_ref OUT VARCHAR2
58612 ,p_calculate_g_l_flag IN VARCHAR2
58613 ,p_actual_flag IN OUT VARCHAR2
58614 ,p_balance_type_code OUT VARCHAR2
58616
58617 --Payment Distribution (Payment Rate) Ledger Amount
58618 , p_source_9 IN NUMBER
58619 --Invoice Distribution Account
58620 , p_source_17 IN NUMBER
58621 --Invoice Distribution Type
58622 , p_source_20 IN VARCHAR2
58623 , p_source_20_meaning IN VARCHAR2
58624 --When to Account for Payment Option
58625 , p_source_38 IN VARCHAR2
58626 --Payment Distribution Type
58627 , p_source_39 IN VARCHAR2
58628 , p_source_39_meaning IN VARCHAR2
58629 --Accounting Reversal Indicator
58630 , p_source_40 IN VARCHAR2
58631 --Payment Distribution Amount
58632 , p_source_41 IN NUMBER
58633 --Business Flow Accounts Payable Application Identifier
58634 , p_source_42 IN NUMBER
58635 --Payment Distribution Identifier
58636 , p_source_47 IN NUMBER
58637 --Distribution Link Type
58638 , p_source_48 IN VARCHAR2
58639 --Payment Currency Code
58640 , p_source_49 IN VARCHAR2
58641 --Override Accounted Amount Indicator
58642 , p_source_53 IN VARCHAR2
58643 , p_source_53_meaning IN VARCHAR2
58644 --Payment Supplier Identifier
58645 , p_source_54 IN NUMBER
58646 --Payment Supplier Site Identifier
58647 , p_source_55 IN NUMBER
58648 --Third Party Type
58649 , p_source_56 IN VARCHAR2
58650 --Payment Distribution Reversed Identifier
58651 , p_source_57 IN NUMBER
58652 --Invoice Distribution Tax Line Identifier
58653 , p_source_58 IN NUMBER
58654 --Invoice Distribution Summary Tax Line Identifier
58655 , p_source_59 IN NUMBER
58656 --Payment Type
58657 , p_source_60 IN VARCHAR2
58658 , p_source_60_meaning IN VARCHAR2
58659 --Business Flow Invoice Distribution Type
58660 , p_source_62 IN VARCHAR2
58661 --Business Flow Invoice Entity Code
58662 , p_source_63 IN VARCHAR2
58663 --Business Flow Invoice Distribution Identifier
58664 , p_source_64 IN NUMBER
58665 --Business Flow Invoice Identifier
58666 , p_source_65 IN NUMBER
58667 --Invoice Distribution Tax Distribution Identifier from Tax
58668 , p_source_66 IN NUMBER
58669 --Accrue on Receipt Option
58670 , p_source_100 IN VARCHAR2
58671 , p_source_100_meaning IN VARCHAR2
58672 --Payment Exchange Date
58673 , p_source_114 IN DATE
58674 --Payment Exchange Rate
58675 , p_source_115 IN NUMBER
58676 --Payment Exchange Rate Type
58677 , p_source_116 IN VARCHAR2
58678 )
58679 IS
58680
58681 l_component_type VARCHAR2(80);
58682 l_component_code VARCHAR2(30);
58683 l_component_type_code VARCHAR2(1);
58684 l_component_appl_id INTEGER;
58685 l_amb_context_code VARCHAR2(30);
58686 l_entity_code VARCHAR2(30);
58687 l_event_class_code VARCHAR2(30);
58688 l_ae_header_id NUMBER;
58689 l_event_type_code VARCHAR2(30);
58690 l_line_definition_code VARCHAR2(30);
58691 l_line_definition_owner_code VARCHAR2(1);
58692 --
58693 -- adr variables
58694 l_segment VARCHAR2(30);
58695 l_ccid NUMBER;
58696 l_adr_transaction_coa_id NUMBER;
58697 l_adr_accounting_coa_id NUMBER;
58698 l_adr_flexfield_segment_code VARCHAR2(30);
58699 l_adr_flex_value_set_id NUMBER;
58700 l_adr_value_type_code VARCHAR2(30);
58701 l_adr_value_combination_id NUMBER;
58702 l_adr_value_segment_code VARCHAR2(30);
58703
58704 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58705 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58706 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58707 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58708
58709 -- 4262811 Variables ------------------------------------------------------------------------------------------
58710 l_entered_amt_idx NUMBER;
58711 l_accted_amt_idx NUMBER;
58712 l_acc_rev_flag VARCHAR2(1);
58713 l_accrual_line_num NUMBER;
58714 l_tmp_amt NUMBER;
58715 l_acc_rev_natural_side_code VARCHAR2(1);
58716
58717 l_num_entries NUMBER;
58718 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58719 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58720 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58721 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58722 l_recog_line_1 NUMBER;
58723 l_recog_line_2 NUMBER;
58724
58725 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58726 l_bflow_applied_to_amt NUMBER; -- 5132302
58727 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58728
58729 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58730
58731 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58732 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58736
58733
58734 ---------------------------------------------------------------------------------------------------------------
58735
58737 --
58738 -- bulk performance
58739 --
58740 l_balance_type_code VARCHAR2(1);
58741 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58742 l_log_module VARCHAR2(240);
58743
58744 --
58745 -- Upgrade strategy
58746 --
58747 l_actual_upg_option VARCHAR2(1);
58748 l_enc_upg_option VARCHAR2(1);
58749
58750 --
58751 BEGIN
58752 --
58753 IF g_log_enabled THEN
58754 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
58755 END IF;
58756 --
58757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58758
58759 trace
58760 (p_msg => 'BEGIN of AcctLineType_113'
58761 ,p_level => C_LEVEL_PROCEDURE
58762 ,p_module => l_log_module);
58763
58764 END IF;
58765 --
58766 l_component_type := 'AMB_JLT';
58767 l_component_code := 'AP_INV_PRICE_VAR_REF';
58768 l_component_type_code := 'S';
58769 l_component_appl_id := 200;
58770 l_amb_context_code := 'DEFAULT';
58771 l_entity_code := 'AP_PAYMENTS';
58772 l_event_class_code := 'REFUNDS';
58773 l_event_type_code := 'REFUNDS_ALL';
58774 l_line_definition_owner_code := 'S';
58775 l_line_definition_code := 'CASH_REFUNDS_ALL';
58776 --
58777 l_balance_type_code := 'A';
58778 l_segment := NULL;
58779 l_ccid := NULL;
58780 l_adr_transaction_coa_id := NULL;
58781 l_adr_accounting_coa_id := NULL;
58782 l_adr_flexfield_segment_code := NULL;
58783 l_adr_flex_value_set_id := NULL;
58784 l_adr_value_type_code := NULL;
58785 l_adr_value_combination_id := NULL;
58786 l_adr_value_segment_code := NULL;
58787
58788 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58789 l_bflow_class_code := ''; -- 4219869 Business Flow
58790 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58791 l_budgetary_control_flag := 'N';
58792
58793 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58794 l_bflow_applied_to_amt := NULL; -- 5132302
58795 l_entered_amt_idx := NULL; -- 4262811
58796 l_accted_amt_idx := NULL; -- 4262811
58797 l_acc_rev_flag := NULL; -- 4262811
58798 l_accrual_line_num := NULL; -- 4262811
58799 l_tmp_amt := NULL; -- 4262811
58800 --
58801
58802 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58803 l_balance_type_code <> 'B' THEN
58804 IF NVL(p_source_38,'
58805 ') <> 'CLEAR_CLEAR' AND
58806 NVL(p_source_20,'
58807 ') = 'IPV' AND
58808 NVL(p_source_100,'
58809 ') = 'Y' AND
58810 (NVL(p_source_39,'
58811 ') = 'CASH' OR
58812 NVL(p_source_39,'
58813 ') = 'DISCOUNT') AND
58814 NVL(p_source_60,'
58815 ') = 'R'
58816 THEN
58817
58818 --
58819 XLA_AE_LINES_PKG.SetNewLine;
58820
58821 p_balance_type_code := l_balance_type_code;
58822 -- set the flag so later we will know whether the gain loss line needs to be created
58823
58824 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58825 p_actual_flag :='A';
58826 END IF;
58827
58828 --
58829 -- bulk performance
58830 --
58831 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58832 p_header_num => 0); -- 4262811
58833 --
58834 -- set accounting line options
58835 --
58836 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58837 p_natural_side_code => 'D'
58838 , p_gain_or_loss_flag => 'N'
58839 , p_gl_transfer_mode_code => 'S'
58840 , p_acct_entry_type_code => 'A'
58841 , p_switch_side_flag => 'Y'
58842 , p_merge_duplicate_code => 'A'
58843 );
58844 --
58845 l_acc_rev_natural_side_code := 'C'; -- 4262811
58846 --
58847 --
58848 -- set accounting line type info
58849 --
58850 xla_ae_lines_pkg.SetAcctLineType
58851 (p_component_type => l_component_type
58852 ,p_event_type_code => l_event_type_code
58853 ,p_line_definition_owner_code => l_line_definition_owner_code
58854 ,p_line_definition_code => l_line_definition_code
58855 ,p_accounting_line_code => l_component_code
58856 ,p_accounting_line_type_code => l_component_type_code
58857 ,p_accounting_line_appl_id => l_component_appl_id
58858 ,p_amb_context_code => l_amb_context_code
58859 ,p_entity_code => l_entity_code
58860 ,p_event_class_code => l_event_class_code);
58861 --
58862 -- set accounting class
58863 --
58864 xla_ae_lines_pkg.SetAcctClass(
58865 p_accounting_class_code => 'IPV'
58866 , p_ae_header_id => l_ae_header_id
58867 );
58868
58869 --
58870 -- set rounding class
58871 --
58872 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58873 'IPV';
58874
58875 --
58876 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58880 --
58877 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58878 --
58879 -- bulk performance
58881 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58882
58883 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58884 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58885
58886 -- 4955764
58887 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58888 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58889
58890 -- 4458381 Public Sector Enh
58891
58892 --
58893 -- set accounting attributes for the line type
58894 --
58895 l_entered_amt_idx := 9;
58896 l_accted_amt_idx := 14;
58897 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58898 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58899 l_rec_acct_attrs.array_char_value(1) := p_source_40;
58900 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
58901 l_rec_acct_attrs.array_num_value(2) := p_source_42;
58902 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58903 l_rec_acct_attrs.array_char_value(3) := p_source_62;
58904 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
58905 l_rec_acct_attrs.array_char_value(4) := p_source_63;
58906 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
58907 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
58908 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58909 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
58910 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
58911 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
58912 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
58913 l_rec_acct_attrs.array_char_value(8) := p_source_48;
58914 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
58915 l_rec_acct_attrs.array_num_value(9) := p_source_41;
58916 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
58917 l_rec_acct_attrs.array_char_value(10) := p_source_49;
58918 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
58919 l_rec_acct_attrs.array_date_value(11) := p_source_114;
58920 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
58921 l_rec_acct_attrs.array_num_value(12) := p_source_115;
58922 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
58923 l_rec_acct_attrs.array_char_value(13) := p_source_116;
58924 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
58925 l_rec_acct_attrs.array_num_value(14) := p_source_9;
58926 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
58927 l_rec_acct_attrs.array_char_value(15) := p_source_53;
58928 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
58929 l_rec_acct_attrs.array_num_value(16) := p_source_54;
58930 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
58931 l_rec_acct_attrs.array_num_value(17) := p_source_55;
58932 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
58933 l_rec_acct_attrs.array_char_value(18) := p_source_56;
58934 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
58935 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
58936 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
58937 l_rec_acct_attrs.array_char_value(20) := p_source_48;
58938 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
58939 l_rec_acct_attrs.array_num_value(21) := p_source_58;
58940 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
58941 l_rec_acct_attrs.array_num_value(22) := p_source_66;
58942 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
58943 l_rec_acct_attrs.array_num_value(23) := p_source_59;
58944
58945 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58946 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58947
58948 ---------------------------------------------------------------------------------------------------------------
58949 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58950 ---------------------------------------------------------------------------------------------------------------
58951 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58952
58953 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58954 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58955
58956 IF xla_accounting_cache_pkg.GetValueChar
58957 (p_source_code => 'LEDGER_CATEGORY_CODE'
58958 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58959 AND l_bflow_method_code = 'PRIOR_ENTRY'
58960 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58961 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58962 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58963 )
58964 THEN
58965 xla_ae_lines_pkg.BflowUpgEntry
58966 (p_business_method_code => l_bflow_method_code
58967 ,p_business_class_code => l_bflow_class_code
58971 -- No business flow processing for business flow method of NONE.
58968 ,p_balance_type => l_balance_type_code);
58969 ELSE
58970 NULL;
58972 END IF;
58973
58974 --
58975 -- call analytical criteria
58976 --
58977
58978 --
58979 -- call description
58980 --
58981 -- No description or it is inherited.
58982 --
58983 -- call ADRs
58984 -- Bug 4922099
58985 --
58986 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58987 (NVL(l_actual_upg_option, 'N') = 'O') OR
58988 (NVL(l_enc_upg_option, 'N') = 'O')
58989 )
58990 THEN
58991 NULL;
58992 --
58993 --
58994
58995 l_ccid := AcctDerRule_26(
58996 p_application_id => p_application_id
58997 , p_ae_header_id => l_ae_header_id
58998 , p_source_17 => p_source_17
58999 , x_transaction_coa_id => l_adr_transaction_coa_id
59000 , x_accounting_coa_id => l_adr_accounting_coa_id
59001 , x_value_type_code => l_adr_value_type_code
59002 , p_side => 'NA'
59003 );
59004
59005 xla_ae_lines_pkg.set_ccid(
59006 p_code_combination_id => l_ccid
59007 , p_value_type_code => l_adr_value_type_code
59008 , p_transaction_coa_id => l_adr_transaction_coa_id
59009 , p_accounting_coa_id => l_adr_accounting_coa_id
59010 , p_adr_code => 'AP_INVOICE_DIST'
59011 , p_adr_type_code => 'S'
59012 , p_component_type => l_component_type
59013 , p_component_code => l_component_code
59014 , p_component_type_code => l_component_type_code
59015 , p_component_appl_id => l_component_appl_id
59016 , p_amb_context_code => l_amb_context_code
59017 , p_side => 'NA'
59018 );
59019
59020
59021 --
59022 --
59023 END IF;
59024 --
59025 -- Bug 4922099
59026 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59027 (NVL(l_enc_upg_option, 'N') = 'O')
59028 ) AND
59029 (l_bflow_method_code = 'PRIOR_ENTRY')
59030 )
59031 THEN
59032 IF
59033 --
59034 1 = 2
59035 --
59036 THEN
59037 xla_accounting_err_pkg.build_message
59038 (p_appli_s_name => 'XLA'
59039 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59040 ,p_token_1 => 'LINE_NUMBER'
59041 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59042 ,p_token_2 => 'LINE_TYPE_NAME'
59043 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59044 l_component_type
59045 ,l_component_code
59046 ,l_component_type_code
59047 ,l_component_appl_id
59048 ,l_amb_context_code
59049 ,l_entity_code
59050 ,l_event_class_code
59051 )
59052 ,p_token_3 => 'OWNER'
59053 ,p_value_3 => xla_lookups_pkg.get_meaning(
59054 p_lookup_type => 'XLA_OWNER_TYPE'
59055 ,p_lookup_code => l_component_type_code
59056 )
59057 ,p_token_4 => 'PRODUCT_NAME'
59058 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59059 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59060 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59061 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59062 ,p_ae_header_id => NULL
59063 );
59064
59065 IF (C_LEVEL_ERROR>= g_log_level) THEN
59066 trace
59067 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59068 ,p_level => C_LEVEL_ERROR
59069 ,p_module => l_log_module);
59070 END IF;
59071 END IF;
59072 END IF;
59073 --
59074 --
59075 ------------------------------------------------------------------------------------------------
59076 -- 4219869 Business Flow
59077 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59078 -- Prior Entry. Currently, the following code is always generated.
59079 ------------------------------------------------------------------------------------------------
59080 XLA_AE_LINES_PKG.ValidateCurrentLine;
59081
59085 ------------------------------------------------------------------------------------
59082 ------------------------------------------------------------------------------------
59083 -- 4219869 Business Flow
59084 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59086 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59087
59088 ----------------------------------------------------------------------------------
59089 -- 4219869 Business Flow
59090 -- Update journal entry status -- Need to generate this within IF <condition>
59091 ----------------------------------------------------------------------------------
59092 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59093 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59094 ,p_balance_type_code => l_balance_type_code
59095 );
59096
59097 -------------------------------------------------------------------------------------------
59098 -- 4262811 - Generate the Accrual Reversal lines
59099 -------------------------------------------------------------------------------------------
59100 BEGIN
59101 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59102 (g_array_event(p_event_id).array_value_num('header_index'));
59103 IF l_acc_rev_flag IS NULL THEN
59104 l_acc_rev_flag := 'N';
59105 END IF;
59106 EXCEPTION
59107 WHEN OTHERS THEN
59108 l_acc_rev_flag := 'N';
59109 END;
59110 --
59111 IF (l_acc_rev_flag = 'Y') THEN
59112
59113 -- 4645092 ------------------------------------------------------------------------------
59114 -- To allow MPA report to determine if it should generate report process
59115 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59116 ------------------------------------------------------------------------------------------
59117
59118 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59119 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59120 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59121 -- call ADRs
59122 -- Bug 4922099
59123 --
59124 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59125 (NVL(l_actual_upg_option, 'N') = 'O') OR
59126 (NVL(l_enc_upg_option, 'N') = 'O')
59127 )
59128 THEN
59129 NULL;
59130 --
59131 --
59132
59133 l_ccid := AcctDerRule_26(
59134 p_application_id => p_application_id
59135 , p_ae_header_id => l_ae_header_id
59136 , p_source_17 => p_source_17
59137 , x_transaction_coa_id => l_adr_transaction_coa_id
59138 , x_accounting_coa_id => l_adr_accounting_coa_id
59139 , x_value_type_code => l_adr_value_type_code
59140 , p_side => 'NA'
59141 );
59142
59143 xla_ae_lines_pkg.set_ccid(
59144 p_code_combination_id => l_ccid
59145 , p_value_type_code => l_adr_value_type_code
59146 , p_transaction_coa_id => l_adr_transaction_coa_id
59147 , p_accounting_coa_id => l_adr_accounting_coa_id
59148 , p_adr_code => 'AP_INVOICE_DIST'
59149 , p_adr_type_code => 'S'
59150 , p_component_type => l_component_type
59151 , p_component_code => l_component_code
59152 , p_component_type_code => l_component_type_code
59153 , p_component_appl_id => l_component_appl_id
59154 , p_amb_context_code => l_amb_context_code
59155 , p_side => 'NA'
59156 );
59157
59158
59159 --
59160 --
59161 END IF;
59162
59163 --
59164 -- Update the line information that should be overwritten
59165 --
59166 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59167 p_header_num => 1);
59168 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59169
59170 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59171
59172 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59173 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59174 END IF;
59175
59176 --
59177 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59178 --
59179 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59180 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59181 ELSE
59182 ---------------------------------------------------------------------------------------------------
59183 -- 4262811a Switch Sign
59184 ---------------------------------------------------------------------------------------------------
59185 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59186 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59187 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59188 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59192 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59189 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59190 -- 5132302
59191 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59193
59194 END IF;
59195
59196 -- 4955764
59197 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59198 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59199
59200
59201 XLA_AE_LINES_PKG.ValidateCurrentLine;
59202 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59203
59204 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59205 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59206 ,p_balance_type_code => l_balance_type_code);
59207
59208 END IF;
59209
59210 -----------------------------------------------------------------------------------------
59211 -- 4262811 Multiperiod Accounting
59212 -----------------------------------------------------------------------------------------
59213 -- No MPA option is assigned.
59214
59215
59216 END IF;
59217 END IF;
59218 --
59219
59220 --
59221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59222 trace
59223 (p_msg => 'END of AcctLineType_113'
59224 ,p_level => C_LEVEL_PROCEDURE
59225 ,p_module => l_log_module);
59226 END IF;
59227 --
59228 EXCEPTION
59229 WHEN xla_exceptions_pkg.application_exception THEN
59230 RAISE;
59231 WHEN OTHERS THEN
59232 xla_exceptions_pkg.raise_message
59233 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_113');
59234 END AcctLineType_113;
59235 --
59236
59237 ---------------------------------------
59238 --
59239 -- PRIVATE FUNCTION
59240 -- AcctLineType_114
59241 --
59242 ---------------------------------------
59243 PROCEDURE AcctLineType_114 (
59244 p_application_id IN NUMBER
59245 ,p_event_id IN NUMBER
59246 ,p_calculate_acctd_flag IN VARCHAR2
59247 ,p_calculate_g_l_flag IN VARCHAR2
59248 ,p_actual_flag IN OUT VARCHAR2
59249 ,p_balance_type_code OUT VARCHAR2
59250 ,p_gain_or_loss_ref OUT VARCHAR2
59251
59252 --Payment Distribution (Payment Rate) Ledger Amount
59253 , p_source_9 IN NUMBER
59254 --Invoice Distribution Type
59255 , p_source_20 IN VARCHAR2
59256 , p_source_20_meaning IN VARCHAR2
59257 --When to Account for Payment Option
59258 , p_source_38 IN VARCHAR2
59259 --Payment Distribution Type
59260 , p_source_39 IN VARCHAR2
59261 , p_source_39_meaning IN VARCHAR2
59262 --Accounting Reversal Indicator
59263 , p_source_40 IN VARCHAR2
59264 --Payment Distribution Amount
59265 , p_source_41 IN NUMBER
59266 --Business Flow Accounts Payable Application Identifier
59267 , p_source_42 IN NUMBER
59268 --Payment Distribution Identifier
59269 , p_source_47 IN NUMBER
59270 --Distribution Link Type
59271 , p_source_48 IN VARCHAR2
59272 --Payment Currency Code
59273 , p_source_49 IN VARCHAR2
59274 --Override Accounted Amount Indicator
59275 , p_source_53 IN VARCHAR2
59276 , p_source_53_meaning IN VARCHAR2
59277 --Third Party Type
59278 , p_source_56 IN VARCHAR2
59279 --Payment Distribution Reversed Identifier
59280 , p_source_57 IN NUMBER
59281 --Invoice Distribution Tax Line Identifier
59282 , p_source_58 IN NUMBER
59283 --Invoice Distribution Summary Tax Line Identifier
59284 , p_source_59 IN NUMBER
59285 --Payment Type
59286 , p_source_60 IN VARCHAR2
59287 , p_source_60_meaning IN VARCHAR2
59288 --Business Flow Invoice Distribution Type
59289 , p_source_62 IN VARCHAR2
59290 --Business Flow Invoice Entity Code
59291 , p_source_63 IN VARCHAR2
59292 --Business Flow Invoice Distribution Identifier
59293 , p_source_64 IN NUMBER
59294 --Business Flow Invoice Identifier
59295 , p_source_65 IN NUMBER
59296 --Invoice Distribution Tax Distribution Identifier from Tax
59297 , p_source_66 IN NUMBER
59298 --Purchasing Encumbrance Option
59299 , p_source_102 IN VARCHAR2
59300 , p_source_102_meaning IN VARCHAR2
59301 --Invoice Encumbered Option
59302 , p_source_104 IN VARCHAR2
59303 , p_source_104_meaning IN VARCHAR2
59304 )
59305 IS
59306
59307 l_component_type VARCHAR2(80);
59308 l_component_code VARCHAR2(30);
59309 l_component_type_code VARCHAR2(1);
59310 l_component_appl_id INTEGER;
59311 l_amb_context_code VARCHAR2(30);
59312 l_entity_code VARCHAR2(30);
59313 l_event_class_code VARCHAR2(30);
59314 l_ae_header_id NUMBER;
59315 l_event_type_code VARCHAR2(30);
59316 l_line_definition_code VARCHAR2(30);
59317 l_line_definition_owner_code VARCHAR2(1);
59318 --
59319 -- adr variables
59320 l_segment VARCHAR2(30);
59321 l_ccid NUMBER;
59322 l_adr_transaction_coa_id NUMBER;
59326 l_adr_value_type_code VARCHAR2(30);
59323 l_adr_accounting_coa_id NUMBER;
59324 l_adr_flexfield_segment_code VARCHAR2(30);
59325 l_adr_flex_value_set_id NUMBER;
59327 l_adr_value_combination_id NUMBER;
59328 l_adr_value_segment_code VARCHAR2(30);
59329
59330 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59331 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59332 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59333 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59334
59335 -- 4262811 Variables ------------------------------------------------------------------------------------------
59336 l_entered_amt_idx NUMBER;
59337 l_accted_amt_idx NUMBER;
59338 l_acc_rev_flag VARCHAR2(1);
59339 l_accrual_line_num NUMBER;
59340 l_tmp_amt NUMBER;
59341 l_acc_rev_natural_side_code VARCHAR2(1);
59342
59343 l_num_entries NUMBER;
59344 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59345 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59346 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59347 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59348 l_recog_line_1 NUMBER;
59349 l_recog_line_2 NUMBER;
59350
59351 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59352 l_bflow_applied_to_amt NUMBER; -- 5132302
59353 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59354
59355 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59356
59357 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59358 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59359
59360 ---------------------------------------------------------------------------------------------------------------
59361
59362
59363 --
59364 -- bulk performance
59365 --
59366 l_balance_type_code VARCHAR2(1);
59367 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59368 l_log_module VARCHAR2(240);
59369
59370 --
59371 -- Upgrade strategy
59372 --
59373 l_actual_upg_option VARCHAR2(1);
59374 l_enc_upg_option VARCHAR2(1);
59375
59376 --
59377 BEGIN
59378 --
59379 IF g_log_enabled THEN
59380 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
59381 END IF;
59382 --
59383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59384
59385 trace
59386 (p_msg => 'BEGIN of AcctLineType_114'
59387 ,p_level => C_LEVEL_PROCEDURE
59388 ,p_module => l_log_module);
59389
59390 END IF;
59391 --
59392 l_component_type := 'AMB_JLT';
59393 l_component_code := 'AP_INV_PRICE_VAR_REF_ENC';
59394 l_component_type_code := 'S';
59395 l_component_appl_id := 200;
59396 l_amb_context_code := 'DEFAULT';
59397 l_entity_code := 'AP_PAYMENTS';
59398 l_event_class_code := 'REFUNDS';
59399 l_event_type_code := 'REFUNDS_ALL';
59400 l_line_definition_owner_code := 'S';
59401 l_line_definition_code := 'ENC_REFUNDS_ALL';
59402 --
59403 l_balance_type_code := 'E';
59404 l_segment := NULL;
59405 l_ccid := NULL;
59406 l_adr_transaction_coa_id := NULL;
59407 l_adr_accounting_coa_id := NULL;
59408 l_adr_flexfield_segment_code := NULL;
59409 l_adr_flex_value_set_id := NULL;
59410 l_adr_value_type_code := NULL;
59411 l_adr_value_combination_id := NULL;
59412 l_adr_value_segment_code := NULL;
59413
59414 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
59415 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
59416 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59417 l_budgetary_control_flag := 'N';
59418
59419 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59420 l_bflow_applied_to_amt := NULL; -- 5132302
59421 l_entered_amt_idx := NULL; -- 4262811
59422 l_accted_amt_idx := NULL; -- 4262811
59423 l_acc_rev_flag := NULL; -- 4262811
59424 l_accrual_line_num := NULL; -- 4262811
59425 l_tmp_amt := NULL; -- 4262811
59426 --
59427
59428 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59429 l_balance_type_code <> 'B' THEN
59430 IF NVL(p_source_38,'
59431 ') <> 'CLEAR_CLEAR' AND
59432 NVL(p_source_20,'
59433 ') = 'IPV' AND
59434 (NVL(p_source_39,'
59435 ') = 'CASH' OR
59436 NVL(p_source_39,'
59437 ') = 'DISCOUNT') AND
59438 NVL(p_source_60,'
59439 ') = 'R' AND
59440 NVL(p_source_102,'
59441 ') = 'Y' AND
59442 NVL(p_source_104,'
59443 ') = 'Y'
59444 THEN
59445
59446 --
59447 XLA_AE_LINES_PKG.SetNewLine;
59448
59449 p_balance_type_code := l_balance_type_code;
59450 -- set the flag so later we will know whether the gain loss line needs to be created
59451
59452 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59456 --
59453 p_actual_flag :='A';
59454 END IF;
59455
59457 -- bulk performance
59458 --
59459 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59460 p_header_num => 0); -- 4262811
59461 --
59462 -- set accounting line options
59463 --
59464 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59465 p_natural_side_code => 'C'
59466 , p_gain_or_loss_flag => 'N'
59467 , p_gl_transfer_mode_code => 'S'
59468 , p_acct_entry_type_code => 'E'
59469 , p_switch_side_flag => 'Y'
59470 , p_merge_duplicate_code => 'A'
59471 );
59472 --
59473 l_acc_rev_natural_side_code := 'D'; -- 4262811
59474 --
59475 --
59476 -- set accounting line type info
59477 --
59478 xla_ae_lines_pkg.SetAcctLineType
59479 (p_component_type => l_component_type
59480 ,p_event_type_code => l_event_type_code
59481 ,p_line_definition_owner_code => l_line_definition_owner_code
59482 ,p_line_definition_code => l_line_definition_code
59483 ,p_accounting_line_code => l_component_code
59484 ,p_accounting_line_type_code => l_component_type_code
59485 ,p_accounting_line_appl_id => l_component_appl_id
59486 ,p_amb_context_code => l_amb_context_code
59487 ,p_entity_code => l_entity_code
59488 ,p_event_class_code => l_event_class_code);
59489 --
59490 -- set accounting class
59491 --
59492 xla_ae_lines_pkg.SetAcctClass(
59493 p_accounting_class_code => 'IPV'
59494 , p_ae_header_id => l_ae_header_id
59495 );
59496
59497 --
59498 -- set rounding class
59499 --
59500 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59501 'IPV';
59502
59503 --
59504 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59505 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59506 --
59507 -- bulk performance
59508 --
59509 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59510
59511 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59512 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59513
59514 -- 4955764
59515 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59516 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59517
59518 -- 4458381 Public Sector Enh
59519
59520 --
59521 -- set accounting attributes for the line type
59522 --
59523 l_entered_amt_idx := 9;
59524 l_accted_amt_idx := 11;
59525 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59526 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59527 l_rec_acct_attrs.array_char_value(1) := p_source_40;
59528 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
59529 l_rec_acct_attrs.array_num_value(2) := p_source_42;
59530 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59531 l_rec_acct_attrs.array_char_value(3) := p_source_62;
59532 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
59533 l_rec_acct_attrs.array_char_value(4) := p_source_63;
59534 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
59535 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
59536 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59537 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
59538 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
59539 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
59540 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
59541 l_rec_acct_attrs.array_char_value(8) := p_source_48;
59542 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
59543 l_rec_acct_attrs.array_num_value(9) := p_source_41;
59544 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
59545 l_rec_acct_attrs.array_char_value(10) := p_source_49;
59546 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
59547 l_rec_acct_attrs.array_num_value(11) := p_source_9;
59548 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
59549 l_rec_acct_attrs.array_char_value(12) := p_source_53;
59550 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
59551 l_rec_acct_attrs.array_char_value(13) := p_source_56;
59552 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
59553 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
59554 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
59555 l_rec_acct_attrs.array_char_value(15) := p_source_48;
59556 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
59557 l_rec_acct_attrs.array_num_value(16) := p_source_58;
59558 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
59559 l_rec_acct_attrs.array_num_value(17) := p_source_66;
59560 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
59561 l_rec_acct_attrs.array_num_value(18) := p_source_59;
59562
59563 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59567 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59564 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59565
59566 ---------------------------------------------------------------------------------------------------------------
59568 ---------------------------------------------------------------------------------------------------------------
59569 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59570
59571 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59572 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59573
59574 IF xla_accounting_cache_pkg.GetValueChar
59575 (p_source_code => 'LEDGER_CATEGORY_CODE'
59576 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59577 AND l_bflow_method_code = 'PRIOR_ENTRY'
59578 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59579 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59580 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59581 )
59582 THEN
59583 xla_ae_lines_pkg.BflowUpgEntry
59584 (p_business_method_code => l_bflow_method_code
59585 ,p_business_class_code => l_bflow_class_code
59586 ,p_balance_type => l_balance_type_code);
59587 ELSE
59588 NULL;
59589 XLA_AE_LINES_PKG.business_flow_validation(
59590 p_business_method_code => l_bflow_method_code
59591 ,p_business_class_code => l_bflow_class_code
59592 ,p_inherit_description_flag => l_inherit_desc_flag);
59593 END IF;
59594
59595 --
59596 -- call analytical criteria
59597 --
59598 -- Inherited Analytical Criteria for business flow method of Prior Entry.
59599 --
59600 -- call description
59601 --
59602 -- No description or it is inherited.
59603 --
59604 -- call ADRs
59605 -- Bug 4922099
59606 --
59607 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59608 (NVL(l_actual_upg_option, 'N') = 'O') OR
59609 (NVL(l_enc_upg_option, 'N') = 'O')
59610 )
59611 THEN
59612 NULL;
59613 --
59614 --
59615
59616 --
59617 --
59618 END IF;
59619 --
59620 -- Bug 4922099
59621 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59622 (NVL(l_enc_upg_option, 'N') = 'O')
59623 ) AND
59624 (l_bflow_method_code = 'PRIOR_ENTRY')
59625 )
59626 THEN
59627 IF
59628 --
59629 1 = 1
59630 --
59631 THEN
59632 xla_accounting_err_pkg.build_message
59633 (p_appli_s_name => 'XLA'
59634 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59635 ,p_token_1 => 'LINE_NUMBER'
59636 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59637 ,p_token_2 => 'LINE_TYPE_NAME'
59638 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59639 l_component_type
59640 ,l_component_code
59641 ,l_component_type_code
59642 ,l_component_appl_id
59643 ,l_amb_context_code
59644 ,l_entity_code
59645 ,l_event_class_code
59646 )
59647 ,p_token_3 => 'OWNER'
59648 ,p_value_3 => xla_lookups_pkg.get_meaning(
59649 p_lookup_type => 'XLA_OWNER_TYPE'
59650 ,p_lookup_code => l_component_type_code
59651 )
59652 ,p_token_4 => 'PRODUCT_NAME'
59653 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59654 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59655 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59656 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59657 ,p_ae_header_id => NULL
59658 );
59659
59660 IF (C_LEVEL_ERROR>= g_log_level) THEN
59661 trace
59662 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59663 ,p_level => C_LEVEL_ERROR
59664 ,p_module => l_log_module);
59668 --
59665 END IF;
59666 END IF;
59667 END IF;
59669 --
59670 ------------------------------------------------------------------------------------------------
59671 -- 4219869 Business Flow
59672 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59673 -- Prior Entry. Currently, the following code is always generated.
59674 ------------------------------------------------------------------------------------------------
59675 -- No ValidateCurrentLine for business flow method of Prior Entry
59676
59677 ------------------------------------------------------------------------------------
59678 -- 4219869 Business Flow
59679 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59680 ------------------------------------------------------------------------------------
59681 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59682
59683 ----------------------------------------------------------------------------------
59684 -- 4219869 Business Flow
59685 -- Update journal entry status -- Need to generate this within IF <condition>
59686 ----------------------------------------------------------------------------------
59687 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59688 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59689 ,p_balance_type_code => l_balance_type_code
59690 );
59691
59692 -------------------------------------------------------------------------------------------
59693 -- 4262811 - Generate the Accrual Reversal lines
59694 -------------------------------------------------------------------------------------------
59695 BEGIN
59696 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59697 (g_array_event(p_event_id).array_value_num('header_index'));
59698 IF l_acc_rev_flag IS NULL THEN
59699 l_acc_rev_flag := 'N';
59700 END IF;
59701 EXCEPTION
59702 WHEN OTHERS THEN
59703 l_acc_rev_flag := 'N';
59704 END;
59705 --
59706 IF (l_acc_rev_flag = 'Y') THEN
59707
59708 -- 4645092 ------------------------------------------------------------------------------
59709 -- To allow MPA report to determine if it should generate report process
59710 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59711 ------------------------------------------------------------------------------------------
59712
59713 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59714 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59715 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59716 -- call ADRs
59717 -- Bug 4922099
59718 --
59719 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59720 (NVL(l_actual_upg_option, 'N') = 'O') OR
59721 (NVL(l_enc_upg_option, 'N') = 'O')
59722 )
59723 THEN
59724 NULL;
59725 --
59726 --
59727
59728 --
59729 --
59730 END IF;
59731
59732 --
59733 -- Update the line information that should be overwritten
59734 --
59735 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59736 p_header_num => 1);
59737 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59738
59739 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59740
59741 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59742 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59743 END IF;
59744
59745 --
59746 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59747 --
59748 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59749 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59750 ELSE
59751 ---------------------------------------------------------------------------------------------------
59752 -- 4262811a Switch Sign
59753 ---------------------------------------------------------------------------------------------------
59754 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59755 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59756 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59757 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59758 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59759 -- 5132302
59760 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59761 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59762
59763 END IF;
59764
59765 -- 4955764
59766 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59767 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59768
59769
59770 XLA_AE_LINES_PKG.ValidateCurrentLine;
59771 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59772
59773 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59777 END IF;
59774 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59775 ,p_balance_type_code => l_balance_type_code);
59776
59778
59779 -----------------------------------------------------------------------------------------
59780 -- 4262811 Multiperiod Accounting
59781 -----------------------------------------------------------------------------------------
59782 -- No MPA option is assigned.
59783
59784
59785 END IF;
59786 END IF;
59787 --
59788
59789 --
59790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59791 trace
59792 (p_msg => 'END of AcctLineType_114'
59793 ,p_level => C_LEVEL_PROCEDURE
59794 ,p_module => l_log_module);
59795 END IF;
59796 --
59797 EXCEPTION
59798 WHEN xla_exceptions_pkg.application_exception THEN
59799 RAISE;
59800 WHEN OTHERS THEN
59801 xla_exceptions_pkg.raise_message
59802 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_114');
59803 END AcctLineType_114;
59804 --
59805
59806 ---------------------------------------
59807 --
59808 -- PRIVATE FUNCTION
59809 -- AcctLineType_115
59810 --
59811 ---------------------------------------
59812 PROCEDURE AcctLineType_115 (
59813 p_application_id IN NUMBER
59814 ,p_event_id IN NUMBER
59815 ,p_calculate_acctd_flag IN VARCHAR2
59816 ,p_calculate_g_l_flag IN VARCHAR2
59817 ,p_actual_flag IN OUT VARCHAR2
59818 ,p_balance_type_code OUT VARCHAR2
59819 ,p_gain_or_loss_ref OUT VARCHAR2
59820
59821 --Recipient Invoice Distribution Account
59822 , p_source_36 IN NUMBER
59823 --When to Account for Payment Option
59824 , p_source_38 IN VARCHAR2
59825 --Accounting Reversal Indicator
59826 , p_source_40 IN VARCHAR2
59827 --Business Flow Accounts Payable Application Identifier
59828 , p_source_42 IN NUMBER
59829 --Distribution Link Type
59830 , p_source_48 IN VARCHAR2
59831 --Override Accounted Amount Indicator
59832 , p_source_53 IN VARCHAR2
59833 , p_source_53_meaning IN VARCHAR2
59834 --Third Party Type
59835 , p_source_56 IN VARCHAR2
59836 --Invoice Distribution Tax Line Identifier
59837 , p_source_58 IN NUMBER
59838 --Invoice Distribution Summary Tax Line Identifier
59839 , p_source_59 IN NUMBER
59840 --Invoice Distribution Tax Distribution Identifier from Tax
59841 , p_source_66 IN NUMBER
59842 --Prepayment Distribution Type
59843 , p_source_67 IN VARCHAR2
59844 --Recipient Invoice Distribution Type
59845 , p_source_68 IN VARCHAR2
59846 , p_source_68_meaning IN VARCHAR2
59847 --Prepayment Application Distribution Identifier
59848 , p_source_71 IN NUMBER
59849 --Invoice Identifier
59850 , p_source_72 IN NUMBER
59851 --Business Flow Prepayment Invoice Distribution Type
59852 , p_source_73 IN VARCHAR2
59853 --Business Flow Prepayment Invoice Entity Code
59854 , p_source_74 IN VARCHAR2
59855 --Business Flow Prepayment Invoice Distribution Identifier
59856 , p_source_75 IN NUMBER
59857 --Business Flow Prepayment Invoice Identifier
59858 , p_source_76 IN NUMBER
59859 --Upgrade Encumbrance Credit Account Class
59860 , p_source_77 IN VARCHAR2
59861 --Payables Encumbrance Upgrade Credit Account
59862 , p_source_78 IN NUMBER
59863 --Payables Encumbrance Upgrade Credit Amount
59864 , p_source_79 IN NUMBER
59865 --Invoice Currency Code
59866 , p_source_80 IN VARCHAR2
59867 --Payables Encumbrance Upgrade Credit Base Amount
59868 , p_source_81 IN NUMBER
59869 --Upgrade Encumbrance Debit Account Class
59870 , p_source_82 IN VARCHAR2
59871 --Payables Encumbrance Upgrade Debit Account
59872 , p_source_83 IN NUMBER
59873 --Payables Encumbrance Upgrade Debit Amount
59874 , p_source_84 IN NUMBER
59875 --Payables Encumbrance Upgrade Debit Base Amount
59876 , p_source_85 IN NUMBER
59877 --Payables Encumbrance Upgrade Option
59878 , p_source_86 IN VARCHAR2
59879 --Prepayment Distribution Amount
59880 , p_source_87 IN NUMBER
59881 --Prepayment Clearing Currency Code
59882 , p_source_88 IN VARCHAR2
59883 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
59884 , p_source_89 IN NUMBER
59885 --Deferred Accounting End Date
59886 , p_source_90 IN DATE
59887 --Deferred Accounting Option
59888 , p_source_91 IN VARCHAR2
59889 --Deferred Accounting Start Date
59890 , p_source_92 IN DATE
59891 --Invoice Supplier Identifier
59892 , p_source_93 IN NUMBER
59893 --Invoice Supplier Site Identifier
59894 , p_source_94 IN NUMBER
59895 --Identifier of the Prepayment Application Reversed
59896 , p_source_95 IN NUMBER
59897 --Payables Upgrade Credit Encumbrance Type Identifier
59898 , p_source_96 IN NUMBER
59899 --Payables Upgrade Debit Encumbrance Type Identifier
59900 , p_source_97 IN NUMBER
59901 --Accrue on Receipt Option
59902 , p_source_100 IN VARCHAR2
59903 , p_source_100_meaning IN VARCHAR2
59904 --Prepayment Clearing Exchange Date
59905 , p_source_118 IN DATE
59909 , p_source_120 IN VARCHAR2
59906 --Prepayment Clearing Exchange Rate
59907 , p_source_119 IN NUMBER
59908 --Prepayment Clearing Exchange Rate Type
59910 )
59911 IS
59912
59913 l_component_type VARCHAR2(80);
59914 l_component_code VARCHAR2(30);
59915 l_component_type_code VARCHAR2(1);
59916 l_component_appl_id INTEGER;
59917 l_amb_context_code VARCHAR2(30);
59918 l_entity_code VARCHAR2(30);
59919 l_event_class_code VARCHAR2(30);
59920 l_ae_header_id NUMBER;
59921 l_event_type_code VARCHAR2(30);
59922 l_line_definition_code VARCHAR2(30);
59923 l_line_definition_owner_code VARCHAR2(1);
59924 --
59925 -- adr variables
59926 l_segment VARCHAR2(30);
59927 l_ccid NUMBER;
59928 l_adr_transaction_coa_id NUMBER;
59929 l_adr_accounting_coa_id NUMBER;
59930 l_adr_flexfield_segment_code VARCHAR2(30);
59931 l_adr_flex_value_set_id NUMBER;
59932 l_adr_value_type_code VARCHAR2(30);
59933 l_adr_value_combination_id NUMBER;
59934 l_adr_value_segment_code VARCHAR2(30);
59935
59936 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59937 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59938 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59939 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59940
59941 -- 4262811 Variables ------------------------------------------------------------------------------------------
59942 l_entered_amt_idx NUMBER;
59943 l_accted_amt_idx NUMBER;
59944 l_acc_rev_flag VARCHAR2(1);
59945 l_accrual_line_num NUMBER;
59946 l_tmp_amt NUMBER;
59947 l_acc_rev_natural_side_code VARCHAR2(1);
59948
59949 l_num_entries NUMBER;
59950 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59951 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59952 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59953 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59954 l_recog_line_1 NUMBER;
59955 l_recog_line_2 NUMBER;
59956
59957 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59958 l_bflow_applied_to_amt NUMBER; -- 5132302
59959 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59960
59961 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59962
59963 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59964 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59965
59966 ---------------------------------------------------------------------------------------------------------------
59967
59968
59969 --
59970 -- bulk performance
59971 --
59972 l_balance_type_code VARCHAR2(1);
59973 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59974 l_log_module VARCHAR2(240);
59975
59976 --
59977 -- Upgrade strategy
59978 --
59979 l_actual_upg_option VARCHAR2(1);
59980 l_enc_upg_option VARCHAR2(1);
59981
59982 --
59983 BEGIN
59984 --
59985 IF g_log_enabled THEN
59986 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
59987 END IF;
59988 --
59989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59990
59991 trace
59992 (p_msg => 'BEGIN of AcctLineType_115'
59993 ,p_level => C_LEVEL_PROCEDURE
59994 ,p_module => l_log_module);
59995
59996 END IF;
59997 --
59998 l_component_type := 'AMB_JLT';
59999 l_component_code := 'AP_IPV_PREPAY_CLR_RATE_APP';
60000 l_component_type_code := 'S';
60001 l_component_appl_id := 200;
60002 l_amb_context_code := 'DEFAULT';
60003 l_entity_code := 'AP_INVOICES';
60004 l_event_class_code := 'PREPAYMENT APPLICATIONS';
60005 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
60006 l_line_definition_owner_code := 'S';
60007 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
60008 --
60009 l_balance_type_code := 'A';
60010 l_segment := NULL;
60011 l_ccid := NULL;
60012 l_adr_transaction_coa_id := NULL;
60013 l_adr_accounting_coa_id := NULL;
60014 l_adr_flexfield_segment_code := NULL;
60015 l_adr_flex_value_set_id := NULL;
60016 l_adr_value_type_code := NULL;
60017 l_adr_value_combination_id := NULL;
60018 l_adr_value_segment_code := NULL;
60019
60020 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60021 l_bflow_class_code := ''; -- 4219869 Business Flow
60022 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60023 l_budgetary_control_flag := 'N';
60024
60025 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60026 l_bflow_applied_to_amt := NULL; -- 5132302
60027 l_entered_amt_idx := NULL; -- 4262811
60028 l_accted_amt_idx := NULL; -- 4262811
60029 l_acc_rev_flag := NULL; -- 4262811
60030 l_accrual_line_num := NULL; -- 4262811
60034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60031 l_tmp_amt := NULL; -- 4262811
60032 --
60033
60035 l_balance_type_code <> 'B' THEN
60036 IF NVL(p_source_38,'
60037 ') = 'CLEAR_CLEAR' AND
60038 (NVL(p_source_67,'
60039 ') = 'PREPAY APPL' OR
60040 NVL(p_source_67,'
60041 ') = 'PREPAY APPL NONREC TAX' OR
60042 NVL(p_source_67,'
60043 ') = 'PREPAY APPL REC TAX') AND
60044 NVL(p_source_68,'
60045 ') = 'IPV' AND
60046 NVL(p_source_100,'
60047 ') = 'Y'
60048 THEN
60049
60050 --
60051 XLA_AE_LINES_PKG.SetNewLine;
60052
60053 p_balance_type_code := l_balance_type_code;
60054 -- set the flag so later we will know whether the gain loss line needs to be created
60055
60056 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60057 p_actual_flag :='A';
60058 END IF;
60059
60060 --
60061 -- bulk performance
60062 --
60063 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60064 p_header_num => 0); -- 4262811
60065 --
60066 -- set accounting line options
60067 --
60068 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60069 p_natural_side_code => 'C'
60070 , p_gain_or_loss_flag => 'N'
60071 , p_gl_transfer_mode_code => 'S'
60072 , p_acct_entry_type_code => 'A'
60073 , p_switch_side_flag => 'Y'
60074 , p_merge_duplicate_code => 'A'
60075 );
60076 --
60077 l_acc_rev_natural_side_code := 'D'; -- 4262811
60078 --
60079 --
60080 -- set accounting line type info
60081 --
60082 xla_ae_lines_pkg.SetAcctLineType
60083 (p_component_type => l_component_type
60084 ,p_event_type_code => l_event_type_code
60085 ,p_line_definition_owner_code => l_line_definition_owner_code
60086 ,p_line_definition_code => l_line_definition_code
60087 ,p_accounting_line_code => l_component_code
60088 ,p_accounting_line_type_code => l_component_type_code
60089 ,p_accounting_line_appl_id => l_component_appl_id
60090 ,p_amb_context_code => l_amb_context_code
60091 ,p_entity_code => l_entity_code
60092 ,p_event_class_code => l_event_class_code);
60093 --
60094 -- set accounting class
60095 --
60096 xla_ae_lines_pkg.SetAcctClass(
60097 p_accounting_class_code => 'IPV'
60098 , p_ae_header_id => l_ae_header_id
60099 );
60100
60101 --
60102 -- set rounding class
60103 --
60104 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60105 'IPV';
60106
60107 --
60108 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60109 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60110 --
60111 -- bulk performance
60112 --
60113 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60114
60115 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60116 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60117
60118 -- 4955764
60119 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60120 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60121
60122 -- 4458381 Public Sector Enh
60123
60124 --
60125 -- set accounting attributes for the line type
60126 --
60127 l_entered_amt_idx := 25;
60128 l_accted_amt_idx := 30;
60129 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60130 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60131 l_rec_acct_attrs.array_char_value(1) := p_source_40;
60132 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60133 l_rec_acct_attrs.array_num_value(2) :=
60134 xla_ae_sources_pkg.GetSystemSourceNum(
60135 p_source_code => 'XLA_EVENT_APPL_ID'
60136 , p_source_type_code => 'Y'
60137 , p_source_application_id => 602
60138 );
60139 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60140 l_rec_acct_attrs.array_char_value(3) := p_source_48;
60141 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60142 l_rec_acct_attrs.array_char_value(4) :=
60143 xla_ae_sources_pkg.GetSystemSourceChar(
60144 p_source_code => 'XLA_ENTITY_CODE'
60145 , p_source_type_code => 'Y'
60146 , p_source_application_id => 602
60147 );
60148 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60149 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
60150 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60151 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
60152 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
60153 l_rec_acct_attrs.array_num_value(7) := p_source_42;
60154 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60155 l_rec_acct_attrs.array_char_value(8) := p_source_73;
60159 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
60156 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
60157 l_rec_acct_attrs.array_char_value(9) := p_source_74;
60158 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
60160 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60161 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
60162 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
60163 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
60164 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
60165 l_rec_acct_attrs.array_char_value(13) := p_source_48;
60166 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
60167 l_rec_acct_attrs.array_char_value(14) := p_source_77;
60168 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
60169 l_rec_acct_attrs.array_num_value(15) := p_source_78;
60170 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
60171 l_rec_acct_attrs.array_num_value(16) := p_source_79;
60172 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
60173 l_rec_acct_attrs.array_char_value(17) := p_source_80;
60174 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
60175 l_rec_acct_attrs.array_num_value(18) := p_source_81;
60176 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
60177 l_rec_acct_attrs.array_char_value(19) := p_source_82;
60178 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
60179 l_rec_acct_attrs.array_num_value(20) := p_source_83;
60180 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
60181 l_rec_acct_attrs.array_num_value(21) := p_source_84;
60182 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
60183 l_rec_acct_attrs.array_char_value(22) := p_source_80;
60184 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
60185 l_rec_acct_attrs.array_num_value(23) := p_source_85;
60186 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
60187 l_rec_acct_attrs.array_char_value(24) := p_source_86;
60188 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
60189 l_rec_acct_attrs.array_num_value(25) := p_source_87;
60190 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
60191 l_rec_acct_attrs.array_char_value(26) := p_source_88;
60192 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
60193 l_rec_acct_attrs.array_date_value(27) := p_source_118;
60194 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
60195 l_rec_acct_attrs.array_num_value(28) := p_source_119;
60196 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
60197 l_rec_acct_attrs.array_char_value(29) := p_source_120;
60198 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
60199 l_rec_acct_attrs.array_num_value(30) := p_source_89;
60200 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
60201 l_rec_acct_attrs.array_date_value(31) := p_source_90;
60202 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
60203 l_rec_acct_attrs.array_char_value(32) := p_source_91;
60204 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
60205 l_rec_acct_attrs.array_date_value(33) := p_source_92;
60206 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
60207 l_rec_acct_attrs.array_char_value(34) := p_source_53;
60208 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
60209 l_rec_acct_attrs.array_num_value(35) := p_source_93;
60210 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
60211 l_rec_acct_attrs.array_num_value(36) := p_source_94;
60212 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
60213 l_rec_acct_attrs.array_char_value(37) := p_source_56;
60214 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
60215 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
60216 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
60217 l_rec_acct_attrs.array_char_value(39) := p_source_48;
60218 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
60219 l_rec_acct_attrs.array_num_value(40) := p_source_58;
60220 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
60221 l_rec_acct_attrs.array_num_value(41) := p_source_66;
60222 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
60223 l_rec_acct_attrs.array_num_value(42) := p_source_59;
60224 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
60225 l_rec_acct_attrs.array_num_value(43) := p_source_96;
60226 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
60227 l_rec_acct_attrs.array_num_value(44) := p_source_97;
60228
60229 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60230 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60231
60232 ---------------------------------------------------------------------------------------------------------------
60233 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60234 ---------------------------------------------------------------------------------------------------------------
60235 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60236
60237 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60238 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60239
60243 AND l_bflow_method_code = 'PRIOR_ENTRY'
60240 IF xla_accounting_cache_pkg.GetValueChar
60241 (p_source_code => 'LEDGER_CATEGORY_CODE'
60242 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60244 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60245 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60246 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60247 )
60248 THEN
60249 xla_ae_lines_pkg.BflowUpgEntry
60250 (p_business_method_code => l_bflow_method_code
60251 ,p_business_class_code => l_bflow_class_code
60252 ,p_balance_type => l_balance_type_code);
60253 ELSE
60254 NULL;
60255 -- No business flow processing for business flow method of NONE.
60256 END IF;
60257
60258 --
60259 -- call analytical criteria
60260 --
60261
60262 --
60263 -- call description
60264 --
60265 -- No description or it is inherited.
60266 --
60267 -- call ADRs
60268 -- Bug 4922099
60269 --
60270 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60271 (NVL(l_actual_upg_option, 'N') = 'O') OR
60272 (NVL(l_enc_upg_option, 'N') = 'O')
60273 )
60274 THEN
60275 NULL;
60276 --
60277 --
60278
60279 l_ccid := AcctDerRule_33(
60280 p_application_id => p_application_id
60281 , p_ae_header_id => l_ae_header_id
60282 , p_source_36 => p_source_36
60283 , x_transaction_coa_id => l_adr_transaction_coa_id
60284 , x_accounting_coa_id => l_adr_accounting_coa_id
60285 , x_value_type_code => l_adr_value_type_code
60286 , p_side => 'NA'
60287 );
60288
60289 xla_ae_lines_pkg.set_ccid(
60290 p_code_combination_id => l_ccid
60291 , p_value_type_code => l_adr_value_type_code
60292 , p_transaction_coa_id => l_adr_transaction_coa_id
60293 , p_accounting_coa_id => l_adr_accounting_coa_id
60294 , p_adr_code => 'AP_RECP_INV_DIST'
60295 , p_adr_type_code => 'S'
60296 , p_component_type => l_component_type
60297 , p_component_code => l_component_code
60298 , p_component_type_code => l_component_type_code
60299 , p_component_appl_id => l_component_appl_id
60300 , p_amb_context_code => l_amb_context_code
60301 , p_side => 'NA'
60302 );
60303
60304
60305 --
60306 --
60307 END IF;
60308 --
60309 -- Bug 4922099
60310 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60311 (NVL(l_enc_upg_option, 'N') = 'O')
60312 ) AND
60313 (l_bflow_method_code = 'PRIOR_ENTRY')
60314 )
60315 THEN
60316 IF
60317 --
60318 1 = 2
60319 --
60320 THEN
60321 xla_accounting_err_pkg.build_message
60322 (p_appli_s_name => 'XLA'
60323 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60324 ,p_token_1 => 'LINE_NUMBER'
60325 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60326 ,p_token_2 => 'LINE_TYPE_NAME'
60327 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60328 l_component_type
60329 ,l_component_code
60330 ,l_component_type_code
60331 ,l_component_appl_id
60332 ,l_amb_context_code
60333 ,l_entity_code
60334 ,l_event_class_code
60335 )
60336 ,p_token_3 => 'OWNER'
60337 ,p_value_3 => xla_lookups_pkg.get_meaning(
60338 p_lookup_type => 'XLA_OWNER_TYPE'
60339 ,p_lookup_code => l_component_type_code
60340 )
60341 ,p_token_4 => 'PRODUCT_NAME'
60342 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60343 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60344 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60345 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60346 ,p_ae_header_id => NULL
60347 );
60348
60352 ,p_level => C_LEVEL_ERROR
60349 IF (C_LEVEL_ERROR>= g_log_level) THEN
60350 trace
60351 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60353 ,p_module => l_log_module);
60354 END IF;
60355 END IF;
60356 END IF;
60357 --
60358 --
60359 ------------------------------------------------------------------------------------------------
60360 -- 4219869 Business Flow
60361 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60362 -- Prior Entry. Currently, the following code is always generated.
60363 ------------------------------------------------------------------------------------------------
60364 XLA_AE_LINES_PKG.ValidateCurrentLine;
60365
60366 ------------------------------------------------------------------------------------
60367 -- 4219869 Business Flow
60368 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60369 ------------------------------------------------------------------------------------
60370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60371
60372 ----------------------------------------------------------------------------------
60373 -- 4219869 Business Flow
60374 -- Update journal entry status -- Need to generate this within IF <condition>
60375 ----------------------------------------------------------------------------------
60376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60378 ,p_balance_type_code => l_balance_type_code
60379 );
60380
60381 -------------------------------------------------------------------------------------------
60382 -- 4262811 - Generate the Accrual Reversal lines
60383 -------------------------------------------------------------------------------------------
60384 BEGIN
60385 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60386 (g_array_event(p_event_id).array_value_num('header_index'));
60387 IF l_acc_rev_flag IS NULL THEN
60388 l_acc_rev_flag := 'N';
60389 END IF;
60390 EXCEPTION
60391 WHEN OTHERS THEN
60392 l_acc_rev_flag := 'N';
60393 END;
60394 --
60395 IF (l_acc_rev_flag = 'Y') THEN
60396
60397 -- 4645092 ------------------------------------------------------------------------------
60398 -- To allow MPA report to determine if it should generate report process
60399 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60400 ------------------------------------------------------------------------------------------
60401
60402 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60403 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60404 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
60405 -- call ADRs
60406 -- Bug 4922099
60407 --
60408 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60409 (NVL(l_actual_upg_option, 'N') = 'O') OR
60410 (NVL(l_enc_upg_option, 'N') = 'O')
60411 )
60412 THEN
60413 NULL;
60414 --
60415 --
60416
60417 l_ccid := AcctDerRule_33(
60418 p_application_id => p_application_id
60419 , p_ae_header_id => l_ae_header_id
60420 , p_source_36 => p_source_36
60421 , x_transaction_coa_id => l_adr_transaction_coa_id
60422 , x_accounting_coa_id => l_adr_accounting_coa_id
60423 , x_value_type_code => l_adr_value_type_code
60424 , p_side => 'NA'
60425 );
60426
60427 xla_ae_lines_pkg.set_ccid(
60428 p_code_combination_id => l_ccid
60429 , p_value_type_code => l_adr_value_type_code
60430 , p_transaction_coa_id => l_adr_transaction_coa_id
60431 , p_accounting_coa_id => l_adr_accounting_coa_id
60432 , p_adr_code => 'AP_RECP_INV_DIST'
60433 , p_adr_type_code => 'S'
60434 , p_component_type => l_component_type
60435 , p_component_code => l_component_code
60436 , p_component_type_code => l_component_type_code
60437 , p_component_appl_id => l_component_appl_id
60438 , p_amb_context_code => l_amb_context_code
60439 , p_side => 'NA'
60440 );
60441
60442
60443 --
60444 --
60445 END IF;
60446
60447 --
60448 -- Update the line information that should be overwritten
60449 --
60450 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60451 p_header_num => 1);
60452 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60453
60454 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60455
60456 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60457 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60458 END IF;
60459
60460 --
60461 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60462 --
60463 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60467 -- 4262811a Switch Sign
60464 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60465 ELSE
60466 ---------------------------------------------------------------------------------------------------
60468 ---------------------------------------------------------------------------------------------------
60469 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60470 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60471 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60472 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60473 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60474 -- 5132302
60475 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60476 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60477
60478 END IF;
60479
60480 -- 4955764
60481 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60482 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60483
60484
60485 XLA_AE_LINES_PKG.ValidateCurrentLine;
60486 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60487
60488 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60489 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60490 ,p_balance_type_code => l_balance_type_code);
60491
60492 END IF;
60493
60494 -----------------------------------------------------------------------------------------
60495 -- 4262811 Multiperiod Accounting
60496 -----------------------------------------------------------------------------------------
60497 -- No MPA option is assigned.
60498
60499
60500 END IF;
60501 END IF;
60502 --
60503
60504 --
60505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60506 trace
60507 (p_msg => 'END of AcctLineType_115'
60508 ,p_level => C_LEVEL_PROCEDURE
60509 ,p_module => l_log_module);
60510 END IF;
60511 --
60512 EXCEPTION
60513 WHEN xla_exceptions_pkg.application_exception THEN
60514 RAISE;
60515 WHEN OTHERS THEN
60516 xla_exceptions_pkg.raise_message
60517 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_115');
60518 END AcctLineType_115;
60519 --
60520
60521 ---------------------------------------
60522 --
60523 -- PRIVATE FUNCTION
60524 -- AcctLineType_116
60525 --
60526 ---------------------------------------
60527 PROCEDURE AcctLineType_116 (
60528 p_application_id IN NUMBER
60529 ,p_event_id IN NUMBER
60530 ,p_calculate_acctd_flag IN VARCHAR2
60531 ,p_calculate_g_l_flag IN VARCHAR2
60532 ,p_actual_flag IN OUT VARCHAR2
60533 ,p_balance_type_code OUT VARCHAR2
60534 ,p_gain_or_loss_ref OUT VARCHAR2
60535
60536 --Recipient Invoice Distribution Account
60537 , p_source_36 IN NUMBER
60538 --When to Account for Payment Option
60539 , p_source_38 IN VARCHAR2
60540 --Accounting Reversal Indicator
60541 , p_source_40 IN VARCHAR2
60542 --Business Flow Accounts Payable Application Identifier
60543 , p_source_42 IN NUMBER
60544 --Distribution Link Type
60545 , p_source_48 IN VARCHAR2
60546 --Override Accounted Amount Indicator
60547 , p_source_53 IN VARCHAR2
60548 , p_source_53_meaning IN VARCHAR2
60549 --Third Party Type
60550 , p_source_56 IN VARCHAR2
60551 --Invoice Distribution Tax Line Identifier
60552 , p_source_58 IN NUMBER
60553 --Invoice Distribution Summary Tax Line Identifier
60554 , p_source_59 IN NUMBER
60555 --Invoice Distribution Tax Distribution Identifier from Tax
60556 , p_source_66 IN NUMBER
60557 --Prepayment Distribution Type
60558 , p_source_67 IN VARCHAR2
60559 --Recipient Invoice Distribution Type
60560 , p_source_68 IN VARCHAR2
60561 , p_source_68_meaning IN VARCHAR2
60562 --Prepayment Application Distribution Identifier
60563 , p_source_71 IN NUMBER
60564 --Invoice Identifier
60565 , p_source_72 IN NUMBER
60566 --Business Flow Prepayment Invoice Distribution Type
60567 , p_source_73 IN VARCHAR2
60568 --Business Flow Prepayment Invoice Entity Code
60569 , p_source_74 IN VARCHAR2
60570 --Business Flow Prepayment Invoice Distribution Identifier
60571 , p_source_75 IN NUMBER
60572 --Business Flow Prepayment Invoice Identifier
60573 , p_source_76 IN NUMBER
60574 --Upgrade Encumbrance Credit Account Class
60575 , p_source_77 IN VARCHAR2
60576 --Payables Encumbrance Upgrade Credit Account
60577 , p_source_78 IN NUMBER
60578 --Payables Encumbrance Upgrade Credit Amount
60579 , p_source_79 IN NUMBER
60580 --Invoice Currency Code
60581 , p_source_80 IN VARCHAR2
60582 --Payables Encumbrance Upgrade Credit Base Amount
60583 , p_source_81 IN NUMBER
60584 --Upgrade Encumbrance Debit Account Class
60585 , p_source_82 IN VARCHAR2
60589 , p_source_84 IN NUMBER
60586 --Payables Encumbrance Upgrade Debit Account
60587 , p_source_83 IN NUMBER
60588 --Payables Encumbrance Upgrade Debit Amount
60590 --Payables Encumbrance Upgrade Debit Base Amount
60591 , p_source_85 IN NUMBER
60592 --Payables Encumbrance Upgrade Option
60593 , p_source_86 IN VARCHAR2
60594 --Prepayment Distribution Amount
60595 , p_source_87 IN NUMBER
60596 --Deferred Accounting End Date
60597 , p_source_90 IN DATE
60598 --Deferred Accounting Option
60599 , p_source_91 IN VARCHAR2
60600 --Deferred Accounting Start Date
60601 , p_source_92 IN DATE
60602 --Invoice Supplier Identifier
60603 , p_source_93 IN NUMBER
60604 --Invoice Supplier Site Identifier
60605 , p_source_94 IN NUMBER
60606 --Identifier of the Prepayment Application Reversed
60607 , p_source_95 IN NUMBER
60608 --Payables Upgrade Credit Encumbrance Type Identifier
60609 , p_source_96 IN NUMBER
60610 --Payables Upgrade Debit Encumbrance Type Identifier
60611 , p_source_97 IN NUMBER
60612 --Prepayment Payment Currency Code
60613 , p_source_98 IN VARCHAR2
60614 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
60615 , p_source_99 IN NUMBER
60616 --Accrue on Receipt Option
60617 , p_source_100 IN VARCHAR2
60618 , p_source_100_meaning IN VARCHAR2
60619 --Prepayment Clearing Exchange Date
60620 , p_source_118 IN DATE
60621 --Prepayment Payment Exchange Rate
60622 , p_source_122 IN NUMBER
60623 --Prepayment Payment Exchange Rate Type
60624 , p_source_123 IN VARCHAR2
60625 )
60626 IS
60627
60628 l_component_type VARCHAR2(80);
60629 l_component_code VARCHAR2(30);
60630 l_component_type_code VARCHAR2(1);
60631 l_component_appl_id INTEGER;
60632 l_amb_context_code VARCHAR2(30);
60633 l_entity_code VARCHAR2(30);
60634 l_event_class_code VARCHAR2(30);
60635 l_ae_header_id NUMBER;
60636 l_event_type_code VARCHAR2(30);
60637 l_line_definition_code VARCHAR2(30);
60638 l_line_definition_owner_code VARCHAR2(1);
60639 --
60640 -- adr variables
60641 l_segment VARCHAR2(30);
60642 l_ccid NUMBER;
60643 l_adr_transaction_coa_id NUMBER;
60644 l_adr_accounting_coa_id NUMBER;
60645 l_adr_flexfield_segment_code VARCHAR2(30);
60646 l_adr_flex_value_set_id NUMBER;
60647 l_adr_value_type_code VARCHAR2(30);
60648 l_adr_value_combination_id NUMBER;
60649 l_adr_value_segment_code VARCHAR2(30);
60650
60651 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60652 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60653 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60654 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60655
60656 -- 4262811 Variables ------------------------------------------------------------------------------------------
60657 l_entered_amt_idx NUMBER;
60658 l_accted_amt_idx NUMBER;
60659 l_acc_rev_flag VARCHAR2(1);
60660 l_accrual_line_num NUMBER;
60661 l_tmp_amt NUMBER;
60662 l_acc_rev_natural_side_code VARCHAR2(1);
60663
60664 l_num_entries NUMBER;
60665 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60666 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60667 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60668 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60669 l_recog_line_1 NUMBER;
60670 l_recog_line_2 NUMBER;
60671
60672 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60673 l_bflow_applied_to_amt NUMBER; -- 5132302
60674 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60675
60676 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60677
60678 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60679 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60680
60681 ---------------------------------------------------------------------------------------------------------------
60682
60683
60684 --
60685 -- bulk performance
60686 --
60687 l_balance_type_code VARCHAR2(1);
60688 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60689 l_log_module VARCHAR2(240);
60690
60691 --
60692 -- Upgrade strategy
60693 --
60694 l_actual_upg_option VARCHAR2(1);
60695 l_enc_upg_option VARCHAR2(1);
60696
60697 --
60698 BEGIN
60699 --
60700 IF g_log_enabled THEN
60701 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
60702 END IF;
60703 --
60704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60705
60706 trace
60707 (p_msg => 'BEGIN of AcctLineType_116'
60708 ,p_level => C_LEVEL_PROCEDURE
60709 ,p_module => l_log_module);
60710
60711 END IF;
60712 --
60713 l_component_type := 'AMB_JLT';
60714 l_component_code := 'AP_IPV_PREPAY_PAY_RATE_APP';
60718 l_entity_code := 'AP_INVOICES';
60715 l_component_type_code := 'S';
60716 l_component_appl_id := 200;
60717 l_amb_context_code := 'DEFAULT';
60719 l_event_class_code := 'PREPAYMENT APPLICATIONS';
60720 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
60721 l_line_definition_owner_code := 'S';
60722 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
60723 --
60724 l_balance_type_code := 'A';
60725 l_segment := NULL;
60726 l_ccid := NULL;
60727 l_adr_transaction_coa_id := NULL;
60728 l_adr_accounting_coa_id := NULL;
60729 l_adr_flexfield_segment_code := NULL;
60730 l_adr_flex_value_set_id := NULL;
60731 l_adr_value_type_code := NULL;
60732 l_adr_value_combination_id := NULL;
60733 l_adr_value_segment_code := NULL;
60734
60735 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60736 l_bflow_class_code := ''; -- 4219869 Business Flow
60737 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60738 l_budgetary_control_flag := 'N';
60739
60740 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60741 l_bflow_applied_to_amt := NULL; -- 5132302
60742 l_entered_amt_idx := NULL; -- 4262811
60743 l_accted_amt_idx := NULL; -- 4262811
60744 l_acc_rev_flag := NULL; -- 4262811
60745 l_accrual_line_num := NULL; -- 4262811
60746 l_tmp_amt := NULL; -- 4262811
60747 --
60748
60749 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60750 l_balance_type_code <> 'B' THEN
60751 IF NVL(p_source_38,'
60752 ') <> 'CLEAR_CLEAR' AND
60753 (NVL(p_source_67,'
60754 ') = 'PREPAY APPL' OR
60755 NVL(p_source_67,'
60756 ') = 'PREPAY APPL NONREC TAX' OR
60757 NVL(p_source_67,'
60758 ') = 'PREPAY APPL REC TAX') AND
60759 NVL(p_source_68,'
60760 ') = 'IPV' AND
60761 NVL(p_source_100,'
60762 ') = 'Y'
60763 THEN
60764
60765 --
60766 XLA_AE_LINES_PKG.SetNewLine;
60767
60768 p_balance_type_code := l_balance_type_code;
60769 -- set the flag so later we will know whether the gain loss line needs to be created
60770
60771 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60772 p_actual_flag :='A';
60773 END IF;
60774
60775 --
60776 -- bulk performance
60777 --
60778 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60779 p_header_num => 0); -- 4262811
60780 --
60781 -- set accounting line options
60782 --
60783 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60784 p_natural_side_code => 'C'
60785 , p_gain_or_loss_flag => 'N'
60786 , p_gl_transfer_mode_code => 'S'
60787 , p_acct_entry_type_code => 'A'
60788 , p_switch_side_flag => 'Y'
60789 , p_merge_duplicate_code => 'A'
60790 );
60791 --
60792 l_acc_rev_natural_side_code := 'D'; -- 4262811
60793 --
60794 --
60795 -- set accounting line type info
60796 --
60797 xla_ae_lines_pkg.SetAcctLineType
60798 (p_component_type => l_component_type
60799 ,p_event_type_code => l_event_type_code
60800 ,p_line_definition_owner_code => l_line_definition_owner_code
60801 ,p_line_definition_code => l_line_definition_code
60802 ,p_accounting_line_code => l_component_code
60803 ,p_accounting_line_type_code => l_component_type_code
60804 ,p_accounting_line_appl_id => l_component_appl_id
60805 ,p_amb_context_code => l_amb_context_code
60806 ,p_entity_code => l_entity_code
60807 ,p_event_class_code => l_event_class_code);
60808 --
60809 -- set accounting class
60810 --
60811 xla_ae_lines_pkg.SetAcctClass(
60812 p_accounting_class_code => 'IPV'
60813 , p_ae_header_id => l_ae_header_id
60814 );
60815
60816 --
60817 -- set rounding class
60818 --
60819 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60820 'IPV';
60821
60822 --
60823 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60824 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60825 --
60826 -- bulk performance
60827 --
60828 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60829
60830 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60831 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60832
60833 -- 4955764
60834 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60835 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60836
60837 -- 4458381 Public Sector Enh
60838
60839 --
60840 -- set accounting attributes for the line type
60841 --
60842 l_entered_amt_idx := 25;
60843 l_accted_amt_idx := 30;
60844 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60848 l_rec_acct_attrs.array_num_value(2) :=
60845 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60846 l_rec_acct_attrs.array_char_value(1) := p_source_40;
60847 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60849 xla_ae_sources_pkg.GetSystemSourceNum(
60850 p_source_code => 'XLA_EVENT_APPL_ID'
60851 , p_source_type_code => 'Y'
60852 , p_source_application_id => 602
60853 );
60854 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60855 l_rec_acct_attrs.array_char_value(3) := p_source_48;
60856 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60857 l_rec_acct_attrs.array_char_value(4) :=
60858 xla_ae_sources_pkg.GetSystemSourceChar(
60859 p_source_code => 'XLA_ENTITY_CODE'
60860 , p_source_type_code => 'Y'
60861 , p_source_application_id => 602
60862 );
60863 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60864 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
60865 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60866 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
60867 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
60868 l_rec_acct_attrs.array_num_value(7) := p_source_42;
60869 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60870 l_rec_acct_attrs.array_char_value(8) := p_source_73;
60871 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
60872 l_rec_acct_attrs.array_char_value(9) := p_source_74;
60873 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
60874 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
60875 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60876 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
60877 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
60878 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
60879 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
60880 l_rec_acct_attrs.array_char_value(13) := p_source_48;
60881 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
60882 l_rec_acct_attrs.array_char_value(14) := p_source_77;
60883 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
60884 l_rec_acct_attrs.array_num_value(15) := p_source_78;
60885 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
60886 l_rec_acct_attrs.array_num_value(16) := p_source_79;
60887 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
60888 l_rec_acct_attrs.array_char_value(17) := p_source_80;
60889 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
60890 l_rec_acct_attrs.array_num_value(18) := p_source_81;
60891 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
60892 l_rec_acct_attrs.array_char_value(19) := p_source_82;
60893 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
60894 l_rec_acct_attrs.array_num_value(20) := p_source_83;
60895 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
60896 l_rec_acct_attrs.array_num_value(21) := p_source_84;
60897 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
60898 l_rec_acct_attrs.array_char_value(22) := p_source_80;
60899 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
60900 l_rec_acct_attrs.array_num_value(23) := p_source_85;
60901 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
60902 l_rec_acct_attrs.array_char_value(24) := p_source_86;
60903 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
60904 l_rec_acct_attrs.array_num_value(25) := p_source_87;
60905 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
60906 l_rec_acct_attrs.array_char_value(26) := p_source_98;
60907 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
60908 l_rec_acct_attrs.array_date_value(27) := p_source_118;
60909 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
60910 l_rec_acct_attrs.array_num_value(28) := p_source_122;
60911 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
60912 l_rec_acct_attrs.array_char_value(29) := p_source_123;
60913 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
60914 l_rec_acct_attrs.array_num_value(30) := p_source_99;
60915 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
60916 l_rec_acct_attrs.array_date_value(31) := p_source_90;
60917 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
60918 l_rec_acct_attrs.array_char_value(32) := p_source_91;
60919 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
60920 l_rec_acct_attrs.array_date_value(33) := p_source_92;
60921 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
60922 l_rec_acct_attrs.array_char_value(34) := p_source_53;
60923 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
60924 l_rec_acct_attrs.array_num_value(35) := p_source_93;
60925 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
60926 l_rec_acct_attrs.array_num_value(36) := p_source_94;
60927 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
60928 l_rec_acct_attrs.array_char_value(37) := p_source_56;
60929 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
60930 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
60931 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
60932 l_rec_acct_attrs.array_char_value(39) := p_source_48;
60936 l_rec_acct_attrs.array_num_value(41) := p_source_66;
60933 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
60934 l_rec_acct_attrs.array_num_value(40) := p_source_58;
60935 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
60937 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
60938 l_rec_acct_attrs.array_num_value(42) := p_source_59;
60939 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
60940 l_rec_acct_attrs.array_num_value(43) := p_source_96;
60941 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
60942 l_rec_acct_attrs.array_num_value(44) := p_source_97;
60943
60944 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60945 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60946
60947 ---------------------------------------------------------------------------------------------------------------
60948 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60949 ---------------------------------------------------------------------------------------------------------------
60950 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60951
60952 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60953 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60954
60955 IF xla_accounting_cache_pkg.GetValueChar
60956 (p_source_code => 'LEDGER_CATEGORY_CODE'
60957 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60958 AND l_bflow_method_code = 'PRIOR_ENTRY'
60959 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60960 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60961 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60962 )
60963 THEN
60964 xla_ae_lines_pkg.BflowUpgEntry
60965 (p_business_method_code => l_bflow_method_code
60966 ,p_business_class_code => l_bflow_class_code
60967 ,p_balance_type => l_balance_type_code);
60968 ELSE
60969 NULL;
60970 -- No business flow processing for business flow method of NONE.
60971 END IF;
60972
60973 --
60974 -- call analytical criteria
60975 --
60976
60977 --
60978 -- call description
60979 --
60980 -- No description or it is inherited.
60981 --
60982 -- call ADRs
60983 -- Bug 4922099
60984 --
60985 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60986 (NVL(l_actual_upg_option, 'N') = 'O') OR
60987 (NVL(l_enc_upg_option, 'N') = 'O')
60988 )
60989 THEN
60990 NULL;
60991 --
60992 --
60993
60994 l_ccid := AcctDerRule_33(
60995 p_application_id => p_application_id
60996 , p_ae_header_id => l_ae_header_id
60997 , p_source_36 => p_source_36
60998 , x_transaction_coa_id => l_adr_transaction_coa_id
60999 , x_accounting_coa_id => l_adr_accounting_coa_id
61000 , x_value_type_code => l_adr_value_type_code
61001 , p_side => 'NA'
61002 );
61003
61004 xla_ae_lines_pkg.set_ccid(
61005 p_code_combination_id => l_ccid
61006 , p_value_type_code => l_adr_value_type_code
61007 , p_transaction_coa_id => l_adr_transaction_coa_id
61008 , p_accounting_coa_id => l_adr_accounting_coa_id
61009 , p_adr_code => 'AP_RECP_INV_DIST'
61010 , p_adr_type_code => 'S'
61011 , p_component_type => l_component_type
61012 , p_component_code => l_component_code
61013 , p_component_type_code => l_component_type_code
61014 , p_component_appl_id => l_component_appl_id
61015 , p_amb_context_code => l_amb_context_code
61016 , p_side => 'NA'
61017 );
61018
61019
61020 --
61021 --
61022 END IF;
61023 --
61024 -- Bug 4922099
61025 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61026 (NVL(l_enc_upg_option, 'N') = 'O')
61027 ) AND
61028 (l_bflow_method_code = 'PRIOR_ENTRY')
61029 )
61030 THEN
61031 IF
61032 --
61033 1 = 2
61034 --
61035 THEN
61036 xla_accounting_err_pkg.build_message
61037 (p_appli_s_name => 'XLA'
61038 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61039 ,p_token_1 => 'LINE_NUMBER'
61040 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61041 ,p_token_2 => 'LINE_TYPE_NAME'
61042 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61043 l_component_type
61044 ,l_component_code
61045 ,l_component_type_code
61046 ,l_component_appl_id
61050 )
61047 ,l_amb_context_code
61048 ,l_entity_code
61049 ,l_event_class_code
61051 ,p_token_3 => 'OWNER'
61052 ,p_value_3 => xla_lookups_pkg.get_meaning(
61053 p_lookup_type => 'XLA_OWNER_TYPE'
61054 ,p_lookup_code => l_component_type_code
61055 )
61056 ,p_token_4 => 'PRODUCT_NAME'
61057 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61058 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61059 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61060 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61061 ,p_ae_header_id => NULL
61062 );
61063
61064 IF (C_LEVEL_ERROR>= g_log_level) THEN
61065 trace
61066 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61067 ,p_level => C_LEVEL_ERROR
61068 ,p_module => l_log_module);
61069 END IF;
61070 END IF;
61071 END IF;
61072 --
61073 --
61074 ------------------------------------------------------------------------------------------------
61075 -- 4219869 Business Flow
61076 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61077 -- Prior Entry. Currently, the following code is always generated.
61078 ------------------------------------------------------------------------------------------------
61079 XLA_AE_LINES_PKG.ValidateCurrentLine;
61080
61081 ------------------------------------------------------------------------------------
61082 -- 4219869 Business Flow
61083 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61084 ------------------------------------------------------------------------------------
61085 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61086
61087 ----------------------------------------------------------------------------------
61088 -- 4219869 Business Flow
61089 -- Update journal entry status -- Need to generate this within IF <condition>
61090 ----------------------------------------------------------------------------------
61091 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61092 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61093 ,p_balance_type_code => l_balance_type_code
61094 );
61095
61096 -------------------------------------------------------------------------------------------
61097 -- 4262811 - Generate the Accrual Reversal lines
61098 -------------------------------------------------------------------------------------------
61099 BEGIN
61100 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61101 (g_array_event(p_event_id).array_value_num('header_index'));
61102 IF l_acc_rev_flag IS NULL THEN
61103 l_acc_rev_flag := 'N';
61104 END IF;
61105 EXCEPTION
61106 WHEN OTHERS THEN
61107 l_acc_rev_flag := 'N';
61108 END;
61109 --
61110 IF (l_acc_rev_flag = 'Y') THEN
61111
61112 -- 4645092 ------------------------------------------------------------------------------
61113 -- To allow MPA report to determine if it should generate report process
61114 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61115 ------------------------------------------------------------------------------------------
61116
61117 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61118 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61119 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
61120 -- call ADRs
61121 -- Bug 4922099
61122 --
61123 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61124 (NVL(l_actual_upg_option, 'N') = 'O') OR
61125 (NVL(l_enc_upg_option, 'N') = 'O')
61126 )
61127 THEN
61128 NULL;
61129 --
61130 --
61131
61132 l_ccid := AcctDerRule_33(
61133 p_application_id => p_application_id
61134 , p_ae_header_id => l_ae_header_id
61135 , p_source_36 => p_source_36
61136 , x_transaction_coa_id => l_adr_transaction_coa_id
61137 , x_accounting_coa_id => l_adr_accounting_coa_id
61138 , x_value_type_code => l_adr_value_type_code
61139 , p_side => 'NA'
61140 );
61141
61142 xla_ae_lines_pkg.set_ccid(
61143 p_code_combination_id => l_ccid
61144 , p_value_type_code => l_adr_value_type_code
61145 , p_transaction_coa_id => l_adr_transaction_coa_id
61146 , p_accounting_coa_id => l_adr_accounting_coa_id
61147 , p_adr_code => 'AP_RECP_INV_DIST'
61148 , p_adr_type_code => 'S'
61152 , p_component_appl_id => l_component_appl_id
61149 , p_component_type => l_component_type
61150 , p_component_code => l_component_code
61151 , p_component_type_code => l_component_type_code
61153 , p_amb_context_code => l_amb_context_code
61154 , p_side => 'NA'
61155 );
61156
61157
61158 --
61159 --
61160 END IF;
61161
61162 --
61163 -- Update the line information that should be overwritten
61164 --
61165 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61166 p_header_num => 1);
61167 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61168
61169 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61170
61171 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61172 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61173 END IF;
61174
61175 --
61176 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61177 --
61178 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61179 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61180 ELSE
61181 ---------------------------------------------------------------------------------------------------
61182 -- 4262811a Switch Sign
61183 ---------------------------------------------------------------------------------------------------
61184 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61185 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61186 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61187 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61188 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61189 -- 5132302
61190 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61191 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61192
61193 END IF;
61194
61195 -- 4955764
61196 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61197 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61198
61199
61200 XLA_AE_LINES_PKG.ValidateCurrentLine;
61201 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61202
61203 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61204 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61205 ,p_balance_type_code => l_balance_type_code);
61206
61207 END IF;
61208
61209 -----------------------------------------------------------------------------------------
61210 -- 4262811 Multiperiod Accounting
61211 -----------------------------------------------------------------------------------------
61212 -- No MPA option is assigned.
61213
61214
61215 END IF;
61216 END IF;
61217 --
61218
61219 --
61220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61221 trace
61222 (p_msg => 'END of AcctLineType_116'
61223 ,p_level => C_LEVEL_PROCEDURE
61224 ,p_module => l_log_module);
61225 END IF;
61226 --
61227 EXCEPTION
61228 WHEN xla_exceptions_pkg.application_exception THEN
61229 RAISE;
61230 WHEN OTHERS THEN
61231 xla_exceptions_pkg.raise_message
61232 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_116');
61233 END AcctLineType_116;
61234 --
61235
61236 ---------------------------------------
61237 --
61238 -- PRIVATE FUNCTION
61239 -- AcctLineType_117
61240 --
61241 ---------------------------------------
61242 PROCEDURE AcctLineType_117 (
61243 p_application_id IN NUMBER
61244 ,p_event_id IN NUMBER
61245 ,p_calculate_acctd_flag IN VARCHAR2
61246 ,p_calculate_g_l_flag IN VARCHAR2
61247 ,p_actual_flag IN OUT VARCHAR2
61248 ,p_balance_type_code OUT VARCHAR2
61249 ,p_gain_or_loss_ref OUT VARCHAR2
61250
61251 --Payment Distribution (Cleared Rate) Ledger Amount
61252 , p_source_10 IN NUMBER
61253 --Invoice Distribution Account
61254 , p_source_17 IN NUMBER
61255 --Invoice Distribution Type
61256 , p_source_20 IN VARCHAR2
61257 , p_source_20_meaning IN VARCHAR2
61258 --When to Account for Payment Option
61259 , p_source_38 IN VARCHAR2
61260 --Payment Distribution Type
61261 , p_source_39 IN VARCHAR2
61262 , p_source_39_meaning IN VARCHAR2
61263 --Accounting Reversal Indicator
61264 , p_source_40 IN VARCHAR2
61265 --Payment Distribution Amount
61266 , p_source_41 IN NUMBER
61267 --Business Flow Accounts Payable Application Identifier
61268 , p_source_42 IN NUMBER
61269 --Business Flow Payment Distribution Type
61273 --Business Flow Payment Distribution Identifier
61270 , p_source_43 IN VARCHAR2
61271 --Business Flow Payment Entity Code
61272 , p_source_44 IN VARCHAR2
61274 , p_source_45 IN NUMBER
61275 --Business Flow Payment Identifier
61276 , p_source_46 IN NUMBER
61277 --Payment Distribution Identifier
61278 , p_source_47 IN NUMBER
61279 --Distribution Link Type
61280 , p_source_48 IN VARCHAR2
61281 --Payment Currency Code
61282 , p_source_49 IN VARCHAR2
61283 --Override Accounted Amount Indicator
61284 , p_source_53 IN VARCHAR2
61285 , p_source_53_meaning IN VARCHAR2
61286 --Payment Supplier Identifier
61287 , p_source_54 IN NUMBER
61288 --Payment Supplier Site Identifier
61289 , p_source_55 IN NUMBER
61290 --Third Party Type
61291 , p_source_56 IN VARCHAR2
61292 --Payment Distribution Reversed Identifier
61293 , p_source_57 IN NUMBER
61294 --Invoice Distribution Tax Line Identifier
61295 , p_source_58 IN NUMBER
61296 --Invoice Distribution Summary Tax Line Identifier
61297 , p_source_59 IN NUMBER
61298 --Accrue on Receipt Option
61299 , p_source_100 IN VARCHAR2
61300 , p_source_100_meaning IN VARCHAR2
61301 --Invoice Type Paid
61302 , p_source_101 IN VARCHAR2
61303 , p_source_101_meaning IN VARCHAR2
61304 --Cleared Exchange Date
61305 , p_source_107 IN DATE
61306 --Cleared Exchange Rate
61307 , p_source_108 IN NUMBER
61308 --Cleared Exchange Rate Type
61309 , p_source_109 IN VARCHAR2
61310 )
61311 IS
61312
61313 l_component_type VARCHAR2(80);
61314 l_component_code VARCHAR2(30);
61315 l_component_type_code VARCHAR2(1);
61316 l_component_appl_id INTEGER;
61317 l_amb_context_code VARCHAR2(30);
61318 l_entity_code VARCHAR2(30);
61319 l_event_class_code VARCHAR2(30);
61320 l_ae_header_id NUMBER;
61321 l_event_type_code VARCHAR2(30);
61322 l_line_definition_code VARCHAR2(30);
61323 l_line_definition_owner_code VARCHAR2(1);
61324 --
61325 -- adr variables
61326 l_segment VARCHAR2(30);
61327 l_ccid NUMBER;
61328 l_adr_transaction_coa_id NUMBER;
61329 l_adr_accounting_coa_id NUMBER;
61330 l_adr_flexfield_segment_code VARCHAR2(30);
61331 l_adr_flex_value_set_id NUMBER;
61332 l_adr_value_type_code VARCHAR2(30);
61333 l_adr_value_combination_id NUMBER;
61334 l_adr_value_segment_code VARCHAR2(30);
61335
61336 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61337 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61338 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61339 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61340
61341 -- 4262811 Variables ------------------------------------------------------------------------------------------
61342 l_entered_amt_idx NUMBER;
61343 l_accted_amt_idx NUMBER;
61344 l_acc_rev_flag VARCHAR2(1);
61345 l_accrual_line_num NUMBER;
61346 l_tmp_amt NUMBER;
61347 l_acc_rev_natural_side_code VARCHAR2(1);
61348
61349 l_num_entries NUMBER;
61350 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61351 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61352 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61353 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61354 l_recog_line_1 NUMBER;
61355 l_recog_line_2 NUMBER;
61356
61357 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61358 l_bflow_applied_to_amt NUMBER; -- 5132302
61359 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61360
61361 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61362
61363 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61364 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61365
61366 ---------------------------------------------------------------------------------------------------------------
61367
61368
61369 --
61370 -- bulk performance
61371 --
61372 l_balance_type_code VARCHAR2(1);
61373 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61374 l_log_module VARCHAR2(240);
61375
61376 --
61377 -- Upgrade strategy
61378 --
61379 l_actual_upg_option VARCHAR2(1);
61380 l_enc_upg_option VARCHAR2(1);
61381
61382 --
61383 BEGIN
61384 --
61385 IF g_log_enabled THEN
61386 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
61387 END IF;
61388 --
61389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61390
61391 trace
61392 (p_msg => 'BEGIN of AcctLineType_117'
61393 ,p_level => C_LEVEL_PROCEDURE
61394 ,p_module => l_log_module);
61395
61396 END IF;
61397 --
61398 l_component_type := 'AMB_JLT';
61399 l_component_code := 'AP_ITEM_EXPENSE_CLEAR';
61400 l_component_type_code := 'S';
61401 l_component_appl_id := 200;
61405 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
61402 l_amb_context_code := 'DEFAULT';
61403 l_entity_code := 'AP_PAYMENTS';
61404 l_event_class_code := 'RECONCILED PAYMENTS';
61406 l_line_definition_owner_code := 'S';
61407 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
61408 --
61409 l_balance_type_code := 'A';
61410 l_segment := NULL;
61411 l_ccid := NULL;
61412 l_adr_transaction_coa_id := NULL;
61413 l_adr_accounting_coa_id := NULL;
61414 l_adr_flexfield_segment_code := NULL;
61415 l_adr_flex_value_set_id := NULL;
61416 l_adr_value_type_code := NULL;
61417 l_adr_value_combination_id := NULL;
61418 l_adr_value_segment_code := NULL;
61419
61420 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61421 l_bflow_class_code := ''; -- 4219869 Business Flow
61422 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61423 l_budgetary_control_flag := 'N';
61424
61425 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61426 l_bflow_applied_to_amt := NULL; -- 5132302
61427 l_entered_amt_idx := NULL; -- 4262811
61428 l_accted_amt_idx := NULL; -- 4262811
61429 l_acc_rev_flag := NULL; -- 4262811
61430 l_accrual_line_num := NULL; -- 4262811
61431 l_tmp_amt := NULL; -- 4262811
61432 --
61433
61434 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61435 l_balance_type_code <> 'B' THEN
61436 IF NVL(p_source_38,'
61437 ') = 'CLEAR_CLEAR' AND
61438 (NVL(p_source_20,'
61439 ') = 'ITEM' OR
61440 NVL(p_source_20,'
61441 ') = 'RETROEXPENSE' OR
61442 NVL(p_source_20,'
61443 ') = 'ERV' AND
61444 NVL(p_source_100,'
61445 ') <> 'Y' OR
61446 NVL(p_source_20,'
61447 ') = 'IPV' AND
61448 NVL(p_source_100,'
61449 ') <> 'Y') AND
61450 NVL(p_source_101,'
61451 ') <> 'INTEREST' AND
61452 (NVL(p_source_39,'
61453 ') = 'CASH' OR
61454 NVL(p_source_39,'
61455 ') = 'AWT' OR
61456 NVL(p_source_39,'
61457 ') = 'DISCOUNT')
61458 THEN
61459
61460 --
61461 XLA_AE_LINES_PKG.SetNewLine;
61462
61463 p_balance_type_code := l_balance_type_code;
61464 -- set the flag so later we will know whether the gain loss line needs to be created
61465
61466 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61467 p_actual_flag :='A';
61468 END IF;
61469
61470 --
61471 -- bulk performance
61472 --
61473 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61474 p_header_num => 0); -- 4262811
61475 --
61476 -- set accounting line options
61477 --
61478 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61479 p_natural_side_code => 'D'
61480 , p_gain_or_loss_flag => 'N'
61481 , p_gl_transfer_mode_code => 'S'
61482 , p_acct_entry_type_code => 'A'
61483 , p_switch_side_flag => 'Y'
61484 , p_merge_duplicate_code => 'A'
61485 );
61486 --
61487 l_acc_rev_natural_side_code := 'C'; -- 4262811
61488 --
61489 --
61490 -- set accounting line type info
61491 --
61492 xla_ae_lines_pkg.SetAcctLineType
61493 (p_component_type => l_component_type
61494 ,p_event_type_code => l_event_type_code
61495 ,p_line_definition_owner_code => l_line_definition_owner_code
61496 ,p_line_definition_code => l_line_definition_code
61497 ,p_accounting_line_code => l_component_code
61498 ,p_accounting_line_type_code => l_component_type_code
61499 ,p_accounting_line_appl_id => l_component_appl_id
61500 ,p_amb_context_code => l_amb_context_code
61501 ,p_entity_code => l_entity_code
61502 ,p_event_class_code => l_event_class_code);
61503 --
61504 -- set accounting class
61505 --
61506 xla_ae_lines_pkg.SetAcctClass(
61507 p_accounting_class_code => 'ITEM EXPENSE'
61508 , p_ae_header_id => l_ae_header_id
61509 );
61510
61511 --
61512 -- set rounding class
61513 --
61514 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61515 'ITEM EXPENSE';
61516
61517 --
61518 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61519 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61520 --
61521 -- bulk performance
61522 --
61523 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61524
61525 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61526 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61527
61528 -- 4955764
61529 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61530 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61531
61532 -- 4458381 Public Sector Enh
61533
61534 --
61538 l_accted_amt_idx := 15;
61535 -- set accounting attributes for the line type
61536 --
61537 l_entered_amt_idx := 10;
61539 l_bflow_applied_to_amt_idx := 2; -- 5132302
61540 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61541 l_rec_acct_attrs.array_char_value(1) := p_source_40;
61542 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61543 l_rec_acct_attrs.array_num_value(2) := p_source_41;
61544 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61545 l_rec_acct_attrs.array_num_value(3) := p_source_42;
61546 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61547 l_rec_acct_attrs.array_char_value(4) := p_source_43;
61548 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61549 l_rec_acct_attrs.array_char_value(5) := p_source_44;
61550 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61551 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
61552 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61553 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
61554 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61555 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
61556 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61557 l_rec_acct_attrs.array_char_value(9) := p_source_48;
61558 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61559 l_rec_acct_attrs.array_num_value(10) := p_source_41;
61560 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61561 l_rec_acct_attrs.array_char_value(11) := p_source_49;
61562 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61563 l_rec_acct_attrs.array_date_value(12) := p_source_107;
61564 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61565 l_rec_acct_attrs.array_num_value(13) := p_source_108;
61566 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61567 l_rec_acct_attrs.array_char_value(14) := p_source_109;
61568 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61569 l_rec_acct_attrs.array_num_value(15) := p_source_10;
61570 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61571 l_rec_acct_attrs.array_char_value(16) := p_source_53;
61572 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61573 l_rec_acct_attrs.array_num_value(17) := p_source_54;
61574 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61575 l_rec_acct_attrs.array_num_value(18) := p_source_55;
61576 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61577 l_rec_acct_attrs.array_char_value(19) := p_source_56;
61578 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61579 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
61580 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61581 l_rec_acct_attrs.array_char_value(21) := p_source_48;
61582 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61583 l_rec_acct_attrs.array_num_value(22) := p_source_58;
61584 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61585 l_rec_acct_attrs.array_num_value(23) := p_source_58;
61586 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61587 l_rec_acct_attrs.array_num_value(24) := p_source_59;
61588
61589 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61590 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61591
61592 ---------------------------------------------------------------------------------------------------------------
61593 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61594 ---------------------------------------------------------------------------------------------------------------
61595 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61596
61597 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61598 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61599
61600 IF xla_accounting_cache_pkg.GetValueChar
61601 (p_source_code => 'LEDGER_CATEGORY_CODE'
61602 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61603 AND l_bflow_method_code = 'PRIOR_ENTRY'
61604 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61605 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61606 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61607 )
61608 THEN
61609 xla_ae_lines_pkg.BflowUpgEntry
61610 (p_business_method_code => l_bflow_method_code
61611 ,p_business_class_code => l_bflow_class_code
61612 ,p_balance_type => l_balance_type_code);
61613 ELSE
61614 NULL;
61615 -- No business flow processing for business flow method of NONE.
61616 END IF;
61617
61618 --
61619 -- call analytical criteria
61620 --
61621
61622 --
61623 -- call description
61624 --
61625 -- No description or it is inherited.
61626 --
61627 -- call ADRs
61628 -- Bug 4922099
61629 --
61630 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61631 (NVL(l_actual_upg_option, 'N') = 'O') OR
61632 (NVL(l_enc_upg_option, 'N') = 'O')
61633 )
61634 THEN
61635 NULL;
61639 l_ccid := AcctDerRule_26(
61636 --
61637 --
61638
61640 p_application_id => p_application_id
61641 , p_ae_header_id => l_ae_header_id
61642 , p_source_17 => p_source_17
61643 , x_transaction_coa_id => l_adr_transaction_coa_id
61644 , x_accounting_coa_id => l_adr_accounting_coa_id
61645 , x_value_type_code => l_adr_value_type_code
61646 , p_side => 'NA'
61647 );
61648
61649 xla_ae_lines_pkg.set_ccid(
61650 p_code_combination_id => l_ccid
61651 , p_value_type_code => l_adr_value_type_code
61652 , p_transaction_coa_id => l_adr_transaction_coa_id
61653 , p_accounting_coa_id => l_adr_accounting_coa_id
61654 , p_adr_code => 'AP_INVOICE_DIST'
61655 , p_adr_type_code => 'S'
61656 , p_component_type => l_component_type
61657 , p_component_code => l_component_code
61658 , p_component_type_code => l_component_type_code
61659 , p_component_appl_id => l_component_appl_id
61660 , p_amb_context_code => l_amb_context_code
61661 , p_side => 'NA'
61662 );
61663
61664
61665 --
61666 --
61667 END IF;
61668 --
61669 -- Bug 4922099
61670 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61671 (NVL(l_enc_upg_option, 'N') = 'O')
61672 ) AND
61673 (l_bflow_method_code = 'PRIOR_ENTRY')
61674 )
61675 THEN
61676 IF
61677 --
61678 1 = 2
61679 --
61680 THEN
61681 xla_accounting_err_pkg.build_message
61682 (p_appli_s_name => 'XLA'
61683 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61684 ,p_token_1 => 'LINE_NUMBER'
61685 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61686 ,p_token_2 => 'LINE_TYPE_NAME'
61687 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61688 l_component_type
61689 ,l_component_code
61690 ,l_component_type_code
61691 ,l_component_appl_id
61692 ,l_amb_context_code
61693 ,l_entity_code
61694 ,l_event_class_code
61695 )
61696 ,p_token_3 => 'OWNER'
61697 ,p_value_3 => xla_lookups_pkg.get_meaning(
61698 p_lookup_type => 'XLA_OWNER_TYPE'
61699 ,p_lookup_code => l_component_type_code
61700 )
61701 ,p_token_4 => 'PRODUCT_NAME'
61702 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61703 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61704 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61705 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61706 ,p_ae_header_id => NULL
61707 );
61708
61709 IF (C_LEVEL_ERROR>= g_log_level) THEN
61710 trace
61711 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61712 ,p_level => C_LEVEL_ERROR
61713 ,p_module => l_log_module);
61714 END IF;
61715 END IF;
61716 END IF;
61717 --
61718 --
61719 ------------------------------------------------------------------------------------------------
61720 -- 4219869 Business Flow
61721 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61722 -- Prior Entry. Currently, the following code is always generated.
61723 ------------------------------------------------------------------------------------------------
61724 XLA_AE_LINES_PKG.ValidateCurrentLine;
61725
61726 ------------------------------------------------------------------------------------
61727 -- 4219869 Business Flow
61728 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61729 ------------------------------------------------------------------------------------
61730 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61731
61732 ----------------------------------------------------------------------------------
61733 -- 4219869 Business Flow
61734 -- Update journal entry status -- Need to generate this within IF <condition>
61735 ----------------------------------------------------------------------------------
61739 );
61736 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61737 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61738 ,p_balance_type_code => l_balance_type_code
61740
61741 -------------------------------------------------------------------------------------------
61742 -- 4262811 - Generate the Accrual Reversal lines
61743 -------------------------------------------------------------------------------------------
61744 BEGIN
61745 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61746 (g_array_event(p_event_id).array_value_num('header_index'));
61747 IF l_acc_rev_flag IS NULL THEN
61748 l_acc_rev_flag := 'N';
61749 END IF;
61750 EXCEPTION
61751 WHEN OTHERS THEN
61752 l_acc_rev_flag := 'N';
61753 END;
61754 --
61755 IF (l_acc_rev_flag = 'Y') THEN
61756
61757 -- 4645092 ------------------------------------------------------------------------------
61758 -- To allow MPA report to determine if it should generate report process
61759 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61760 ------------------------------------------------------------------------------------------
61761
61762 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61763 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61764 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
61765 -- call ADRs
61766 -- Bug 4922099
61767 --
61768 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61769 (NVL(l_actual_upg_option, 'N') = 'O') OR
61770 (NVL(l_enc_upg_option, 'N') = 'O')
61771 )
61772 THEN
61773 NULL;
61774 --
61775 --
61776
61777 l_ccid := AcctDerRule_26(
61778 p_application_id => p_application_id
61779 , p_ae_header_id => l_ae_header_id
61780 , p_source_17 => p_source_17
61781 , x_transaction_coa_id => l_adr_transaction_coa_id
61782 , x_accounting_coa_id => l_adr_accounting_coa_id
61783 , x_value_type_code => l_adr_value_type_code
61784 , p_side => 'NA'
61785 );
61786
61787 xla_ae_lines_pkg.set_ccid(
61788 p_code_combination_id => l_ccid
61789 , p_value_type_code => l_adr_value_type_code
61790 , p_transaction_coa_id => l_adr_transaction_coa_id
61791 , p_accounting_coa_id => l_adr_accounting_coa_id
61792 , p_adr_code => 'AP_INVOICE_DIST'
61793 , p_adr_type_code => 'S'
61794 , p_component_type => l_component_type
61795 , p_component_code => l_component_code
61796 , p_component_type_code => l_component_type_code
61797 , p_component_appl_id => l_component_appl_id
61798 , p_amb_context_code => l_amb_context_code
61799 , p_side => 'NA'
61800 );
61801
61802
61803 --
61804 --
61805 END IF;
61806
61807 --
61808 -- Update the line information that should be overwritten
61809 --
61810 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61811 p_header_num => 1);
61812 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61813
61814 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61815
61816 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61817 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61818 END IF;
61819
61820 --
61821 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61822 --
61823 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61824 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61825 ELSE
61826 ---------------------------------------------------------------------------------------------------
61827 -- 4262811a Switch Sign
61828 ---------------------------------------------------------------------------------------------------
61829 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61830 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61831 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61832 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61833 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61834 -- 5132302
61835 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61836 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61837
61838 END IF;
61839
61840 -- 4955764
61841 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61842 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61843
61844
61848 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61845 XLA_AE_LINES_PKG.ValidateCurrentLine;
61846 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61847
61849 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61850 ,p_balance_type_code => l_balance_type_code);
61851
61852 END IF;
61853
61854 -----------------------------------------------------------------------------------------
61855 -- 4262811 Multiperiod Accounting
61856 -----------------------------------------------------------------------------------------
61857 -- No MPA option is assigned.
61858
61859
61860 END IF;
61861 END IF;
61862 --
61863
61864 --
61865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61866 trace
61867 (p_msg => 'END of AcctLineType_117'
61868 ,p_level => C_LEVEL_PROCEDURE
61869 ,p_module => l_log_module);
61870 END IF;
61871 --
61872 EXCEPTION
61873 WHEN xla_exceptions_pkg.application_exception THEN
61874 RAISE;
61875 WHEN OTHERS THEN
61876 xla_exceptions_pkg.raise_message
61877 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_117');
61878 END AcctLineType_117;
61879 --
61880
61881 ---------------------------------------
61882 --
61883 -- PRIVATE FUNCTION
61884 -- AcctLineType_118
61885 --
61886 ---------------------------------------
61887 PROCEDURE AcctLineType_118 (
61888 p_application_id IN NUMBER
61889 ,p_event_id IN NUMBER
61890 ,p_calculate_acctd_flag IN VARCHAR2
61891 ,p_calculate_g_l_flag IN VARCHAR2
61892 ,p_actual_flag IN OUT VARCHAR2
61893 ,p_balance_type_code OUT VARCHAR2
61894 ,p_gain_or_loss_ref OUT VARCHAR2
61895
61896 --Payment Distribution (Payment Rate) Ledger Amount
61897 , p_source_9 IN NUMBER
61898 --Invoice Distribution Type
61899 , p_source_20 IN VARCHAR2
61900 , p_source_20_meaning IN VARCHAR2
61901 --When to Account for Payment Option
61902 , p_source_38 IN VARCHAR2
61903 --Payment Distribution Type
61904 , p_source_39 IN VARCHAR2
61905 , p_source_39_meaning IN VARCHAR2
61906 --Accounting Reversal Indicator
61907 , p_source_40 IN VARCHAR2
61908 --Payment Distribution Amount
61909 , p_source_41 IN NUMBER
61910 --Business Flow Accounts Payable Application Identifier
61911 , p_source_42 IN NUMBER
61912 --Payment Distribution Identifier
61913 , p_source_47 IN NUMBER
61914 --Distribution Link Type
61915 , p_source_48 IN VARCHAR2
61916 --Payment Currency Code
61917 , p_source_49 IN VARCHAR2
61918 --Override Accounted Amount Indicator
61919 , p_source_53 IN VARCHAR2
61920 , p_source_53_meaning IN VARCHAR2
61921 --Third Party Type
61922 , p_source_56 IN VARCHAR2
61923 --Payment Distribution Reversed Identifier
61924 , p_source_57 IN NUMBER
61925 --Invoice Distribution Tax Line Identifier
61926 , p_source_58 IN NUMBER
61927 --Invoice Distribution Summary Tax Line Identifier
61928 , p_source_59 IN NUMBER
61929 --Business Flow Invoice Distribution Type
61930 , p_source_62 IN VARCHAR2
61931 --Business Flow Invoice Entity Code
61932 , p_source_63 IN VARCHAR2
61933 --Business Flow Invoice Distribution Identifier
61934 , p_source_64 IN NUMBER
61935 --Business Flow Invoice Identifier
61936 , p_source_65 IN NUMBER
61937 --Invoice Type Paid
61938 , p_source_101 IN VARCHAR2
61939 , p_source_101_meaning IN VARCHAR2
61940 --Purchasing Encumbrance Option
61941 , p_source_102 IN VARCHAR2
61942 , p_source_102_meaning IN VARCHAR2
61943 --Invoice Encumbered Option
61944 , p_source_104 IN VARCHAR2
61945 , p_source_104_meaning IN VARCHAR2
61946 )
61947 IS
61948
61949 l_component_type VARCHAR2(80);
61950 l_component_code VARCHAR2(30);
61951 l_component_type_code VARCHAR2(1);
61952 l_component_appl_id INTEGER;
61953 l_amb_context_code VARCHAR2(30);
61954 l_entity_code VARCHAR2(30);
61955 l_event_class_code VARCHAR2(30);
61956 l_ae_header_id NUMBER;
61957 l_event_type_code VARCHAR2(30);
61958 l_line_definition_code VARCHAR2(30);
61959 l_line_definition_owner_code VARCHAR2(1);
61960 --
61961 -- adr variables
61962 l_segment VARCHAR2(30);
61963 l_ccid NUMBER;
61964 l_adr_transaction_coa_id NUMBER;
61965 l_adr_accounting_coa_id NUMBER;
61966 l_adr_flexfield_segment_code VARCHAR2(30);
61967 l_adr_flex_value_set_id NUMBER;
61968 l_adr_value_type_code VARCHAR2(30);
61969 l_adr_value_combination_id NUMBER;
61970 l_adr_value_segment_code VARCHAR2(30);
61971
61972 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61973 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61974 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61975 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61976
61977 -- 4262811 Variables ------------------------------------------------------------------------------------------
61978 l_entered_amt_idx NUMBER;
61979 l_accted_amt_idx NUMBER;
61983 l_acc_rev_natural_side_code VARCHAR2(1);
61980 l_acc_rev_flag VARCHAR2(1);
61981 l_accrual_line_num NUMBER;
61982 l_tmp_amt NUMBER;
61984
61985 l_num_entries NUMBER;
61986 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61987 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61988 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61989 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61990 l_recog_line_1 NUMBER;
61991 l_recog_line_2 NUMBER;
61992
61993 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61994 l_bflow_applied_to_amt NUMBER; -- 5132302
61995 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61996
61997 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61998
61999 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62000 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62001
62002 ---------------------------------------------------------------------------------------------------------------
62003
62004
62005 --
62006 -- bulk performance
62007 --
62008 l_balance_type_code VARCHAR2(1);
62009 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62010 l_log_module VARCHAR2(240);
62011
62012 --
62013 -- Upgrade strategy
62014 --
62015 l_actual_upg_option VARCHAR2(1);
62016 l_enc_upg_option VARCHAR2(1);
62017
62018 --
62019 BEGIN
62020 --
62021 IF g_log_enabled THEN
62022 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
62023 END IF;
62024 --
62025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62026
62027 trace
62028 (p_msg => 'BEGIN of AcctLineType_118'
62029 ,p_level => C_LEVEL_PROCEDURE
62030 ,p_module => l_log_module);
62031
62032 END IF;
62033 --
62034 l_component_type := 'AMB_JLT';
62035 l_component_code := 'AP_ITEM_EXPENSE_CLR_ENC';
62036 l_component_type_code := 'S';
62037 l_component_appl_id := 200;
62038 l_amb_context_code := 'DEFAULT';
62039 l_entity_code := 'AP_PAYMENTS';
62040 l_event_class_code := 'RECONCILED PAYMENTS';
62041 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
62042 l_line_definition_owner_code := 'S';
62043 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
62044 --
62045 l_balance_type_code := 'E';
62046 l_segment := NULL;
62047 l_ccid := NULL;
62048 l_adr_transaction_coa_id := NULL;
62049 l_adr_accounting_coa_id := NULL;
62050 l_adr_flexfield_segment_code := NULL;
62051 l_adr_flex_value_set_id := NULL;
62052 l_adr_value_type_code := NULL;
62053 l_adr_value_combination_id := NULL;
62054 l_adr_value_segment_code := NULL;
62055
62056 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
62057 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
62058 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62059 l_budgetary_control_flag := 'N';
62060
62061 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62062 l_bflow_applied_to_amt := NULL; -- 5132302
62063 l_entered_amt_idx := NULL; -- 4262811
62064 l_accted_amt_idx := NULL; -- 4262811
62065 l_acc_rev_flag := NULL; -- 4262811
62066 l_accrual_line_num := NULL; -- 4262811
62067 l_tmp_amt := NULL; -- 4262811
62068 --
62069
62070 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62071 l_balance_type_code <> 'B' THEN
62072 IF NVL(p_source_38,'
62073 ') = 'CLEAR_CLEAR' AND
62074 NVL(p_source_20,'
62075 ') = 'ITEM' AND
62076 NVL(p_source_101,'
62077 ') <> 'INTEREST' AND
62078 (NVL(p_source_39,'
62079 ') = 'CASH' OR
62080 NVL(p_source_39,'
62081 ') = 'DISCOUNT') AND
62082 NVL(p_source_102,'
62083 ') = 'Y' AND
62084 NVL(p_source_104,'
62085 ') = 'Y'
62086 THEN
62087
62088 --
62089 XLA_AE_LINES_PKG.SetNewLine;
62090
62091 p_balance_type_code := l_balance_type_code;
62092 -- set the flag so later we will know whether the gain loss line needs to be created
62093
62094 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62095 p_actual_flag :='A';
62096 END IF;
62097
62098 --
62099 -- bulk performance
62100 --
62101 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62102 p_header_num => 0); -- 4262811
62103 --
62104 -- set accounting line options
62105 --
62106 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62107 p_natural_side_code => 'C'
62108 , p_gain_or_loss_flag => 'N'
62109 , p_gl_transfer_mode_code => 'S'
62110 , p_acct_entry_type_code => 'E'
62111 , p_switch_side_flag => 'Y'
62112 , p_merge_duplicate_code => 'A'
62113 );
62114 --
62115 l_acc_rev_natural_side_code := 'D'; -- 4262811
62119 --
62116 --
62117 --
62118 -- set accounting line type info
62120 xla_ae_lines_pkg.SetAcctLineType
62121 (p_component_type => l_component_type
62122 ,p_event_type_code => l_event_type_code
62123 ,p_line_definition_owner_code => l_line_definition_owner_code
62124 ,p_line_definition_code => l_line_definition_code
62125 ,p_accounting_line_code => l_component_code
62126 ,p_accounting_line_type_code => l_component_type_code
62127 ,p_accounting_line_appl_id => l_component_appl_id
62128 ,p_amb_context_code => l_amb_context_code
62129 ,p_entity_code => l_entity_code
62130 ,p_event_class_code => l_event_class_code);
62131 --
62132 -- set accounting class
62133 --
62134 xla_ae_lines_pkg.SetAcctClass(
62135 p_accounting_class_code => 'ITEM EXPENSE'
62136 , p_ae_header_id => l_ae_header_id
62137 );
62138
62139 --
62140 -- set rounding class
62141 --
62142 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62143 'ITEM EXPENSE';
62144
62145 --
62146 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62147 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62148 --
62149 -- bulk performance
62150 --
62151 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62152
62153 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62154 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62155
62156 -- 4955764
62157 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62158 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62159
62160 -- 4458381 Public Sector Enh
62161
62162 --
62163 -- set accounting attributes for the line type
62164 --
62165 l_entered_amt_idx := 10;
62166 l_accted_amt_idx := 12;
62167 l_bflow_applied_to_amt_idx := 2; -- 5132302
62168 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62169 l_rec_acct_attrs.array_char_value(1) := p_source_40;
62170 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
62171 l_rec_acct_attrs.array_num_value(2) := p_source_41;
62172 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
62173 l_rec_acct_attrs.array_num_value(3) := p_source_42;
62174 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62175 l_rec_acct_attrs.array_char_value(4) := p_source_62;
62176 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
62177 l_rec_acct_attrs.array_char_value(5) := p_source_63;
62178 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
62179 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
62180 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62181 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
62182 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
62183 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
62184 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
62185 l_rec_acct_attrs.array_char_value(9) := p_source_48;
62186 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
62187 l_rec_acct_attrs.array_num_value(10) := p_source_41;
62188 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
62189 l_rec_acct_attrs.array_char_value(11) := p_source_49;
62190 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
62191 l_rec_acct_attrs.array_num_value(12) := p_source_9;
62192 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
62193 l_rec_acct_attrs.array_char_value(13) := p_source_53;
62194 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
62195 l_rec_acct_attrs.array_char_value(14) := p_source_56;
62196 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
62197 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
62198 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
62199 l_rec_acct_attrs.array_char_value(16) := p_source_48;
62200 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
62201 l_rec_acct_attrs.array_num_value(17) := p_source_58;
62202 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
62203 l_rec_acct_attrs.array_num_value(18) := p_source_58;
62204 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
62205 l_rec_acct_attrs.array_num_value(19) := p_source_59;
62206
62207 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62208 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62209
62210 ---------------------------------------------------------------------------------------------------------------
62211 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62212 ---------------------------------------------------------------------------------------------------------------
62213 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62214
62215 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62219 (p_source_code => 'LEDGER_CATEGORY_CODE'
62216 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62217
62218 IF xla_accounting_cache_pkg.GetValueChar
62220 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62221 AND l_bflow_method_code = 'PRIOR_ENTRY'
62222 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62223 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62224 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62225 )
62226 THEN
62227 xla_ae_lines_pkg.BflowUpgEntry
62228 (p_business_method_code => l_bflow_method_code
62229 ,p_business_class_code => l_bflow_class_code
62230 ,p_balance_type => l_balance_type_code);
62231 ELSE
62232 NULL;
62233 XLA_AE_LINES_PKG.business_flow_validation(
62234 p_business_method_code => l_bflow_method_code
62235 ,p_business_class_code => l_bflow_class_code
62236 ,p_inherit_description_flag => l_inherit_desc_flag);
62237 END IF;
62238
62239 --
62240 -- call analytical criteria
62241 --
62242 -- Inherited Analytical Criteria for business flow method of Prior Entry.
62243 --
62244 -- call description
62245 --
62246 -- No description or it is inherited.
62247 --
62248 -- call ADRs
62249 -- Bug 4922099
62250 --
62251 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62252 (NVL(l_actual_upg_option, 'N') = 'O') OR
62253 (NVL(l_enc_upg_option, 'N') = 'O')
62254 )
62255 THEN
62256 NULL;
62257 --
62258 --
62259
62260 --
62261 --
62262 END IF;
62263 --
62264 -- Bug 4922099
62265 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62266 (NVL(l_enc_upg_option, 'N') = 'O')
62267 ) AND
62268 (l_bflow_method_code = 'PRIOR_ENTRY')
62269 )
62270 THEN
62271 IF
62272 --
62273 1 = 1
62274 --
62275 THEN
62276 xla_accounting_err_pkg.build_message
62277 (p_appli_s_name => 'XLA'
62278 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62279 ,p_token_1 => 'LINE_NUMBER'
62280 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62281 ,p_token_2 => 'LINE_TYPE_NAME'
62282 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62283 l_component_type
62284 ,l_component_code
62285 ,l_component_type_code
62286 ,l_component_appl_id
62287 ,l_amb_context_code
62288 ,l_entity_code
62289 ,l_event_class_code
62290 )
62291 ,p_token_3 => 'OWNER'
62292 ,p_value_3 => xla_lookups_pkg.get_meaning(
62293 p_lookup_type => 'XLA_OWNER_TYPE'
62294 ,p_lookup_code => l_component_type_code
62295 )
62296 ,p_token_4 => 'PRODUCT_NAME'
62297 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62298 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62299 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62300 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62301 ,p_ae_header_id => NULL
62302 );
62303
62304 IF (C_LEVEL_ERROR>= g_log_level) THEN
62305 trace
62306 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62307 ,p_level => C_LEVEL_ERROR
62308 ,p_module => l_log_module);
62309 END IF;
62310 END IF;
62311 END IF;
62312 --
62313 --
62314 ------------------------------------------------------------------------------------------------
62315 -- 4219869 Business Flow
62316 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62317 -- Prior Entry. Currently, the following code is always generated.
62318 ------------------------------------------------------------------------------------------------
62319 -- No ValidateCurrentLine for business flow method of Prior Entry
62320
62321 ------------------------------------------------------------------------------------
62322 -- 4219869 Business Flow
62326
62323 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62324 ------------------------------------------------------------------------------------
62325 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62327 ----------------------------------------------------------------------------------
62328 -- 4219869 Business Flow
62329 -- Update journal entry status -- Need to generate this within IF <condition>
62330 ----------------------------------------------------------------------------------
62331 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62332 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62333 ,p_balance_type_code => l_balance_type_code
62334 );
62335
62336 -------------------------------------------------------------------------------------------
62337 -- 4262811 - Generate the Accrual Reversal lines
62338 -------------------------------------------------------------------------------------------
62339 BEGIN
62340 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62341 (g_array_event(p_event_id).array_value_num('header_index'));
62342 IF l_acc_rev_flag IS NULL THEN
62343 l_acc_rev_flag := 'N';
62344 END IF;
62345 EXCEPTION
62346 WHEN OTHERS THEN
62347 l_acc_rev_flag := 'N';
62348 END;
62349 --
62350 IF (l_acc_rev_flag = 'Y') THEN
62351
62352 -- 4645092 ------------------------------------------------------------------------------
62353 -- To allow MPA report to determine if it should generate report process
62354 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62355 ------------------------------------------------------------------------------------------
62356
62357 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62358 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62359 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62360 -- call ADRs
62361 -- Bug 4922099
62362 --
62363 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62364 (NVL(l_actual_upg_option, 'N') = 'O') OR
62365 (NVL(l_enc_upg_option, 'N') = 'O')
62366 )
62367 THEN
62368 NULL;
62369 --
62370 --
62371
62372 --
62373 --
62374 END IF;
62375
62376 --
62377 -- Update the line information that should be overwritten
62378 --
62379 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62380 p_header_num => 1);
62381 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62382
62383 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62384
62385 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62386 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62387 END IF;
62388
62389 --
62390 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62391 --
62392 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62393 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62394 ELSE
62395 ---------------------------------------------------------------------------------------------------
62396 -- 4262811a Switch Sign
62397 ---------------------------------------------------------------------------------------------------
62398 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62399 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62400 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62401 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62402 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62403 -- 5132302
62404 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62405 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62406
62407 END IF;
62408
62409 -- 4955764
62410 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62411 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62412
62413
62414 XLA_AE_LINES_PKG.ValidateCurrentLine;
62415 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62416
62417 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62418 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62419 ,p_balance_type_code => l_balance_type_code);
62420
62421 END IF;
62422
62423 -----------------------------------------------------------------------------------------
62424 -- 4262811 Multiperiod Accounting
62425 -----------------------------------------------------------------------------------------
62426 -- No MPA option is assigned.
62427
62428
62429 END IF;
62430 END IF;
62431 --
62432
62433 --
62437 ,p_level => C_LEVEL_PROCEDURE
62434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62435 trace
62436 (p_msg => 'END of AcctLineType_118'
62438 ,p_module => l_log_module);
62439 END IF;
62440 --
62441 EXCEPTION
62442 WHEN xla_exceptions_pkg.application_exception THEN
62443 RAISE;
62444 WHEN OTHERS THEN
62445 xla_exceptions_pkg.raise_message
62446 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_118');
62447 END AcctLineType_118;
62448 --
62449
62450 ---------------------------------------
62451 --
62452 -- PRIVATE FUNCTION
62453 -- AcctLineType_119
62454 --
62455 ---------------------------------------
62456 PROCEDURE AcctLineType_119 (
62457 p_application_id IN NUMBER
62458 ,p_event_id IN NUMBER
62459 ,p_calculate_acctd_flag IN VARCHAR2
62460 ,p_calculate_g_l_flag IN VARCHAR2
62461 ,p_actual_flag IN OUT VARCHAR2
62462 ,p_balance_type_code OUT VARCHAR2
62463 ,p_gain_or_loss_ref OUT VARCHAR2
62464
62465 --Payment Distribution (Payment Rate) Ledger Amount
62466 , p_source_9 IN NUMBER
62467 --Invoice Distribution Account
62468 , p_source_17 IN NUMBER
62469 --Invoice Distribution Type
62470 , p_source_20 IN VARCHAR2
62471 , p_source_20_meaning IN VARCHAR2
62472 --When to Account for Payment Option
62473 , p_source_38 IN VARCHAR2
62474 --Payment Distribution Type
62475 , p_source_39 IN VARCHAR2
62476 , p_source_39_meaning IN VARCHAR2
62477 --Accounting Reversal Indicator
62478 , p_source_40 IN VARCHAR2
62479 --Payment Distribution Amount
62480 , p_source_41 IN NUMBER
62481 --Business Flow Accounts Payable Application Identifier
62482 , p_source_42 IN NUMBER
62483 --Payment Distribution Identifier
62484 , p_source_47 IN NUMBER
62485 --Distribution Link Type
62486 , p_source_48 IN VARCHAR2
62487 --Payment Currency Code
62488 , p_source_49 IN VARCHAR2
62489 --Override Accounted Amount Indicator
62490 , p_source_53 IN VARCHAR2
62491 , p_source_53_meaning IN VARCHAR2
62492 --Payment Supplier Identifier
62493 , p_source_54 IN NUMBER
62494 --Payment Supplier Site Identifier
62495 , p_source_55 IN NUMBER
62496 --Third Party Type
62497 , p_source_56 IN VARCHAR2
62498 --Payment Distribution Reversed Identifier
62499 , p_source_57 IN NUMBER
62500 --Invoice Distribution Tax Line Identifier
62501 , p_source_58 IN NUMBER
62502 --Invoice Distribution Summary Tax Line Identifier
62503 , p_source_59 IN NUMBER
62504 --Payment Type
62505 , p_source_60 IN VARCHAR2
62506 , p_source_60_meaning IN VARCHAR2
62507 --Invoice Distribution Amount of the Payment Distribution
62508 , p_source_61 IN NUMBER
62509 --Business Flow Invoice Distribution Type
62510 , p_source_62 IN VARCHAR2
62511 --Business Flow Invoice Entity Code
62512 , p_source_63 IN VARCHAR2
62513 --Business Flow Invoice Distribution Identifier
62514 , p_source_64 IN NUMBER
62515 --Business Flow Invoice Identifier
62516 , p_source_65 IN NUMBER
62517 --Invoice Distribution Tax Distribution Identifier from Tax
62518 , p_source_66 IN NUMBER
62519 --Accrue on Receipt Option
62520 , p_source_100 IN VARCHAR2
62521 , p_source_100_meaning IN VARCHAR2
62522 --Invoice Type Paid
62523 , p_source_101 IN VARCHAR2
62524 , p_source_101_meaning IN VARCHAR2
62525 --Payment Exchange Date
62526 , p_source_114 IN DATE
62527 --Payment Exchange Rate
62528 , p_source_115 IN NUMBER
62529 --Payment Exchange Rate Type
62530 , p_source_116 IN VARCHAR2
62531 )
62532 IS
62533
62534 l_component_type VARCHAR2(80);
62535 l_component_code VARCHAR2(30);
62536 l_component_type_code VARCHAR2(1);
62537 l_component_appl_id INTEGER;
62538 l_amb_context_code VARCHAR2(30);
62539 l_entity_code VARCHAR2(30);
62540 l_event_class_code VARCHAR2(30);
62541 l_ae_header_id NUMBER;
62542 l_event_type_code VARCHAR2(30);
62543 l_line_definition_code VARCHAR2(30);
62544 l_line_definition_owner_code VARCHAR2(1);
62545 --
62546 -- adr variables
62547 l_segment VARCHAR2(30);
62548 l_ccid NUMBER;
62549 l_adr_transaction_coa_id NUMBER;
62550 l_adr_accounting_coa_id NUMBER;
62551 l_adr_flexfield_segment_code VARCHAR2(30);
62552 l_adr_flex_value_set_id NUMBER;
62553 l_adr_value_type_code VARCHAR2(30);
62554 l_adr_value_combination_id NUMBER;
62555 l_adr_value_segment_code VARCHAR2(30);
62556
62557 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62558 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62559 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62560 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62561
62562 -- 4262811 Variables ------------------------------------------------------------------------------------------
62563 l_entered_amt_idx NUMBER;
62564 l_accted_amt_idx NUMBER;
62565 l_acc_rev_flag VARCHAR2(1);
62569
62566 l_accrual_line_num NUMBER;
62567 l_tmp_amt NUMBER;
62568 l_acc_rev_natural_side_code VARCHAR2(1);
62570 l_num_entries NUMBER;
62571 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62572 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62573 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62574 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62575 l_recog_line_1 NUMBER;
62576 l_recog_line_2 NUMBER;
62577
62578 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62579 l_bflow_applied_to_amt NUMBER; -- 5132302
62580 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62581
62582 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62583
62584 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62585 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62586
62587 ---------------------------------------------------------------------------------------------------------------
62588
62589
62590 --
62591 -- bulk performance
62592 --
62593 l_balance_type_code VARCHAR2(1);
62594 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62595 l_log_module VARCHAR2(240);
62596
62597 --
62598 -- Upgrade strategy
62599 --
62600 l_actual_upg_option VARCHAR2(1);
62601 l_enc_upg_option VARCHAR2(1);
62602
62603 --
62604 BEGIN
62605 --
62606 IF g_log_enabled THEN
62607 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
62608 END IF;
62609 --
62610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62611
62612 trace
62613 (p_msg => 'BEGIN of AcctLineType_119'
62614 ,p_level => C_LEVEL_PROCEDURE
62615 ,p_module => l_log_module);
62616
62617 END IF;
62618 --
62619 l_component_type := 'AMB_JLT';
62620 l_component_code := 'AP_ITEM_EXPENSE_PMT';
62621 l_component_type_code := 'S';
62622 l_component_appl_id := 200;
62623 l_amb_context_code := 'DEFAULT';
62624 l_entity_code := 'AP_PAYMENTS';
62625 l_event_class_code := 'PAYMENTS';
62626 l_event_type_code := 'PAYMENTS_ALL';
62627 l_line_definition_owner_code := 'S';
62628 l_line_definition_code := 'CASH_PAYMENTS_ALL';
62629 --
62630 l_balance_type_code := 'A';
62631 l_segment := NULL;
62632 l_ccid := NULL;
62633 l_adr_transaction_coa_id := NULL;
62634 l_adr_accounting_coa_id := NULL;
62635 l_adr_flexfield_segment_code := NULL;
62636 l_adr_flex_value_set_id := NULL;
62637 l_adr_value_type_code := NULL;
62638 l_adr_value_combination_id := NULL;
62639 l_adr_value_segment_code := NULL;
62640
62641 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62642 l_bflow_class_code := ''; -- 4219869 Business Flow
62643 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62644 l_budgetary_control_flag := 'N';
62645
62646 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62647 l_bflow_applied_to_amt := NULL; -- 5132302
62648 l_entered_amt_idx := NULL; -- 4262811
62649 l_accted_amt_idx := NULL; -- 4262811
62650 l_acc_rev_flag := NULL; -- 4262811
62651 l_accrual_line_num := NULL; -- 4262811
62652 l_tmp_amt := NULL; -- 4262811
62653 --
62654
62655 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62656 l_balance_type_code <> 'B' THEN
62657 IF NVL(p_source_38,'
62658 ') <> 'CLEAR_CLEAR' AND
62659 (NVL(p_source_20,'
62660 ') = 'ITEM' OR
62661 NVL(p_source_20,'
62662 ') = 'RETROEXPENSE' OR
62663 NVL(p_source_20,'
62664 ') = 'ERV' AND
62665 NVL(p_source_100,'
62666 ') <> 'Y' OR
62667 NVL(p_source_20,'
62668 ') = 'IPV' AND
62669 NVL(p_source_100,'
62670 ') <> 'Y') AND
62671 NVL(p_source_101,'
62672 ') <> 'PREPAYMENT' AND
62673 NVL(p_source_101,'
62674 ') <> 'INTEREST' AND
62675 (NVL(p_source_39,'
62676 ') = 'CASH' OR
62677 NVL(p_source_39,'
62678 ') = 'AWT' OR
62679 NVL(p_source_39,'
62680 ') = 'DISCOUNT') AND
62681 NVL(p_source_60,'
62682 ') <> 'R'
62683 THEN
62684
62685 --
62686 XLA_AE_LINES_PKG.SetNewLine;
62687
62688 p_balance_type_code := l_balance_type_code;
62689 -- set the flag so later we will know whether the gain loss line needs to be created
62690
62691 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62692 p_actual_flag :='A';
62693 END IF;
62694
62695 --
62696 -- bulk performance
62697 --
62698 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62699 p_header_num => 0); -- 4262811
62700 --
62701 -- set accounting line options
62702 --
62703 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62704 p_natural_side_code => 'D'
62705 , p_gain_or_loss_flag => 'N'
62706 , p_gl_transfer_mode_code => 'S'
62710 );
62707 , p_acct_entry_type_code => 'A'
62708 , p_switch_side_flag => 'Y'
62709 , p_merge_duplicate_code => 'A'
62711 --
62712 l_acc_rev_natural_side_code := 'C'; -- 4262811
62713 --
62714 --
62715 -- set accounting line type info
62716 --
62717 xla_ae_lines_pkg.SetAcctLineType
62718 (p_component_type => l_component_type
62719 ,p_event_type_code => l_event_type_code
62720 ,p_line_definition_owner_code => l_line_definition_owner_code
62721 ,p_line_definition_code => l_line_definition_code
62722 ,p_accounting_line_code => l_component_code
62723 ,p_accounting_line_type_code => l_component_type_code
62724 ,p_accounting_line_appl_id => l_component_appl_id
62725 ,p_amb_context_code => l_amb_context_code
62726 ,p_entity_code => l_entity_code
62727 ,p_event_class_code => l_event_class_code);
62728 --
62729 -- set accounting class
62730 --
62731 xla_ae_lines_pkg.SetAcctClass(
62732 p_accounting_class_code => 'ITEM EXPENSE'
62733 , p_ae_header_id => l_ae_header_id
62734 );
62735
62736 --
62737 -- set rounding class
62738 --
62739 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62740 'ITEM EXPENSE';
62741
62742 --
62743 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62744 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62745 --
62746 -- bulk performance
62747 --
62748 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62749
62750 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62751 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62752
62753 -- 4955764
62754 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62755 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62756
62757 -- 4458381 Public Sector Enh
62758
62759 --
62760 -- set accounting attributes for the line type
62761 --
62762 l_entered_amt_idx := 10;
62763 l_accted_amt_idx := 15;
62764 l_bflow_applied_to_amt_idx := 2; -- 5132302
62765 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62766 l_rec_acct_attrs.array_char_value(1) := p_source_40;
62767 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
62768 l_rec_acct_attrs.array_num_value(2) := p_source_61;
62769 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
62770 l_rec_acct_attrs.array_num_value(3) := p_source_42;
62771 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62772 l_rec_acct_attrs.array_char_value(4) := p_source_62;
62773 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
62774 l_rec_acct_attrs.array_char_value(5) := p_source_63;
62775 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
62776 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
62777 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62778 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
62779 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
62780 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
62781 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
62782 l_rec_acct_attrs.array_char_value(9) := p_source_48;
62783 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
62784 l_rec_acct_attrs.array_num_value(10) := p_source_41;
62785 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
62786 l_rec_acct_attrs.array_char_value(11) := p_source_49;
62787 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
62788 l_rec_acct_attrs.array_date_value(12) := p_source_114;
62789 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
62790 l_rec_acct_attrs.array_num_value(13) := p_source_115;
62791 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
62792 l_rec_acct_attrs.array_char_value(14) := p_source_116;
62793 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
62794 l_rec_acct_attrs.array_num_value(15) := p_source_9;
62795 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
62796 l_rec_acct_attrs.array_char_value(16) := p_source_53;
62797 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
62798 l_rec_acct_attrs.array_num_value(17) := p_source_54;
62799 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
62800 l_rec_acct_attrs.array_num_value(18) := p_source_55;
62801 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
62802 l_rec_acct_attrs.array_char_value(19) := p_source_56;
62803 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
62804 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
62805 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
62806 l_rec_acct_attrs.array_char_value(21) := p_source_48;
62807 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
62808 l_rec_acct_attrs.array_num_value(22) := p_source_58;
62809 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
62810 l_rec_acct_attrs.array_num_value(23) := p_source_66;
62814 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62811 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
62812 l_rec_acct_attrs.array_num_value(24) := p_source_59;
62813
62815 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62816
62817 ---------------------------------------------------------------------------------------------------------------
62818 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62819 ---------------------------------------------------------------------------------------------------------------
62820 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62821
62822 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62823 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62824
62825 IF xla_accounting_cache_pkg.GetValueChar
62826 (p_source_code => 'LEDGER_CATEGORY_CODE'
62827 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62828 AND l_bflow_method_code = 'PRIOR_ENTRY'
62829 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62830 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62831 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62832 )
62833 THEN
62834 xla_ae_lines_pkg.BflowUpgEntry
62835 (p_business_method_code => l_bflow_method_code
62836 ,p_business_class_code => l_bflow_class_code
62837 ,p_balance_type => l_balance_type_code);
62838 ELSE
62839 NULL;
62840 -- No business flow processing for business flow method of NONE.
62841 END IF;
62842
62843 --
62844 -- call analytical criteria
62845 --
62846
62847 --
62848 -- call description
62849 --
62850 -- No description or it is inherited.
62851 --
62852 -- call ADRs
62853 -- Bug 4922099
62854 --
62855 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62856 (NVL(l_actual_upg_option, 'N') = 'O') OR
62857 (NVL(l_enc_upg_option, 'N') = 'O')
62858 )
62859 THEN
62860 NULL;
62861 --
62862 --
62863
62864 l_ccid := AcctDerRule_26(
62865 p_application_id => p_application_id
62866 , p_ae_header_id => l_ae_header_id
62867 , p_source_17 => p_source_17
62868 , x_transaction_coa_id => l_adr_transaction_coa_id
62869 , x_accounting_coa_id => l_adr_accounting_coa_id
62870 , x_value_type_code => l_adr_value_type_code
62871 , p_side => 'NA'
62872 );
62873
62874 xla_ae_lines_pkg.set_ccid(
62875 p_code_combination_id => l_ccid
62876 , p_value_type_code => l_adr_value_type_code
62877 , p_transaction_coa_id => l_adr_transaction_coa_id
62878 , p_accounting_coa_id => l_adr_accounting_coa_id
62879 , p_adr_code => 'AP_INVOICE_DIST'
62880 , p_adr_type_code => 'S'
62881 , p_component_type => l_component_type
62882 , p_component_code => l_component_code
62883 , p_component_type_code => l_component_type_code
62884 , p_component_appl_id => l_component_appl_id
62885 , p_amb_context_code => l_amb_context_code
62886 , p_side => 'NA'
62887 );
62888
62889
62890 --
62891 --
62892 END IF;
62893 --
62894 -- Bug 4922099
62895 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62896 (NVL(l_enc_upg_option, 'N') = 'O')
62897 ) AND
62898 (l_bflow_method_code = 'PRIOR_ENTRY')
62899 )
62900 THEN
62901 IF
62902 --
62903 1 = 2
62904 --
62905 THEN
62906 xla_accounting_err_pkg.build_message
62907 (p_appli_s_name => 'XLA'
62908 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62909 ,p_token_1 => 'LINE_NUMBER'
62910 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62911 ,p_token_2 => 'LINE_TYPE_NAME'
62912 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62913 l_component_type
62914 ,l_component_code
62915 ,l_component_type_code
62916 ,l_component_appl_id
62917 ,l_amb_context_code
62918 ,l_entity_code
62919 ,l_event_class_code
62920 )
62921 ,p_token_3 => 'OWNER'
62922 ,p_value_3 => xla_lookups_pkg.get_meaning(
62923 p_lookup_type => 'XLA_OWNER_TYPE'
62927 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62924 ,p_lookup_code => l_component_type_code
62925 )
62926 ,p_token_4 => 'PRODUCT_NAME'
62928 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62929 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62930 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62931 ,p_ae_header_id => NULL
62932 );
62933
62934 IF (C_LEVEL_ERROR>= g_log_level) THEN
62935 trace
62936 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62937 ,p_level => C_LEVEL_ERROR
62938 ,p_module => l_log_module);
62939 END IF;
62940 END IF;
62941 END IF;
62942 --
62943 --
62944 ------------------------------------------------------------------------------------------------
62945 -- 4219869 Business Flow
62946 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62947 -- Prior Entry. Currently, the following code is always generated.
62948 ------------------------------------------------------------------------------------------------
62949 XLA_AE_LINES_PKG.ValidateCurrentLine;
62950
62951 ------------------------------------------------------------------------------------
62952 -- 4219869 Business Flow
62953 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62954 ------------------------------------------------------------------------------------
62955 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62956
62957 ----------------------------------------------------------------------------------
62958 -- 4219869 Business Flow
62959 -- Update journal entry status -- Need to generate this within IF <condition>
62960 ----------------------------------------------------------------------------------
62961 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62962 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62963 ,p_balance_type_code => l_balance_type_code
62964 );
62965
62966 -------------------------------------------------------------------------------------------
62967 -- 4262811 - Generate the Accrual Reversal lines
62968 -------------------------------------------------------------------------------------------
62969 BEGIN
62970 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62971 (g_array_event(p_event_id).array_value_num('header_index'));
62972 IF l_acc_rev_flag IS NULL THEN
62973 l_acc_rev_flag := 'N';
62974 END IF;
62975 EXCEPTION
62976 WHEN OTHERS THEN
62977 l_acc_rev_flag := 'N';
62978 END;
62979 --
62980 IF (l_acc_rev_flag = 'Y') THEN
62981
62982 -- 4645092 ------------------------------------------------------------------------------
62983 -- To allow MPA report to determine if it should generate report process
62984 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62985 ------------------------------------------------------------------------------------------
62986
62987 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62988 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62989 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62990 -- call ADRs
62991 -- Bug 4922099
62992 --
62993 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62994 (NVL(l_actual_upg_option, 'N') = 'O') OR
62995 (NVL(l_enc_upg_option, 'N') = 'O')
62996 )
62997 THEN
62998 NULL;
62999 --
63000 --
63001
63002 l_ccid := AcctDerRule_26(
63003 p_application_id => p_application_id
63004 , p_ae_header_id => l_ae_header_id
63005 , p_source_17 => p_source_17
63006 , x_transaction_coa_id => l_adr_transaction_coa_id
63007 , x_accounting_coa_id => l_adr_accounting_coa_id
63008 , x_value_type_code => l_adr_value_type_code
63009 , p_side => 'NA'
63010 );
63011
63012 xla_ae_lines_pkg.set_ccid(
63013 p_code_combination_id => l_ccid
63014 , p_value_type_code => l_adr_value_type_code
63015 , p_transaction_coa_id => l_adr_transaction_coa_id
63016 , p_accounting_coa_id => l_adr_accounting_coa_id
63017 , p_adr_code => 'AP_INVOICE_DIST'
63018 , p_adr_type_code => 'S'
63019 , p_component_type => l_component_type
63020 , p_component_code => l_component_code
63021 , p_component_type_code => l_component_type_code
63022 , p_component_appl_id => l_component_appl_id
63023 , p_amb_context_code => l_amb_context_code
63024 , p_side => 'NA'
63025 );
63026
63027
63028 --
63029 --
63030 END IF;
63031
63035 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63032 --
63033 -- Update the line information that should be overwritten
63034 --
63036 p_header_num => 1);
63037 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63038
63039 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63040
63041 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63042 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63043 END IF;
63044
63045 --
63046 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63047 --
63048 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63049 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63050 ELSE
63051 ---------------------------------------------------------------------------------------------------
63052 -- 4262811a Switch Sign
63053 ---------------------------------------------------------------------------------------------------
63054 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63055 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63056 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63057 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63058 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63059 -- 5132302
63060 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63061 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63062
63063 END IF;
63064
63065 -- 4955764
63066 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63067 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63068
63069
63070 XLA_AE_LINES_PKG.ValidateCurrentLine;
63071 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63072
63073 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63074 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63075 ,p_balance_type_code => l_balance_type_code);
63076
63077 END IF;
63078
63079 -----------------------------------------------------------------------------------------
63080 -- 4262811 Multiperiod Accounting
63081 -----------------------------------------------------------------------------------------
63082 -- No MPA option is assigned.
63083
63084
63085 END IF;
63086 END IF;
63087 --
63088
63089 --
63090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63091 trace
63092 (p_msg => 'END of AcctLineType_119'
63093 ,p_level => C_LEVEL_PROCEDURE
63094 ,p_module => l_log_module);
63095 END IF;
63096 --
63097 EXCEPTION
63098 WHEN xla_exceptions_pkg.application_exception THEN
63099 RAISE;
63100 WHEN OTHERS THEN
63101 xla_exceptions_pkg.raise_message
63102 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_119');
63103 END AcctLineType_119;
63104 --
63105
63106 ---------------------------------------
63107 --
63108 -- PRIVATE FUNCTION
63109 -- AcctLineType_120
63110 --
63111 ---------------------------------------
63112 PROCEDURE AcctLineType_120 (
63113 p_application_id IN NUMBER
63114 ,p_event_id IN NUMBER
63115 ,p_calculate_acctd_flag IN VARCHAR2
63116 ,p_calculate_g_l_flag IN VARCHAR2
63117 ,p_actual_flag IN OUT VARCHAR2
63118 ,p_balance_type_code OUT VARCHAR2
63119 ,p_gain_or_loss_ref OUT VARCHAR2
63120
63121 --Payment Distribution (Payment Rate) Ledger Amount
63122 , p_source_9 IN NUMBER
63123 --Invoice Distribution Type
63124 , p_source_20 IN VARCHAR2
63125 , p_source_20_meaning IN VARCHAR2
63126 --When to Account for Payment Option
63127 , p_source_38 IN VARCHAR2
63128 --Payment Distribution Type
63129 , p_source_39 IN VARCHAR2
63130 , p_source_39_meaning IN VARCHAR2
63131 --Accounting Reversal Indicator
63132 , p_source_40 IN VARCHAR2
63133 --Payment Distribution Amount
63134 , p_source_41 IN NUMBER
63135 --Business Flow Accounts Payable Application Identifier
63136 , p_source_42 IN NUMBER
63137 --Payment Distribution Identifier
63138 , p_source_47 IN NUMBER
63139 --Distribution Link Type
63140 , p_source_48 IN VARCHAR2
63141 --Payment Currency Code
63142 , p_source_49 IN VARCHAR2
63143 --Override Accounted Amount Indicator
63144 , p_source_53 IN VARCHAR2
63145 , p_source_53_meaning IN VARCHAR2
63146 --Third Party Type
63147 , p_source_56 IN VARCHAR2
63148 --Payment Distribution Reversed Identifier
63149 , p_source_57 IN NUMBER
63150 --Invoice Distribution Tax Line Identifier
63151 , p_source_58 IN NUMBER
63155 , p_source_60 IN VARCHAR2
63152 --Invoice Distribution Summary Tax Line Identifier
63153 , p_source_59 IN NUMBER
63154 --Payment Type
63156 , p_source_60_meaning IN VARCHAR2
63157 --Invoice Distribution Amount of the Payment Distribution
63158 , p_source_61 IN NUMBER
63159 --Business Flow Invoice Distribution Type
63160 , p_source_62 IN VARCHAR2
63161 --Business Flow Invoice Entity Code
63162 , p_source_63 IN VARCHAR2
63163 --Business Flow Invoice Distribution Identifier
63164 , p_source_64 IN NUMBER
63165 --Business Flow Invoice Identifier
63166 , p_source_65 IN NUMBER
63167 --Invoice Distribution Tax Distribution Identifier from Tax
63168 , p_source_66 IN NUMBER
63169 --Invoice Type Paid
63170 , p_source_101 IN VARCHAR2
63171 , p_source_101_meaning IN VARCHAR2
63172 --Purchasing Encumbrance Option
63173 , p_source_102 IN VARCHAR2
63174 , p_source_102_meaning IN VARCHAR2
63175 --Invoice Encumbered Option
63176 , p_source_104 IN VARCHAR2
63177 , p_source_104_meaning IN VARCHAR2
63178 )
63179 IS
63180
63181 l_component_type VARCHAR2(80);
63182 l_component_code VARCHAR2(30);
63183 l_component_type_code VARCHAR2(1);
63184 l_component_appl_id INTEGER;
63185 l_amb_context_code VARCHAR2(30);
63186 l_entity_code VARCHAR2(30);
63187 l_event_class_code VARCHAR2(30);
63188 l_ae_header_id NUMBER;
63189 l_event_type_code VARCHAR2(30);
63190 l_line_definition_code VARCHAR2(30);
63191 l_line_definition_owner_code VARCHAR2(1);
63192 --
63193 -- adr variables
63194 l_segment VARCHAR2(30);
63195 l_ccid NUMBER;
63196 l_adr_transaction_coa_id NUMBER;
63197 l_adr_accounting_coa_id NUMBER;
63198 l_adr_flexfield_segment_code VARCHAR2(30);
63199 l_adr_flex_value_set_id NUMBER;
63200 l_adr_value_type_code VARCHAR2(30);
63201 l_adr_value_combination_id NUMBER;
63202 l_adr_value_segment_code VARCHAR2(30);
63203
63204 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
63205 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
63206 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
63207 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
63208
63209 -- 4262811 Variables ------------------------------------------------------------------------------------------
63210 l_entered_amt_idx NUMBER;
63211 l_accted_amt_idx NUMBER;
63212 l_acc_rev_flag VARCHAR2(1);
63213 l_accrual_line_num NUMBER;
63214 l_tmp_amt NUMBER;
63215 l_acc_rev_natural_side_code VARCHAR2(1);
63216
63217 l_num_entries NUMBER;
63218 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
63219 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
63220 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
63221 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
63222 l_recog_line_1 NUMBER;
63223 l_recog_line_2 NUMBER;
63224
63225 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
63226 l_bflow_applied_to_amt NUMBER; -- 5132302
63227 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
63228
63229 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63230
63231 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
63232 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
63233
63234 ---------------------------------------------------------------------------------------------------------------
63235
63236
63237 --
63238 -- bulk performance
63239 --
63240 l_balance_type_code VARCHAR2(1);
63241 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63242 l_log_module VARCHAR2(240);
63243
63244 --
63245 -- Upgrade strategy
63246 --
63247 l_actual_upg_option VARCHAR2(1);
63248 l_enc_upg_option VARCHAR2(1);
63249
63250 --
63251 BEGIN
63252 --
63253 IF g_log_enabled THEN
63254 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
63255 END IF;
63256 --
63257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63258
63259 trace
63260 (p_msg => 'BEGIN of AcctLineType_120'
63261 ,p_level => C_LEVEL_PROCEDURE
63262 ,p_module => l_log_module);
63263
63264 END IF;
63265 --
63266 l_component_type := 'AMB_JLT';
63267 l_component_code := 'AP_ITEM_EXPENSE_PMT_ENC';
63268 l_component_type_code := 'S';
63269 l_component_appl_id := 200;
63270 l_amb_context_code := 'DEFAULT';
63271 l_entity_code := 'AP_PAYMENTS';
63272 l_event_class_code := 'PAYMENTS';
63273 l_event_type_code := 'PAYMENTS_ALL';
63274 l_line_definition_owner_code := 'S';
63275 l_line_definition_code := 'ENC_PAYMENTS_ALL';
63276 --
63277 l_balance_type_code := 'E';
63278 l_segment := NULL;
63279 l_ccid := NULL;
63280 l_adr_transaction_coa_id := NULL;
63284 l_adr_value_type_code := NULL;
63281 l_adr_accounting_coa_id := NULL;
63282 l_adr_flexfield_segment_code := NULL;
63283 l_adr_flex_value_set_id := NULL;
63285 l_adr_value_combination_id := NULL;
63286 l_adr_value_segment_code := NULL;
63287
63288 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
63289 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
63290 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
63291 l_budgetary_control_flag := 'N';
63292
63293 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63294 l_bflow_applied_to_amt := NULL; -- 5132302
63295 l_entered_amt_idx := NULL; -- 4262811
63296 l_accted_amt_idx := NULL; -- 4262811
63297 l_acc_rev_flag := NULL; -- 4262811
63298 l_accrual_line_num := NULL; -- 4262811
63299 l_tmp_amt := NULL; -- 4262811
63300 --
63301
63302 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63303 l_balance_type_code <> 'B' THEN
63304 IF NVL(p_source_38,'
63305 ') <> 'CLEAR_CLEAR' AND
63306 NVL(p_source_20,'
63307 ') = 'ITEM' AND
63308 NVL(p_source_101,'
63309 ') <> 'INTEREST' AND
63310 (NVL(p_source_39,'
63311 ') = 'CASH' OR
63312 NVL(p_source_39,'
63313 ') = 'DISCOUNT') AND
63314 NVL(p_source_60,'
63315 ') <> 'R' AND
63316 NVL(p_source_102,'
63317 ') = 'Y' AND
63318 NVL(p_source_104,'
63319 ') = 'Y'
63320 THEN
63321
63322 --
63323 XLA_AE_LINES_PKG.SetNewLine;
63324
63325 p_balance_type_code := l_balance_type_code;
63326 -- set the flag so later we will know whether the gain loss line needs to be created
63327
63328 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63329 p_actual_flag :='A';
63330 END IF;
63331
63332 --
63333 -- bulk performance
63334 --
63335 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63336 p_header_num => 0); -- 4262811
63337 --
63338 -- set accounting line options
63339 --
63340 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63341 p_natural_side_code => 'C'
63342 , p_gain_or_loss_flag => 'N'
63343 , p_gl_transfer_mode_code => 'S'
63344 , p_acct_entry_type_code => 'E'
63345 , p_switch_side_flag => 'Y'
63346 , p_merge_duplicate_code => 'A'
63347 );
63348 --
63349 l_acc_rev_natural_side_code := 'D'; -- 4262811
63350 --
63351 --
63352 -- set accounting line type info
63353 --
63354 xla_ae_lines_pkg.SetAcctLineType
63355 (p_component_type => l_component_type
63356 ,p_event_type_code => l_event_type_code
63357 ,p_line_definition_owner_code => l_line_definition_owner_code
63358 ,p_line_definition_code => l_line_definition_code
63359 ,p_accounting_line_code => l_component_code
63360 ,p_accounting_line_type_code => l_component_type_code
63361 ,p_accounting_line_appl_id => l_component_appl_id
63362 ,p_amb_context_code => l_amb_context_code
63363 ,p_entity_code => l_entity_code
63364 ,p_event_class_code => l_event_class_code);
63365 --
63366 -- set accounting class
63367 --
63368 xla_ae_lines_pkg.SetAcctClass(
63369 p_accounting_class_code => 'ITEM EXPENSE'
63370 , p_ae_header_id => l_ae_header_id
63371 );
63372
63373 --
63374 -- set rounding class
63375 --
63376 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63377 'ITEM EXPENSE';
63378
63379 --
63380 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63381 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63382 --
63383 -- bulk performance
63384 --
63385 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63386
63387 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63388 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63389
63390 -- 4955764
63391 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63392 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63393
63394 -- 4458381 Public Sector Enh
63395
63396 --
63397 -- set accounting attributes for the line type
63398 --
63399 l_entered_amt_idx := 10;
63400 l_accted_amt_idx := 12;
63401 l_bflow_applied_to_amt_idx := 2; -- 5132302
63402 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63403 l_rec_acct_attrs.array_char_value(1) := p_source_40;
63404 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
63405 l_rec_acct_attrs.array_num_value(2) := p_source_61;
63406 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
63407 l_rec_acct_attrs.array_num_value(3) := p_source_42;
63408 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63409 l_rec_acct_attrs.array_char_value(4) := p_source_62;
63413 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
63410 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
63411 l_rec_acct_attrs.array_char_value(5) := p_source_63;
63412 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
63414 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63415 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
63416 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
63417 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
63418 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
63419 l_rec_acct_attrs.array_char_value(9) := p_source_48;
63420 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
63421 l_rec_acct_attrs.array_num_value(10) := p_source_41;
63422 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
63423 l_rec_acct_attrs.array_char_value(11) := p_source_49;
63424 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
63425 l_rec_acct_attrs.array_num_value(12) := p_source_9;
63426 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
63427 l_rec_acct_attrs.array_char_value(13) := p_source_53;
63428 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
63429 l_rec_acct_attrs.array_char_value(14) := p_source_56;
63430 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
63431 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
63432 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
63433 l_rec_acct_attrs.array_char_value(16) := p_source_48;
63434 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
63435 l_rec_acct_attrs.array_num_value(17) := p_source_58;
63436 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
63437 l_rec_acct_attrs.array_num_value(18) := p_source_66;
63438 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
63439 l_rec_acct_attrs.array_num_value(19) := p_source_59;
63440
63441 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63442 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63443
63444 ---------------------------------------------------------------------------------------------------------------
63445 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63446 ---------------------------------------------------------------------------------------------------------------
63447 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63448
63449 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63450 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63451
63452 IF xla_accounting_cache_pkg.GetValueChar
63453 (p_source_code => 'LEDGER_CATEGORY_CODE'
63454 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63455 AND l_bflow_method_code = 'PRIOR_ENTRY'
63456 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63457 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63458 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63459 )
63460 THEN
63461 xla_ae_lines_pkg.BflowUpgEntry
63462 (p_business_method_code => l_bflow_method_code
63463 ,p_business_class_code => l_bflow_class_code
63464 ,p_balance_type => l_balance_type_code);
63465 ELSE
63466 NULL;
63467 XLA_AE_LINES_PKG.business_flow_validation(
63468 p_business_method_code => l_bflow_method_code
63469 ,p_business_class_code => l_bflow_class_code
63470 ,p_inherit_description_flag => l_inherit_desc_flag);
63471 END IF;
63472
63473 --
63474 -- call analytical criteria
63475 --
63476 -- Inherited Analytical Criteria for business flow method of Prior Entry.
63477 --
63478 -- call description
63479 --
63480 -- No description or it is inherited.
63481 --
63482 -- call ADRs
63483 -- Bug 4922099
63484 --
63485 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63486 (NVL(l_actual_upg_option, 'N') = 'O') OR
63487 (NVL(l_enc_upg_option, 'N') = 'O')
63488 )
63489 THEN
63490 NULL;
63491 --
63492 --
63493
63494 --
63495 --
63496 END IF;
63497 --
63498 -- Bug 4922099
63499 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63500 (NVL(l_enc_upg_option, 'N') = 'O')
63501 ) AND
63502 (l_bflow_method_code = 'PRIOR_ENTRY')
63503 )
63504 THEN
63505 IF
63506 --
63507 1 = 1
63508 --
63509 THEN
63510 xla_accounting_err_pkg.build_message
63511 (p_appli_s_name => 'XLA'
63512 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63513 ,p_token_1 => 'LINE_NUMBER'
63514 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63515 ,p_token_2 => 'LINE_TYPE_NAME'
63516 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63520 ,l_component_appl_id
63517 l_component_type
63518 ,l_component_code
63519 ,l_component_type_code
63521 ,l_amb_context_code
63522 ,l_entity_code
63523 ,l_event_class_code
63524 )
63525 ,p_token_3 => 'OWNER'
63526 ,p_value_3 => xla_lookups_pkg.get_meaning(
63527 p_lookup_type => 'XLA_OWNER_TYPE'
63528 ,p_lookup_code => l_component_type_code
63529 )
63530 ,p_token_4 => 'PRODUCT_NAME'
63531 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63532 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63533 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63534 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63535 ,p_ae_header_id => NULL
63536 );
63537
63538 IF (C_LEVEL_ERROR>= g_log_level) THEN
63539 trace
63540 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63541 ,p_level => C_LEVEL_ERROR
63542 ,p_module => l_log_module);
63543 END IF;
63544 END IF;
63545 END IF;
63546 --
63547 --
63548 ------------------------------------------------------------------------------------------------
63549 -- 4219869 Business Flow
63550 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63551 -- Prior Entry. Currently, the following code is always generated.
63552 ------------------------------------------------------------------------------------------------
63553 -- No ValidateCurrentLine for business flow method of Prior Entry
63554
63555 ------------------------------------------------------------------------------------
63556 -- 4219869 Business Flow
63557 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63558 ------------------------------------------------------------------------------------
63559 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63560
63561 ----------------------------------------------------------------------------------
63562 -- 4219869 Business Flow
63563 -- Update journal entry status -- Need to generate this within IF <condition>
63564 ----------------------------------------------------------------------------------
63565 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63566 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63567 ,p_balance_type_code => l_balance_type_code
63568 );
63569
63570 -------------------------------------------------------------------------------------------
63571 -- 4262811 - Generate the Accrual Reversal lines
63572 -------------------------------------------------------------------------------------------
63573 BEGIN
63574 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63575 (g_array_event(p_event_id).array_value_num('header_index'));
63576 IF l_acc_rev_flag IS NULL THEN
63577 l_acc_rev_flag := 'N';
63578 END IF;
63579 EXCEPTION
63580 WHEN OTHERS THEN
63581 l_acc_rev_flag := 'N';
63582 END;
63583 --
63584 IF (l_acc_rev_flag = 'Y') THEN
63585
63586 -- 4645092 ------------------------------------------------------------------------------
63587 -- To allow MPA report to determine if it should generate report process
63588 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63589 ------------------------------------------------------------------------------------------
63590
63591 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63592 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63593 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
63594 -- call ADRs
63595 -- Bug 4922099
63596 --
63597 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63598 (NVL(l_actual_upg_option, 'N') = 'O') OR
63599 (NVL(l_enc_upg_option, 'N') = 'O')
63600 )
63601 THEN
63602 NULL;
63603 --
63604 --
63605
63606 --
63607 --
63608 END IF;
63609
63610 --
63611 -- Update the line information that should be overwritten
63612 --
63613 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63614 p_header_num => 1);
63618
63615 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63616
63617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63619 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63620 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63621 END IF;
63622
63623 --
63624 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63625 --
63626 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63627 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63628 ELSE
63629 ---------------------------------------------------------------------------------------------------
63630 -- 4262811a Switch Sign
63631 ---------------------------------------------------------------------------------------------------
63632 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63635 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63636 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63637 -- 5132302
63638 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63639 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63640
63641 END IF;
63642
63643 -- 4955764
63644 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63645 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63646
63647
63648 XLA_AE_LINES_PKG.ValidateCurrentLine;
63649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63650
63651 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63652 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63653 ,p_balance_type_code => l_balance_type_code);
63654
63655 END IF;
63656
63657 -----------------------------------------------------------------------------------------
63658 -- 4262811 Multiperiod Accounting
63659 -----------------------------------------------------------------------------------------
63660 -- No MPA option is assigned.
63661
63662
63663 END IF;
63664 END IF;
63665 --
63666
63667 --
63668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63669 trace
63670 (p_msg => 'END of AcctLineType_120'
63671 ,p_level => C_LEVEL_PROCEDURE
63672 ,p_module => l_log_module);
63673 END IF;
63674 --
63675 EXCEPTION
63676 WHEN xla_exceptions_pkg.application_exception THEN
63677 RAISE;
63678 WHEN OTHERS THEN
63679 xla_exceptions_pkg.raise_message
63680 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_120');
63681 END AcctLineType_120;
63682 --
63683
63684 ---------------------------------------
63685 --
63686 -- PRIVATE FUNCTION
63687 -- AcctLineType_121
63688 --
63689 ---------------------------------------
63690 PROCEDURE AcctLineType_121 (
63691 p_application_id IN NUMBER
63692 ,p_event_id IN NUMBER
63693 ,p_calculate_acctd_flag IN VARCHAR2
63694 ,p_calculate_g_l_flag IN VARCHAR2
63695 ,p_actual_flag IN OUT VARCHAR2
63696 ,p_balance_type_code OUT VARCHAR2
63697 ,p_gain_or_loss_ref OUT VARCHAR2
63698
63699 --Payment Distribution (Payment Rate) Ledger Amount
63700 , p_source_9 IN NUMBER
63701 --Invoice Distribution Account
63702 , p_source_17 IN NUMBER
63703 --Invoice Distribution Type
63704 , p_source_20 IN VARCHAR2
63705 , p_source_20_meaning IN VARCHAR2
63706 --When to Account for Payment Option
63707 , p_source_38 IN VARCHAR2
63708 --Payment Distribution Type
63709 , p_source_39 IN VARCHAR2
63710 , p_source_39_meaning IN VARCHAR2
63711 --Accounting Reversal Indicator
63712 , p_source_40 IN VARCHAR2
63713 --Payment Distribution Amount
63714 , p_source_41 IN NUMBER
63715 --Business Flow Accounts Payable Application Identifier
63716 , p_source_42 IN NUMBER
63717 --Payment Distribution Identifier
63718 , p_source_47 IN NUMBER
63719 --Distribution Link Type
63720 , p_source_48 IN VARCHAR2
63721 --Payment Currency Code
63722 , p_source_49 IN VARCHAR2
63723 --Override Accounted Amount Indicator
63724 , p_source_53 IN VARCHAR2
63725 , p_source_53_meaning IN VARCHAR2
63726 --Payment Supplier Identifier
63727 , p_source_54 IN NUMBER
63728 --Payment Supplier Site Identifier
63729 , p_source_55 IN NUMBER
63730 --Third Party Type
63731 , p_source_56 IN VARCHAR2
63732 --Payment Distribution Reversed Identifier
63733 , p_source_57 IN NUMBER
63734 --Invoice Distribution Tax Line Identifier
63735 , p_source_58 IN NUMBER
63739 , p_source_60 IN VARCHAR2
63736 --Invoice Distribution Summary Tax Line Identifier
63737 , p_source_59 IN NUMBER
63738 --Payment Type
63740 , p_source_60_meaning IN VARCHAR2
63741 --Business Flow Invoice Distribution Type
63742 , p_source_62 IN VARCHAR2
63743 --Business Flow Invoice Entity Code
63744 , p_source_63 IN VARCHAR2
63745 --Business Flow Invoice Distribution Identifier
63746 , p_source_64 IN NUMBER
63747 --Business Flow Invoice Identifier
63748 , p_source_65 IN NUMBER
63749 --Invoice Distribution Tax Distribution Identifier from Tax
63750 , p_source_66 IN NUMBER
63751 --Accrue on Receipt Option
63752 , p_source_100 IN VARCHAR2
63753 , p_source_100_meaning IN VARCHAR2
63754 --Payment Exchange Date
63755 , p_source_114 IN DATE
63756 --Payment Exchange Rate
63757 , p_source_115 IN NUMBER
63758 --Payment Exchange Rate Type
63759 , p_source_116 IN VARCHAR2
63760 )
63761 IS
63762
63763 l_component_type VARCHAR2(80);
63764 l_component_code VARCHAR2(30);
63765 l_component_type_code VARCHAR2(1);
63766 l_component_appl_id INTEGER;
63767 l_amb_context_code VARCHAR2(30);
63768 l_entity_code VARCHAR2(30);
63769 l_event_class_code VARCHAR2(30);
63770 l_ae_header_id NUMBER;
63771 l_event_type_code VARCHAR2(30);
63772 l_line_definition_code VARCHAR2(30);
63773 l_line_definition_owner_code VARCHAR2(1);
63774 --
63775 -- adr variables
63776 l_segment VARCHAR2(30);
63777 l_ccid NUMBER;
63778 l_adr_transaction_coa_id NUMBER;
63779 l_adr_accounting_coa_id NUMBER;
63780 l_adr_flexfield_segment_code VARCHAR2(30);
63781 l_adr_flex_value_set_id NUMBER;
63782 l_adr_value_type_code VARCHAR2(30);
63783 l_adr_value_combination_id NUMBER;
63784 l_adr_value_segment_code VARCHAR2(30);
63785
63786 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
63787 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
63788 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
63789 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
63790
63791 -- 4262811 Variables ------------------------------------------------------------------------------------------
63792 l_entered_amt_idx NUMBER;
63793 l_accted_amt_idx NUMBER;
63794 l_acc_rev_flag VARCHAR2(1);
63795 l_accrual_line_num NUMBER;
63796 l_tmp_amt NUMBER;
63797 l_acc_rev_natural_side_code VARCHAR2(1);
63798
63799 l_num_entries NUMBER;
63800 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
63801 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
63802 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
63803 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
63804 l_recog_line_1 NUMBER;
63805 l_recog_line_2 NUMBER;
63806
63807 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
63808 l_bflow_applied_to_amt NUMBER; -- 5132302
63809 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
63810
63811 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63812
63813 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
63814 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
63815
63816 ---------------------------------------------------------------------------------------------------------------
63817
63818
63819 --
63820 -- bulk performance
63821 --
63822 l_balance_type_code VARCHAR2(1);
63823 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63824 l_log_module VARCHAR2(240);
63825
63826 --
63827 -- Upgrade strategy
63828 --
63829 l_actual_upg_option VARCHAR2(1);
63830 l_enc_upg_option VARCHAR2(1);
63831
63832 --
63833 BEGIN
63834 --
63835 IF g_log_enabled THEN
63836 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
63837 END IF;
63838 --
63839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63840
63841 trace
63842 (p_msg => 'BEGIN of AcctLineType_121'
63843 ,p_level => C_LEVEL_PROCEDURE
63844 ,p_module => l_log_module);
63845
63846 END IF;
63847 --
63848 l_component_type := 'AMB_JLT';
63849 l_component_code := 'AP_ITEM_EXPENSE_REF';
63850 l_component_type_code := 'S';
63851 l_component_appl_id := 200;
63852 l_amb_context_code := 'DEFAULT';
63853 l_entity_code := 'AP_PAYMENTS';
63854 l_event_class_code := 'REFUNDS';
63855 l_event_type_code := 'REFUNDS_ALL';
63856 l_line_definition_owner_code := 'S';
63857 l_line_definition_code := 'CASH_REFUNDS_ALL';
63858 --
63859 l_balance_type_code := 'A';
63860 l_segment := NULL;
63861 l_ccid := NULL;
63862 l_adr_transaction_coa_id := NULL;
63863 l_adr_accounting_coa_id := NULL;
63864 l_adr_flexfield_segment_code := NULL;
63865 l_adr_flex_value_set_id := NULL;
63869
63866 l_adr_value_type_code := NULL;
63867 l_adr_value_combination_id := NULL;
63868 l_adr_value_segment_code := NULL;
63870 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
63871 l_bflow_class_code := ''; -- 4219869 Business Flow
63872 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
63873 l_budgetary_control_flag := 'N';
63874
63875 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63876 l_bflow_applied_to_amt := NULL; -- 5132302
63877 l_entered_amt_idx := NULL; -- 4262811
63878 l_accted_amt_idx := NULL; -- 4262811
63879 l_acc_rev_flag := NULL; -- 4262811
63880 l_accrual_line_num := NULL; -- 4262811
63881 l_tmp_amt := NULL; -- 4262811
63882 --
63883
63884 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63885 l_balance_type_code <> 'B' THEN
63886 IF NVL(p_source_38,'
63887 ') <> 'CLEAR_CLEAR' AND
63888 (NVL(p_source_20,'
63889 ') = 'ITEM' OR
63890 NVL(p_source_20,'
63891 ') = 'RETROEXPENSE' OR
63892 NVL(p_source_20,'
63893 ') = 'ERV' AND
63894 NVL(p_source_100,'
63895 ') <> 'Y' OR
63896 NVL(p_source_20,'
63897 ') = 'IPV' AND
63898 NVL(p_source_100,'
63899 ') <> 'Y') AND
63900 (NVL(p_source_39,'
63901 ') = 'CASH' OR
63902 NVL(p_source_39,'
63903 ') = 'DISCOUNT') AND
63904 NVL(p_source_60,'
63905 ') = 'R'
63906 THEN
63907
63908 --
63909 XLA_AE_LINES_PKG.SetNewLine;
63910
63911 p_balance_type_code := l_balance_type_code;
63912 -- set the flag so later we will know whether the gain loss line needs to be created
63913
63914 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63915 p_actual_flag :='A';
63916 END IF;
63917
63918 --
63919 -- bulk performance
63920 --
63921 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63922 p_header_num => 0); -- 4262811
63923 --
63924 -- set accounting line options
63925 --
63926 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63927 p_natural_side_code => 'D'
63928 , p_gain_or_loss_flag => 'N'
63929 , p_gl_transfer_mode_code => 'S'
63930 , p_acct_entry_type_code => 'A'
63931 , p_switch_side_flag => 'Y'
63932 , p_merge_duplicate_code => 'A'
63933 );
63934 --
63935 l_acc_rev_natural_side_code := 'C'; -- 4262811
63936 --
63937 --
63938 -- set accounting line type info
63939 --
63940 xla_ae_lines_pkg.SetAcctLineType
63941 (p_component_type => l_component_type
63942 ,p_event_type_code => l_event_type_code
63943 ,p_line_definition_owner_code => l_line_definition_owner_code
63944 ,p_line_definition_code => l_line_definition_code
63945 ,p_accounting_line_code => l_component_code
63946 ,p_accounting_line_type_code => l_component_type_code
63947 ,p_accounting_line_appl_id => l_component_appl_id
63948 ,p_amb_context_code => l_amb_context_code
63949 ,p_entity_code => l_entity_code
63950 ,p_event_class_code => l_event_class_code);
63951 --
63952 -- set accounting class
63953 --
63954 xla_ae_lines_pkg.SetAcctClass(
63955 p_accounting_class_code => 'ITEM EXPENSE'
63956 , p_ae_header_id => l_ae_header_id
63957 );
63958
63959 --
63960 -- set rounding class
63961 --
63962 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63963 'ITEM EXPENSE';
63964
63965 --
63966 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63967 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63968 --
63969 -- bulk performance
63970 --
63971 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63972
63973 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63974 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63975
63976 -- 4955764
63977 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63978 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63979
63980 -- 4458381 Public Sector Enh
63981
63982 --
63983 -- set accounting attributes for the line type
63984 --
63985 l_entered_amt_idx := 9;
63986 l_accted_amt_idx := 14;
63987 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63988 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63989 l_rec_acct_attrs.array_char_value(1) := p_source_40;
63990 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
63991 l_rec_acct_attrs.array_num_value(2) := p_source_42;
63992 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63993 l_rec_acct_attrs.array_char_value(3) := p_source_62;
63994 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
63995 l_rec_acct_attrs.array_char_value(4) := p_source_63;
63996 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
64000 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
63997 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
63998 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63999 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
64001 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
64002 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
64003 l_rec_acct_attrs.array_char_value(8) := p_source_48;
64004 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
64005 l_rec_acct_attrs.array_num_value(9) := p_source_41;
64006 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
64007 l_rec_acct_attrs.array_char_value(10) := p_source_49;
64008 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
64009 l_rec_acct_attrs.array_date_value(11) := p_source_114;
64010 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
64011 l_rec_acct_attrs.array_num_value(12) := p_source_115;
64012 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
64013 l_rec_acct_attrs.array_char_value(13) := p_source_116;
64014 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
64015 l_rec_acct_attrs.array_num_value(14) := p_source_9;
64016 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
64017 l_rec_acct_attrs.array_char_value(15) := p_source_53;
64018 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
64019 l_rec_acct_attrs.array_num_value(16) := p_source_54;
64020 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
64021 l_rec_acct_attrs.array_num_value(17) := p_source_55;
64022 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
64023 l_rec_acct_attrs.array_char_value(18) := p_source_56;
64024 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
64025 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
64026 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
64027 l_rec_acct_attrs.array_char_value(20) := p_source_48;
64028 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
64029 l_rec_acct_attrs.array_num_value(21) := p_source_58;
64030 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
64031 l_rec_acct_attrs.array_num_value(22) := p_source_66;
64032 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
64033 l_rec_acct_attrs.array_num_value(23) := p_source_59;
64034
64035 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64036 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64037
64038 ---------------------------------------------------------------------------------------------------------------
64039 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64040 ---------------------------------------------------------------------------------------------------------------
64041 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64042
64043 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64044 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64045
64046 IF xla_accounting_cache_pkg.GetValueChar
64047 (p_source_code => 'LEDGER_CATEGORY_CODE'
64048 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64049 AND l_bflow_method_code = 'PRIOR_ENTRY'
64050 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64051 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64052 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64053 )
64054 THEN
64055 xla_ae_lines_pkg.BflowUpgEntry
64056 (p_business_method_code => l_bflow_method_code
64057 ,p_business_class_code => l_bflow_class_code
64058 ,p_balance_type => l_balance_type_code);
64059 ELSE
64060 NULL;
64061 -- No business flow processing for business flow method of NONE.
64062 END IF;
64063
64064 --
64065 -- call analytical criteria
64066 --
64067
64068 --
64069 -- call description
64070 --
64071 -- No description or it is inherited.
64072 --
64073 -- call ADRs
64074 -- Bug 4922099
64075 --
64076 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64077 (NVL(l_actual_upg_option, 'N') = 'O') OR
64078 (NVL(l_enc_upg_option, 'N') = 'O')
64079 )
64080 THEN
64081 NULL;
64082 --
64083 --
64084
64085 l_ccid := AcctDerRule_26(
64086 p_application_id => p_application_id
64087 , p_ae_header_id => l_ae_header_id
64088 , p_source_17 => p_source_17
64089 , x_transaction_coa_id => l_adr_transaction_coa_id
64090 , x_accounting_coa_id => l_adr_accounting_coa_id
64091 , x_value_type_code => l_adr_value_type_code
64092 , p_side => 'NA'
64093 );
64094
64095 xla_ae_lines_pkg.set_ccid(
64096 p_code_combination_id => l_ccid
64097 , p_value_type_code => l_adr_value_type_code
64098 , p_transaction_coa_id => l_adr_transaction_coa_id
64099 , p_accounting_coa_id => l_adr_accounting_coa_id
64100 , p_adr_code => 'AP_INVOICE_DIST'
64101 , p_adr_type_code => 'S'
64105 , p_component_appl_id => l_component_appl_id
64102 , p_component_type => l_component_type
64103 , p_component_code => l_component_code
64104 , p_component_type_code => l_component_type_code
64106 , p_amb_context_code => l_amb_context_code
64107 , p_side => 'NA'
64108 );
64109
64110
64111 --
64112 --
64113 END IF;
64114 --
64115 -- Bug 4922099
64116 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64117 (NVL(l_enc_upg_option, 'N') = 'O')
64118 ) AND
64119 (l_bflow_method_code = 'PRIOR_ENTRY')
64120 )
64121 THEN
64122 IF
64123 --
64124 1 = 2
64125 --
64126 THEN
64127 xla_accounting_err_pkg.build_message
64128 (p_appli_s_name => 'XLA'
64129 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64130 ,p_token_1 => 'LINE_NUMBER'
64131 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
64132 ,p_token_2 => 'LINE_TYPE_NAME'
64133 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
64134 l_component_type
64135 ,l_component_code
64136 ,l_component_type_code
64137 ,l_component_appl_id
64138 ,l_amb_context_code
64139 ,l_entity_code
64140 ,l_event_class_code
64141 )
64142 ,p_token_3 => 'OWNER'
64143 ,p_value_3 => xla_lookups_pkg.get_meaning(
64144 p_lookup_type => 'XLA_OWNER_TYPE'
64145 ,p_lookup_code => l_component_type_code
64146 )
64147 ,p_token_4 => 'PRODUCT_NAME'
64148 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64149 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64150 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64151 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64152 ,p_ae_header_id => NULL
64153 );
64154
64155 IF (C_LEVEL_ERROR>= g_log_level) THEN
64156 trace
64157 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64158 ,p_level => C_LEVEL_ERROR
64159 ,p_module => l_log_module);
64160 END IF;
64161 END IF;
64162 END IF;
64163 --
64164 --
64165 ------------------------------------------------------------------------------------------------
64166 -- 4219869 Business Flow
64167 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64168 -- Prior Entry. Currently, the following code is always generated.
64169 ------------------------------------------------------------------------------------------------
64170 XLA_AE_LINES_PKG.ValidateCurrentLine;
64171
64172 ------------------------------------------------------------------------------------
64173 -- 4219869 Business Flow
64174 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64175 ------------------------------------------------------------------------------------
64176 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64177
64178 ----------------------------------------------------------------------------------
64179 -- 4219869 Business Flow
64180 -- Update journal entry status -- Need to generate this within IF <condition>
64181 ----------------------------------------------------------------------------------
64182 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64183 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64184 ,p_balance_type_code => l_balance_type_code
64185 );
64186
64187 -------------------------------------------------------------------------------------------
64188 -- 4262811 - Generate the Accrual Reversal lines
64189 -------------------------------------------------------------------------------------------
64190 BEGIN
64191 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64192 (g_array_event(p_event_id).array_value_num('header_index'));
64193 IF l_acc_rev_flag IS NULL THEN
64194 l_acc_rev_flag := 'N';
64195 END IF;
64196 EXCEPTION
64200 --
64197 WHEN OTHERS THEN
64198 l_acc_rev_flag := 'N';
64199 END;
64201 IF (l_acc_rev_flag = 'Y') THEN
64202
64203 -- 4645092 ------------------------------------------------------------------------------
64204 -- To allow MPA report to determine if it should generate report process
64205 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64206 ------------------------------------------------------------------------------------------
64207
64208 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64209 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64210 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
64211 -- call ADRs
64212 -- Bug 4922099
64213 --
64214 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64215 (NVL(l_actual_upg_option, 'N') = 'O') OR
64216 (NVL(l_enc_upg_option, 'N') = 'O')
64217 )
64218 THEN
64219 NULL;
64220 --
64221 --
64222
64223 l_ccid := AcctDerRule_26(
64224 p_application_id => p_application_id
64225 , p_ae_header_id => l_ae_header_id
64226 , p_source_17 => p_source_17
64227 , x_transaction_coa_id => l_adr_transaction_coa_id
64228 , x_accounting_coa_id => l_adr_accounting_coa_id
64229 , x_value_type_code => l_adr_value_type_code
64230 , p_side => 'NA'
64231 );
64232
64233 xla_ae_lines_pkg.set_ccid(
64234 p_code_combination_id => l_ccid
64235 , p_value_type_code => l_adr_value_type_code
64236 , p_transaction_coa_id => l_adr_transaction_coa_id
64237 , p_accounting_coa_id => l_adr_accounting_coa_id
64238 , p_adr_code => 'AP_INVOICE_DIST'
64239 , p_adr_type_code => 'S'
64240 , p_component_type => l_component_type
64241 , p_component_code => l_component_code
64242 , p_component_type_code => l_component_type_code
64243 , p_component_appl_id => l_component_appl_id
64244 , p_amb_context_code => l_amb_context_code
64245 , p_side => 'NA'
64246 );
64247
64248
64249 --
64250 --
64251 END IF;
64252
64253 --
64254 -- Update the line information that should be overwritten
64255 --
64256 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64257 p_header_num => 1);
64258 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
64259
64260 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64261
64262 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
64263 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64264 END IF;
64265
64266 --
64267 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64268 --
64269 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64270 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
64271 ELSE
64272 ---------------------------------------------------------------------------------------------------
64273 -- 4262811a Switch Sign
64274 ---------------------------------------------------------------------------------------------------
64275 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
64276 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64277 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64278 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64279 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64280 -- 5132302
64281 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64282 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64283
64284 END IF;
64285
64286 -- 4955764
64287 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64288 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64289
64290
64291 XLA_AE_LINES_PKG.ValidateCurrentLine;
64292 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64293
64294 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64295 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64296 ,p_balance_type_code => l_balance_type_code);
64297
64298 END IF;
64299
64300 -----------------------------------------------------------------------------------------
64301 -- 4262811 Multiperiod Accounting
64302 -----------------------------------------------------------------------------------------
64303 -- No MPA option is assigned.
64304
64305
64306 END IF;
64307 END IF;
64308 --
64309
64310 --
64314 ,p_level => C_LEVEL_PROCEDURE
64311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64312 trace
64313 (p_msg => 'END of AcctLineType_121'
64315 ,p_module => l_log_module);
64316 END IF;
64317 --
64318 EXCEPTION
64319 WHEN xla_exceptions_pkg.application_exception THEN
64320 RAISE;
64321 WHEN OTHERS THEN
64322 xla_exceptions_pkg.raise_message
64323 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_121');
64324 END AcctLineType_121;
64325 --
64326
64327 ---------------------------------------
64328 --
64329 -- PRIVATE FUNCTION
64330 -- AcctLineType_122
64331 --
64332 ---------------------------------------
64333 PROCEDURE AcctLineType_122 (
64334 p_application_id IN NUMBER
64335 ,p_event_id IN NUMBER
64336 ,p_calculate_acctd_flag IN VARCHAR2
64337 ,p_calculate_g_l_flag IN VARCHAR2
64338 ,p_actual_flag IN OUT VARCHAR2
64339 ,p_balance_type_code OUT VARCHAR2
64340 ,p_gain_or_loss_ref OUT VARCHAR2
64341
64342 --Payment Distribution (Payment Rate) Ledger Amount
64343 , p_source_9 IN NUMBER
64344 --Invoice Distribution Type
64345 , p_source_20 IN VARCHAR2
64346 , p_source_20_meaning IN VARCHAR2
64347 --When to Account for Payment Option
64348 , p_source_38 IN VARCHAR2
64349 --Payment Distribution Type
64350 , p_source_39 IN VARCHAR2
64351 , p_source_39_meaning IN VARCHAR2
64352 --Accounting Reversal Indicator
64353 , p_source_40 IN VARCHAR2
64354 --Payment Distribution Amount
64355 , p_source_41 IN NUMBER
64356 --Business Flow Accounts Payable Application Identifier
64357 , p_source_42 IN NUMBER
64358 --Payment Distribution Identifier
64359 , p_source_47 IN NUMBER
64360 --Distribution Link Type
64361 , p_source_48 IN VARCHAR2
64362 --Payment Currency Code
64363 , p_source_49 IN VARCHAR2
64364 --Override Accounted Amount Indicator
64365 , p_source_53 IN VARCHAR2
64366 , p_source_53_meaning IN VARCHAR2
64367 --Third Party Type
64368 , p_source_56 IN VARCHAR2
64369 --Payment Distribution Reversed Identifier
64370 , p_source_57 IN NUMBER
64371 --Invoice Distribution Tax Line Identifier
64372 , p_source_58 IN NUMBER
64373 --Invoice Distribution Summary Tax Line Identifier
64374 , p_source_59 IN NUMBER
64375 --Payment Type
64376 , p_source_60 IN VARCHAR2
64377 , p_source_60_meaning IN VARCHAR2
64378 --Business Flow Invoice Distribution Type
64379 , p_source_62 IN VARCHAR2
64380 --Business Flow Invoice Entity Code
64381 , p_source_63 IN VARCHAR2
64382 --Business Flow Invoice Distribution Identifier
64383 , p_source_64 IN NUMBER
64384 --Business Flow Invoice Identifier
64385 , p_source_65 IN NUMBER
64386 --Invoice Distribution Tax Distribution Identifier from Tax
64387 , p_source_66 IN NUMBER
64388 --Invoice Type Paid
64389 , p_source_101 IN VARCHAR2
64390 , p_source_101_meaning IN VARCHAR2
64391 --Purchasing Encumbrance Option
64392 , p_source_102 IN VARCHAR2
64393 , p_source_102_meaning IN VARCHAR2
64394 --Invoice Encumbered Option
64395 , p_source_104 IN VARCHAR2
64396 , p_source_104_meaning IN VARCHAR2
64397 )
64398 IS
64399
64400 l_component_type VARCHAR2(80);
64401 l_component_code VARCHAR2(30);
64402 l_component_type_code VARCHAR2(1);
64403 l_component_appl_id INTEGER;
64404 l_amb_context_code VARCHAR2(30);
64405 l_entity_code VARCHAR2(30);
64406 l_event_class_code VARCHAR2(30);
64407 l_ae_header_id NUMBER;
64408 l_event_type_code VARCHAR2(30);
64409 l_line_definition_code VARCHAR2(30);
64410 l_line_definition_owner_code VARCHAR2(1);
64411 --
64412 -- adr variables
64413 l_segment VARCHAR2(30);
64414 l_ccid NUMBER;
64415 l_adr_transaction_coa_id NUMBER;
64416 l_adr_accounting_coa_id NUMBER;
64417 l_adr_flexfield_segment_code VARCHAR2(30);
64418 l_adr_flex_value_set_id NUMBER;
64419 l_adr_value_type_code VARCHAR2(30);
64420 l_adr_value_combination_id NUMBER;
64421 l_adr_value_segment_code VARCHAR2(30);
64422
64423 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64424 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64425 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64426 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64427
64428 -- 4262811 Variables ------------------------------------------------------------------------------------------
64429 l_entered_amt_idx NUMBER;
64430 l_accted_amt_idx NUMBER;
64431 l_acc_rev_flag VARCHAR2(1);
64432 l_accrual_line_num NUMBER;
64433 l_tmp_amt NUMBER;
64434 l_acc_rev_natural_side_code VARCHAR2(1);
64435
64436 l_num_entries NUMBER;
64437 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64438 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64439 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64440 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64441 l_recog_line_1 NUMBER;
64445 l_bflow_applied_to_amt NUMBER; -- 5132302
64442 l_recog_line_2 NUMBER;
64443
64444 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64446 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64447
64448 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64449
64450 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64451 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64452
64453 ---------------------------------------------------------------------------------------------------------------
64454
64455
64456 --
64457 -- bulk performance
64458 --
64459 l_balance_type_code VARCHAR2(1);
64460 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64461 l_log_module VARCHAR2(240);
64462
64463 --
64464 -- Upgrade strategy
64465 --
64466 l_actual_upg_option VARCHAR2(1);
64467 l_enc_upg_option VARCHAR2(1);
64468
64469 --
64470 BEGIN
64471 --
64472 IF g_log_enabled THEN
64473 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
64474 END IF;
64475 --
64476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64477
64478 trace
64479 (p_msg => 'BEGIN of AcctLineType_122'
64480 ,p_level => C_LEVEL_PROCEDURE
64481 ,p_module => l_log_module);
64482
64483 END IF;
64484 --
64485 l_component_type := 'AMB_JLT';
64486 l_component_code := 'AP_ITEM_EXPENSE_REF_ENC';
64487 l_component_type_code := 'S';
64488 l_component_appl_id := 200;
64489 l_amb_context_code := 'DEFAULT';
64490 l_entity_code := 'AP_PAYMENTS';
64491 l_event_class_code := 'REFUNDS';
64492 l_event_type_code := 'REFUNDS_ALL';
64493 l_line_definition_owner_code := 'S';
64494 l_line_definition_code := 'ENC_REFUNDS_ALL';
64495 --
64496 l_balance_type_code := 'E';
64497 l_segment := NULL;
64498 l_ccid := NULL;
64499 l_adr_transaction_coa_id := NULL;
64500 l_adr_accounting_coa_id := NULL;
64501 l_adr_flexfield_segment_code := NULL;
64502 l_adr_flex_value_set_id := NULL;
64503 l_adr_value_type_code := NULL;
64504 l_adr_value_combination_id := NULL;
64505 l_adr_value_segment_code := NULL;
64506
64507 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
64508 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
64509 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64510 l_budgetary_control_flag := 'N';
64511
64512 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64513 l_bflow_applied_to_amt := NULL; -- 5132302
64514 l_entered_amt_idx := NULL; -- 4262811
64515 l_accted_amt_idx := NULL; -- 4262811
64516 l_acc_rev_flag := NULL; -- 4262811
64517 l_accrual_line_num := NULL; -- 4262811
64518 l_tmp_amt := NULL; -- 4262811
64519 --
64520
64521 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64522 l_balance_type_code <> 'B' THEN
64523 IF NVL(p_source_38,'
64524 ') <> 'CLEAR_CLEAR' AND
64525 NVL(p_source_20,'
64526 ') = 'ITEM' AND
64527 NVL(p_source_101,'
64528 ') = 'INTEREST' AND
64529 (NVL(p_source_39,'
64530 ') = 'CASH' OR
64531 NVL(p_source_39,'
64532 ') = 'DISCOUNT') AND
64533 NVL(p_source_60,'
64534 ') = 'R' AND
64535 NVL(p_source_102,'
64536 ') = 'Y' AND
64537 NVL(p_source_104,'
64538 ') = 'Y'
64539 THEN
64540
64541 --
64542 XLA_AE_LINES_PKG.SetNewLine;
64543
64544 p_balance_type_code := l_balance_type_code;
64545 -- set the flag so later we will know whether the gain loss line needs to be created
64546
64547 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64548 p_actual_flag :='A';
64549 END IF;
64550
64551 --
64552 -- bulk performance
64553 --
64554 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64555 p_header_num => 0); -- 4262811
64556 --
64557 -- set accounting line options
64558 --
64559 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64560 p_natural_side_code => 'D'
64561 , p_gain_or_loss_flag => 'N'
64562 , p_gl_transfer_mode_code => 'S'
64563 , p_acct_entry_type_code => 'E'
64564 , p_switch_side_flag => 'Y'
64565 , p_merge_duplicate_code => 'A'
64566 );
64567 --
64568 l_acc_rev_natural_side_code := 'C'; -- 4262811
64569 --
64570 --
64571 -- set accounting line type info
64572 --
64573 xla_ae_lines_pkg.SetAcctLineType
64574 (p_component_type => l_component_type
64575 ,p_event_type_code => l_event_type_code
64576 ,p_line_definition_owner_code => l_line_definition_owner_code
64577 ,p_line_definition_code => l_line_definition_code
64578 ,p_accounting_line_code => l_component_code
64579 ,p_accounting_line_type_code => l_component_type_code
64580 ,p_accounting_line_appl_id => l_component_appl_id
64584 --
64581 ,p_amb_context_code => l_amb_context_code
64582 ,p_entity_code => l_entity_code
64583 ,p_event_class_code => l_event_class_code);
64585 -- set accounting class
64586 --
64587 xla_ae_lines_pkg.SetAcctClass(
64588 p_accounting_class_code => 'ITEM EXPENSE'
64589 , p_ae_header_id => l_ae_header_id
64590 );
64591
64592 --
64593 -- set rounding class
64594 --
64595 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64596 'ITEM EXPENSE';
64597
64598 --
64599 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64600 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64601 --
64602 -- bulk performance
64603 --
64604 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64605
64606 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64607 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64608
64609 -- 4955764
64610 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64611 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64612
64613 -- 4458381 Public Sector Enh
64614
64615 --
64616 -- set accounting attributes for the line type
64617 --
64618 l_entered_amt_idx := 9;
64619 l_accted_amt_idx := 11;
64620 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64621 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64622 l_rec_acct_attrs.array_char_value(1) := p_source_40;
64623 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
64624 l_rec_acct_attrs.array_num_value(2) := p_source_42;
64625 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64626 l_rec_acct_attrs.array_char_value(3) := p_source_62;
64627 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
64628 l_rec_acct_attrs.array_char_value(4) := p_source_63;
64629 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
64630 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
64631 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64632 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
64633 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
64634 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
64635 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
64636 l_rec_acct_attrs.array_char_value(8) := p_source_48;
64637 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
64638 l_rec_acct_attrs.array_num_value(9) := p_source_41;
64639 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
64640 l_rec_acct_attrs.array_char_value(10) := p_source_49;
64641 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
64642 l_rec_acct_attrs.array_num_value(11) := p_source_9;
64643 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
64644 l_rec_acct_attrs.array_char_value(12) := p_source_53;
64645 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
64646 l_rec_acct_attrs.array_char_value(13) := p_source_56;
64647 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
64648 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
64649 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
64650 l_rec_acct_attrs.array_char_value(15) := p_source_48;
64651 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
64652 l_rec_acct_attrs.array_num_value(16) := p_source_58;
64653 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
64654 l_rec_acct_attrs.array_num_value(17) := p_source_66;
64655 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
64656 l_rec_acct_attrs.array_num_value(18) := p_source_59;
64657
64658 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64659 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64660
64661 ---------------------------------------------------------------------------------------------------------------
64662 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64663 ---------------------------------------------------------------------------------------------------------------
64664 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64665
64666 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64667 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64668
64669 IF xla_accounting_cache_pkg.GetValueChar
64670 (p_source_code => 'LEDGER_CATEGORY_CODE'
64671 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64672 AND l_bflow_method_code = 'PRIOR_ENTRY'
64673 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64674 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64675 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64676 )
64677 THEN
64678 xla_ae_lines_pkg.BflowUpgEntry
64679 (p_business_method_code => l_bflow_method_code
64683 NULL;
64680 ,p_business_class_code => l_bflow_class_code
64681 ,p_balance_type => l_balance_type_code);
64682 ELSE
64684 XLA_AE_LINES_PKG.business_flow_validation(
64685 p_business_method_code => l_bflow_method_code
64686 ,p_business_class_code => l_bflow_class_code
64687 ,p_inherit_description_flag => l_inherit_desc_flag);
64688 END IF;
64689
64690 --
64691 -- call analytical criteria
64692 --
64693 -- Inherited Analytical Criteria for business flow method of Prior Entry.
64694 --
64695 -- call description
64696 --
64697 -- No description or it is inherited.
64698 --
64699 -- call ADRs
64700 -- Bug 4922099
64701 --
64702 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64703 (NVL(l_actual_upg_option, 'N') = 'O') OR
64704 (NVL(l_enc_upg_option, 'N') = 'O')
64705 )
64706 THEN
64707 NULL;
64708 --
64709 --
64710
64711 --
64712 --
64713 END IF;
64714 --
64715 -- Bug 4922099
64716 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64717 (NVL(l_enc_upg_option, 'N') = 'O')
64718 ) AND
64719 (l_bflow_method_code = 'PRIOR_ENTRY')
64720 )
64721 THEN
64722 IF
64723 --
64724 1 = 1
64725 --
64726 THEN
64727 xla_accounting_err_pkg.build_message
64728 (p_appli_s_name => 'XLA'
64729 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64730 ,p_token_1 => 'LINE_NUMBER'
64731 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
64732 ,p_token_2 => 'LINE_TYPE_NAME'
64733 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
64734 l_component_type
64735 ,l_component_code
64736 ,l_component_type_code
64737 ,l_component_appl_id
64738 ,l_amb_context_code
64739 ,l_entity_code
64740 ,l_event_class_code
64741 )
64742 ,p_token_3 => 'OWNER'
64743 ,p_value_3 => xla_lookups_pkg.get_meaning(
64744 p_lookup_type => 'XLA_OWNER_TYPE'
64745 ,p_lookup_code => l_component_type_code
64746 )
64747 ,p_token_4 => 'PRODUCT_NAME'
64748 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64749 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64750 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64751 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64752 ,p_ae_header_id => NULL
64753 );
64754
64755 IF (C_LEVEL_ERROR>= g_log_level) THEN
64756 trace
64757 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64758 ,p_level => C_LEVEL_ERROR
64759 ,p_module => l_log_module);
64760 END IF;
64761 END IF;
64762 END IF;
64763 --
64764 --
64765 ------------------------------------------------------------------------------------------------
64766 -- 4219869 Business Flow
64767 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64768 -- Prior Entry. Currently, the following code is always generated.
64769 ------------------------------------------------------------------------------------------------
64770 -- No ValidateCurrentLine for business flow method of Prior Entry
64771
64772 ------------------------------------------------------------------------------------
64773 -- 4219869 Business Flow
64774 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64775 ------------------------------------------------------------------------------------
64776 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64777
64778 ----------------------------------------------------------------------------------
64779 -- 4219869 Business Flow
64780 -- Update journal entry status -- Need to generate this within IF <condition>
64781 ----------------------------------------------------------------------------------
64782 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64786
64783 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64784 ,p_balance_type_code => l_balance_type_code
64785 );
64787 -------------------------------------------------------------------------------------------
64788 -- 4262811 - Generate the Accrual Reversal lines
64789 -------------------------------------------------------------------------------------------
64790 BEGIN
64791 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64792 (g_array_event(p_event_id).array_value_num('header_index'));
64793 IF l_acc_rev_flag IS NULL THEN
64794 l_acc_rev_flag := 'N';
64795 END IF;
64796 EXCEPTION
64797 WHEN OTHERS THEN
64798 l_acc_rev_flag := 'N';
64799 END;
64800 --
64801 IF (l_acc_rev_flag = 'Y') THEN
64802
64803 -- 4645092 ------------------------------------------------------------------------------
64804 -- To allow MPA report to determine if it should generate report process
64805 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64806 ------------------------------------------------------------------------------------------
64807
64808 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64809 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64810 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
64811 -- call ADRs
64812 -- Bug 4922099
64813 --
64814 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64815 (NVL(l_actual_upg_option, 'N') = 'O') OR
64816 (NVL(l_enc_upg_option, 'N') = 'O')
64817 )
64818 THEN
64819 NULL;
64820 --
64821 --
64822
64823 --
64824 --
64825 END IF;
64826
64827 --
64828 -- Update the line information that should be overwritten
64829 --
64830 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64831 p_header_num => 1);
64832 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
64833
64834 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64835
64836 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
64837 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64838 END IF;
64839
64840 --
64841 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64842 --
64843 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64844 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
64845 ELSE
64846 ---------------------------------------------------------------------------------------------------
64847 -- 4262811a Switch Sign
64848 ---------------------------------------------------------------------------------------------------
64849 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
64850 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64851 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64852 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64853 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64854 -- 5132302
64855 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64856 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64857
64858 END IF;
64859
64860 -- 4955764
64861 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64862 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64863
64864
64865 XLA_AE_LINES_PKG.ValidateCurrentLine;
64866 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64867
64868 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64869 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64870 ,p_balance_type_code => l_balance_type_code);
64871
64872 END IF;
64873
64874 -----------------------------------------------------------------------------------------
64875 -- 4262811 Multiperiod Accounting
64876 -----------------------------------------------------------------------------------------
64877 -- No MPA option is assigned.
64878
64879
64880 END IF;
64881 END IF;
64882 --
64883
64884 --
64885 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64886 trace
64887 (p_msg => 'END of AcctLineType_122'
64888 ,p_level => C_LEVEL_PROCEDURE
64889 ,p_module => l_log_module);
64890 END IF;
64891 --
64892 EXCEPTION
64893 WHEN xla_exceptions_pkg.application_exception THEN
64894 RAISE;
64895 WHEN OTHERS THEN
64896 xla_exceptions_pkg.raise_message
64897 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_122');
64898 END AcctLineType_122;
64899 --
64900
64904 -- AcctLineType_123
64901 ---------------------------------------
64902 --
64903 -- PRIVATE FUNCTION
64905 --
64906 ---------------------------------------
64907 PROCEDURE AcctLineType_123 (
64908 p_application_id IN NUMBER
64909 ,p_event_id IN NUMBER
64910 ,p_calculate_acctd_flag IN VARCHAR2
64911 ,p_calculate_g_l_flag IN VARCHAR2
64912 ,p_actual_flag IN OUT VARCHAR2
64913 ,p_balance_type_code OUT VARCHAR2
64914 ,p_gain_or_loss_ref OUT VARCHAR2
64915
64916 --Recipient Invoice Distribution Account
64917 , p_source_36 IN NUMBER
64918 --When to Account for Payment Option
64919 , p_source_38 IN VARCHAR2
64920 --Accounting Reversal Indicator
64921 , p_source_40 IN VARCHAR2
64922 --Business Flow Accounts Payable Application Identifier
64923 , p_source_42 IN NUMBER
64924 --Distribution Link Type
64925 , p_source_48 IN VARCHAR2
64926 --Override Accounted Amount Indicator
64927 , p_source_53 IN VARCHAR2
64928 , p_source_53_meaning IN VARCHAR2
64929 --Third Party Type
64930 , p_source_56 IN VARCHAR2
64931 --Invoice Distribution Tax Line Identifier
64932 , p_source_58 IN NUMBER
64933 --Invoice Distribution Summary Tax Line Identifier
64934 , p_source_59 IN NUMBER
64935 --Invoice Distribution Tax Distribution Identifier from Tax
64936 , p_source_66 IN NUMBER
64937 --Prepayment Distribution Type
64938 , p_source_67 IN VARCHAR2
64939 --Recipient Invoice Distribution Type
64940 , p_source_68 IN VARCHAR2
64941 , p_source_68_meaning IN VARCHAR2
64942 --Prepayment Application Distribution Identifier
64943 , p_source_71 IN NUMBER
64944 --Invoice Identifier
64945 , p_source_72 IN NUMBER
64946 --Business Flow Prepayment Invoice Distribution Type
64947 , p_source_73 IN VARCHAR2
64948 --Business Flow Prepayment Invoice Entity Code
64949 , p_source_74 IN VARCHAR2
64950 --Business Flow Prepayment Invoice Distribution Identifier
64951 , p_source_75 IN NUMBER
64952 --Business Flow Prepayment Invoice Identifier
64953 , p_source_76 IN NUMBER
64954 --Upgrade Encumbrance Credit Account Class
64955 , p_source_77 IN VARCHAR2
64956 --Payables Encumbrance Upgrade Credit Account
64957 , p_source_78 IN NUMBER
64958 --Payables Encumbrance Upgrade Credit Amount
64959 , p_source_79 IN NUMBER
64960 --Invoice Currency Code
64961 , p_source_80 IN VARCHAR2
64962 --Payables Encumbrance Upgrade Credit Base Amount
64963 , p_source_81 IN NUMBER
64964 --Upgrade Encumbrance Debit Account Class
64965 , p_source_82 IN VARCHAR2
64966 --Payables Encumbrance Upgrade Debit Account
64967 , p_source_83 IN NUMBER
64968 --Payables Encumbrance Upgrade Debit Amount
64969 , p_source_84 IN NUMBER
64970 --Payables Encumbrance Upgrade Debit Base Amount
64971 , p_source_85 IN NUMBER
64972 --Payables Encumbrance Upgrade Option
64973 , p_source_86 IN VARCHAR2
64974 --Prepayment Distribution Amount
64975 , p_source_87 IN NUMBER
64976 --Prepayment Clearing Currency Code
64977 , p_source_88 IN VARCHAR2
64978 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
64979 , p_source_89 IN NUMBER
64980 --Deferred Accounting End Date
64981 , p_source_90 IN DATE
64982 --Deferred Accounting Option
64983 , p_source_91 IN VARCHAR2
64984 --Deferred Accounting Start Date
64985 , p_source_92 IN DATE
64986 --Invoice Supplier Identifier
64987 , p_source_93 IN NUMBER
64988 --Invoice Supplier Site Identifier
64989 , p_source_94 IN NUMBER
64990 --Identifier of the Prepayment Application Reversed
64991 , p_source_95 IN NUMBER
64992 --Payables Upgrade Credit Encumbrance Type Identifier
64993 , p_source_96 IN NUMBER
64994 --Payables Upgrade Debit Encumbrance Type Identifier
64995 , p_source_97 IN NUMBER
64996 --Accrue on Receipt Option
64997 , p_source_100 IN VARCHAR2
64998 , p_source_100_meaning IN VARCHAR2
64999 --Prepayment Clearing Exchange Date
65000 , p_source_118 IN DATE
65001 --Prepayment Clearing Exchange Rate
65002 , p_source_119 IN NUMBER
65003 --Prepayment Clearing Exchange Rate Type
65004 , p_source_120 IN VARCHAR2
65005 )
65006 IS
65007
65008 l_component_type VARCHAR2(80);
65009 l_component_code VARCHAR2(30);
65010 l_component_type_code VARCHAR2(1);
65011 l_component_appl_id INTEGER;
65012 l_amb_context_code VARCHAR2(30);
65013 l_entity_code VARCHAR2(30);
65014 l_event_class_code VARCHAR2(30);
65015 l_ae_header_id NUMBER;
65016 l_event_type_code VARCHAR2(30);
65017 l_line_definition_code VARCHAR2(30);
65018 l_line_definition_owner_code VARCHAR2(1);
65019 --
65020 -- adr variables
65021 l_segment VARCHAR2(30);
65022 l_ccid NUMBER;
65023 l_adr_transaction_coa_id NUMBER;
65024 l_adr_accounting_coa_id NUMBER;
65025 l_adr_flexfield_segment_code VARCHAR2(30);
65026 l_adr_flex_value_set_id NUMBER;
65027 l_adr_value_type_code VARCHAR2(30);
65028 l_adr_value_combination_id NUMBER;
65032 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
65029 l_adr_value_segment_code VARCHAR2(30);
65030
65031 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
65033 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
65034 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
65035
65036 -- 4262811 Variables ------------------------------------------------------------------------------------------
65037 l_entered_amt_idx NUMBER;
65038 l_accted_amt_idx NUMBER;
65039 l_acc_rev_flag VARCHAR2(1);
65040 l_accrual_line_num NUMBER;
65041 l_tmp_amt NUMBER;
65042 l_acc_rev_natural_side_code VARCHAR2(1);
65043
65044 l_num_entries NUMBER;
65045 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
65046 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
65047 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
65048 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
65049 l_recog_line_1 NUMBER;
65050 l_recog_line_2 NUMBER;
65051
65052 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
65053 l_bflow_applied_to_amt NUMBER; -- 5132302
65054 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
65055
65056 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65057
65058 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
65059 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
65060
65061 ---------------------------------------------------------------------------------------------------------------
65062
65063
65064 --
65065 -- bulk performance
65066 --
65067 l_balance_type_code VARCHAR2(1);
65068 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65069 l_log_module VARCHAR2(240);
65070
65071 --
65072 -- Upgrade strategy
65073 --
65074 l_actual_upg_option VARCHAR2(1);
65075 l_enc_upg_option VARCHAR2(1);
65076
65077 --
65078 BEGIN
65079 --
65080 IF g_log_enabled THEN
65081 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
65082 END IF;
65083 --
65084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65085
65086 trace
65087 (p_msg => 'BEGIN of AcctLineType_123'
65088 ,p_level => C_LEVEL_PROCEDURE
65089 ,p_module => l_log_module);
65090
65091 END IF;
65092 --
65093 l_component_type := 'AMB_JLT';
65094 l_component_code := 'AP_ITEM_PREPAY_CLR_RATE_APP';
65095 l_component_type_code := 'S';
65096 l_component_appl_id := 200;
65097 l_amb_context_code := 'DEFAULT';
65098 l_entity_code := 'AP_INVOICES';
65099 l_event_class_code := 'PREPAYMENT APPLICATIONS';
65100 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
65101 l_line_definition_owner_code := 'S';
65102 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
65103 --
65104 l_balance_type_code := 'A';
65105 l_segment := NULL;
65106 l_ccid := NULL;
65107 l_adr_transaction_coa_id := NULL;
65108 l_adr_accounting_coa_id := NULL;
65109 l_adr_flexfield_segment_code := NULL;
65110 l_adr_flex_value_set_id := NULL;
65111 l_adr_value_type_code := NULL;
65112 l_adr_value_combination_id := NULL;
65113 l_adr_value_segment_code := NULL;
65114
65115 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
65116 l_bflow_class_code := ''; -- 4219869 Business Flow
65117 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
65118 l_budgetary_control_flag := 'N';
65119
65120 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65121 l_bflow_applied_to_amt := NULL; -- 5132302
65122 l_entered_amt_idx := NULL; -- 4262811
65123 l_accted_amt_idx := NULL; -- 4262811
65124 l_acc_rev_flag := NULL; -- 4262811
65125 l_accrual_line_num := NULL; -- 4262811
65126 l_tmp_amt := NULL; -- 4262811
65127 --
65128
65129 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65130 l_balance_type_code <> 'B' THEN
65131 IF NVL(p_source_38,'
65132 ') = 'CLEAR_CLEAR' AND
65133 (NVL(p_source_67,'
65134 ') = 'PREPAY APPL' OR
65135 NVL(p_source_67,'
65136 ') = 'PREPAY APPL NONREC TAX' OR
65137 NVL(p_source_67,'
65138 ') = 'PREPAY APPL REC TAX') AND
65139 (NVL(p_source_68,'
65140 ') = 'ITEM' OR
65141 NVL(p_source_68,'
65142 ') = 'RETROEXPENSE' OR
65143 NVL(p_source_68,'
65144 ') = 'ERV' AND
65145 NVL(p_source_100,'
65146 ') <> 'Y' OR
65147 NVL(p_source_68,'
65148 ') = 'IPV' AND
65149 NVL(p_source_100,'
65150 ') <> 'Y')
65151 THEN
65152
65153 --
65154 XLA_AE_LINES_PKG.SetNewLine;
65155
65156 p_balance_type_code := l_balance_type_code;
65157 -- set the flag so later we will know whether the gain loss line needs to be created
65158
65159 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65160 p_actual_flag :='A';
65161 END IF;
65162
65163 --
65164 -- bulk performance
65168 --
65165 --
65166 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65167 p_header_num => 0); -- 4262811
65169 -- set accounting line options
65170 --
65171 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65172 p_natural_side_code => 'C'
65173 , p_gain_or_loss_flag => 'N'
65174 , p_gl_transfer_mode_code => 'S'
65175 , p_acct_entry_type_code => 'A'
65176 , p_switch_side_flag => 'Y'
65177 , p_merge_duplicate_code => 'A'
65178 );
65179 --
65180 l_acc_rev_natural_side_code := 'D'; -- 4262811
65181 --
65182 --
65183 -- set accounting line type info
65184 --
65185 xla_ae_lines_pkg.SetAcctLineType
65186 (p_component_type => l_component_type
65187 ,p_event_type_code => l_event_type_code
65188 ,p_line_definition_owner_code => l_line_definition_owner_code
65189 ,p_line_definition_code => l_line_definition_code
65190 ,p_accounting_line_code => l_component_code
65191 ,p_accounting_line_type_code => l_component_type_code
65192 ,p_accounting_line_appl_id => l_component_appl_id
65193 ,p_amb_context_code => l_amb_context_code
65194 ,p_entity_code => l_entity_code
65195 ,p_event_class_code => l_event_class_code);
65196 --
65197 -- set accounting class
65198 --
65199 xla_ae_lines_pkg.SetAcctClass(
65200 p_accounting_class_code => 'ITEM EXPENSE'
65201 , p_ae_header_id => l_ae_header_id
65202 );
65203
65204 --
65205 -- set rounding class
65206 --
65207 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65208 'ITEM EXPENSE';
65209
65210 --
65211 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65212 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65213 --
65214 -- bulk performance
65215 --
65216 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65217
65218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65219 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65220
65221 -- 4955764
65222 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65223 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65224
65225 -- 4458381 Public Sector Enh
65226
65227 --
65228 -- set accounting attributes for the line type
65229 --
65230 l_entered_amt_idx := 25;
65231 l_accted_amt_idx := 30;
65232 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65233 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65234 l_rec_acct_attrs.array_char_value(1) := p_source_40;
65235 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
65236 l_rec_acct_attrs.array_num_value(2) :=
65237 xla_ae_sources_pkg.GetSystemSourceNum(
65238 p_source_code => 'XLA_EVENT_APPL_ID'
65239 , p_source_type_code => 'Y'
65240 , p_source_application_id => 602
65241 );
65242 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
65243 l_rec_acct_attrs.array_char_value(3) := p_source_48;
65244 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
65245 l_rec_acct_attrs.array_char_value(4) :=
65246 xla_ae_sources_pkg.GetSystemSourceChar(
65247 p_source_code => 'XLA_ENTITY_CODE'
65248 , p_source_type_code => 'Y'
65249 , p_source_application_id => 602
65250 );
65251 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
65252 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
65253 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
65254 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
65255 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
65256 l_rec_acct_attrs.array_num_value(7) := p_source_42;
65257 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65258 l_rec_acct_attrs.array_char_value(8) := p_source_73;
65259 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
65260 l_rec_acct_attrs.array_char_value(9) := p_source_74;
65261 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
65262 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
65263 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65264 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
65265 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
65266 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
65267 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
65268 l_rec_acct_attrs.array_char_value(13) := p_source_48;
65269 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
65270 l_rec_acct_attrs.array_char_value(14) := p_source_77;
65271 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
65272 l_rec_acct_attrs.array_num_value(15) := p_source_78;
65273 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
65274 l_rec_acct_attrs.array_num_value(16) := p_source_79;
65278 l_rec_acct_attrs.array_num_value(18) := p_source_81;
65275 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
65276 l_rec_acct_attrs.array_char_value(17) := p_source_80;
65277 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
65279 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
65280 l_rec_acct_attrs.array_char_value(19) := p_source_82;
65281 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
65282 l_rec_acct_attrs.array_num_value(20) := p_source_83;
65283 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
65284 l_rec_acct_attrs.array_num_value(21) := p_source_84;
65285 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
65286 l_rec_acct_attrs.array_char_value(22) := p_source_80;
65287 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
65288 l_rec_acct_attrs.array_num_value(23) := p_source_85;
65289 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
65290 l_rec_acct_attrs.array_char_value(24) := p_source_86;
65291 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
65292 l_rec_acct_attrs.array_num_value(25) := p_source_87;
65293 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
65294 l_rec_acct_attrs.array_char_value(26) := p_source_88;
65295 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
65296 l_rec_acct_attrs.array_date_value(27) := p_source_118;
65297 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
65298 l_rec_acct_attrs.array_num_value(28) := p_source_119;
65299 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
65300 l_rec_acct_attrs.array_char_value(29) := p_source_120;
65301 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
65302 l_rec_acct_attrs.array_num_value(30) := p_source_89;
65303 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
65304 l_rec_acct_attrs.array_date_value(31) := p_source_90;
65305 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
65306 l_rec_acct_attrs.array_char_value(32) := p_source_91;
65307 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
65308 l_rec_acct_attrs.array_date_value(33) := p_source_92;
65309 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
65310 l_rec_acct_attrs.array_char_value(34) := p_source_53;
65311 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
65312 l_rec_acct_attrs.array_num_value(35) := p_source_93;
65313 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
65314 l_rec_acct_attrs.array_num_value(36) := p_source_94;
65315 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
65316 l_rec_acct_attrs.array_char_value(37) := p_source_56;
65317 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
65318 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
65319 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
65320 l_rec_acct_attrs.array_char_value(39) := p_source_48;
65321 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
65322 l_rec_acct_attrs.array_num_value(40) := p_source_58;
65323 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
65324 l_rec_acct_attrs.array_num_value(41) := p_source_66;
65325 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
65326 l_rec_acct_attrs.array_num_value(42) := p_source_59;
65327 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
65328 l_rec_acct_attrs.array_num_value(43) := p_source_96;
65329 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
65330 l_rec_acct_attrs.array_num_value(44) := p_source_97;
65331
65332 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65333 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65334
65335 ---------------------------------------------------------------------------------------------------------------
65336 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65337 ---------------------------------------------------------------------------------------------------------------
65338 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65339
65340 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65341 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65342
65343 IF xla_accounting_cache_pkg.GetValueChar
65344 (p_source_code => 'LEDGER_CATEGORY_CODE'
65345 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65346 AND l_bflow_method_code = 'PRIOR_ENTRY'
65347 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65348 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65349 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65350 )
65351 THEN
65352 xla_ae_lines_pkg.BflowUpgEntry
65353 (p_business_method_code => l_bflow_method_code
65354 ,p_business_class_code => l_bflow_class_code
65355 ,p_balance_type => l_balance_type_code);
65356 ELSE
65357 NULL;
65358 -- No business flow processing for business flow method of NONE.
65359 END IF;
65360
65361 --
65362 -- call analytical criteria
65363 --
65367 --
65364
65365 --
65366 -- call description
65368 -- No description or it is inherited.
65369 --
65370 -- call ADRs
65371 -- Bug 4922099
65372 --
65373 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65374 (NVL(l_actual_upg_option, 'N') = 'O') OR
65375 (NVL(l_enc_upg_option, 'N') = 'O')
65376 )
65377 THEN
65378 NULL;
65379 --
65380 --
65381
65382 l_ccid := AcctDerRule_33(
65383 p_application_id => p_application_id
65384 , p_ae_header_id => l_ae_header_id
65385 , p_source_36 => p_source_36
65386 , x_transaction_coa_id => l_adr_transaction_coa_id
65387 , x_accounting_coa_id => l_adr_accounting_coa_id
65388 , x_value_type_code => l_adr_value_type_code
65389 , p_side => 'NA'
65390 );
65391
65392 xla_ae_lines_pkg.set_ccid(
65393 p_code_combination_id => l_ccid
65394 , p_value_type_code => l_adr_value_type_code
65395 , p_transaction_coa_id => l_adr_transaction_coa_id
65396 , p_accounting_coa_id => l_adr_accounting_coa_id
65397 , p_adr_code => 'AP_RECP_INV_DIST'
65398 , p_adr_type_code => 'S'
65399 , p_component_type => l_component_type
65400 , p_component_code => l_component_code
65401 , p_component_type_code => l_component_type_code
65402 , p_component_appl_id => l_component_appl_id
65403 , p_amb_context_code => l_amb_context_code
65404 , p_side => 'NA'
65405 );
65406
65407
65408 --
65409 --
65410 END IF;
65411 --
65412 -- Bug 4922099
65413 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65414 (NVL(l_enc_upg_option, 'N') = 'O')
65415 ) AND
65416 (l_bflow_method_code = 'PRIOR_ENTRY')
65417 )
65418 THEN
65419 IF
65420 --
65421 1 = 2
65422 --
65423 THEN
65424 xla_accounting_err_pkg.build_message
65425 (p_appli_s_name => 'XLA'
65426 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65427 ,p_token_1 => 'LINE_NUMBER'
65428 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65429 ,p_token_2 => 'LINE_TYPE_NAME'
65430 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65431 l_component_type
65432 ,l_component_code
65433 ,l_component_type_code
65434 ,l_component_appl_id
65435 ,l_amb_context_code
65436 ,l_entity_code
65437 ,l_event_class_code
65438 )
65439 ,p_token_3 => 'OWNER'
65440 ,p_value_3 => xla_lookups_pkg.get_meaning(
65441 p_lookup_type => 'XLA_OWNER_TYPE'
65442 ,p_lookup_code => l_component_type_code
65443 )
65444 ,p_token_4 => 'PRODUCT_NAME'
65445 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65446 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65447 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65448 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65449 ,p_ae_header_id => NULL
65450 );
65451
65452 IF (C_LEVEL_ERROR>= g_log_level) THEN
65453 trace
65454 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65455 ,p_level => C_LEVEL_ERROR
65456 ,p_module => l_log_module);
65457 END IF;
65458 END IF;
65459 END IF;
65460 --
65461 --
65462 ------------------------------------------------------------------------------------------------
65463 -- 4219869 Business Flow
65464 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65465 -- Prior Entry. Currently, the following code is always generated.
65466 ------------------------------------------------------------------------------------------------
65467 XLA_AE_LINES_PKG.ValidateCurrentLine;
65468
65469 ------------------------------------------------------------------------------------
65470 -- 4219869 Business Flow
65474
65471 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65472 ------------------------------------------------------------------------------------
65473 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65475 ----------------------------------------------------------------------------------
65476 -- 4219869 Business Flow
65477 -- Update journal entry status -- Need to generate this within IF <condition>
65478 ----------------------------------------------------------------------------------
65479 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65480 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65481 ,p_balance_type_code => l_balance_type_code
65482 );
65483
65484 -------------------------------------------------------------------------------------------
65485 -- 4262811 - Generate the Accrual Reversal lines
65486 -------------------------------------------------------------------------------------------
65487 BEGIN
65488 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65489 (g_array_event(p_event_id).array_value_num('header_index'));
65490 IF l_acc_rev_flag IS NULL THEN
65491 l_acc_rev_flag := 'N';
65492 END IF;
65493 EXCEPTION
65494 WHEN OTHERS THEN
65495 l_acc_rev_flag := 'N';
65496 END;
65497 --
65498 IF (l_acc_rev_flag = 'Y') THEN
65499
65500 -- 4645092 ------------------------------------------------------------------------------
65501 -- To allow MPA report to determine if it should generate report process
65502 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65503 ------------------------------------------------------------------------------------------
65504
65505 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65506 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65507 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
65508 -- call ADRs
65509 -- Bug 4922099
65510 --
65511 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65512 (NVL(l_actual_upg_option, 'N') = 'O') OR
65513 (NVL(l_enc_upg_option, 'N') = 'O')
65514 )
65515 THEN
65516 NULL;
65517 --
65518 --
65519
65520 l_ccid := AcctDerRule_33(
65521 p_application_id => p_application_id
65522 , p_ae_header_id => l_ae_header_id
65523 , p_source_36 => p_source_36
65524 , x_transaction_coa_id => l_adr_transaction_coa_id
65525 , x_accounting_coa_id => l_adr_accounting_coa_id
65526 , x_value_type_code => l_adr_value_type_code
65527 , p_side => 'NA'
65528 );
65529
65530 xla_ae_lines_pkg.set_ccid(
65531 p_code_combination_id => l_ccid
65532 , p_value_type_code => l_adr_value_type_code
65533 , p_transaction_coa_id => l_adr_transaction_coa_id
65534 , p_accounting_coa_id => l_adr_accounting_coa_id
65535 , p_adr_code => 'AP_RECP_INV_DIST'
65536 , p_adr_type_code => 'S'
65537 , p_component_type => l_component_type
65538 , p_component_code => l_component_code
65539 , p_component_type_code => l_component_type_code
65540 , p_component_appl_id => l_component_appl_id
65541 , p_amb_context_code => l_amb_context_code
65542 , p_side => 'NA'
65543 );
65544
65545
65546 --
65547 --
65548 END IF;
65549
65550 --
65551 -- Update the line information that should be overwritten
65552 --
65553 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65554 p_header_num => 1);
65555 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65556
65557 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65558
65559 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65560 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65561 END IF;
65562
65563 --
65564 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65565 --
65566 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65567 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65568 ELSE
65569 ---------------------------------------------------------------------------------------------------
65570 -- 4262811a Switch Sign
65571 ---------------------------------------------------------------------------------------------------
65572 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65574 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65576 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65577 -- 5132302
65581 END IF;
65578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65579 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65580
65582
65583 -- 4955764
65584 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65585 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65586
65587
65588 XLA_AE_LINES_PKG.ValidateCurrentLine;
65589 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65590
65591 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65592 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65593 ,p_balance_type_code => l_balance_type_code);
65594
65595 END IF;
65596
65597 -----------------------------------------------------------------------------------------
65598 -- 4262811 Multiperiod Accounting
65599 -----------------------------------------------------------------------------------------
65600 -- No MPA option is assigned.
65601
65602
65603 END IF;
65604 END IF;
65605 --
65606
65607 --
65608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65609 trace
65610 (p_msg => 'END of AcctLineType_123'
65611 ,p_level => C_LEVEL_PROCEDURE
65612 ,p_module => l_log_module);
65613 END IF;
65614 --
65615 EXCEPTION
65616 WHEN xla_exceptions_pkg.application_exception THEN
65617 RAISE;
65618 WHEN OTHERS THEN
65619 xla_exceptions_pkg.raise_message
65620 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_123');
65621 END AcctLineType_123;
65622 --
65623
65624 ---------------------------------------
65625 --
65626 -- PRIVATE FUNCTION
65627 -- AcctLineType_124
65628 --
65629 ---------------------------------------
65630 PROCEDURE AcctLineType_124 (
65631 p_application_id IN NUMBER
65632 ,p_event_id IN NUMBER
65633 ,p_calculate_acctd_flag IN VARCHAR2
65634 ,p_calculate_g_l_flag IN VARCHAR2
65635 ,p_actual_flag IN OUT VARCHAR2
65636 ,p_balance_type_code OUT VARCHAR2
65637 ,p_gain_or_loss_ref OUT VARCHAR2
65638
65639 --Recipient Invoice Distribution Account
65640 , p_source_36 IN NUMBER
65641 --When to Account for Payment Option
65642 , p_source_38 IN VARCHAR2
65643 --Accounting Reversal Indicator
65644 , p_source_40 IN VARCHAR2
65645 --Business Flow Accounts Payable Application Identifier
65646 , p_source_42 IN NUMBER
65647 --Distribution Link Type
65648 , p_source_48 IN VARCHAR2
65649 --Override Accounted Amount Indicator
65650 , p_source_53 IN VARCHAR2
65651 , p_source_53_meaning IN VARCHAR2
65652 --Third Party Type
65653 , p_source_56 IN VARCHAR2
65654 --Invoice Distribution Tax Line Identifier
65655 , p_source_58 IN NUMBER
65656 --Invoice Distribution Summary Tax Line Identifier
65657 , p_source_59 IN NUMBER
65658 --Invoice Distribution Tax Distribution Identifier from Tax
65659 , p_source_66 IN NUMBER
65660 --Prepayment Distribution Type
65661 , p_source_67 IN VARCHAR2
65662 --Recipient Invoice Distribution Type
65663 , p_source_68 IN VARCHAR2
65664 , p_source_68_meaning IN VARCHAR2
65665 --Prepayment Application Distribution Identifier
65666 , p_source_71 IN NUMBER
65667 --Invoice Identifier
65668 , p_source_72 IN NUMBER
65669 --Business Flow Prepayment Invoice Distribution Type
65670 , p_source_73 IN VARCHAR2
65671 --Business Flow Prepayment Invoice Entity Code
65672 , p_source_74 IN VARCHAR2
65673 --Business Flow Prepayment Invoice Distribution Identifier
65674 , p_source_75 IN NUMBER
65675 --Business Flow Prepayment Invoice Identifier
65676 , p_source_76 IN NUMBER
65677 --Upgrade Encumbrance Credit Account Class
65678 , p_source_77 IN VARCHAR2
65679 --Payables Encumbrance Upgrade Credit Account
65680 , p_source_78 IN NUMBER
65681 --Payables Encumbrance Upgrade Credit Amount
65682 , p_source_79 IN NUMBER
65683 --Invoice Currency Code
65684 , p_source_80 IN VARCHAR2
65685 --Payables Encumbrance Upgrade Credit Base Amount
65686 , p_source_81 IN NUMBER
65687 --Upgrade Encumbrance Debit Account Class
65688 , p_source_82 IN VARCHAR2
65689 --Payables Encumbrance Upgrade Debit Account
65690 , p_source_83 IN NUMBER
65691 --Payables Encumbrance Upgrade Debit Amount
65692 , p_source_84 IN NUMBER
65693 --Payables Encumbrance Upgrade Debit Base Amount
65694 , p_source_85 IN NUMBER
65695 --Payables Encumbrance Upgrade Option
65696 , p_source_86 IN VARCHAR2
65697 --Prepayment Distribution Amount
65698 , p_source_87 IN NUMBER
65699 --Deferred Accounting End Date
65700 , p_source_90 IN DATE
65701 --Deferred Accounting Option
65702 , p_source_91 IN VARCHAR2
65703 --Deferred Accounting Start Date
65704 , p_source_92 IN DATE
65705 --Invoice Supplier Identifier
65706 , p_source_93 IN NUMBER
65707 --Invoice Supplier Site Identifier
65708 , p_source_94 IN NUMBER
65709 --Identifier of the Prepayment Application Reversed
65710 , p_source_95 IN NUMBER
65711 --Payables Upgrade Credit Encumbrance Type Identifier
65715 --Prepayment Payment Currency Code
65712 , p_source_96 IN NUMBER
65713 --Payables Upgrade Debit Encumbrance Type Identifier
65714 , p_source_97 IN NUMBER
65716 , p_source_98 IN VARCHAR2
65717 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
65718 , p_source_99 IN NUMBER
65719 --Accrue on Receipt Option
65720 , p_source_100 IN VARCHAR2
65721 , p_source_100_meaning IN VARCHAR2
65722 --Prepayment Payment Exchange Date
65723 , p_source_121 IN DATE
65724 --Prepayment Payment Exchange Rate
65725 , p_source_122 IN NUMBER
65726 --Prepayment Payment Exchange Rate Type
65727 , p_source_123 IN VARCHAR2
65728 )
65729 IS
65730
65731 l_component_type VARCHAR2(80);
65732 l_component_code VARCHAR2(30);
65733 l_component_type_code VARCHAR2(1);
65734 l_component_appl_id INTEGER;
65735 l_amb_context_code VARCHAR2(30);
65736 l_entity_code VARCHAR2(30);
65737 l_event_class_code VARCHAR2(30);
65738 l_ae_header_id NUMBER;
65739 l_event_type_code VARCHAR2(30);
65740 l_line_definition_code VARCHAR2(30);
65741 l_line_definition_owner_code VARCHAR2(1);
65742 --
65743 -- adr variables
65744 l_segment VARCHAR2(30);
65745 l_ccid NUMBER;
65746 l_adr_transaction_coa_id NUMBER;
65747 l_adr_accounting_coa_id NUMBER;
65748 l_adr_flexfield_segment_code VARCHAR2(30);
65749 l_adr_flex_value_set_id NUMBER;
65750 l_adr_value_type_code VARCHAR2(30);
65751 l_adr_value_combination_id NUMBER;
65752 l_adr_value_segment_code VARCHAR2(30);
65753
65754 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
65755 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
65756 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
65757 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
65758
65759 -- 4262811 Variables ------------------------------------------------------------------------------------------
65760 l_entered_amt_idx NUMBER;
65761 l_accted_amt_idx NUMBER;
65762 l_acc_rev_flag VARCHAR2(1);
65763 l_accrual_line_num NUMBER;
65764 l_tmp_amt NUMBER;
65765 l_acc_rev_natural_side_code VARCHAR2(1);
65766
65767 l_num_entries NUMBER;
65768 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
65769 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
65770 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
65771 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
65772 l_recog_line_1 NUMBER;
65773 l_recog_line_2 NUMBER;
65774
65775 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
65776 l_bflow_applied_to_amt NUMBER; -- 5132302
65777 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
65778
65779 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65780
65781 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
65782 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
65783
65784 ---------------------------------------------------------------------------------------------------------------
65785
65786
65787 --
65788 -- bulk performance
65789 --
65790 l_balance_type_code VARCHAR2(1);
65791 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65792 l_log_module VARCHAR2(240);
65793
65794 --
65795 -- Upgrade strategy
65796 --
65797 l_actual_upg_option VARCHAR2(1);
65798 l_enc_upg_option VARCHAR2(1);
65799
65800 --
65801 BEGIN
65802 --
65803 IF g_log_enabled THEN
65804 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
65805 END IF;
65806 --
65807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65808
65809 trace
65810 (p_msg => 'BEGIN of AcctLineType_124'
65811 ,p_level => C_LEVEL_PROCEDURE
65812 ,p_module => l_log_module);
65813
65814 END IF;
65815 --
65816 l_component_type := 'AMB_JLT';
65817 l_component_code := 'AP_ITEM_PREPAY_PAY_RATE_APP';
65818 l_component_type_code := 'S';
65819 l_component_appl_id := 200;
65820 l_amb_context_code := 'DEFAULT';
65821 l_entity_code := 'AP_INVOICES';
65822 l_event_class_code := 'PREPAYMENT APPLICATIONS';
65823 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
65824 l_line_definition_owner_code := 'S';
65825 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
65826 --
65827 l_balance_type_code := 'A';
65828 l_segment := NULL;
65829 l_ccid := NULL;
65830 l_adr_transaction_coa_id := NULL;
65831 l_adr_accounting_coa_id := NULL;
65832 l_adr_flexfield_segment_code := NULL;
65833 l_adr_flex_value_set_id := NULL;
65834 l_adr_value_type_code := NULL;
65835 l_adr_value_combination_id := NULL;
65836 l_adr_value_segment_code := NULL;
65837
65838 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
65842
65839 l_bflow_class_code := ''; -- 4219869 Business Flow
65840 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
65841 l_budgetary_control_flag := 'N';
65843 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65844 l_bflow_applied_to_amt := NULL; -- 5132302
65845 l_entered_amt_idx := NULL; -- 4262811
65846 l_accted_amt_idx := NULL; -- 4262811
65847 l_acc_rev_flag := NULL; -- 4262811
65848 l_accrual_line_num := NULL; -- 4262811
65849 l_tmp_amt := NULL; -- 4262811
65850 --
65851
65852 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65853 l_balance_type_code <> 'B' THEN
65854 IF NVL(p_source_38,'
65855 ') <> 'CLEAR_CLEAR' AND
65856 (NVL(p_source_67,'
65857 ') = 'PREPAY APPL' OR
65858 NVL(p_source_67,'
65859 ') = 'PREPAY APPL NONREC TAX' OR
65860 NVL(p_source_67,'
65861 ') = 'PREPAY APPL REC TAX') AND
65862 (NVL(p_source_68,'
65863 ') = 'ITEM' OR
65864 NVL(p_source_68,'
65865 ') = 'RETROEXPENSE' OR
65866 NVL(p_source_68,'
65867 ') = 'ERV' AND
65868 NVL(p_source_100,'
65869 ') <> 'Y' OR
65870 NVL(p_source_68,'
65871 ') = 'IPV' AND
65872 NVL(p_source_100,'
65873 ') <> 'Y')
65874 THEN
65875
65876 --
65877 XLA_AE_LINES_PKG.SetNewLine;
65878
65879 p_balance_type_code := l_balance_type_code;
65880 -- set the flag so later we will know whether the gain loss line needs to be created
65881
65882 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65883 p_actual_flag :='A';
65884 END IF;
65885
65886 --
65887 -- bulk performance
65888 --
65889 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65890 p_header_num => 0); -- 4262811
65891 --
65892 -- set accounting line options
65893 --
65894 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65895 p_natural_side_code => 'C'
65896 , p_gain_or_loss_flag => 'N'
65897 , p_gl_transfer_mode_code => 'S'
65898 , p_acct_entry_type_code => 'A'
65899 , p_switch_side_flag => 'Y'
65900 , p_merge_duplicate_code => 'A'
65901 );
65902 --
65903 l_acc_rev_natural_side_code := 'D'; -- 4262811
65904 --
65905 --
65906 -- set accounting line type info
65907 --
65908 xla_ae_lines_pkg.SetAcctLineType
65909 (p_component_type => l_component_type
65910 ,p_event_type_code => l_event_type_code
65911 ,p_line_definition_owner_code => l_line_definition_owner_code
65912 ,p_line_definition_code => l_line_definition_code
65913 ,p_accounting_line_code => l_component_code
65914 ,p_accounting_line_type_code => l_component_type_code
65915 ,p_accounting_line_appl_id => l_component_appl_id
65916 ,p_amb_context_code => l_amb_context_code
65917 ,p_entity_code => l_entity_code
65918 ,p_event_class_code => l_event_class_code);
65919 --
65920 -- set accounting class
65921 --
65922 xla_ae_lines_pkg.SetAcctClass(
65923 p_accounting_class_code => 'ITEM EXPENSE'
65924 , p_ae_header_id => l_ae_header_id
65925 );
65926
65927 --
65928 -- set rounding class
65929 --
65930 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65931 'ITEM EXPENSE';
65932
65933 --
65934 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65935 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65936 --
65937 -- bulk performance
65938 --
65939 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65940
65941 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65942 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65943
65944 -- 4955764
65945 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65946 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65947
65948 -- 4458381 Public Sector Enh
65949
65950 --
65951 -- set accounting attributes for the line type
65952 --
65953 l_entered_amt_idx := 25;
65954 l_accted_amt_idx := 30;
65955 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65956 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65957 l_rec_acct_attrs.array_char_value(1) := p_source_40;
65958 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
65959 l_rec_acct_attrs.array_num_value(2) :=
65960 xla_ae_sources_pkg.GetSystemSourceNum(
65961 p_source_code => 'XLA_EVENT_APPL_ID'
65962 , p_source_type_code => 'Y'
65963 , p_source_application_id => 602
65964 );
65965 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
65966 l_rec_acct_attrs.array_char_value(3) := p_source_48;
65967 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
65968 l_rec_acct_attrs.array_char_value(4) :=
65972 , p_source_application_id => 602
65969 xla_ae_sources_pkg.GetSystemSourceChar(
65970 p_source_code => 'XLA_ENTITY_CODE'
65971 , p_source_type_code => 'Y'
65973 );
65974 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
65975 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
65976 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
65977 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
65978 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
65979 l_rec_acct_attrs.array_num_value(7) := p_source_42;
65980 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65981 l_rec_acct_attrs.array_char_value(8) := p_source_73;
65982 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
65983 l_rec_acct_attrs.array_char_value(9) := p_source_74;
65984 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
65985 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
65986 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65987 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
65988 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
65989 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
65990 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
65991 l_rec_acct_attrs.array_char_value(13) := p_source_48;
65992 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
65993 l_rec_acct_attrs.array_char_value(14) := p_source_77;
65994 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
65995 l_rec_acct_attrs.array_num_value(15) := p_source_78;
65996 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
65997 l_rec_acct_attrs.array_num_value(16) := p_source_79;
65998 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
65999 l_rec_acct_attrs.array_char_value(17) := p_source_80;
66000 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
66001 l_rec_acct_attrs.array_num_value(18) := p_source_81;
66002 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
66003 l_rec_acct_attrs.array_char_value(19) := p_source_82;
66004 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
66005 l_rec_acct_attrs.array_num_value(20) := p_source_83;
66006 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
66007 l_rec_acct_attrs.array_num_value(21) := p_source_84;
66008 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
66009 l_rec_acct_attrs.array_char_value(22) := p_source_80;
66010 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
66011 l_rec_acct_attrs.array_num_value(23) := p_source_85;
66012 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
66013 l_rec_acct_attrs.array_char_value(24) := p_source_86;
66014 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
66015 l_rec_acct_attrs.array_num_value(25) := p_source_87;
66016 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
66017 l_rec_acct_attrs.array_char_value(26) := p_source_98;
66018 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
66019 l_rec_acct_attrs.array_date_value(27) := p_source_121;
66020 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
66021 l_rec_acct_attrs.array_num_value(28) := p_source_122;
66022 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
66023 l_rec_acct_attrs.array_char_value(29) := p_source_123;
66024 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
66025 l_rec_acct_attrs.array_num_value(30) := p_source_99;
66026 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
66027 l_rec_acct_attrs.array_date_value(31) := p_source_90;
66028 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
66029 l_rec_acct_attrs.array_char_value(32) := p_source_91;
66030 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
66031 l_rec_acct_attrs.array_date_value(33) := p_source_92;
66032 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
66033 l_rec_acct_attrs.array_char_value(34) := p_source_53;
66034 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
66035 l_rec_acct_attrs.array_num_value(35) := p_source_93;
66036 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
66037 l_rec_acct_attrs.array_num_value(36) := p_source_94;
66038 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
66039 l_rec_acct_attrs.array_char_value(37) := p_source_56;
66040 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
66041 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
66042 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
66043 l_rec_acct_attrs.array_char_value(39) := p_source_48;
66044 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
66045 l_rec_acct_attrs.array_num_value(40) := p_source_58;
66046 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
66047 l_rec_acct_attrs.array_num_value(41) := p_source_66;
66048 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
66049 l_rec_acct_attrs.array_num_value(42) := p_source_59;
66050 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
66051 l_rec_acct_attrs.array_num_value(43) := p_source_96;
66052 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
66056 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66053 l_rec_acct_attrs.array_num_value(44) := p_source_97;
66054
66055 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66057
66058 ---------------------------------------------------------------------------------------------------------------
66059 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66060 ---------------------------------------------------------------------------------------------------------------
66061 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66062
66063 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66064 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66065
66066 IF xla_accounting_cache_pkg.GetValueChar
66067 (p_source_code => 'LEDGER_CATEGORY_CODE'
66068 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66069 AND l_bflow_method_code = 'PRIOR_ENTRY'
66070 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66071 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66072 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66073 )
66074 THEN
66075 xla_ae_lines_pkg.BflowUpgEntry
66076 (p_business_method_code => l_bflow_method_code
66077 ,p_business_class_code => l_bflow_class_code
66078 ,p_balance_type => l_balance_type_code);
66079 ELSE
66080 NULL;
66081 -- No business flow processing for business flow method of NONE.
66082 END IF;
66083
66084 --
66085 -- call analytical criteria
66086 --
66087
66088 --
66089 -- call description
66090 --
66091 -- No description or it is inherited.
66092 --
66093 -- call ADRs
66094 -- Bug 4922099
66095 --
66096 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66097 (NVL(l_actual_upg_option, 'N') = 'O') OR
66098 (NVL(l_enc_upg_option, 'N') = 'O')
66099 )
66100 THEN
66101 NULL;
66102 --
66103 --
66104
66105 l_ccid := AcctDerRule_33(
66106 p_application_id => p_application_id
66107 , p_ae_header_id => l_ae_header_id
66108 , p_source_36 => p_source_36
66109 , x_transaction_coa_id => l_adr_transaction_coa_id
66110 , x_accounting_coa_id => l_adr_accounting_coa_id
66111 , x_value_type_code => l_adr_value_type_code
66112 , p_side => 'NA'
66113 );
66114
66115 xla_ae_lines_pkg.set_ccid(
66116 p_code_combination_id => l_ccid
66117 , p_value_type_code => l_adr_value_type_code
66118 , p_transaction_coa_id => l_adr_transaction_coa_id
66119 , p_accounting_coa_id => l_adr_accounting_coa_id
66120 , p_adr_code => 'AP_RECP_INV_DIST'
66121 , p_adr_type_code => 'S'
66122 , p_component_type => l_component_type
66123 , p_component_code => l_component_code
66124 , p_component_type_code => l_component_type_code
66125 , p_component_appl_id => l_component_appl_id
66126 , p_amb_context_code => l_amb_context_code
66127 , p_side => 'NA'
66128 );
66129
66130
66131 --
66132 --
66133 END IF;
66134 --
66135 -- Bug 4922099
66136 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66137 (NVL(l_enc_upg_option, 'N') = 'O')
66138 ) AND
66139 (l_bflow_method_code = 'PRIOR_ENTRY')
66140 )
66141 THEN
66142 IF
66143 --
66144 1 = 2
66145 --
66146 THEN
66147 xla_accounting_err_pkg.build_message
66148 (p_appli_s_name => 'XLA'
66149 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66150 ,p_token_1 => 'LINE_NUMBER'
66151 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
66152 ,p_token_2 => 'LINE_TYPE_NAME'
66153 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
66154 l_component_type
66155 ,l_component_code
66156 ,l_component_type_code
66157 ,l_component_appl_id
66158 ,l_amb_context_code
66159 ,l_entity_code
66160 ,l_event_class_code
66161 )
66162 ,p_token_3 => 'OWNER'
66163 ,p_value_3 => xla_lookups_pkg.get_meaning(
66167 ,p_token_4 => 'PRODUCT_NAME'
66164 p_lookup_type => 'XLA_OWNER_TYPE'
66165 ,p_lookup_code => l_component_type_code
66166 )
66168 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66169 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66170 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66171 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66172 ,p_ae_header_id => NULL
66173 );
66174
66175 IF (C_LEVEL_ERROR>= g_log_level) THEN
66176 trace
66177 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66178 ,p_level => C_LEVEL_ERROR
66179 ,p_module => l_log_module);
66180 END IF;
66181 END IF;
66182 END IF;
66183 --
66184 --
66185 ------------------------------------------------------------------------------------------------
66186 -- 4219869 Business Flow
66187 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66188 -- Prior Entry. Currently, the following code is always generated.
66189 ------------------------------------------------------------------------------------------------
66190 XLA_AE_LINES_PKG.ValidateCurrentLine;
66191
66192 ------------------------------------------------------------------------------------
66193 -- 4219869 Business Flow
66194 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66195 ------------------------------------------------------------------------------------
66196 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66197
66198 ----------------------------------------------------------------------------------
66199 -- 4219869 Business Flow
66200 -- Update journal entry status -- Need to generate this within IF <condition>
66201 ----------------------------------------------------------------------------------
66202 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66203 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66204 ,p_balance_type_code => l_balance_type_code
66205 );
66206
66207 -------------------------------------------------------------------------------------------
66208 -- 4262811 - Generate the Accrual Reversal lines
66209 -------------------------------------------------------------------------------------------
66210 BEGIN
66211 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66212 (g_array_event(p_event_id).array_value_num('header_index'));
66213 IF l_acc_rev_flag IS NULL THEN
66214 l_acc_rev_flag := 'N';
66215 END IF;
66216 EXCEPTION
66217 WHEN OTHERS THEN
66218 l_acc_rev_flag := 'N';
66219 END;
66220 --
66221 IF (l_acc_rev_flag = 'Y') THEN
66222
66223 -- 4645092 ------------------------------------------------------------------------------
66224 -- To allow MPA report to determine if it should generate report process
66225 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66226 ------------------------------------------------------------------------------------------
66227
66228 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66229 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66230 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
66231 -- call ADRs
66232 -- Bug 4922099
66233 --
66234 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66235 (NVL(l_actual_upg_option, 'N') = 'O') OR
66236 (NVL(l_enc_upg_option, 'N') = 'O')
66237 )
66238 THEN
66239 NULL;
66240 --
66241 --
66242
66243 l_ccid := AcctDerRule_33(
66244 p_application_id => p_application_id
66245 , p_ae_header_id => l_ae_header_id
66246 , p_source_36 => p_source_36
66247 , x_transaction_coa_id => l_adr_transaction_coa_id
66248 , x_accounting_coa_id => l_adr_accounting_coa_id
66249 , x_value_type_code => l_adr_value_type_code
66250 , p_side => 'NA'
66251 );
66252
66253 xla_ae_lines_pkg.set_ccid(
66254 p_code_combination_id => l_ccid
66255 , p_value_type_code => l_adr_value_type_code
66256 , p_transaction_coa_id => l_adr_transaction_coa_id
66257 , p_accounting_coa_id => l_adr_accounting_coa_id
66258 , p_adr_code => 'AP_RECP_INV_DIST'
66259 , p_adr_type_code => 'S'
66260 , p_component_type => l_component_type
66261 , p_component_code => l_component_code
66262 , p_component_type_code => l_component_type_code
66263 , p_component_appl_id => l_component_appl_id
66264 , p_amb_context_code => l_amb_context_code
66265 , p_side => 'NA'
66266 );
66267
66268
66269 --
66270 --
66271 END IF;
66272
66273 --
66277 p_header_num => 1);
66274 -- Update the line information that should be overwritten
66275 --
66276 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66278 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
66279
66280 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66281
66282 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
66283 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66284 END IF;
66285
66286 --
66287 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66288 --
66289 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66290 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
66291 ELSE
66292 ---------------------------------------------------------------------------------------------------
66293 -- 4262811a Switch Sign
66294 ---------------------------------------------------------------------------------------------------
66295 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
66296 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66298 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66299 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66300 -- 5132302
66301 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66302 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66303
66304 END IF;
66305
66306 -- 4955764
66307 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66308 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66309
66310
66311 XLA_AE_LINES_PKG.ValidateCurrentLine;
66312 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66313
66314 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66315 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66316 ,p_balance_type_code => l_balance_type_code);
66317
66318 END IF;
66319
66320 -----------------------------------------------------------------------------------------
66321 -- 4262811 Multiperiod Accounting
66322 -----------------------------------------------------------------------------------------
66323 -- No MPA option is assigned.
66324
66325
66326 END IF;
66327 END IF;
66328 --
66329
66330 --
66331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66332 trace
66333 (p_msg => 'END of AcctLineType_124'
66334 ,p_level => C_LEVEL_PROCEDURE
66335 ,p_module => l_log_module);
66336 END IF;
66337 --
66338 EXCEPTION
66339 WHEN xla_exceptions_pkg.application_exception THEN
66340 RAISE;
66341 WHEN OTHERS THEN
66342 xla_exceptions_pkg.raise_message
66343 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_124');
66344 END AcctLineType_124;
66345 --
66346
66347 ---------------------------------------
66348 --
66349 -- PRIVATE FUNCTION
66350 -- AcctLineType_125
66351 --
66352 ---------------------------------------
66353 PROCEDURE AcctLineType_125 (
66354 p_application_id IN NUMBER
66355 ,p_event_id IN NUMBER
66356 ,p_calculate_acctd_flag IN VARCHAR2
66357 ,p_calculate_g_l_flag IN VARCHAR2
66358 ,p_actual_flag IN OUT VARCHAR2
66359 ,p_balance_type_code OUT VARCHAR2
66360 ,p_gain_or_loss_ref OUT VARCHAR2
66361
66362 --Automatic Offsets Value
66363 , p_source_4 IN VARCHAR2
66364 , p_source_4_meaning IN VARCHAR2
66365 --Invoice Distribution Account
66366 , p_source_17 IN NUMBER
66367 --Internal Realized Loss Account
66368 , p_source_34 IN NUMBER
66369 --Bank Loss Account
66370 , p_source_35 IN NUMBER
66371 --When to Account for Payment Option
66372 , p_source_38 IN VARCHAR2
66373 --Payment Distribution Type
66374 , p_source_39 IN VARCHAR2
66375 , p_source_39_meaning IN VARCHAR2
66376 --Accounting Reversal Indicator
66377 , p_source_40 IN VARCHAR2
66378 --Payment Distribution Amount
66379 , p_source_41 IN NUMBER
66380 --Business Flow Accounts Payable Application Identifier
66381 , p_source_42 IN NUMBER
66382 --Business Flow Payment Distribution Type
66383 , p_source_43 IN VARCHAR2
66384 --Business Flow Payment Entity Code
66385 , p_source_44 IN VARCHAR2
66386 --Business Flow Payment Distribution Identifier
66387 , p_source_45 IN NUMBER
66388 --Business Flow Payment Identifier
66389 , p_source_46 IN NUMBER
66390 --Payment Distribution Identifier
66391 , p_source_47 IN NUMBER
66392 --Distribution Link Type
66393 , p_source_48 IN VARCHAR2
66394 --Payment Currency Code
66398 , p_source_53_meaning IN VARCHAR2
66395 , p_source_49 IN VARCHAR2
66396 --Override Accounted Amount Indicator
66397 , p_source_53 IN VARCHAR2
66399 --Payment Supplier Identifier
66400 , p_source_54 IN NUMBER
66401 --Payment Supplier Site Identifier
66402 , p_source_55 IN NUMBER
66403 --Third Party Type
66404 , p_source_56 IN VARCHAR2
66405 --Payment Distribution Reversed Identifier
66406 , p_source_57 IN NUMBER
66407 --Invoice Distribution Tax Line Identifier
66408 , p_source_58 IN NUMBER
66409 --Invoice Distribution Summary Tax Line Identifier
66410 , p_source_59 IN NUMBER
66411 --Cleared Exchange Date
66412 , p_source_107 IN DATE
66413 --Cleared Exchange Rate
66414 , p_source_108 IN NUMBER
66415 --Cleared Exchange Rate Type
66416 , p_source_109 IN VARCHAR2
66417 --Payment Maturity Date
66418 , p_source_111 IN DATE
66419 --Gain or Loss Indicator between Maturity and Clearing
66420 , p_source_129 IN VARCHAR2
66421 --Maturity/Clearing Ledger Amount Difference
66422 , p_source_130 IN NUMBER
66423 )
66424 IS
66425
66426 l_component_type VARCHAR2(80);
66427 l_component_code VARCHAR2(30);
66428 l_component_type_code VARCHAR2(1);
66429 l_component_appl_id INTEGER;
66430 l_amb_context_code VARCHAR2(30);
66431 l_entity_code VARCHAR2(30);
66432 l_event_class_code VARCHAR2(30);
66433 l_ae_header_id NUMBER;
66434 l_event_type_code VARCHAR2(30);
66435 l_line_definition_code VARCHAR2(30);
66436 l_line_definition_owner_code VARCHAR2(1);
66437 --
66438 -- adr variables
66439 l_segment VARCHAR2(30);
66440 l_ccid NUMBER;
66441 l_adr_transaction_coa_id NUMBER;
66442 l_adr_accounting_coa_id NUMBER;
66443 l_adr_flexfield_segment_code VARCHAR2(30);
66444 l_adr_flex_value_set_id NUMBER;
66445 l_adr_value_type_code VARCHAR2(30);
66446 l_adr_value_combination_id NUMBER;
66447 l_adr_value_segment_code VARCHAR2(30);
66448
66449 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
66450 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
66451 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
66452 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
66453
66454 -- 4262811 Variables ------------------------------------------------------------------------------------------
66455 l_entered_amt_idx NUMBER;
66456 l_accted_amt_idx NUMBER;
66457 l_acc_rev_flag VARCHAR2(1);
66458 l_accrual_line_num NUMBER;
66459 l_tmp_amt NUMBER;
66460 l_acc_rev_natural_side_code VARCHAR2(1);
66461
66462 l_num_entries NUMBER;
66463 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
66464 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
66465 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
66466 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
66467 l_recog_line_1 NUMBER;
66468 l_recog_line_2 NUMBER;
66469
66470 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
66471 l_bflow_applied_to_amt NUMBER; -- 5132302
66472 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
66473
66474 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66475
66476 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
66477 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
66478
66479 ---------------------------------------------------------------------------------------------------------------
66480
66481
66482 --
66483 -- bulk performance
66484 --
66485 l_balance_type_code VARCHAR2(1);
66486 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66487 l_log_module VARCHAR2(240);
66488
66489 --
66490 -- Upgrade strategy
66491 --
66492 l_actual_upg_option VARCHAR2(1);
66493 l_enc_upg_option VARCHAR2(1);
66494
66495 --
66496 BEGIN
66497 --
66498 IF g_log_enabled THEN
66499 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
66500 END IF;
66501 --
66502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66503
66504 trace
66505 (p_msg => 'BEGIN of AcctLineType_125'
66506 ,p_level => C_LEVEL_PROCEDURE
66507 ,p_module => l_log_module);
66508
66509 END IF;
66510 --
66511 l_component_type := 'AMB_JLT';
66512 l_component_code := 'AP_LOSS_MAT_CLEAR';
66513 l_component_type_code := 'S';
66514 l_component_appl_id := 200;
66515 l_amb_context_code := 'DEFAULT';
66516 l_entity_code := 'AP_PAYMENTS';
66517 l_event_class_code := 'RECONCILED PAYMENTS';
66518 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
66519 l_line_definition_owner_code := 'S';
66520 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
66521 --
66522 l_balance_type_code := 'A';
66523 l_segment := NULL;
66524 l_ccid := NULL;
66525 l_adr_transaction_coa_id := NULL;
66529 l_adr_value_type_code := NULL;
66526 l_adr_accounting_coa_id := NULL;
66527 l_adr_flexfield_segment_code := NULL;
66528 l_adr_flex_value_set_id := NULL;
66530 l_adr_value_combination_id := NULL;
66531 l_adr_value_segment_code := NULL;
66532
66533 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
66534 l_bflow_class_code := ''; -- 4219869 Business Flow
66535 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
66536 l_budgetary_control_flag := 'N';
66537
66538 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66539 l_bflow_applied_to_amt := NULL; -- 5132302
66540 l_entered_amt_idx := NULL; -- 4262811
66541 l_accted_amt_idx := NULL; -- 4262811
66542 l_acc_rev_flag := NULL; -- 4262811
66543 l_accrual_line_num := NULL; -- 4262811
66544 l_tmp_amt := NULL; -- 4262811
66545 --
66546 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66547 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
66548 return;
66549 END IF;
66550
66551 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66552 l_balance_type_code <> 'B' THEN
66553 IF NVL(p_source_38,'
66554 ') = 'ALWAYS_ALWAYS' AND
66555 p_source_111 IS NOT NULL AND
66556 NVL(p_source_129,'
66557 ') = 'LOSS' AND
66558 NVL(p_source_39,'
66559 ') <> 'EXCHANGE RATE VARIANCE' AND
66560 NVL(p_source_39,'
66561 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
66562 NVL(p_source_39,'
66563 ') <> 'BANK CHARGE' AND
66564 NVL(p_source_39,'
66565 ') <> 'BANK ERROR'
66566 THEN
66567
66568 --
66569 XLA_AE_LINES_PKG.SetNewLine;
66570
66571 p_balance_type_code := l_balance_type_code;
66572 -- set the flag so later we will know whether the gain loss line needs to be created
66573
66574 IF(l_balance_type_code = 'A' ) THEN
66575 p_actual_flag :='G';
66576 END IF;
66577
66578 --
66579 -- bulk performance
66580 --
66581 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66582 p_header_num => 0); -- 4262811
66583 --
66584 -- set accounting line options
66585 --
66586 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66587 p_natural_side_code => 'C'
66588 , p_gain_or_loss_flag => 'Y'
66589 , p_gl_transfer_mode_code => 'S'
66590 , p_acct_entry_type_code => 'A'
66591 , p_switch_side_flag => 'Y'
66592 , p_merge_duplicate_code => 'A'
66593 );
66594 --
66595 l_acc_rev_natural_side_code := 'D'; -- 4262811
66596 --
66597 --
66598 -- set accounting line type info
66599 --
66600 xla_ae_lines_pkg.SetAcctLineType
66601 (p_component_type => l_component_type
66602 ,p_event_type_code => l_event_type_code
66603 ,p_line_definition_owner_code => l_line_definition_owner_code
66604 ,p_line_definition_code => l_line_definition_code
66605 ,p_accounting_line_code => l_component_code
66606 ,p_accounting_line_type_code => l_component_type_code
66607 ,p_accounting_line_appl_id => l_component_appl_id
66608 ,p_amb_context_code => l_amb_context_code
66609 ,p_entity_code => l_entity_code
66610 ,p_event_class_code => l_event_class_code);
66611 --
66612 -- set accounting class
66613 --
66614 xla_ae_lines_pkg.SetAcctClass(
66615 p_accounting_class_code => 'LOSS'
66616 , p_ae_header_id => l_ae_header_id
66617 );
66618
66619 --
66620 -- set rounding class
66621 --
66622 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66623 'LOSS';
66624
66625 --
66626 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66627 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66628 --
66629 -- bulk performance
66630 --
66631 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66632
66633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66634 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66635
66636 -- 4955764
66637 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66638 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66639
66640 -- 4458381 Public Sector Enh
66641
66642 --
66643 -- set accounting attributes for the line type
66644 --
66645 l_entered_amt_idx := 10;
66646 l_accted_amt_idx := 15;
66647 l_bflow_applied_to_amt_idx := 2; -- 5132302
66648 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66649 l_rec_acct_attrs.array_char_value(1) := p_source_40;
66650 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66654 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66651 l_rec_acct_attrs.array_num_value(2) := p_source_41;
66652 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66653 l_rec_acct_attrs.array_num_value(3) := p_source_42;
66655 l_rec_acct_attrs.array_char_value(4) := p_source_43;
66656 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66657 l_rec_acct_attrs.array_char_value(5) := p_source_44;
66658 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66659 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
66660 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66661 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
66662 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66663 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
66664 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66665 l_rec_acct_attrs.array_char_value(9) := p_source_48;
66666 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
66667 l_rec_acct_attrs.array_num_value(10) := p_source_41;
66668 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
66669 l_rec_acct_attrs.array_char_value(11) := p_source_49;
66670 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
66671 l_rec_acct_attrs.array_date_value(12) := p_source_107;
66672 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
66673 l_rec_acct_attrs.array_num_value(13) := p_source_108;
66674 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
66675 l_rec_acct_attrs.array_char_value(14) := p_source_109;
66676 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
66677 l_rec_acct_attrs.array_num_value(15) := p_source_130;
66678 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
66679 l_rec_acct_attrs.array_char_value(16) := p_source_53;
66680 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
66681 l_rec_acct_attrs.array_num_value(17) := p_source_54;
66682 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
66683 l_rec_acct_attrs.array_num_value(18) := p_source_55;
66684 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
66685 l_rec_acct_attrs.array_char_value(19) := p_source_56;
66686 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
66687 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
66688 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
66689 l_rec_acct_attrs.array_char_value(21) := p_source_48;
66690 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
66691 l_rec_acct_attrs.array_num_value(22) := p_source_58;
66692 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
66693 l_rec_acct_attrs.array_num_value(23) := p_source_58;
66694 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
66695 l_rec_acct_attrs.array_num_value(24) := p_source_59;
66696
66697 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66698 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66699
66700 ---------------------------------------------------------------------------------------------------------------
66701 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66702 ---------------------------------------------------------------------------------------------------------------
66703 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66704
66705 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66706 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66707
66708 IF xla_accounting_cache_pkg.GetValueChar
66709 (p_source_code => 'LEDGER_CATEGORY_CODE'
66710 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66711 AND l_bflow_method_code = 'PRIOR_ENTRY'
66712 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66713 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66714 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66715 )
66716 THEN
66717 xla_ae_lines_pkg.BflowUpgEntry
66718 (p_business_method_code => l_bflow_method_code
66719 ,p_business_class_code => l_bflow_class_code
66720 ,p_balance_type => l_balance_type_code);
66721 ELSE
66722 NULL;
66723 -- No business flow processing for business flow method of NONE.
66724 END IF;
66725
66726 --
66727 -- call analytical criteria
66728 --
66729
66730 --
66731 -- call description
66732 --
66733 -- No description or it is inherited.
66734 --
66735 -- call ADRs
66736 -- Bug 4922099
66737 --
66738 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66739 (NVL(l_actual_upg_option, 'N') = 'O') OR
66740 (NVL(l_enc_upg_option, 'N') = 'O')
66741 )
66742 THEN
66743 NULL;
66744 --
66745 --
66746
66747 l_ccid := AcctDerRule_32(
66748 p_application_id => p_application_id
66749 , p_ae_header_id => l_ae_header_id
66750 , p_source_4 => p_source_4
66751 , p_source_4_meaning => p_source_4_meaning
66755 , x_transaction_coa_id => l_adr_transaction_coa_id
66752 , p_source_17 => p_source_17
66753 , p_source_34 => p_source_34
66754 , p_source_35 => p_source_35
66756 , x_accounting_coa_id => l_adr_accounting_coa_id
66757 , x_value_type_code => l_adr_value_type_code
66758 , p_side => 'NA'
66759 );
66760
66761 xla_ae_lines_pkg.set_ccid(
66762 p_code_combination_id => l_ccid
66763 , p_value_type_code => l_adr_value_type_code
66764 , p_transaction_coa_id => l_adr_transaction_coa_id
66765 , p_accounting_coa_id => l_adr_accounting_coa_id
66766 , p_adr_code => 'AP_REAL_LOSS'
66767 , p_adr_type_code => 'S'
66768 , p_component_type => l_component_type
66769 , p_component_code => l_component_code
66770 , p_component_type_code => l_component_type_code
66771 , p_component_appl_id => l_component_appl_id
66772 , p_amb_context_code => l_amb_context_code
66773 , p_side => 'NA'
66774 );
66775
66776
66777 --
66778 --
66779 END IF;
66780 --
66781 -- Bug 4922099
66782 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66783 (NVL(l_enc_upg_option, 'N') = 'O')
66784 ) AND
66785 (l_bflow_method_code = 'PRIOR_ENTRY')
66786 )
66787 THEN
66788 IF
66789 --
66790 1 = 2
66791 --
66792 THEN
66793 xla_accounting_err_pkg.build_message
66794 (p_appli_s_name => 'XLA'
66795 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66796 ,p_token_1 => 'LINE_NUMBER'
66797 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
66798 ,p_token_2 => 'LINE_TYPE_NAME'
66799 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
66800 l_component_type
66801 ,l_component_code
66802 ,l_component_type_code
66803 ,l_component_appl_id
66804 ,l_amb_context_code
66805 ,l_entity_code
66806 ,l_event_class_code
66807 )
66808 ,p_token_3 => 'OWNER'
66809 ,p_value_3 => xla_lookups_pkg.get_meaning(
66810 p_lookup_type => 'XLA_OWNER_TYPE'
66811 ,p_lookup_code => l_component_type_code
66812 )
66813 ,p_token_4 => 'PRODUCT_NAME'
66814 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66815 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66816 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66817 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66818 ,p_ae_header_id => NULL
66819 );
66820
66821 IF (C_LEVEL_ERROR>= g_log_level) THEN
66822 trace
66823 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66824 ,p_level => C_LEVEL_ERROR
66825 ,p_module => l_log_module);
66826 END IF;
66827 END IF;
66828 END IF;
66829 --
66830 --
66831 ------------------------------------------------------------------------------------------------
66832 -- 4219869 Business Flow
66833 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66834 -- Prior Entry. Currently, the following code is always generated.
66835 ------------------------------------------------------------------------------------------------
66836 XLA_AE_LINES_PKG.ValidateCurrentLine;
66837
66838 ------------------------------------------------------------------------------------
66839 -- 4219869 Business Flow
66840 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66841 ------------------------------------------------------------------------------------
66842 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66843
66844 ----------------------------------------------------------------------------------
66845 -- 4219869 Business Flow
66846 -- Update journal entry status -- Need to generate this within IF <condition>
66847 ----------------------------------------------------------------------------------
66848 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66849 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66853 -------------------------------------------------------------------------------------------
66850 ,p_balance_type_code => l_balance_type_code
66851 );
66852
66854 -- 4262811 - Generate the Accrual Reversal lines
66855 -------------------------------------------------------------------------------------------
66856 BEGIN
66857 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66858 (g_array_event(p_event_id).array_value_num('header_index'));
66859 IF l_acc_rev_flag IS NULL THEN
66860 l_acc_rev_flag := 'N';
66861 END IF;
66862 EXCEPTION
66863 WHEN OTHERS THEN
66864 l_acc_rev_flag := 'N';
66865 END;
66866 --
66867 IF (l_acc_rev_flag = 'Y') THEN
66868
66869 -- 4645092 ------------------------------------------------------------------------------
66870 -- To allow MPA report to determine if it should generate report process
66871 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66872 ------------------------------------------------------------------------------------------
66873
66874 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66875 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66876 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
66877 -- call ADRs
66878 -- Bug 4922099
66879 --
66880 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66881 (NVL(l_actual_upg_option, 'N') = 'O') OR
66882 (NVL(l_enc_upg_option, 'N') = 'O')
66883 )
66884 THEN
66885 NULL;
66886 --
66887 --
66888
66889 l_ccid := AcctDerRule_32(
66890 p_application_id => p_application_id
66891 , p_ae_header_id => l_ae_header_id
66892 , p_source_4 => p_source_4
66893 , p_source_4_meaning => p_source_4_meaning
66894 , p_source_17 => p_source_17
66895 , p_source_34 => p_source_34
66896 , p_source_35 => p_source_35
66897 , x_transaction_coa_id => l_adr_transaction_coa_id
66898 , x_accounting_coa_id => l_adr_accounting_coa_id
66899 , x_value_type_code => l_adr_value_type_code
66900 , p_side => 'NA'
66901 );
66902
66903 xla_ae_lines_pkg.set_ccid(
66904 p_code_combination_id => l_ccid
66905 , p_value_type_code => l_adr_value_type_code
66906 , p_transaction_coa_id => l_adr_transaction_coa_id
66907 , p_accounting_coa_id => l_adr_accounting_coa_id
66908 , p_adr_code => 'AP_REAL_LOSS'
66909 , p_adr_type_code => 'S'
66910 , p_component_type => l_component_type
66911 , p_component_code => l_component_code
66912 , p_component_type_code => l_component_type_code
66913 , p_component_appl_id => l_component_appl_id
66914 , p_amb_context_code => l_amb_context_code
66915 , p_side => 'NA'
66916 );
66917
66918
66919 --
66920 --
66921 END IF;
66922
66923 --
66924 -- Update the line information that should be overwritten
66925 --
66926 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66927 p_header_num => 1);
66928 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
66929
66930 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66931
66932 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
66933 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66934 END IF;
66935
66936 --
66937 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66938 --
66939 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66940 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
66941 ELSE
66942 ---------------------------------------------------------------------------------------------------
66943 -- 4262811a Switch Sign
66944 ---------------------------------------------------------------------------------------------------
66945 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
66946 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66947 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66948 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66949 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66950 -- 5132302
66951 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66952 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66953
66954 END IF;
66955
66956 -- 4955764
66957 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66958 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66959
66960
66961 XLA_AE_LINES_PKG.ValidateCurrentLine;
66965 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66962 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66963
66964 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66966 ,p_balance_type_code => l_balance_type_code);
66967
66968 END IF;
66969
66970 -----------------------------------------------------------------------------------------
66971 -- 4262811 Multiperiod Accounting
66972 -----------------------------------------------------------------------------------------
66973 -- No MPA option is assigned.
66974
66975
66976 END IF;
66977 END IF;
66978 --
66979
66980 --
66981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66982 trace
66983 (p_msg => 'END of AcctLineType_125'
66984 ,p_level => C_LEVEL_PROCEDURE
66985 ,p_module => l_log_module);
66986 END IF;
66987 --
66988 EXCEPTION
66989 WHEN xla_exceptions_pkg.application_exception THEN
66990 RAISE;
66991 WHEN OTHERS THEN
66992 xla_exceptions_pkg.raise_message
66993 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_125');
66994 END AcctLineType_125;
66995 --
66996
66997 ---------------------------------------
66998 --
66999 -- PRIVATE FUNCTION
67000 -- AcctLineType_126
67001 --
67002 ---------------------------------------
67003 PROCEDURE AcctLineType_126 (
67004 p_application_id IN NUMBER
67005 ,p_event_id IN NUMBER
67006 ,p_calculate_acctd_flag IN VARCHAR2
67007 ,p_calculate_g_l_flag IN VARCHAR2
67008 ,p_actual_flag IN OUT VARCHAR2
67009 ,p_balance_type_code OUT VARCHAR2
67010 ,p_gain_or_loss_ref OUT VARCHAR2
67011
67012 --Automatic Offsets Value
67013 , p_source_4 IN VARCHAR2
67014 , p_source_4_meaning IN VARCHAR2
67015 --Invoice Distribution Account
67016 , p_source_17 IN NUMBER
67017 --Internal Realized Loss Account
67018 , p_source_34 IN NUMBER
67019 --Bank Loss Account
67020 , p_source_35 IN NUMBER
67021 --When to Account for Payment Option
67022 , p_source_38 IN VARCHAR2
67023 --Payment Distribution Type
67024 , p_source_39 IN VARCHAR2
67025 , p_source_39_meaning IN VARCHAR2
67026 --Accounting Reversal Indicator
67027 , p_source_40 IN VARCHAR2
67028 --Payment Distribution Amount
67029 , p_source_41 IN NUMBER
67030 --Business Flow Accounts Payable Application Identifier
67031 , p_source_42 IN NUMBER
67032 --Business Flow Payment Distribution Type
67033 , p_source_43 IN VARCHAR2
67034 --Business Flow Payment Entity Code
67035 , p_source_44 IN VARCHAR2
67036 --Business Flow Payment Distribution Identifier
67037 , p_source_45 IN NUMBER
67038 --Business Flow Payment Identifier
67039 , p_source_46 IN NUMBER
67040 --Payment Distribution Identifier
67041 , p_source_47 IN NUMBER
67042 --Distribution Link Type
67043 , p_source_48 IN VARCHAR2
67044 --Payment Currency Code
67045 , p_source_49 IN VARCHAR2
67046 --Override Accounted Amount Indicator
67047 , p_source_53 IN VARCHAR2
67048 , p_source_53_meaning IN VARCHAR2
67049 --Payment Supplier Identifier
67050 , p_source_54 IN NUMBER
67051 --Payment Supplier Site Identifier
67052 , p_source_55 IN NUMBER
67053 --Third Party Type
67054 , p_source_56 IN VARCHAR2
67055 --Payment Distribution Reversed Identifier
67056 , p_source_57 IN NUMBER
67057 --Invoice Distribution Tax Line Identifier
67058 , p_source_58 IN NUMBER
67059 --Invoice Distribution Summary Tax Line Identifier
67060 , p_source_59 IN NUMBER
67061 --Cleared Exchange Date
67062 , p_source_107 IN DATE
67063 --Cleared Exchange Rate
67064 , p_source_108 IN NUMBER
67065 --Cleared Exchange Rate Type
67066 , p_source_109 IN VARCHAR2
67067 --Payment Maturity Date
67068 , p_source_111 IN DATE
67069 --Gain or Loss Indicator between Payment and Clearing
67070 , p_source_131 IN VARCHAR2
67071 --Payment/Clearing Ledger Amount Difference
67072 , p_source_132 IN NUMBER
67073 )
67074 IS
67075
67076 l_component_type VARCHAR2(80);
67077 l_component_code VARCHAR2(30);
67078 l_component_type_code VARCHAR2(1);
67079 l_component_appl_id INTEGER;
67080 l_amb_context_code VARCHAR2(30);
67081 l_entity_code VARCHAR2(30);
67082 l_event_class_code VARCHAR2(30);
67083 l_ae_header_id NUMBER;
67084 l_event_type_code VARCHAR2(30);
67085 l_line_definition_code VARCHAR2(30);
67086 l_line_definition_owner_code VARCHAR2(1);
67087 --
67088 -- adr variables
67089 l_segment VARCHAR2(30);
67090 l_ccid NUMBER;
67091 l_adr_transaction_coa_id NUMBER;
67092 l_adr_accounting_coa_id NUMBER;
67093 l_adr_flexfield_segment_code VARCHAR2(30);
67094 l_adr_flex_value_set_id NUMBER;
67095 l_adr_value_type_code VARCHAR2(30);
67096 l_adr_value_combination_id NUMBER;
67097 l_adr_value_segment_code VARCHAR2(30);
67098
67099 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
67100 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
67101 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
67105 l_entered_amt_idx NUMBER;
67102 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
67103
67104 -- 4262811 Variables ------------------------------------------------------------------------------------------
67106 l_accted_amt_idx NUMBER;
67107 l_acc_rev_flag VARCHAR2(1);
67108 l_accrual_line_num NUMBER;
67109 l_tmp_amt NUMBER;
67110 l_acc_rev_natural_side_code VARCHAR2(1);
67111
67112 l_num_entries NUMBER;
67113 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
67114 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
67115 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
67116 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
67117 l_recog_line_1 NUMBER;
67118 l_recog_line_2 NUMBER;
67119
67120 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
67121 l_bflow_applied_to_amt NUMBER; -- 5132302
67122 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
67123
67124 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67125
67126 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
67127 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
67128
67129 ---------------------------------------------------------------------------------------------------------------
67130
67131
67132 --
67133 -- bulk performance
67134 --
67135 l_balance_type_code VARCHAR2(1);
67136 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
67137 l_log_module VARCHAR2(240);
67138
67139 --
67140 -- Upgrade strategy
67141 --
67142 l_actual_upg_option VARCHAR2(1);
67143 l_enc_upg_option VARCHAR2(1);
67144
67145 --
67146 BEGIN
67147 --
67148 IF g_log_enabled THEN
67149 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
67150 END IF;
67151 --
67152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67153
67154 trace
67155 (p_msg => 'BEGIN of AcctLineType_126'
67156 ,p_level => C_LEVEL_PROCEDURE
67157 ,p_module => l_log_module);
67158
67159 END IF;
67160 --
67161 l_component_type := 'AMB_JLT';
67162 l_component_code := 'AP_LOSS_PMT_CLEAR';
67163 l_component_type_code := 'S';
67164 l_component_appl_id := 200;
67165 l_amb_context_code := 'DEFAULT';
67166 l_entity_code := 'AP_PAYMENTS';
67167 l_event_class_code := 'RECONCILED PAYMENTS';
67168 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
67169 l_line_definition_owner_code := 'S';
67170 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
67171 --
67172 l_balance_type_code := 'A';
67173 l_segment := NULL;
67174 l_ccid := NULL;
67175 l_adr_transaction_coa_id := NULL;
67176 l_adr_accounting_coa_id := NULL;
67177 l_adr_flexfield_segment_code := NULL;
67178 l_adr_flex_value_set_id := NULL;
67179 l_adr_value_type_code := NULL;
67180 l_adr_value_combination_id := NULL;
67181 l_adr_value_segment_code := NULL;
67182
67183 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
67184 l_bflow_class_code := ''; -- 4219869 Business Flow
67185 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
67186 l_budgetary_control_flag := 'N';
67187
67188 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67189 l_bflow_applied_to_amt := NULL; -- 5132302
67190 l_entered_amt_idx := NULL; -- 4262811
67191 l_accted_amt_idx := NULL; -- 4262811
67192 l_acc_rev_flag := NULL; -- 4262811
67193 l_accrual_line_num := NULL; -- 4262811
67194 l_tmp_amt := NULL; -- 4262811
67195 --
67196 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67197 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
67198 return;
67199 END IF;
67200
67201 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67202 l_balance_type_code <> 'B' THEN
67203 IF NVL(p_source_38,'
67204 ') = 'ALWAYS_ALWAYS' AND
67205 p_source_111 IS NULL AND
67206 NVL(p_source_131,'
67207 ') = 'LOSS' AND
67208 NVL(p_source_39,'
67209 ') <> 'EXCHANGE RATE VARIANCE' AND
67210 NVL(p_source_39,'
67211 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
67212 NVL(p_source_39,'
67213 ') <> 'BANK CHARGE' AND
67214 NVL(p_source_39,'
67215 ') <> 'BANK ERROR' AND
67216 NVL(p_source_39,'
67217 ') <> 'AWT'
67218 THEN
67219
67220 --
67221 XLA_AE_LINES_PKG.SetNewLine;
67222
67223 p_balance_type_code := l_balance_type_code;
67224 -- set the flag so later we will know whether the gain loss line needs to be created
67225
67226 IF(l_balance_type_code = 'A' ) THEN
67227 p_actual_flag :='G';
67228 END IF;
67229
67230 --
67231 -- bulk performance
67232 --
67236 -- set accounting line options
67233 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67234 p_header_num => 0); -- 4262811
67235 --
67237 --
67238 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67239 p_natural_side_code => 'C'
67240 , p_gain_or_loss_flag => 'Y'
67241 , p_gl_transfer_mode_code => 'S'
67242 , p_acct_entry_type_code => 'A'
67243 , p_switch_side_flag => 'Y'
67244 , p_merge_duplicate_code => 'A'
67245 );
67246 --
67247 l_acc_rev_natural_side_code := 'D'; -- 4262811
67248 --
67249 --
67250 -- set accounting line type info
67251 --
67252 xla_ae_lines_pkg.SetAcctLineType
67253 (p_component_type => l_component_type
67254 ,p_event_type_code => l_event_type_code
67255 ,p_line_definition_owner_code => l_line_definition_owner_code
67256 ,p_line_definition_code => l_line_definition_code
67257 ,p_accounting_line_code => l_component_code
67258 ,p_accounting_line_type_code => l_component_type_code
67259 ,p_accounting_line_appl_id => l_component_appl_id
67260 ,p_amb_context_code => l_amb_context_code
67261 ,p_entity_code => l_entity_code
67262 ,p_event_class_code => l_event_class_code);
67263 --
67264 -- set accounting class
67265 --
67266 xla_ae_lines_pkg.SetAcctClass(
67267 p_accounting_class_code => 'LOSS'
67268 , p_ae_header_id => l_ae_header_id
67269 );
67270
67271 --
67272 -- set rounding class
67273 --
67274 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67275 'LOSS';
67276
67277 --
67278 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67279 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67280 --
67281 -- bulk performance
67282 --
67283 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67284
67285 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67286 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67287
67288 -- 4955764
67289 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67290 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67291
67292 -- 4458381 Public Sector Enh
67293
67294 --
67295 -- set accounting attributes for the line type
67296 --
67297 l_entered_amt_idx := 10;
67298 l_accted_amt_idx := 15;
67299 l_bflow_applied_to_amt_idx := 2; -- 5132302
67300 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67301 l_rec_acct_attrs.array_char_value(1) := p_source_40;
67302 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
67303 l_rec_acct_attrs.array_num_value(2) := p_source_41;
67304 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
67305 l_rec_acct_attrs.array_num_value(3) := p_source_42;
67306 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67307 l_rec_acct_attrs.array_char_value(4) := p_source_43;
67308 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
67309 l_rec_acct_attrs.array_char_value(5) := p_source_44;
67310 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
67311 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
67312 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67313 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
67314 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
67315 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
67316 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
67317 l_rec_acct_attrs.array_char_value(9) := p_source_48;
67318 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
67319 l_rec_acct_attrs.array_num_value(10) := p_source_41;
67320 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
67321 l_rec_acct_attrs.array_char_value(11) := p_source_49;
67322 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
67323 l_rec_acct_attrs.array_date_value(12) := p_source_107;
67324 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
67325 l_rec_acct_attrs.array_num_value(13) := p_source_108;
67326 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
67327 l_rec_acct_attrs.array_char_value(14) := p_source_109;
67328 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
67329 l_rec_acct_attrs.array_num_value(15) := p_source_132;
67330 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
67331 l_rec_acct_attrs.array_char_value(16) := p_source_53;
67332 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
67333 l_rec_acct_attrs.array_num_value(17) := p_source_54;
67334 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
67335 l_rec_acct_attrs.array_num_value(18) := p_source_55;
67336 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
67337 l_rec_acct_attrs.array_char_value(19) := p_source_56;
67341 l_rec_acct_attrs.array_char_value(21) := p_source_48;
67338 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
67339 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
67340 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
67342 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
67343 l_rec_acct_attrs.array_num_value(22) := p_source_58;
67344 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
67345 l_rec_acct_attrs.array_num_value(23) := p_source_58;
67346 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
67347 l_rec_acct_attrs.array_num_value(24) := p_source_59;
67348
67349 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67350 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67351
67352 ---------------------------------------------------------------------------------------------------------------
67353 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67354 ---------------------------------------------------------------------------------------------------------------
67355 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67356
67357 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67358 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67359
67360 IF xla_accounting_cache_pkg.GetValueChar
67361 (p_source_code => 'LEDGER_CATEGORY_CODE'
67362 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67363 AND l_bflow_method_code = 'PRIOR_ENTRY'
67364 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67365 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67366 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67367 )
67368 THEN
67369 xla_ae_lines_pkg.BflowUpgEntry
67370 (p_business_method_code => l_bflow_method_code
67371 ,p_business_class_code => l_bflow_class_code
67372 ,p_balance_type => l_balance_type_code);
67373 ELSE
67374 NULL;
67375 -- No business flow processing for business flow method of NONE.
67376 END IF;
67377
67378 --
67379 -- call analytical criteria
67380 --
67381
67382 --
67383 -- call description
67384 --
67385 -- No description or it is inherited.
67386 --
67387 -- call ADRs
67388 -- Bug 4922099
67389 --
67390 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67391 (NVL(l_actual_upg_option, 'N') = 'O') OR
67392 (NVL(l_enc_upg_option, 'N') = 'O')
67393 )
67394 THEN
67395 NULL;
67396 --
67397 --
67398
67399 l_ccid := AcctDerRule_32(
67400 p_application_id => p_application_id
67401 , p_ae_header_id => l_ae_header_id
67402 , p_source_4 => p_source_4
67403 , p_source_4_meaning => p_source_4_meaning
67404 , p_source_17 => p_source_17
67405 , p_source_34 => p_source_34
67406 , p_source_35 => p_source_35
67407 , x_transaction_coa_id => l_adr_transaction_coa_id
67408 , x_accounting_coa_id => l_adr_accounting_coa_id
67409 , x_value_type_code => l_adr_value_type_code
67410 , p_side => 'NA'
67411 );
67412
67413 xla_ae_lines_pkg.set_ccid(
67414 p_code_combination_id => l_ccid
67415 , p_value_type_code => l_adr_value_type_code
67416 , p_transaction_coa_id => l_adr_transaction_coa_id
67417 , p_accounting_coa_id => l_adr_accounting_coa_id
67418 , p_adr_code => 'AP_REAL_LOSS'
67419 , p_adr_type_code => 'S'
67420 , p_component_type => l_component_type
67421 , p_component_code => l_component_code
67422 , p_component_type_code => l_component_type_code
67423 , p_component_appl_id => l_component_appl_id
67424 , p_amb_context_code => l_amb_context_code
67425 , p_side => 'NA'
67426 );
67427
67428
67429 --
67430 --
67431 END IF;
67432 --
67433 -- Bug 4922099
67434 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67435 (NVL(l_enc_upg_option, 'N') = 'O')
67436 ) AND
67437 (l_bflow_method_code = 'PRIOR_ENTRY')
67438 )
67439 THEN
67440 IF
67441 --
67442 1 = 2
67443 --
67444 THEN
67445 xla_accounting_err_pkg.build_message
67446 (p_appli_s_name => 'XLA'
67447 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67448 ,p_token_1 => 'LINE_NUMBER'
67449 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
67450 ,p_token_2 => 'LINE_TYPE_NAME'
67451 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
67452 l_component_type
67456 ,l_amb_context_code
67453 ,l_component_code
67454 ,l_component_type_code
67455 ,l_component_appl_id
67457 ,l_entity_code
67458 ,l_event_class_code
67459 )
67460 ,p_token_3 => 'OWNER'
67461 ,p_value_3 => xla_lookups_pkg.get_meaning(
67462 p_lookup_type => 'XLA_OWNER_TYPE'
67463 ,p_lookup_code => l_component_type_code
67464 )
67465 ,p_token_4 => 'PRODUCT_NAME'
67466 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67467 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67468 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67469 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67470 ,p_ae_header_id => NULL
67471 );
67472
67473 IF (C_LEVEL_ERROR>= g_log_level) THEN
67474 trace
67475 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67476 ,p_level => C_LEVEL_ERROR
67477 ,p_module => l_log_module);
67478 END IF;
67479 END IF;
67480 END IF;
67481 --
67482 --
67483 ------------------------------------------------------------------------------------------------
67484 -- 4219869 Business Flow
67485 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67486 -- Prior Entry. Currently, the following code is always generated.
67487 ------------------------------------------------------------------------------------------------
67488 XLA_AE_LINES_PKG.ValidateCurrentLine;
67489
67490 ------------------------------------------------------------------------------------
67491 -- 4219869 Business Flow
67492 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67493 ------------------------------------------------------------------------------------
67494 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67495
67496 ----------------------------------------------------------------------------------
67497 -- 4219869 Business Flow
67498 -- Update journal entry status -- Need to generate this within IF <condition>
67499 ----------------------------------------------------------------------------------
67500 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67501 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67502 ,p_balance_type_code => l_balance_type_code
67503 );
67504
67505 -------------------------------------------------------------------------------------------
67506 -- 4262811 - Generate the Accrual Reversal lines
67507 -------------------------------------------------------------------------------------------
67508 BEGIN
67509 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67510 (g_array_event(p_event_id).array_value_num('header_index'));
67511 IF l_acc_rev_flag IS NULL THEN
67512 l_acc_rev_flag := 'N';
67513 END IF;
67514 EXCEPTION
67515 WHEN OTHERS THEN
67516 l_acc_rev_flag := 'N';
67517 END;
67518 --
67519 IF (l_acc_rev_flag = 'Y') THEN
67520
67521 -- 4645092 ------------------------------------------------------------------------------
67522 -- To allow MPA report to determine if it should generate report process
67523 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67524 ------------------------------------------------------------------------------------------
67525
67526 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67527 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67528 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
67529 -- call ADRs
67530 -- Bug 4922099
67531 --
67532 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67533 (NVL(l_actual_upg_option, 'N') = 'O') OR
67534 (NVL(l_enc_upg_option, 'N') = 'O')
67535 )
67536 THEN
67537 NULL;
67538 --
67539 --
67540
67541 l_ccid := AcctDerRule_32(
67542 p_application_id => p_application_id
67543 , p_ae_header_id => l_ae_header_id
67544 , p_source_4 => p_source_4
67545 , p_source_4_meaning => p_source_4_meaning
67546 , p_source_17 => p_source_17
67547 , p_source_34 => p_source_34
67548 , p_source_35 => p_source_35
67549 , x_transaction_coa_id => l_adr_transaction_coa_id
67550 , x_accounting_coa_id => l_adr_accounting_coa_id
67551 , x_value_type_code => l_adr_value_type_code
67555 xla_ae_lines_pkg.set_ccid(
67552 , p_side => 'NA'
67553 );
67554
67556 p_code_combination_id => l_ccid
67557 , p_value_type_code => l_adr_value_type_code
67558 , p_transaction_coa_id => l_adr_transaction_coa_id
67559 , p_accounting_coa_id => l_adr_accounting_coa_id
67560 , p_adr_code => 'AP_REAL_LOSS'
67561 , p_adr_type_code => 'S'
67562 , p_component_type => l_component_type
67563 , p_component_code => l_component_code
67564 , p_component_type_code => l_component_type_code
67565 , p_component_appl_id => l_component_appl_id
67566 , p_amb_context_code => l_amb_context_code
67567 , p_side => 'NA'
67568 );
67569
67570
67571 --
67572 --
67573 END IF;
67574
67575 --
67576 -- Update the line information that should be overwritten
67577 --
67578 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67579 p_header_num => 1);
67580 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
67581
67582 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67583
67584 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
67585 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67586 END IF;
67587
67588 --
67589 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67590 --
67591 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67592 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
67593 ELSE
67594 ---------------------------------------------------------------------------------------------------
67595 -- 4262811a Switch Sign
67596 ---------------------------------------------------------------------------------------------------
67597 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
67598 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67599 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67600 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67601 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67602 -- 5132302
67603 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67604 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67605
67606 END IF;
67607
67608 -- 4955764
67609 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67610 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67611
67612
67613 XLA_AE_LINES_PKG.ValidateCurrentLine;
67614 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67615
67616 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67617 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67618 ,p_balance_type_code => l_balance_type_code);
67619
67620 END IF;
67621
67622 -----------------------------------------------------------------------------------------
67623 -- 4262811 Multiperiod Accounting
67624 -----------------------------------------------------------------------------------------
67625 -- No MPA option is assigned.
67626
67627
67628 END IF;
67629 END IF;
67630 --
67631
67632 --
67633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67634 trace
67635 (p_msg => 'END of AcctLineType_126'
67636 ,p_level => C_LEVEL_PROCEDURE
67637 ,p_module => l_log_module);
67638 END IF;
67639 --
67640 EXCEPTION
67641 WHEN xla_exceptions_pkg.application_exception THEN
67642 RAISE;
67643 WHEN OTHERS THEN
67644 xla_exceptions_pkg.raise_message
67645 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_126');
67646 END AcctLineType_126;
67647 --
67648
67649 ---------------------------------------
67650 --
67651 -- PRIVATE FUNCTION
67652 -- AcctLineType_127
67653 --
67654 ---------------------------------------
67655 PROCEDURE AcctLineType_127 (
67656 p_application_id IN NUMBER
67657 ,p_event_id IN NUMBER
67658 ,p_calculate_acctd_flag IN VARCHAR2
67659 ,p_calculate_g_l_flag IN VARCHAR2
67660 ,p_actual_flag IN OUT VARCHAR2
67661 ,p_balance_type_code OUT VARCHAR2
67662 ,p_gain_or_loss_ref OUT VARCHAR2
67663
67664 --Automatic Offsets Value
67665 , p_source_4 IN VARCHAR2
67666 , p_source_4_meaning IN VARCHAR2
67667 --Invoice Distribution Account
67668 , p_source_17 IN NUMBER
67669 --Internal Realized Loss Account
67670 , p_source_34 IN NUMBER
67671 --Bank Loss Account
67672 , p_source_35 IN NUMBER
67673 --When to Account for Payment Option
67674 , p_source_38 IN VARCHAR2
67675 --Payment Distribution Type
67679 , p_source_40 IN VARCHAR2
67676 , p_source_39 IN VARCHAR2
67677 , p_source_39_meaning IN VARCHAR2
67678 --Accounting Reversal Indicator
67680 --Payment Distribution Amount
67681 , p_source_41 IN NUMBER
67682 --Business Flow Accounts Payable Application Identifier
67683 , p_source_42 IN NUMBER
67684 --Business Flow Payment Distribution Type
67685 , p_source_43 IN VARCHAR2
67686 --Business Flow Payment Entity Code
67687 , p_source_44 IN VARCHAR2
67688 --Business Flow Payment Distribution Identifier
67689 , p_source_45 IN NUMBER
67690 --Business Flow Payment Identifier
67691 , p_source_46 IN NUMBER
67692 --Payment Distribution Identifier
67693 , p_source_47 IN NUMBER
67694 --Distribution Link Type
67695 , p_source_48 IN VARCHAR2
67696 --Payment Currency Code
67697 , p_source_49 IN VARCHAR2
67698 --Override Accounted Amount Indicator
67699 , p_source_53 IN VARCHAR2
67700 , p_source_53_meaning IN VARCHAR2
67701 --Payment Supplier Identifier
67702 , p_source_54 IN NUMBER
67703 --Payment Supplier Site Identifier
67704 , p_source_55 IN NUMBER
67705 --Third Party Type
67706 , p_source_56 IN VARCHAR2
67707 --Payment Distribution Reversed Identifier
67708 , p_source_57 IN NUMBER
67709 --Payment Maturity Date
67710 , p_source_111 IN DATE
67711 --Payment Exchange Date
67712 , p_source_114 IN DATE
67713 --Payment Exchange Rate
67714 , p_source_115 IN NUMBER
67715 --Payment Exchange Rate Type
67716 , p_source_116 IN VARCHAR2
67717 --Payment/Maturity Ledger Amount Difference
67718 , p_source_128 IN NUMBER
67719 --Gain or Loss Indicator between Payment and Maturity
67720 , p_source_133 IN VARCHAR2
67721 )
67722 IS
67723
67724 l_component_type VARCHAR2(80);
67725 l_component_code VARCHAR2(30);
67726 l_component_type_code VARCHAR2(1);
67727 l_component_appl_id INTEGER;
67728 l_amb_context_code VARCHAR2(30);
67729 l_entity_code VARCHAR2(30);
67730 l_event_class_code VARCHAR2(30);
67731 l_ae_header_id NUMBER;
67732 l_event_type_code VARCHAR2(30);
67733 l_line_definition_code VARCHAR2(30);
67734 l_line_definition_owner_code VARCHAR2(1);
67735 --
67736 -- adr variables
67737 l_segment VARCHAR2(30);
67738 l_ccid NUMBER;
67739 l_adr_transaction_coa_id NUMBER;
67740 l_adr_accounting_coa_id NUMBER;
67741 l_adr_flexfield_segment_code VARCHAR2(30);
67742 l_adr_flex_value_set_id NUMBER;
67743 l_adr_value_type_code VARCHAR2(30);
67744 l_adr_value_combination_id NUMBER;
67745 l_adr_value_segment_code VARCHAR2(30);
67746
67747 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
67748 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
67749 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
67750 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
67751
67752 -- 4262811 Variables ------------------------------------------------------------------------------------------
67753 l_entered_amt_idx NUMBER;
67754 l_accted_amt_idx NUMBER;
67755 l_acc_rev_flag VARCHAR2(1);
67756 l_accrual_line_num NUMBER;
67757 l_tmp_amt NUMBER;
67758 l_acc_rev_natural_side_code VARCHAR2(1);
67759
67760 l_num_entries NUMBER;
67761 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
67762 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
67763 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
67764 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
67765 l_recog_line_1 NUMBER;
67766 l_recog_line_2 NUMBER;
67767
67768 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
67769 l_bflow_applied_to_amt NUMBER; -- 5132302
67770 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
67771
67772 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67773
67774 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
67775 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
67776
67777 ---------------------------------------------------------------------------------------------------------------
67778
67779
67780 --
67781 -- bulk performance
67782 --
67783 l_balance_type_code VARCHAR2(1);
67784 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
67785 l_log_module VARCHAR2(240);
67786
67787 --
67788 -- Upgrade strategy
67789 --
67790 l_actual_upg_option VARCHAR2(1);
67791 l_enc_upg_option VARCHAR2(1);
67792
67793 --
67794 BEGIN
67795 --
67796 IF g_log_enabled THEN
67797 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
67798 END IF;
67799 --
67800 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67801
67802 trace
67803 (p_msg => 'BEGIN of AcctLineType_127'
67804 ,p_level => C_LEVEL_PROCEDURE
67805 ,p_module => l_log_module);
67806
67807 END IF;
67808 --
67809 l_component_type := 'AMB_JLT';
67813 l_amb_context_code := 'DEFAULT';
67810 l_component_code := 'AP_LOSS_PMT_MAT';
67811 l_component_type_code := 'S';
67812 l_component_appl_id := 200;
67814 l_entity_code := 'AP_PAYMENTS';
67815 l_event_class_code := 'FUTURE DATED PAYMENTS';
67816 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
67817 l_line_definition_owner_code := 'S';
67818 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
67819 --
67820 l_balance_type_code := 'A';
67821 l_segment := NULL;
67822 l_ccid := NULL;
67823 l_adr_transaction_coa_id := NULL;
67824 l_adr_accounting_coa_id := NULL;
67825 l_adr_flexfield_segment_code := NULL;
67826 l_adr_flex_value_set_id := NULL;
67827 l_adr_value_type_code := NULL;
67828 l_adr_value_combination_id := NULL;
67829 l_adr_value_segment_code := NULL;
67830
67831 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
67832 l_bflow_class_code := ''; -- 4219869 Business Flow
67833 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
67834 l_budgetary_control_flag := 'N';
67835
67836 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67837 l_bflow_applied_to_amt := NULL; -- 5132302
67838 l_entered_amt_idx := NULL; -- 4262811
67839 l_accted_amt_idx := NULL; -- 4262811
67840 l_acc_rev_flag := NULL; -- 4262811
67841 l_accrual_line_num := NULL; -- 4262811
67842 l_tmp_amt := NULL; -- 4262811
67843 --
67844 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67845 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
67846 return;
67847 END IF;
67848
67849 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67850 l_balance_type_code <> 'B' THEN
67851 IF (NVL(p_source_38,'
67852 ') = 'ALWAYS_ALWAYS' OR
67853 NVL(p_source_38,'
67854 ') = 'ISSUE_ISSUE') AND
67855 p_source_111 IS NOT NULL AND
67856 NVL(p_source_133,'
67857 ') = 'LOSS' AND
67858 NVL(p_source_39,'
67859 ') <> 'EXCHANGE RATE VARIANCE' AND
67860 NVL(p_source_39,'
67861 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
67862 NVL(p_source_39,'
67863 ') <> 'BANK CHARGE' AND
67864 NVL(p_source_39,'
67865 ') <> 'BANK ERROR' AND
67866 NVL(p_source_39,'
67867 ') <> 'AWT'
67868 THEN
67869
67870 --
67871 XLA_AE_LINES_PKG.SetNewLine;
67872
67873 p_balance_type_code := l_balance_type_code;
67874 -- set the flag so later we will know whether the gain loss line needs to be created
67875
67876 IF(l_balance_type_code = 'A' ) THEN
67877 p_actual_flag :='G';
67878 END IF;
67879
67880 --
67881 -- bulk performance
67882 --
67883 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67884 p_header_num => 0); -- 4262811
67885 --
67886 -- set accounting line options
67887 --
67888 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67889 p_natural_side_code => 'C'
67890 , p_gain_or_loss_flag => 'Y'
67891 , p_gl_transfer_mode_code => 'S'
67892 , p_acct_entry_type_code => 'A'
67893 , p_switch_side_flag => 'Y'
67894 , p_merge_duplicate_code => 'A'
67895 );
67896 --
67897 l_acc_rev_natural_side_code := 'D'; -- 4262811
67898 --
67899 --
67900 -- set accounting line type info
67901 --
67902 xla_ae_lines_pkg.SetAcctLineType
67903 (p_component_type => l_component_type
67904 ,p_event_type_code => l_event_type_code
67905 ,p_line_definition_owner_code => l_line_definition_owner_code
67906 ,p_line_definition_code => l_line_definition_code
67907 ,p_accounting_line_code => l_component_code
67908 ,p_accounting_line_type_code => l_component_type_code
67909 ,p_accounting_line_appl_id => l_component_appl_id
67910 ,p_amb_context_code => l_amb_context_code
67911 ,p_entity_code => l_entity_code
67912 ,p_event_class_code => l_event_class_code);
67913 --
67914 -- set accounting class
67915 --
67916 xla_ae_lines_pkg.SetAcctClass(
67917 p_accounting_class_code => 'LOSS'
67918 , p_ae_header_id => l_ae_header_id
67919 );
67920
67921 --
67922 -- set rounding class
67923 --
67924 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67925 'LOSS';
67926
67927 --
67928 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67929 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67930 --
67931 -- bulk performance
67932 --
67933 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67934
67935 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67939 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67936 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67937
67938 -- 4955764
67940 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67941
67942 -- 4458381 Public Sector Enh
67943
67944 --
67945 -- set accounting attributes for the line type
67946 --
67947 l_entered_amt_idx := 9;
67948 l_accted_amt_idx := 14;
67949 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67950 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67951 l_rec_acct_attrs.array_char_value(1) := p_source_40;
67952 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
67953 l_rec_acct_attrs.array_num_value(2) := p_source_42;
67954 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67955 l_rec_acct_attrs.array_char_value(3) := p_source_43;
67956 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
67957 l_rec_acct_attrs.array_char_value(4) := p_source_44;
67958 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
67959 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_45);
67960 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67961 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_46);
67962 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
67963 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
67964 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
67965 l_rec_acct_attrs.array_char_value(8) := p_source_48;
67966 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
67967 l_rec_acct_attrs.array_num_value(9) := p_source_41;
67968 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
67969 l_rec_acct_attrs.array_char_value(10) := p_source_49;
67970 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
67971 l_rec_acct_attrs.array_date_value(11) := p_source_114;
67972 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
67973 l_rec_acct_attrs.array_num_value(12) := p_source_115;
67974 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
67975 l_rec_acct_attrs.array_char_value(13) := p_source_116;
67976 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
67977 l_rec_acct_attrs.array_num_value(14) := p_source_128;
67978 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
67979 l_rec_acct_attrs.array_char_value(15) := p_source_53;
67980 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
67981 l_rec_acct_attrs.array_num_value(16) := p_source_54;
67982 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
67983 l_rec_acct_attrs.array_num_value(17) := p_source_55;
67984 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
67985 l_rec_acct_attrs.array_char_value(18) := p_source_56;
67986 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
67987 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
67988 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
67989 l_rec_acct_attrs.array_char_value(20) := p_source_48;
67990
67991 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67992 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67993
67994 ---------------------------------------------------------------------------------------------------------------
67995 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67996 ---------------------------------------------------------------------------------------------------------------
67997 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67998
67999 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68000 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68001
68002 IF xla_accounting_cache_pkg.GetValueChar
68003 (p_source_code => 'LEDGER_CATEGORY_CODE'
68004 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68005 AND l_bflow_method_code = 'PRIOR_ENTRY'
68006 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68007 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68008 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68009 )
68010 THEN
68011 xla_ae_lines_pkg.BflowUpgEntry
68012 (p_business_method_code => l_bflow_method_code
68013 ,p_business_class_code => l_bflow_class_code
68014 ,p_balance_type => l_balance_type_code);
68015 ELSE
68016 NULL;
68017 -- No business flow processing for business flow method of NONE.
68018 END IF;
68019
68020 --
68021 -- call analytical criteria
68022 --
68023
68024 --
68025 -- call description
68026 --
68027 -- No description or it is inherited.
68028 --
68029 -- call ADRs
68030 -- Bug 4922099
68031 --
68032 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68033 (NVL(l_actual_upg_option, 'N') = 'O') OR
68034 (NVL(l_enc_upg_option, 'N') = 'O')
68035 )
68036 THEN
68037 NULL;
68038 --
68042 p_application_id => p_application_id
68039 --
68040
68041 l_ccid := AcctDerRule_32(
68043 , p_ae_header_id => l_ae_header_id
68044 , p_source_4 => p_source_4
68045 , p_source_4_meaning => p_source_4_meaning
68046 , p_source_17 => p_source_17
68047 , p_source_34 => p_source_34
68048 , p_source_35 => p_source_35
68049 , x_transaction_coa_id => l_adr_transaction_coa_id
68050 , x_accounting_coa_id => l_adr_accounting_coa_id
68051 , x_value_type_code => l_adr_value_type_code
68052 , p_side => 'NA'
68053 );
68054
68055 xla_ae_lines_pkg.set_ccid(
68056 p_code_combination_id => l_ccid
68057 , p_value_type_code => l_adr_value_type_code
68058 , p_transaction_coa_id => l_adr_transaction_coa_id
68059 , p_accounting_coa_id => l_adr_accounting_coa_id
68060 , p_adr_code => 'AP_REAL_LOSS'
68061 , p_adr_type_code => 'S'
68062 , p_component_type => l_component_type
68063 , p_component_code => l_component_code
68064 , p_component_type_code => l_component_type_code
68065 , p_component_appl_id => l_component_appl_id
68066 , p_amb_context_code => l_amb_context_code
68067 , p_side => 'NA'
68068 );
68069
68070
68071 --
68072 --
68073 END IF;
68074 --
68075 -- Bug 4922099
68076 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68077 (NVL(l_enc_upg_option, 'N') = 'O')
68078 ) AND
68079 (l_bflow_method_code = 'PRIOR_ENTRY')
68080 )
68081 THEN
68082 IF
68083 --
68084 1 = 2
68085 --
68086 THEN
68087 xla_accounting_err_pkg.build_message
68088 (p_appli_s_name => 'XLA'
68089 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68090 ,p_token_1 => 'LINE_NUMBER'
68091 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
68092 ,p_token_2 => 'LINE_TYPE_NAME'
68093 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
68094 l_component_type
68095 ,l_component_code
68096 ,l_component_type_code
68097 ,l_component_appl_id
68098 ,l_amb_context_code
68099 ,l_entity_code
68100 ,l_event_class_code
68101 )
68102 ,p_token_3 => 'OWNER'
68103 ,p_value_3 => xla_lookups_pkg.get_meaning(
68104 p_lookup_type => 'XLA_OWNER_TYPE'
68105 ,p_lookup_code => l_component_type_code
68106 )
68107 ,p_token_4 => 'PRODUCT_NAME'
68108 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68109 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68110 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68111 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68112 ,p_ae_header_id => NULL
68113 );
68114
68115 IF (C_LEVEL_ERROR>= g_log_level) THEN
68116 trace
68117 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68118 ,p_level => C_LEVEL_ERROR
68119 ,p_module => l_log_module);
68120 END IF;
68121 END IF;
68122 END IF;
68123 --
68124 --
68125 ------------------------------------------------------------------------------------------------
68126 -- 4219869 Business Flow
68127 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68128 -- Prior Entry. Currently, the following code is always generated.
68129 ------------------------------------------------------------------------------------------------
68130 XLA_AE_LINES_PKG.ValidateCurrentLine;
68131
68132 ------------------------------------------------------------------------------------
68133 -- 4219869 Business Flow
68134 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68135 ------------------------------------------------------------------------------------
68136 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68137
68138 ----------------------------------------------------------------------------------
68142 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68139 -- 4219869 Business Flow
68140 -- Update journal entry status -- Need to generate this within IF <condition>
68141 ----------------------------------------------------------------------------------
68143 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68144 ,p_balance_type_code => l_balance_type_code
68145 );
68146
68147 -------------------------------------------------------------------------------------------
68148 -- 4262811 - Generate the Accrual Reversal lines
68149 -------------------------------------------------------------------------------------------
68150 BEGIN
68151 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68152 (g_array_event(p_event_id).array_value_num('header_index'));
68153 IF l_acc_rev_flag IS NULL THEN
68154 l_acc_rev_flag := 'N';
68155 END IF;
68156 EXCEPTION
68157 WHEN OTHERS THEN
68158 l_acc_rev_flag := 'N';
68159 END;
68160 --
68161 IF (l_acc_rev_flag = 'Y') THEN
68162
68163 -- 4645092 ------------------------------------------------------------------------------
68164 -- To allow MPA report to determine if it should generate report process
68165 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68166 ------------------------------------------------------------------------------------------
68167
68168 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68169 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68170 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
68171 -- call ADRs
68172 -- Bug 4922099
68173 --
68174 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68175 (NVL(l_actual_upg_option, 'N') = 'O') OR
68176 (NVL(l_enc_upg_option, 'N') = 'O')
68177 )
68178 THEN
68179 NULL;
68180 --
68181 --
68182
68183 l_ccid := AcctDerRule_32(
68184 p_application_id => p_application_id
68185 , p_ae_header_id => l_ae_header_id
68186 , p_source_4 => p_source_4
68187 , p_source_4_meaning => p_source_4_meaning
68188 , p_source_17 => p_source_17
68189 , p_source_34 => p_source_34
68190 , p_source_35 => p_source_35
68191 , x_transaction_coa_id => l_adr_transaction_coa_id
68192 , x_accounting_coa_id => l_adr_accounting_coa_id
68193 , x_value_type_code => l_adr_value_type_code
68194 , p_side => 'NA'
68195 );
68196
68197 xla_ae_lines_pkg.set_ccid(
68198 p_code_combination_id => l_ccid
68199 , p_value_type_code => l_adr_value_type_code
68200 , p_transaction_coa_id => l_adr_transaction_coa_id
68201 , p_accounting_coa_id => l_adr_accounting_coa_id
68202 , p_adr_code => 'AP_REAL_LOSS'
68203 , p_adr_type_code => 'S'
68204 , p_component_type => l_component_type
68205 , p_component_code => l_component_code
68206 , p_component_type_code => l_component_type_code
68207 , p_component_appl_id => l_component_appl_id
68208 , p_amb_context_code => l_amb_context_code
68209 , p_side => 'NA'
68210 );
68211
68212
68213 --
68214 --
68215 END IF;
68216
68217 --
68218 -- Update the line information that should be overwritten
68219 --
68220 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68221 p_header_num => 1);
68222 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
68223
68224 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68225
68226 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
68227 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68228 END IF;
68229
68230 --
68231 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68232 --
68233 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68234 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
68235 ELSE
68236 ---------------------------------------------------------------------------------------------------
68237 -- 4262811a Switch Sign
68238 ---------------------------------------------------------------------------------------------------
68239 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
68240 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68241 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68242 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68243 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68244 -- 5132302
68245 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68246 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68247
68248 END IF;
68249
68250 -- 4955764
68254
68251 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68252 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68253
68255 XLA_AE_LINES_PKG.ValidateCurrentLine;
68256 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68257
68258 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68259 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68260 ,p_balance_type_code => l_balance_type_code);
68261
68262 END IF;
68263
68264 -----------------------------------------------------------------------------------------
68265 -- 4262811 Multiperiod Accounting
68266 -----------------------------------------------------------------------------------------
68267 -- No MPA option is assigned.
68268
68269
68270 END IF;
68271 END IF;
68272 --
68273
68274 --
68275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68276 trace
68277 (p_msg => 'END of AcctLineType_127'
68278 ,p_level => C_LEVEL_PROCEDURE
68279 ,p_module => l_log_module);
68280 END IF;
68281 --
68282 EXCEPTION
68283 WHEN xla_exceptions_pkg.application_exception THEN
68284 RAISE;
68285 WHEN OTHERS THEN
68286 xla_exceptions_pkg.raise_message
68287 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_127');
68288 END AcctLineType_127;
68289 --
68290
68291 ---------------------------------------
68292 --
68293 -- PRIVATE FUNCTION
68294 -- AcctLineType_128
68295 --
68296 ---------------------------------------
68297 PROCEDURE AcctLineType_128 (
68298 p_application_id IN NUMBER
68299 ,p_event_id IN NUMBER
68300 ,p_calculate_acctd_flag IN VARCHAR2
68301 ,p_calculate_g_l_flag IN VARCHAR2
68302 ,p_actual_flag IN OUT VARCHAR2
68303 ,p_balance_type_code OUT VARCHAR2
68304 ,p_gain_or_loss_ref OUT VARCHAR2
68305
68306 --Payment Distribution (Cleared Rate) Ledger Amount
68307 , p_source_10 IN NUMBER
68308 --Invoice Distribution Account
68309 , p_source_17 IN NUMBER
68310 --Invoice Distribution Type
68311 , p_source_20 IN VARCHAR2
68312 , p_source_20_meaning IN VARCHAR2
68313 --When to Account for Payment Option
68314 , p_source_38 IN VARCHAR2
68315 --Payment Distribution Type
68316 , p_source_39 IN VARCHAR2
68317 , p_source_39_meaning IN VARCHAR2
68318 --Accounting Reversal Indicator
68319 , p_source_40 IN VARCHAR2
68320 --Payment Distribution Amount
68321 , p_source_41 IN NUMBER
68322 --Business Flow Accounts Payable Application Identifier
68323 , p_source_42 IN NUMBER
68324 --Business Flow Payment Distribution Type
68325 , p_source_43 IN VARCHAR2
68326 --Business Flow Payment Entity Code
68327 , p_source_44 IN VARCHAR2
68328 --Business Flow Payment Distribution Identifier
68329 , p_source_45 IN NUMBER
68330 --Business Flow Payment Identifier
68331 , p_source_46 IN NUMBER
68332 --Payment Distribution Identifier
68333 , p_source_47 IN NUMBER
68334 --Distribution Link Type
68335 , p_source_48 IN VARCHAR2
68336 --Payment Currency Code
68337 , p_source_49 IN VARCHAR2
68338 --Override Accounted Amount Indicator
68339 , p_source_53 IN VARCHAR2
68340 , p_source_53_meaning IN VARCHAR2
68341 --Payment Supplier Identifier
68342 , p_source_54 IN NUMBER
68343 --Payment Supplier Site Identifier
68344 , p_source_55 IN NUMBER
68345 --Third Party Type
68346 , p_source_56 IN VARCHAR2
68347 --Payment Distribution Reversed Identifier
68348 , p_source_57 IN NUMBER
68349 --Invoice Distribution Tax Line Identifier
68350 , p_source_58 IN NUMBER
68351 --Invoice Distribution Summary Tax Line Identifier
68352 , p_source_59 IN NUMBER
68353 --Cleared Exchange Date
68354 , p_source_107 IN DATE
68355 --Cleared Exchange Rate
68356 , p_source_108 IN NUMBER
68357 --Cleared Exchange Rate Type
68358 , p_source_109 IN VARCHAR2
68359 )
68360 IS
68361
68362 l_component_type VARCHAR2(80);
68363 l_component_code VARCHAR2(30);
68364 l_component_type_code VARCHAR2(1);
68365 l_component_appl_id INTEGER;
68366 l_amb_context_code VARCHAR2(30);
68367 l_entity_code VARCHAR2(30);
68368 l_event_class_code VARCHAR2(30);
68369 l_ae_header_id NUMBER;
68370 l_event_type_code VARCHAR2(30);
68371 l_line_definition_code VARCHAR2(30);
68372 l_line_definition_owner_code VARCHAR2(1);
68373 --
68374 -- adr variables
68375 l_segment VARCHAR2(30);
68376 l_ccid NUMBER;
68377 l_adr_transaction_coa_id NUMBER;
68378 l_adr_accounting_coa_id NUMBER;
68379 l_adr_flexfield_segment_code VARCHAR2(30);
68380 l_adr_flex_value_set_id NUMBER;
68381 l_adr_value_type_code VARCHAR2(30);
68382 l_adr_value_combination_id NUMBER;
68383 l_adr_value_segment_code VARCHAR2(30);
68384
68385 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
68386 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
68387 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
68391 l_entered_amt_idx NUMBER;
68388 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
68389
68390 -- 4262811 Variables ------------------------------------------------------------------------------------------
68392 l_accted_amt_idx NUMBER;
68393 l_acc_rev_flag VARCHAR2(1);
68394 l_accrual_line_num NUMBER;
68395 l_tmp_amt NUMBER;
68396 l_acc_rev_natural_side_code VARCHAR2(1);
68397
68398 l_num_entries NUMBER;
68399 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
68400 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
68401 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
68402 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
68403 l_recog_line_1 NUMBER;
68404 l_recog_line_2 NUMBER;
68405
68406 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
68407 l_bflow_applied_to_amt NUMBER; -- 5132302
68408 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
68409
68410 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68411
68412 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
68413 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
68414
68415 ---------------------------------------------------------------------------------------------------------------
68416
68417
68418 --
68419 -- bulk performance
68420 --
68421 l_balance_type_code VARCHAR2(1);
68422 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68423 l_log_module VARCHAR2(240);
68424
68425 --
68426 -- Upgrade strategy
68427 --
68428 l_actual_upg_option VARCHAR2(1);
68429 l_enc_upg_option VARCHAR2(1);
68430
68431 --
68432 BEGIN
68433 --
68434 IF g_log_enabled THEN
68435 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
68436 END IF;
68437 --
68438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68439
68440 trace
68441 (p_msg => 'BEGIN of AcctLineType_128'
68442 ,p_level => C_LEVEL_PROCEDURE
68443 ,p_module => l_log_module);
68444
68445 END IF;
68446 --
68447 l_component_type := 'AMB_JLT';
68448 l_component_code := 'AP_MISC_EXPENSE_CLEAR';
68449 l_component_type_code := 'S';
68450 l_component_appl_id := 200;
68451 l_amb_context_code := 'DEFAULT';
68452 l_entity_code := 'AP_PAYMENTS';
68453 l_event_class_code := 'RECONCILED PAYMENTS';
68454 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
68455 l_line_definition_owner_code := 'S';
68456 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
68457 --
68458 l_balance_type_code := 'A';
68459 l_segment := NULL;
68460 l_ccid := NULL;
68461 l_adr_transaction_coa_id := NULL;
68462 l_adr_accounting_coa_id := NULL;
68463 l_adr_flexfield_segment_code := NULL;
68464 l_adr_flex_value_set_id := NULL;
68465 l_adr_value_type_code := NULL;
68466 l_adr_value_combination_id := NULL;
68467 l_adr_value_segment_code := NULL;
68468
68469 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
68470 l_bflow_class_code := ''; -- 4219869 Business Flow
68471 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
68472 l_budgetary_control_flag := 'N';
68473
68474 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68475 l_bflow_applied_to_amt := NULL; -- 5132302
68476 l_entered_amt_idx := NULL; -- 4262811
68477 l_accted_amt_idx := NULL; -- 4262811
68478 l_acc_rev_flag := NULL; -- 4262811
68479 l_accrual_line_num := NULL; -- 4262811
68480 l_tmp_amt := NULL; -- 4262811
68481 --
68482
68483 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68484 l_balance_type_code <> 'B' THEN
68485 IF NVL(p_source_38,'
68486 ') = 'CLEAR_CLEAR' AND
68487 NVL(p_source_20,'
68488 ') = 'MISCELLANEOUS' AND
68489 (NVL(p_source_39,'
68490 ') = 'CASH' OR
68491 NVL(p_source_39,'
68492 ') = 'AWT' OR
68493 NVL(p_source_39,'
68494 ') = 'DISCOUNT')
68495 THEN
68496
68497 --
68498 XLA_AE_LINES_PKG.SetNewLine;
68499
68500 p_balance_type_code := l_balance_type_code;
68501 -- set the flag so later we will know whether the gain loss line needs to be created
68502
68503 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68504 p_actual_flag :='A';
68505 END IF;
68506
68507 --
68508 -- bulk performance
68509 --
68510 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68511 p_header_num => 0); -- 4262811
68512 --
68513 -- set accounting line options
68514 --
68515 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68516 p_natural_side_code => 'D'
68517 , p_gain_or_loss_flag => 'N'
68518 , p_gl_transfer_mode_code => 'S'
68519 , p_acct_entry_type_code => 'A'
68523 --
68520 , p_switch_side_flag => 'Y'
68521 , p_merge_duplicate_code => 'A'
68522 );
68524 l_acc_rev_natural_side_code := 'C'; -- 4262811
68525 --
68526 --
68527 -- set accounting line type info
68528 --
68529 xla_ae_lines_pkg.SetAcctLineType
68530 (p_component_type => l_component_type
68531 ,p_event_type_code => l_event_type_code
68532 ,p_line_definition_owner_code => l_line_definition_owner_code
68533 ,p_line_definition_code => l_line_definition_code
68534 ,p_accounting_line_code => l_component_code
68535 ,p_accounting_line_type_code => l_component_type_code
68536 ,p_accounting_line_appl_id => l_component_appl_id
68537 ,p_amb_context_code => l_amb_context_code
68538 ,p_entity_code => l_entity_code
68539 ,p_event_class_code => l_event_class_code);
68540 --
68541 -- set accounting class
68542 --
68543 xla_ae_lines_pkg.SetAcctClass(
68544 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
68545 , p_ae_header_id => l_ae_header_id
68546 );
68547
68548 --
68549 -- set rounding class
68550 --
68551 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68552 'MISCELLANEOUS EXPENSE';
68553
68554 --
68555 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68556 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68557 --
68558 -- bulk performance
68559 --
68560 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68561
68562 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68563 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68564
68565 -- 4955764
68566 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68567 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68568
68569 -- 4458381 Public Sector Enh
68570
68571 --
68572 -- set accounting attributes for the line type
68573 --
68574 l_entered_amt_idx := 10;
68575 l_accted_amt_idx := 15;
68576 l_bflow_applied_to_amt_idx := 2; -- 5132302
68577 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68578 l_rec_acct_attrs.array_char_value(1) := p_source_40;
68579 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
68580 l_rec_acct_attrs.array_num_value(2) := p_source_41;
68581 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
68582 l_rec_acct_attrs.array_num_value(3) := p_source_42;
68583 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68584 l_rec_acct_attrs.array_char_value(4) := p_source_43;
68585 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
68586 l_rec_acct_attrs.array_char_value(5) := p_source_44;
68587 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
68588 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
68589 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68590 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
68591 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
68592 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
68593 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
68594 l_rec_acct_attrs.array_char_value(9) := p_source_48;
68595 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
68596 l_rec_acct_attrs.array_num_value(10) := p_source_41;
68597 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
68598 l_rec_acct_attrs.array_char_value(11) := p_source_49;
68599 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
68600 l_rec_acct_attrs.array_date_value(12) := p_source_107;
68601 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
68602 l_rec_acct_attrs.array_num_value(13) := p_source_108;
68603 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
68604 l_rec_acct_attrs.array_char_value(14) := p_source_109;
68605 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
68606 l_rec_acct_attrs.array_num_value(15) := p_source_10;
68607 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
68608 l_rec_acct_attrs.array_char_value(16) := p_source_53;
68609 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
68610 l_rec_acct_attrs.array_num_value(17) := p_source_54;
68611 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
68612 l_rec_acct_attrs.array_num_value(18) := p_source_55;
68613 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
68614 l_rec_acct_attrs.array_char_value(19) := p_source_56;
68615 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
68616 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
68617 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
68618 l_rec_acct_attrs.array_char_value(21) := p_source_48;
68619 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
68620 l_rec_acct_attrs.array_num_value(22) := p_source_58;
68624 l_rec_acct_attrs.array_num_value(24) := p_source_59;
68621 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
68622 l_rec_acct_attrs.array_num_value(23) := p_source_58;
68623 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
68625
68626 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68627 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68628
68629 ---------------------------------------------------------------------------------------------------------------
68630 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68631 ---------------------------------------------------------------------------------------------------------------
68632 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68633
68634 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68635 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68636
68637 IF xla_accounting_cache_pkg.GetValueChar
68638 (p_source_code => 'LEDGER_CATEGORY_CODE'
68639 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68640 AND l_bflow_method_code = 'PRIOR_ENTRY'
68641 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68642 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68643 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68644 )
68645 THEN
68646 xla_ae_lines_pkg.BflowUpgEntry
68647 (p_business_method_code => l_bflow_method_code
68648 ,p_business_class_code => l_bflow_class_code
68649 ,p_balance_type => l_balance_type_code);
68650 ELSE
68651 NULL;
68652 -- No business flow processing for business flow method of NONE.
68653 END IF;
68654
68655 --
68656 -- call analytical criteria
68657 --
68658
68659 --
68660 -- call description
68661 --
68662 -- No description or it is inherited.
68663 --
68664 -- call ADRs
68665 -- Bug 4922099
68666 --
68667 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68668 (NVL(l_actual_upg_option, 'N') = 'O') OR
68669 (NVL(l_enc_upg_option, 'N') = 'O')
68670 )
68671 THEN
68672 NULL;
68673 --
68674 --
68675
68676 l_ccid := AcctDerRule_26(
68677 p_application_id => p_application_id
68678 , p_ae_header_id => l_ae_header_id
68679 , p_source_17 => p_source_17
68680 , x_transaction_coa_id => l_adr_transaction_coa_id
68681 , x_accounting_coa_id => l_adr_accounting_coa_id
68682 , x_value_type_code => l_adr_value_type_code
68683 , p_side => 'NA'
68684 );
68685
68686 xla_ae_lines_pkg.set_ccid(
68687 p_code_combination_id => l_ccid
68688 , p_value_type_code => l_adr_value_type_code
68689 , p_transaction_coa_id => l_adr_transaction_coa_id
68690 , p_accounting_coa_id => l_adr_accounting_coa_id
68691 , p_adr_code => 'AP_INVOICE_DIST'
68692 , p_adr_type_code => 'S'
68693 , p_component_type => l_component_type
68694 , p_component_code => l_component_code
68695 , p_component_type_code => l_component_type_code
68696 , p_component_appl_id => l_component_appl_id
68697 , p_amb_context_code => l_amb_context_code
68698 , p_side => 'NA'
68699 );
68700
68701
68702 --
68703 --
68704 END IF;
68705 --
68706 -- Bug 4922099
68707 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68708 (NVL(l_enc_upg_option, 'N') = 'O')
68709 ) AND
68710 (l_bflow_method_code = 'PRIOR_ENTRY')
68711 )
68712 THEN
68713 IF
68714 --
68715 1 = 2
68716 --
68717 THEN
68718 xla_accounting_err_pkg.build_message
68719 (p_appli_s_name => 'XLA'
68720 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68721 ,p_token_1 => 'LINE_NUMBER'
68722 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
68723 ,p_token_2 => 'LINE_TYPE_NAME'
68724 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
68725 l_component_type
68726 ,l_component_code
68727 ,l_component_type_code
68728 ,l_component_appl_id
68729 ,l_amb_context_code
68730 ,l_entity_code
68731 ,l_event_class_code
68732 )
68736 ,p_lookup_code => l_component_type_code
68733 ,p_token_3 => 'OWNER'
68734 ,p_value_3 => xla_lookups_pkg.get_meaning(
68735 p_lookup_type => 'XLA_OWNER_TYPE'
68737 )
68738 ,p_token_4 => 'PRODUCT_NAME'
68739 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68740 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68741 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68742 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68743 ,p_ae_header_id => NULL
68744 );
68745
68746 IF (C_LEVEL_ERROR>= g_log_level) THEN
68747 trace
68748 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68749 ,p_level => C_LEVEL_ERROR
68750 ,p_module => l_log_module);
68751 END IF;
68752 END IF;
68753 END IF;
68754 --
68755 --
68756 ------------------------------------------------------------------------------------------------
68757 -- 4219869 Business Flow
68758 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68759 -- Prior Entry. Currently, the following code is always generated.
68760 ------------------------------------------------------------------------------------------------
68761 XLA_AE_LINES_PKG.ValidateCurrentLine;
68762
68763 ------------------------------------------------------------------------------------
68764 -- 4219869 Business Flow
68765 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68766 ------------------------------------------------------------------------------------
68767 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68768
68769 ----------------------------------------------------------------------------------
68770 -- 4219869 Business Flow
68771 -- Update journal entry status -- Need to generate this within IF <condition>
68772 ----------------------------------------------------------------------------------
68773 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68774 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68775 ,p_balance_type_code => l_balance_type_code
68776 );
68777
68778 -------------------------------------------------------------------------------------------
68779 -- 4262811 - Generate the Accrual Reversal lines
68780 -------------------------------------------------------------------------------------------
68781 BEGIN
68782 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68783 (g_array_event(p_event_id).array_value_num('header_index'));
68784 IF l_acc_rev_flag IS NULL THEN
68785 l_acc_rev_flag := 'N';
68786 END IF;
68787 EXCEPTION
68788 WHEN OTHERS THEN
68789 l_acc_rev_flag := 'N';
68790 END;
68791 --
68792 IF (l_acc_rev_flag = 'Y') THEN
68793
68794 -- 4645092 ------------------------------------------------------------------------------
68795 -- To allow MPA report to determine if it should generate report process
68796 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68797 ------------------------------------------------------------------------------------------
68798
68799 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68800 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68801 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
68802 -- call ADRs
68803 -- Bug 4922099
68804 --
68805 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68806 (NVL(l_actual_upg_option, 'N') = 'O') OR
68807 (NVL(l_enc_upg_option, 'N') = 'O')
68808 )
68809 THEN
68810 NULL;
68811 --
68812 --
68813
68814 l_ccid := AcctDerRule_26(
68815 p_application_id => p_application_id
68816 , p_ae_header_id => l_ae_header_id
68817 , p_source_17 => p_source_17
68818 , x_transaction_coa_id => l_adr_transaction_coa_id
68819 , x_accounting_coa_id => l_adr_accounting_coa_id
68820 , x_value_type_code => l_adr_value_type_code
68821 , p_side => 'NA'
68822 );
68823
68824 xla_ae_lines_pkg.set_ccid(
68825 p_code_combination_id => l_ccid
68826 , p_value_type_code => l_adr_value_type_code
68827 , p_transaction_coa_id => l_adr_transaction_coa_id
68828 , p_accounting_coa_id => l_adr_accounting_coa_id
68829 , p_adr_code => 'AP_INVOICE_DIST'
68830 , p_adr_type_code => 'S'
68831 , p_component_type => l_component_type
68832 , p_component_code => l_component_code
68833 , p_component_type_code => l_component_type_code
68834 , p_component_appl_id => l_component_appl_id
68835 , p_amb_context_code => l_amb_context_code
68836 , p_side => 'NA'
68840 --
68837 );
68838
68839
68841 --
68842 END IF;
68843
68844 --
68845 -- Update the line information that should be overwritten
68846 --
68847 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68848 p_header_num => 1);
68849 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
68850
68851 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68852
68853 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
68854 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68855 END IF;
68856
68857 --
68858 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68859 --
68860 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68861 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
68862 ELSE
68863 ---------------------------------------------------------------------------------------------------
68864 -- 4262811a Switch Sign
68865 ---------------------------------------------------------------------------------------------------
68866 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
68867 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68868 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68869 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68870 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68871 -- 5132302
68872 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68873 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68874
68875 END IF;
68876
68877 -- 4955764
68878 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68879 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68880
68881
68882 XLA_AE_LINES_PKG.ValidateCurrentLine;
68883 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68884
68885 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68886 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68887 ,p_balance_type_code => l_balance_type_code);
68888
68889 END IF;
68890
68891 -----------------------------------------------------------------------------------------
68892 -- 4262811 Multiperiod Accounting
68893 -----------------------------------------------------------------------------------------
68894 -- No MPA option is assigned.
68895
68896
68897 END IF;
68898 END IF;
68899 --
68900
68901 --
68902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68903 trace
68904 (p_msg => 'END of AcctLineType_128'
68905 ,p_level => C_LEVEL_PROCEDURE
68906 ,p_module => l_log_module);
68907 END IF;
68908 --
68909 EXCEPTION
68910 WHEN xla_exceptions_pkg.application_exception THEN
68911 RAISE;
68912 WHEN OTHERS THEN
68913 xla_exceptions_pkg.raise_message
68914 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_128');
68915 END AcctLineType_128;
68916 --
68917
68918 ---------------------------------------
68919 --
68920 -- PRIVATE FUNCTION
68921 -- AcctLineType_129
68922 --
68923 ---------------------------------------
68924 PROCEDURE AcctLineType_129 (
68925 p_application_id IN NUMBER
68926 ,p_event_id IN NUMBER
68927 ,p_calculate_acctd_flag IN VARCHAR2
68928 ,p_calculate_g_l_flag IN VARCHAR2
68929 ,p_actual_flag IN OUT VARCHAR2
68930 ,p_balance_type_code OUT VARCHAR2
68931 ,p_gain_or_loss_ref OUT VARCHAR2
68932
68933 --Payment Distribution (Payment Rate) Ledger Amount
68934 , p_source_9 IN NUMBER
68935 --Invoice Distribution Type
68936 , p_source_20 IN VARCHAR2
68937 , p_source_20_meaning IN VARCHAR2
68938 --When to Account for Payment Option
68939 , p_source_38 IN VARCHAR2
68940 --Payment Distribution Type
68941 , p_source_39 IN VARCHAR2
68942 , p_source_39_meaning IN VARCHAR2
68943 --Accounting Reversal Indicator
68944 , p_source_40 IN VARCHAR2
68945 --Payment Distribution Amount
68946 , p_source_41 IN NUMBER
68947 --Business Flow Accounts Payable Application Identifier
68948 , p_source_42 IN NUMBER
68949 --Payment Distribution Identifier
68950 , p_source_47 IN NUMBER
68951 --Distribution Link Type
68952 , p_source_48 IN VARCHAR2
68953 --Payment Currency Code
68954 , p_source_49 IN VARCHAR2
68955 --Override Accounted Amount Indicator
68956 , p_source_53 IN VARCHAR2
68957 , p_source_53_meaning IN VARCHAR2
68958 --Third Party Type
68959 , p_source_56 IN VARCHAR2
68960 --Payment Distribution Reversed Identifier
68961 , p_source_57 IN NUMBER
68962 --Invoice Distribution Tax Line Identifier
68963 , p_source_58 IN NUMBER
68967 , p_source_62 IN VARCHAR2
68964 --Invoice Distribution Summary Tax Line Identifier
68965 , p_source_59 IN NUMBER
68966 --Business Flow Invoice Distribution Type
68968 --Business Flow Invoice Entity Code
68969 , p_source_63 IN VARCHAR2
68970 --Business Flow Invoice Distribution Identifier
68971 , p_source_64 IN NUMBER
68972 --Business Flow Invoice Identifier
68973 , p_source_65 IN NUMBER
68974 --Purchasing Encumbrance Option
68975 , p_source_102 IN VARCHAR2
68976 , p_source_102_meaning IN VARCHAR2
68977 --Invoice Encumbered Option
68978 , p_source_104 IN VARCHAR2
68979 , p_source_104_meaning IN VARCHAR2
68980 )
68981 IS
68982
68983 l_component_type VARCHAR2(80);
68984 l_component_code VARCHAR2(30);
68985 l_component_type_code VARCHAR2(1);
68986 l_component_appl_id INTEGER;
68987 l_amb_context_code VARCHAR2(30);
68988 l_entity_code VARCHAR2(30);
68989 l_event_class_code VARCHAR2(30);
68990 l_ae_header_id NUMBER;
68991 l_event_type_code VARCHAR2(30);
68992 l_line_definition_code VARCHAR2(30);
68993 l_line_definition_owner_code VARCHAR2(1);
68994 --
68995 -- adr variables
68996 l_segment VARCHAR2(30);
68997 l_ccid NUMBER;
68998 l_adr_transaction_coa_id NUMBER;
68999 l_adr_accounting_coa_id NUMBER;
69000 l_adr_flexfield_segment_code VARCHAR2(30);
69001 l_adr_flex_value_set_id NUMBER;
69002 l_adr_value_type_code VARCHAR2(30);
69003 l_adr_value_combination_id NUMBER;
69004 l_adr_value_segment_code VARCHAR2(30);
69005
69006 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
69007 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
69008 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
69009 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
69010
69011 -- 4262811 Variables ------------------------------------------------------------------------------------------
69012 l_entered_amt_idx NUMBER;
69013 l_accted_amt_idx NUMBER;
69014 l_acc_rev_flag VARCHAR2(1);
69015 l_accrual_line_num NUMBER;
69016 l_tmp_amt NUMBER;
69017 l_acc_rev_natural_side_code VARCHAR2(1);
69018
69019 l_num_entries NUMBER;
69020 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
69021 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
69022 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
69023 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
69024 l_recog_line_1 NUMBER;
69025 l_recog_line_2 NUMBER;
69026
69027 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
69028 l_bflow_applied_to_amt NUMBER; -- 5132302
69029 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
69030
69031 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69032
69033 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
69034 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
69035
69036 ---------------------------------------------------------------------------------------------------------------
69037
69038
69039 --
69040 -- bulk performance
69041 --
69042 l_balance_type_code VARCHAR2(1);
69043 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69044 l_log_module VARCHAR2(240);
69045
69046 --
69047 -- Upgrade strategy
69048 --
69049 l_actual_upg_option VARCHAR2(1);
69050 l_enc_upg_option VARCHAR2(1);
69051
69052 --
69053 BEGIN
69054 --
69055 IF g_log_enabled THEN
69056 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
69057 END IF;
69058 --
69059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69060
69061 trace
69062 (p_msg => 'BEGIN of AcctLineType_129'
69063 ,p_level => C_LEVEL_PROCEDURE
69064 ,p_module => l_log_module);
69065
69066 END IF;
69067 --
69068 l_component_type := 'AMB_JLT';
69069 l_component_code := 'AP_MISC_EXPENSE_CLR_ENC';
69070 l_component_type_code := 'S';
69071 l_component_appl_id := 200;
69072 l_amb_context_code := 'DEFAULT';
69073 l_entity_code := 'AP_PAYMENTS';
69074 l_event_class_code := 'RECONCILED PAYMENTS';
69075 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
69076 l_line_definition_owner_code := 'S';
69077 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
69078 --
69079 l_balance_type_code := 'E';
69080 l_segment := NULL;
69081 l_ccid := NULL;
69082 l_adr_transaction_coa_id := NULL;
69083 l_adr_accounting_coa_id := NULL;
69084 l_adr_flexfield_segment_code := NULL;
69085 l_adr_flex_value_set_id := NULL;
69086 l_adr_value_type_code := NULL;
69087 l_adr_value_combination_id := NULL;
69088 l_adr_value_segment_code := NULL;
69089
69090 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
69094
69091 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
69092 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
69093 l_budgetary_control_flag := 'N';
69095 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69096 l_bflow_applied_to_amt := NULL; -- 5132302
69097 l_entered_amt_idx := NULL; -- 4262811
69098 l_accted_amt_idx := NULL; -- 4262811
69099 l_acc_rev_flag := NULL; -- 4262811
69100 l_accrual_line_num := NULL; -- 4262811
69101 l_tmp_amt := NULL; -- 4262811
69102 --
69103
69104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69105 l_balance_type_code <> 'B' THEN
69106 IF NVL(p_source_38,'
69107 ') = 'CLEAR_CLEAR' AND
69108 NVL(p_source_20,'
69109 ') = 'MISCELLANEOUS' AND
69110 (NVL(p_source_39,'
69111 ') = 'CASH' OR
69112 NVL(p_source_39,'
69113 ') = 'DISCOUNT') AND
69114 NVL(p_source_102,'
69115 ') = 'Y' AND
69116 NVL(p_source_104,'
69117 ') = 'Y'
69118 THEN
69119
69120 --
69121 XLA_AE_LINES_PKG.SetNewLine;
69122
69123 p_balance_type_code := l_balance_type_code;
69124 -- set the flag so later we will know whether the gain loss line needs to be created
69125
69126 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69127 p_actual_flag :='A';
69128 END IF;
69129
69130 --
69131 -- bulk performance
69132 --
69133 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69134 p_header_num => 0); -- 4262811
69135 --
69136 -- set accounting line options
69137 --
69138 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69139 p_natural_side_code => 'C'
69140 , p_gain_or_loss_flag => 'N'
69141 , p_gl_transfer_mode_code => 'S'
69142 , p_acct_entry_type_code => 'E'
69143 , p_switch_side_flag => 'Y'
69144 , p_merge_duplicate_code => 'A'
69145 );
69146 --
69147 l_acc_rev_natural_side_code := 'D'; -- 4262811
69148 --
69149 --
69150 -- set accounting line type info
69151 --
69152 xla_ae_lines_pkg.SetAcctLineType
69153 (p_component_type => l_component_type
69154 ,p_event_type_code => l_event_type_code
69155 ,p_line_definition_owner_code => l_line_definition_owner_code
69156 ,p_line_definition_code => l_line_definition_code
69157 ,p_accounting_line_code => l_component_code
69158 ,p_accounting_line_type_code => l_component_type_code
69159 ,p_accounting_line_appl_id => l_component_appl_id
69160 ,p_amb_context_code => l_amb_context_code
69161 ,p_entity_code => l_entity_code
69162 ,p_event_class_code => l_event_class_code);
69163 --
69164 -- set accounting class
69165 --
69166 xla_ae_lines_pkg.SetAcctClass(
69167 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
69168 , p_ae_header_id => l_ae_header_id
69169 );
69170
69171 --
69172 -- set rounding class
69173 --
69174 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69175 'MISCELLANEOUS EXPENSE';
69176
69177 --
69178 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69179 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69180 --
69181 -- bulk performance
69182 --
69183 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69184
69185 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69186 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69187
69188 -- 4955764
69189 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69190 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69191
69192 -- 4458381 Public Sector Enh
69193
69194 --
69195 -- set accounting attributes for the line type
69196 --
69197 l_entered_amt_idx := 10;
69198 l_accted_amt_idx := 12;
69199 l_bflow_applied_to_amt_idx := 2; -- 5132302
69200 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69201 l_rec_acct_attrs.array_char_value(1) := p_source_40;
69202 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69203 l_rec_acct_attrs.array_num_value(2) := p_source_41;
69204 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69205 l_rec_acct_attrs.array_num_value(3) := p_source_42;
69206 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69207 l_rec_acct_attrs.array_char_value(4) := p_source_62;
69208 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69209 l_rec_acct_attrs.array_char_value(5) := p_source_63;
69210 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69211 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
69212 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69216 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69213 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
69214 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69215 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
69217 l_rec_acct_attrs.array_char_value(9) := p_source_48;
69218 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69219 l_rec_acct_attrs.array_num_value(10) := p_source_41;
69220 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69221 l_rec_acct_attrs.array_char_value(11) := p_source_49;
69222 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
69223 l_rec_acct_attrs.array_num_value(12) := p_source_9;
69224 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
69225 l_rec_acct_attrs.array_char_value(13) := p_source_53;
69226 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
69227 l_rec_acct_attrs.array_char_value(14) := p_source_56;
69228 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
69229 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
69230 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
69231 l_rec_acct_attrs.array_char_value(16) := p_source_48;
69232 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
69233 l_rec_acct_attrs.array_num_value(17) := p_source_58;
69234 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
69235 l_rec_acct_attrs.array_num_value(18) := p_source_58;
69236 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
69237 l_rec_acct_attrs.array_num_value(19) := p_source_59;
69238
69239 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69240 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69241
69242 ---------------------------------------------------------------------------------------------------------------
69243 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69244 ---------------------------------------------------------------------------------------------------------------
69245 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69246
69247 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69248 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69249
69250 IF xla_accounting_cache_pkg.GetValueChar
69251 (p_source_code => 'LEDGER_CATEGORY_CODE'
69252 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69253 AND l_bflow_method_code = 'PRIOR_ENTRY'
69254 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69255 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69256 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69257 )
69258 THEN
69259 xla_ae_lines_pkg.BflowUpgEntry
69260 (p_business_method_code => l_bflow_method_code
69261 ,p_business_class_code => l_bflow_class_code
69262 ,p_balance_type => l_balance_type_code);
69263 ELSE
69264 NULL;
69265 XLA_AE_LINES_PKG.business_flow_validation(
69266 p_business_method_code => l_bflow_method_code
69267 ,p_business_class_code => l_bflow_class_code
69268 ,p_inherit_description_flag => l_inherit_desc_flag);
69269 END IF;
69270
69271 --
69272 -- call analytical criteria
69273 --
69274 -- Inherited Analytical Criteria for business flow method of Prior Entry.
69275 --
69276 -- call description
69277 --
69278 -- No description or it is inherited.
69279 --
69280 -- call ADRs
69281 -- Bug 4922099
69282 --
69283 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69284 (NVL(l_actual_upg_option, 'N') = 'O') OR
69285 (NVL(l_enc_upg_option, 'N') = 'O')
69286 )
69287 THEN
69288 NULL;
69289 --
69290 --
69291
69292 --
69293 --
69294 END IF;
69295 --
69296 -- Bug 4922099
69297 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69298 (NVL(l_enc_upg_option, 'N') = 'O')
69299 ) AND
69300 (l_bflow_method_code = 'PRIOR_ENTRY')
69301 )
69302 THEN
69303 IF
69304 --
69305 1 = 1
69306 --
69307 THEN
69308 xla_accounting_err_pkg.build_message
69309 (p_appli_s_name => 'XLA'
69310 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69311 ,p_token_1 => 'LINE_NUMBER'
69312 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
69313 ,p_token_2 => 'LINE_TYPE_NAME'
69314 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
69315 l_component_type
69316 ,l_component_code
69317 ,l_component_type_code
69321 ,l_event_class_code
69318 ,l_component_appl_id
69319 ,l_amb_context_code
69320 ,l_entity_code
69322 )
69323 ,p_token_3 => 'OWNER'
69324 ,p_value_3 => xla_lookups_pkg.get_meaning(
69325 p_lookup_type => 'XLA_OWNER_TYPE'
69326 ,p_lookup_code => l_component_type_code
69327 )
69328 ,p_token_4 => 'PRODUCT_NAME'
69329 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69330 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69331 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69332 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69333 ,p_ae_header_id => NULL
69334 );
69335
69336 IF (C_LEVEL_ERROR>= g_log_level) THEN
69337 trace
69338 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69339 ,p_level => C_LEVEL_ERROR
69340 ,p_module => l_log_module);
69341 END IF;
69342 END IF;
69343 END IF;
69344 --
69345 --
69346 ------------------------------------------------------------------------------------------------
69347 -- 4219869 Business Flow
69348 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69349 -- Prior Entry. Currently, the following code is always generated.
69350 ------------------------------------------------------------------------------------------------
69351 -- No ValidateCurrentLine for business flow method of Prior Entry
69352
69353 ------------------------------------------------------------------------------------
69354 -- 4219869 Business Flow
69355 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69356 ------------------------------------------------------------------------------------
69357 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69358
69359 ----------------------------------------------------------------------------------
69360 -- 4219869 Business Flow
69361 -- Update journal entry status -- Need to generate this within IF <condition>
69362 ----------------------------------------------------------------------------------
69363 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69364 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69365 ,p_balance_type_code => l_balance_type_code
69366 );
69367
69368 -------------------------------------------------------------------------------------------
69369 -- 4262811 - Generate the Accrual Reversal lines
69370 -------------------------------------------------------------------------------------------
69371 BEGIN
69372 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69373 (g_array_event(p_event_id).array_value_num('header_index'));
69374 IF l_acc_rev_flag IS NULL THEN
69375 l_acc_rev_flag := 'N';
69376 END IF;
69377 EXCEPTION
69378 WHEN OTHERS THEN
69379 l_acc_rev_flag := 'N';
69380 END;
69381 --
69382 IF (l_acc_rev_flag = 'Y') THEN
69383
69384 -- 4645092 ------------------------------------------------------------------------------
69385 -- To allow MPA report to determine if it should generate report process
69386 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69387 ------------------------------------------------------------------------------------------
69388
69389 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69390 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69391 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
69392 -- call ADRs
69393 -- Bug 4922099
69394 --
69395 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69396 (NVL(l_actual_upg_option, 'N') = 'O') OR
69397 (NVL(l_enc_upg_option, 'N') = 'O')
69398 )
69399 THEN
69400 NULL;
69401 --
69402 --
69403
69404 --
69405 --
69406 END IF;
69407
69408 --
69409 -- Update the line information that should be overwritten
69410 --
69411 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69412 p_header_num => 1);
69413 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
69414
69415 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69416
69417 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
69418 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69419 END IF;
69420
69421 --
69425 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
69422 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69423 --
69424 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69426 ELSE
69427 ---------------------------------------------------------------------------------------------------
69428 -- 4262811a Switch Sign
69429 ---------------------------------------------------------------------------------------------------
69430 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
69431 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69432 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69433 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69434 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69435 -- 5132302
69436 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69437 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69438
69439 END IF;
69440
69441 -- 4955764
69442 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69443 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69444
69445
69446 XLA_AE_LINES_PKG.ValidateCurrentLine;
69447 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69448
69449 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69450 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69451 ,p_balance_type_code => l_balance_type_code);
69452
69453 END IF;
69454
69455 -----------------------------------------------------------------------------------------
69456 -- 4262811 Multiperiod Accounting
69457 -----------------------------------------------------------------------------------------
69458 -- No MPA option is assigned.
69459
69460
69461 END IF;
69462 END IF;
69463 --
69464
69465 --
69466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69467 trace
69468 (p_msg => 'END of AcctLineType_129'
69469 ,p_level => C_LEVEL_PROCEDURE
69470 ,p_module => l_log_module);
69471 END IF;
69472 --
69473 EXCEPTION
69474 WHEN xla_exceptions_pkg.application_exception THEN
69475 RAISE;
69476 WHEN OTHERS THEN
69477 xla_exceptions_pkg.raise_message
69478 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_129');
69479 END AcctLineType_129;
69480 --
69481
69482 ---------------------------------------
69483 --
69484 -- PRIVATE FUNCTION
69485 -- AcctLineType_130
69486 --
69487 ---------------------------------------
69488 PROCEDURE AcctLineType_130 (
69489 p_application_id IN NUMBER
69490 ,p_event_id IN NUMBER
69491 ,p_calculate_acctd_flag IN VARCHAR2
69492 ,p_calculate_g_l_flag IN VARCHAR2
69493 ,p_actual_flag IN OUT VARCHAR2
69494 ,p_balance_type_code OUT VARCHAR2
69495 ,p_gain_or_loss_ref OUT VARCHAR2
69496
69497 --Payment Distribution (Payment Rate) Ledger Amount
69498 , p_source_9 IN NUMBER
69499 --Invoice Distribution Account
69500 , p_source_17 IN NUMBER
69501 --Invoice Distribution Type
69502 , p_source_20 IN VARCHAR2
69503 , p_source_20_meaning IN VARCHAR2
69504 --When to Account for Payment Option
69505 , p_source_38 IN VARCHAR2
69506 --Payment Distribution Type
69507 , p_source_39 IN VARCHAR2
69508 , p_source_39_meaning IN VARCHAR2
69509 --Accounting Reversal Indicator
69510 , p_source_40 IN VARCHAR2
69511 --Payment Distribution Amount
69512 , p_source_41 IN NUMBER
69513 --Business Flow Accounts Payable Application Identifier
69514 , p_source_42 IN NUMBER
69515 --Payment Distribution Identifier
69516 , p_source_47 IN NUMBER
69517 --Distribution Link Type
69518 , p_source_48 IN VARCHAR2
69519 --Payment Currency Code
69520 , p_source_49 IN VARCHAR2
69521 --Override Accounted Amount Indicator
69522 , p_source_53 IN VARCHAR2
69523 , p_source_53_meaning IN VARCHAR2
69524 --Payment Supplier Identifier
69525 , p_source_54 IN NUMBER
69526 --Payment Supplier Site Identifier
69527 , p_source_55 IN NUMBER
69528 --Third Party Type
69529 , p_source_56 IN VARCHAR2
69530 --Payment Distribution Reversed Identifier
69531 , p_source_57 IN NUMBER
69532 --Invoice Distribution Tax Line Identifier
69533 , p_source_58 IN NUMBER
69534 --Invoice Distribution Summary Tax Line Identifier
69535 , p_source_59 IN NUMBER
69536 --Payment Type
69537 , p_source_60 IN VARCHAR2
69538 , p_source_60_meaning IN VARCHAR2
69539 --Invoice Distribution Amount of the Payment Distribution
69540 , p_source_61 IN NUMBER
69541 --Business Flow Invoice Distribution Type
69542 , p_source_62 IN VARCHAR2
69543 --Business Flow Invoice Entity Code
69544 , p_source_63 IN VARCHAR2
69545 --Business Flow Invoice Distribution Identifier
69549 --Invoice Distribution Tax Distribution Identifier from Tax
69546 , p_source_64 IN NUMBER
69547 --Business Flow Invoice Identifier
69548 , p_source_65 IN NUMBER
69550 , p_source_66 IN NUMBER
69551 --Payment Exchange Date
69552 , p_source_114 IN DATE
69553 --Payment Exchange Rate
69554 , p_source_115 IN NUMBER
69555 --Payment Exchange Rate Type
69556 , p_source_116 IN VARCHAR2
69557 )
69558 IS
69559
69560 l_component_type VARCHAR2(80);
69561 l_component_code VARCHAR2(30);
69562 l_component_type_code VARCHAR2(1);
69563 l_component_appl_id INTEGER;
69564 l_amb_context_code VARCHAR2(30);
69565 l_entity_code VARCHAR2(30);
69566 l_event_class_code VARCHAR2(30);
69567 l_ae_header_id NUMBER;
69568 l_event_type_code VARCHAR2(30);
69569 l_line_definition_code VARCHAR2(30);
69570 l_line_definition_owner_code VARCHAR2(1);
69571 --
69572 -- adr variables
69573 l_segment VARCHAR2(30);
69574 l_ccid NUMBER;
69575 l_adr_transaction_coa_id NUMBER;
69576 l_adr_accounting_coa_id NUMBER;
69577 l_adr_flexfield_segment_code VARCHAR2(30);
69578 l_adr_flex_value_set_id NUMBER;
69579 l_adr_value_type_code VARCHAR2(30);
69580 l_adr_value_combination_id NUMBER;
69581 l_adr_value_segment_code VARCHAR2(30);
69582
69583 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
69584 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
69585 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
69586 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
69587
69588 -- 4262811 Variables ------------------------------------------------------------------------------------------
69589 l_entered_amt_idx NUMBER;
69590 l_accted_amt_idx NUMBER;
69591 l_acc_rev_flag VARCHAR2(1);
69592 l_accrual_line_num NUMBER;
69593 l_tmp_amt NUMBER;
69594 l_acc_rev_natural_side_code VARCHAR2(1);
69595
69596 l_num_entries NUMBER;
69597 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
69598 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
69599 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
69600 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
69601 l_recog_line_1 NUMBER;
69602 l_recog_line_2 NUMBER;
69603
69604 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
69605 l_bflow_applied_to_amt NUMBER; -- 5132302
69606 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
69607
69608 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69609
69610 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
69611 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
69612
69613 ---------------------------------------------------------------------------------------------------------------
69614
69615
69616 --
69617 -- bulk performance
69618 --
69619 l_balance_type_code VARCHAR2(1);
69620 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69621 l_log_module VARCHAR2(240);
69622
69623 --
69624 -- Upgrade strategy
69625 --
69626 l_actual_upg_option VARCHAR2(1);
69627 l_enc_upg_option VARCHAR2(1);
69628
69629 --
69630 BEGIN
69631 --
69632 IF g_log_enabled THEN
69633 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
69634 END IF;
69635 --
69636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69637
69638 trace
69639 (p_msg => 'BEGIN of AcctLineType_130'
69640 ,p_level => C_LEVEL_PROCEDURE
69641 ,p_module => l_log_module);
69642
69643 END IF;
69644 --
69645 l_component_type := 'AMB_JLT';
69646 l_component_code := 'AP_MISC_EXPENSE_PMT';
69647 l_component_type_code := 'S';
69648 l_component_appl_id := 200;
69649 l_amb_context_code := 'DEFAULT';
69650 l_entity_code := 'AP_PAYMENTS';
69651 l_event_class_code := 'PAYMENTS';
69652 l_event_type_code := 'PAYMENTS_ALL';
69653 l_line_definition_owner_code := 'S';
69654 l_line_definition_code := 'CASH_PAYMENTS_ALL';
69655 --
69656 l_balance_type_code := 'A';
69657 l_segment := NULL;
69658 l_ccid := NULL;
69659 l_adr_transaction_coa_id := NULL;
69660 l_adr_accounting_coa_id := NULL;
69661 l_adr_flexfield_segment_code := NULL;
69662 l_adr_flex_value_set_id := NULL;
69663 l_adr_value_type_code := NULL;
69664 l_adr_value_combination_id := NULL;
69665 l_adr_value_segment_code := NULL;
69666
69667 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
69668 l_bflow_class_code := ''; -- 4219869 Business Flow
69669 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
69670 l_budgetary_control_flag := 'N';
69671
69672 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69673 l_bflow_applied_to_amt := NULL; -- 5132302
69677 l_accrual_line_num := NULL; -- 4262811
69674 l_entered_amt_idx := NULL; -- 4262811
69675 l_accted_amt_idx := NULL; -- 4262811
69676 l_acc_rev_flag := NULL; -- 4262811
69678 l_tmp_amt := NULL; -- 4262811
69679 --
69680
69681 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69682 l_balance_type_code <> 'B' THEN
69683 IF NVL(p_source_38,'
69684 ') <> 'CLEAR_CLEAR' AND
69685 NVL(p_source_20,'
69686 ') = 'MISCELLANEOUS' AND
69687 (NVL(p_source_39,'
69688 ') = 'CASH' OR
69689 NVL(p_source_39,'
69690 ') = 'AWT' OR
69691 NVL(p_source_39,'
69692 ') = 'DISCOUNT') AND
69693 NVL(p_source_60,'
69694 ') <> 'R'
69695 THEN
69696
69697 --
69698 XLA_AE_LINES_PKG.SetNewLine;
69699
69700 p_balance_type_code := l_balance_type_code;
69701 -- set the flag so later we will know whether the gain loss line needs to be created
69702
69703 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69704 p_actual_flag :='A';
69705 END IF;
69706
69707 --
69708 -- bulk performance
69709 --
69710 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69711 p_header_num => 0); -- 4262811
69712 --
69713 -- set accounting line options
69714 --
69715 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69716 p_natural_side_code => 'D'
69717 , p_gain_or_loss_flag => 'N'
69718 , p_gl_transfer_mode_code => 'S'
69719 , p_acct_entry_type_code => 'A'
69720 , p_switch_side_flag => 'Y'
69721 , p_merge_duplicate_code => 'A'
69722 );
69723 --
69724 l_acc_rev_natural_side_code := 'C'; -- 4262811
69725 --
69726 --
69727 -- set accounting line type info
69728 --
69729 xla_ae_lines_pkg.SetAcctLineType
69730 (p_component_type => l_component_type
69731 ,p_event_type_code => l_event_type_code
69732 ,p_line_definition_owner_code => l_line_definition_owner_code
69733 ,p_line_definition_code => l_line_definition_code
69734 ,p_accounting_line_code => l_component_code
69735 ,p_accounting_line_type_code => l_component_type_code
69736 ,p_accounting_line_appl_id => l_component_appl_id
69737 ,p_amb_context_code => l_amb_context_code
69738 ,p_entity_code => l_entity_code
69739 ,p_event_class_code => l_event_class_code);
69740 --
69741 -- set accounting class
69742 --
69743 xla_ae_lines_pkg.SetAcctClass(
69744 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
69745 , p_ae_header_id => l_ae_header_id
69746 );
69747
69748 --
69749 -- set rounding class
69750 --
69751 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69752 'MISCELLANEOUS EXPENSE';
69753
69754 --
69755 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69756 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69757 --
69758 -- bulk performance
69759 --
69760 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69761
69762 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69763 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69764
69765 -- 4955764
69766 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69767 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69768
69769 -- 4458381 Public Sector Enh
69770
69771 --
69772 -- set accounting attributes for the line type
69773 --
69774 l_entered_amt_idx := 10;
69775 l_accted_amt_idx := 15;
69776 l_bflow_applied_to_amt_idx := 2; -- 5132302
69777 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69778 l_rec_acct_attrs.array_char_value(1) := p_source_40;
69779 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69780 l_rec_acct_attrs.array_num_value(2) := p_source_61;
69781 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69782 l_rec_acct_attrs.array_num_value(3) := p_source_42;
69783 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69784 l_rec_acct_attrs.array_char_value(4) := p_source_62;
69785 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69786 l_rec_acct_attrs.array_char_value(5) := p_source_63;
69787 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69788 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
69789 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69790 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
69791 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69792 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
69793 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69794 l_rec_acct_attrs.array_char_value(9) := p_source_48;
69798 l_rec_acct_attrs.array_char_value(11) := p_source_49;
69795 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69796 l_rec_acct_attrs.array_num_value(10) := p_source_41;
69797 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69799 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
69800 l_rec_acct_attrs.array_date_value(12) := p_source_114;
69801 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
69802 l_rec_acct_attrs.array_num_value(13) := p_source_115;
69803 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
69804 l_rec_acct_attrs.array_char_value(14) := p_source_116;
69805 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
69806 l_rec_acct_attrs.array_num_value(15) := p_source_9;
69807 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
69808 l_rec_acct_attrs.array_char_value(16) := p_source_53;
69809 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
69810 l_rec_acct_attrs.array_num_value(17) := p_source_54;
69811 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
69812 l_rec_acct_attrs.array_num_value(18) := p_source_55;
69813 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
69814 l_rec_acct_attrs.array_char_value(19) := p_source_56;
69815 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
69816 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
69817 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
69818 l_rec_acct_attrs.array_char_value(21) := p_source_48;
69819 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
69820 l_rec_acct_attrs.array_num_value(22) := p_source_58;
69821 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
69822 l_rec_acct_attrs.array_num_value(23) := p_source_66;
69823 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
69824 l_rec_acct_attrs.array_num_value(24) := p_source_59;
69825
69826 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69827 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69828
69829 ---------------------------------------------------------------------------------------------------------------
69830 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69831 ---------------------------------------------------------------------------------------------------------------
69832 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69833
69834 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69835 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69836
69837 IF xla_accounting_cache_pkg.GetValueChar
69838 (p_source_code => 'LEDGER_CATEGORY_CODE'
69839 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69840 AND l_bflow_method_code = 'PRIOR_ENTRY'
69841 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69842 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69843 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69844 )
69845 THEN
69846 xla_ae_lines_pkg.BflowUpgEntry
69847 (p_business_method_code => l_bflow_method_code
69848 ,p_business_class_code => l_bflow_class_code
69849 ,p_balance_type => l_balance_type_code);
69850 ELSE
69851 NULL;
69852 -- No business flow processing for business flow method of NONE.
69853 END IF;
69854
69855 --
69856 -- call analytical criteria
69857 --
69858
69859 --
69860 -- call description
69861 --
69862 -- No description or it is inherited.
69863 --
69864 -- call ADRs
69865 -- Bug 4922099
69866 --
69867 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69868 (NVL(l_actual_upg_option, 'N') = 'O') OR
69869 (NVL(l_enc_upg_option, 'N') = 'O')
69870 )
69871 THEN
69872 NULL;
69873 --
69874 --
69875
69876 l_ccid := AcctDerRule_26(
69877 p_application_id => p_application_id
69878 , p_ae_header_id => l_ae_header_id
69879 , p_source_17 => p_source_17
69880 , x_transaction_coa_id => l_adr_transaction_coa_id
69881 , x_accounting_coa_id => l_adr_accounting_coa_id
69882 , x_value_type_code => l_adr_value_type_code
69883 , p_side => 'NA'
69884 );
69885
69886 xla_ae_lines_pkg.set_ccid(
69887 p_code_combination_id => l_ccid
69888 , p_value_type_code => l_adr_value_type_code
69889 , p_transaction_coa_id => l_adr_transaction_coa_id
69890 , p_accounting_coa_id => l_adr_accounting_coa_id
69891 , p_adr_code => 'AP_INVOICE_DIST'
69892 , p_adr_type_code => 'S'
69893 , p_component_type => l_component_type
69894 , p_component_code => l_component_code
69895 , p_component_type_code => l_component_type_code
69896 , p_component_appl_id => l_component_appl_id
69897 , p_amb_context_code => l_amb_context_code
69898 , p_side => 'NA'
69899 );
69900
69901
69902 --
69903 --
69907 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69904 END IF;
69905 --
69906 -- Bug 4922099
69908 (NVL(l_enc_upg_option, 'N') = 'O')
69909 ) AND
69910 (l_bflow_method_code = 'PRIOR_ENTRY')
69911 )
69912 THEN
69913 IF
69914 --
69915 1 = 2
69916 --
69917 THEN
69918 xla_accounting_err_pkg.build_message
69919 (p_appli_s_name => 'XLA'
69920 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69921 ,p_token_1 => 'LINE_NUMBER'
69922 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
69923 ,p_token_2 => 'LINE_TYPE_NAME'
69924 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
69925 l_component_type
69926 ,l_component_code
69927 ,l_component_type_code
69928 ,l_component_appl_id
69929 ,l_amb_context_code
69930 ,l_entity_code
69931 ,l_event_class_code
69932 )
69933 ,p_token_3 => 'OWNER'
69934 ,p_value_3 => xla_lookups_pkg.get_meaning(
69935 p_lookup_type => 'XLA_OWNER_TYPE'
69936 ,p_lookup_code => l_component_type_code
69937 )
69938 ,p_token_4 => 'PRODUCT_NAME'
69939 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69940 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69941 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69942 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69943 ,p_ae_header_id => NULL
69944 );
69945
69946 IF (C_LEVEL_ERROR>= g_log_level) THEN
69947 trace
69948 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69949 ,p_level => C_LEVEL_ERROR
69950 ,p_module => l_log_module);
69951 END IF;
69952 END IF;
69953 END IF;
69954 --
69955 --
69956 ------------------------------------------------------------------------------------------------
69957 -- 4219869 Business Flow
69958 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69959 -- Prior Entry. Currently, the following code is always generated.
69960 ------------------------------------------------------------------------------------------------
69961 XLA_AE_LINES_PKG.ValidateCurrentLine;
69962
69963 ------------------------------------------------------------------------------------
69964 -- 4219869 Business Flow
69965 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69966 ------------------------------------------------------------------------------------
69967 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69968
69969 ----------------------------------------------------------------------------------
69970 -- 4219869 Business Flow
69971 -- Update journal entry status -- Need to generate this within IF <condition>
69972 ----------------------------------------------------------------------------------
69973 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69974 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69975 ,p_balance_type_code => l_balance_type_code
69976 );
69977
69978 -------------------------------------------------------------------------------------------
69979 -- 4262811 - Generate the Accrual Reversal lines
69980 -------------------------------------------------------------------------------------------
69981 BEGIN
69982 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69983 (g_array_event(p_event_id).array_value_num('header_index'));
69984 IF l_acc_rev_flag IS NULL THEN
69985 l_acc_rev_flag := 'N';
69986 END IF;
69987 EXCEPTION
69988 WHEN OTHERS THEN
69989 l_acc_rev_flag := 'N';
69990 END;
69991 --
69992 IF (l_acc_rev_flag = 'Y') THEN
69993
69994 -- 4645092 ------------------------------------------------------------------------------
69995 -- To allow MPA report to determine if it should generate report process
69996 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69997 ------------------------------------------------------------------------------------------
69998
69999 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70003 -- Bug 4922099
70000 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70001 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
70002 -- call ADRs
70004 --
70005 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70006 (NVL(l_actual_upg_option, 'N') = 'O') OR
70007 (NVL(l_enc_upg_option, 'N') = 'O')
70008 )
70009 THEN
70010 NULL;
70011 --
70012 --
70013
70014 l_ccid := AcctDerRule_26(
70015 p_application_id => p_application_id
70016 , p_ae_header_id => l_ae_header_id
70017 , p_source_17 => p_source_17
70018 , x_transaction_coa_id => l_adr_transaction_coa_id
70019 , x_accounting_coa_id => l_adr_accounting_coa_id
70020 , x_value_type_code => l_adr_value_type_code
70021 , p_side => 'NA'
70022 );
70023
70024 xla_ae_lines_pkg.set_ccid(
70025 p_code_combination_id => l_ccid
70026 , p_value_type_code => l_adr_value_type_code
70027 , p_transaction_coa_id => l_adr_transaction_coa_id
70028 , p_accounting_coa_id => l_adr_accounting_coa_id
70029 , p_adr_code => 'AP_INVOICE_DIST'
70030 , p_adr_type_code => 'S'
70031 , p_component_type => l_component_type
70032 , p_component_code => l_component_code
70033 , p_component_type_code => l_component_type_code
70034 , p_component_appl_id => l_component_appl_id
70035 , p_amb_context_code => l_amb_context_code
70036 , p_side => 'NA'
70037 );
70038
70039
70040 --
70041 --
70042 END IF;
70043
70044 --
70045 -- Update the line information that should be overwritten
70046 --
70047 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70048 p_header_num => 1);
70049 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
70050
70051 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70052
70053 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
70054 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70055 END IF;
70056
70057 --
70058 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70059 --
70060 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70061 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
70062 ELSE
70063 ---------------------------------------------------------------------------------------------------
70064 -- 4262811a Switch Sign
70065 ---------------------------------------------------------------------------------------------------
70066 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
70067 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70068 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70069 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70070 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70071 -- 5132302
70072 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70073 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70074
70075 END IF;
70076
70077 -- 4955764
70078 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70079 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70080
70081
70082 XLA_AE_LINES_PKG.ValidateCurrentLine;
70083 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70084
70085 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70086 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70087 ,p_balance_type_code => l_balance_type_code);
70088
70089 END IF;
70090
70091 -----------------------------------------------------------------------------------------
70092 -- 4262811 Multiperiod Accounting
70093 -----------------------------------------------------------------------------------------
70094 -- No MPA option is assigned.
70095
70096
70097 END IF;
70098 END IF;
70099 --
70100
70101 --
70102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70103 trace
70104 (p_msg => 'END of AcctLineType_130'
70105 ,p_level => C_LEVEL_PROCEDURE
70106 ,p_module => l_log_module);
70107 END IF;
70108 --
70109 EXCEPTION
70110 WHEN xla_exceptions_pkg.application_exception THEN
70111 RAISE;
70112 WHEN OTHERS THEN
70113 xla_exceptions_pkg.raise_message
70114 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_130');
70115 END AcctLineType_130;
70116 --
70117
70118 ---------------------------------------
70119 --
70120 -- PRIVATE FUNCTION
70121 -- AcctLineType_131
70122 --
70126 ,p_event_id IN NUMBER
70123 ---------------------------------------
70124 PROCEDURE AcctLineType_131 (
70125 p_application_id IN NUMBER
70127 ,p_calculate_acctd_flag IN VARCHAR2
70128 ,p_calculate_g_l_flag IN VARCHAR2
70129 ,p_actual_flag IN OUT VARCHAR2
70130 ,p_balance_type_code OUT VARCHAR2
70131 ,p_gain_or_loss_ref OUT VARCHAR2
70132
70133 --Payment Distribution (Payment Rate) Ledger Amount
70134 , p_source_9 IN NUMBER
70135 --Invoice Distribution Type
70136 , p_source_20 IN VARCHAR2
70137 , p_source_20_meaning IN VARCHAR2
70138 --When to Account for Payment Option
70139 , p_source_38 IN VARCHAR2
70140 --Payment Distribution Type
70141 , p_source_39 IN VARCHAR2
70142 , p_source_39_meaning IN VARCHAR2
70143 --Accounting Reversal Indicator
70144 , p_source_40 IN VARCHAR2
70145 --Payment Distribution Amount
70146 , p_source_41 IN NUMBER
70147 --Business Flow Accounts Payable Application Identifier
70148 , p_source_42 IN NUMBER
70149 --Payment Distribution Identifier
70150 , p_source_47 IN NUMBER
70151 --Distribution Link Type
70152 , p_source_48 IN VARCHAR2
70153 --Payment Currency Code
70154 , p_source_49 IN VARCHAR2
70155 --Override Accounted Amount Indicator
70156 , p_source_53 IN VARCHAR2
70157 , p_source_53_meaning IN VARCHAR2
70158 --Third Party Type
70159 , p_source_56 IN VARCHAR2
70160 --Payment Distribution Reversed Identifier
70161 , p_source_57 IN NUMBER
70162 --Invoice Distribution Tax Line Identifier
70163 , p_source_58 IN NUMBER
70164 --Invoice Distribution Summary Tax Line Identifier
70165 , p_source_59 IN NUMBER
70166 --Payment Type
70167 , p_source_60 IN VARCHAR2
70168 , p_source_60_meaning IN VARCHAR2
70169 --Invoice Distribution Amount of the Payment Distribution
70170 , p_source_61 IN NUMBER
70171 --Business Flow Invoice Distribution Type
70172 , p_source_62 IN VARCHAR2
70173 --Business Flow Invoice Entity Code
70174 , p_source_63 IN VARCHAR2
70175 --Business Flow Invoice Distribution Identifier
70176 , p_source_64 IN NUMBER
70177 --Business Flow Invoice Identifier
70178 , p_source_65 IN NUMBER
70179 --Invoice Distribution Tax Distribution Identifier from Tax
70180 , p_source_66 IN NUMBER
70181 --Purchasing Encumbrance Option
70182 , p_source_102 IN VARCHAR2
70183 , p_source_102_meaning IN VARCHAR2
70184 --Invoice Encumbered Option
70185 , p_source_104 IN VARCHAR2
70186 , p_source_104_meaning IN VARCHAR2
70187 )
70188 IS
70189
70190 l_component_type VARCHAR2(80);
70191 l_component_code VARCHAR2(30);
70192 l_component_type_code VARCHAR2(1);
70193 l_component_appl_id INTEGER;
70194 l_amb_context_code VARCHAR2(30);
70195 l_entity_code VARCHAR2(30);
70196 l_event_class_code VARCHAR2(30);
70197 l_ae_header_id NUMBER;
70198 l_event_type_code VARCHAR2(30);
70199 l_line_definition_code VARCHAR2(30);
70200 l_line_definition_owner_code VARCHAR2(1);
70201 --
70202 -- adr variables
70203 l_segment VARCHAR2(30);
70204 l_ccid NUMBER;
70205 l_adr_transaction_coa_id NUMBER;
70206 l_adr_accounting_coa_id NUMBER;
70207 l_adr_flexfield_segment_code VARCHAR2(30);
70208 l_adr_flex_value_set_id NUMBER;
70209 l_adr_value_type_code VARCHAR2(30);
70210 l_adr_value_combination_id NUMBER;
70211 l_adr_value_segment_code VARCHAR2(30);
70212
70213 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
70214 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
70215 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
70216 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
70217
70218 -- 4262811 Variables ------------------------------------------------------------------------------------------
70219 l_entered_amt_idx NUMBER;
70220 l_accted_amt_idx NUMBER;
70221 l_acc_rev_flag VARCHAR2(1);
70222 l_accrual_line_num NUMBER;
70223 l_tmp_amt NUMBER;
70224 l_acc_rev_natural_side_code VARCHAR2(1);
70225
70226 l_num_entries NUMBER;
70227 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
70228 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
70229 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
70230 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
70231 l_recog_line_1 NUMBER;
70232 l_recog_line_2 NUMBER;
70233
70234 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
70235 l_bflow_applied_to_amt NUMBER; -- 5132302
70236 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
70237
70238 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70239
70240 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
70241 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
70242
70246 --
70243 ---------------------------------------------------------------------------------------------------------------
70244
70245
70247 -- bulk performance
70248 --
70249 l_balance_type_code VARCHAR2(1);
70250 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70251 l_log_module VARCHAR2(240);
70252
70253 --
70254 -- Upgrade strategy
70255 --
70256 l_actual_upg_option VARCHAR2(1);
70257 l_enc_upg_option VARCHAR2(1);
70258
70259 --
70260 BEGIN
70261 --
70262 IF g_log_enabled THEN
70263 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
70264 END IF;
70265 --
70266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70267
70268 trace
70269 (p_msg => 'BEGIN of AcctLineType_131'
70270 ,p_level => C_LEVEL_PROCEDURE
70271 ,p_module => l_log_module);
70272
70273 END IF;
70274 --
70275 l_component_type := 'AMB_JLT';
70276 l_component_code := 'AP_MISC_EXPENSE_PMT_ENC';
70277 l_component_type_code := 'S';
70278 l_component_appl_id := 200;
70279 l_amb_context_code := 'DEFAULT';
70280 l_entity_code := 'AP_PAYMENTS';
70281 l_event_class_code := 'PAYMENTS';
70282 l_event_type_code := 'PAYMENTS_ALL';
70283 l_line_definition_owner_code := 'S';
70284 l_line_definition_code := 'ENC_PAYMENTS_ALL';
70285 --
70286 l_balance_type_code := 'E';
70287 l_segment := NULL;
70288 l_ccid := NULL;
70289 l_adr_transaction_coa_id := NULL;
70290 l_adr_accounting_coa_id := NULL;
70291 l_adr_flexfield_segment_code := NULL;
70292 l_adr_flex_value_set_id := NULL;
70293 l_adr_value_type_code := NULL;
70294 l_adr_value_combination_id := NULL;
70295 l_adr_value_segment_code := NULL;
70296
70297 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
70298 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
70299 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
70300 l_budgetary_control_flag := 'N';
70301
70302 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70303 l_bflow_applied_to_amt := NULL; -- 5132302
70304 l_entered_amt_idx := NULL; -- 4262811
70305 l_accted_amt_idx := NULL; -- 4262811
70306 l_acc_rev_flag := NULL; -- 4262811
70307 l_accrual_line_num := NULL; -- 4262811
70308 l_tmp_amt := NULL; -- 4262811
70309 --
70310
70311 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70312 l_balance_type_code <> 'B' THEN
70313 IF NVL(p_source_38,'
70314 ') <> 'CLEAR_CLEAR' AND
70315 NVL(p_source_20,'
70316 ') = 'MISCELLANEOUS' AND
70317 (NVL(p_source_39,'
70318 ') = 'CASH' OR
70319 NVL(p_source_39,'
70320 ') = 'DISCOUNT') AND
70321 NVL(p_source_60,'
70322 ') <> 'R' AND
70323 NVL(p_source_102,'
70324 ') = 'Y' AND
70325 NVL(p_source_104,'
70326 ') = 'Y'
70327 THEN
70328
70329 --
70330 XLA_AE_LINES_PKG.SetNewLine;
70331
70332 p_balance_type_code := l_balance_type_code;
70333 -- set the flag so later we will know whether the gain loss line needs to be created
70334
70335 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70336 p_actual_flag :='A';
70337 END IF;
70338
70339 --
70340 -- bulk performance
70341 --
70342 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70343 p_header_num => 0); -- 4262811
70344 --
70345 -- set accounting line options
70346 --
70347 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70348 p_natural_side_code => 'C'
70349 , p_gain_or_loss_flag => 'N'
70350 , p_gl_transfer_mode_code => 'S'
70351 , p_acct_entry_type_code => 'E'
70352 , p_switch_side_flag => 'Y'
70353 , p_merge_duplicate_code => 'A'
70354 );
70355 --
70356 l_acc_rev_natural_side_code := 'D'; -- 4262811
70357 --
70358 --
70359 -- set accounting line type info
70360 --
70361 xla_ae_lines_pkg.SetAcctLineType
70362 (p_component_type => l_component_type
70363 ,p_event_type_code => l_event_type_code
70364 ,p_line_definition_owner_code => l_line_definition_owner_code
70365 ,p_line_definition_code => l_line_definition_code
70366 ,p_accounting_line_code => l_component_code
70367 ,p_accounting_line_type_code => l_component_type_code
70368 ,p_accounting_line_appl_id => l_component_appl_id
70369 ,p_amb_context_code => l_amb_context_code
70370 ,p_entity_code => l_entity_code
70371 ,p_event_class_code => l_event_class_code);
70372 --
70373 -- set accounting class
70374 --
70375 xla_ae_lines_pkg.SetAcctClass(
70376 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
70377 , p_ae_header_id => l_ae_header_id
70378 );
70379
70380 --
70381 -- set rounding class
70382 --
70386 --
70383 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70384 'MISCELLANEOUS EXPENSE';
70385
70387 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70388 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70389 --
70390 -- bulk performance
70391 --
70392 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70393
70394 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70395 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70396
70397 -- 4955764
70398 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70399 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70400
70401 -- 4458381 Public Sector Enh
70402
70403 --
70404 -- set accounting attributes for the line type
70405 --
70406 l_entered_amt_idx := 10;
70407 l_accted_amt_idx := 12;
70408 l_bflow_applied_to_amt_idx := 2; -- 5132302
70409 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70410 l_rec_acct_attrs.array_char_value(1) := p_source_40;
70411 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
70412 l_rec_acct_attrs.array_num_value(2) := p_source_61;
70413 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
70414 l_rec_acct_attrs.array_num_value(3) := p_source_42;
70415 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70416 l_rec_acct_attrs.array_char_value(4) := p_source_62;
70417 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
70418 l_rec_acct_attrs.array_char_value(5) := p_source_63;
70419 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
70420 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
70421 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70422 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
70423 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
70424 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
70425 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
70426 l_rec_acct_attrs.array_char_value(9) := p_source_48;
70427 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
70428 l_rec_acct_attrs.array_num_value(10) := p_source_41;
70429 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
70430 l_rec_acct_attrs.array_char_value(11) := p_source_49;
70431 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
70432 l_rec_acct_attrs.array_num_value(12) := p_source_9;
70433 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
70434 l_rec_acct_attrs.array_char_value(13) := p_source_53;
70435 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
70436 l_rec_acct_attrs.array_char_value(14) := p_source_56;
70437 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
70438 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
70439 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
70440 l_rec_acct_attrs.array_char_value(16) := p_source_48;
70441 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
70442 l_rec_acct_attrs.array_num_value(17) := p_source_58;
70443 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
70444 l_rec_acct_attrs.array_num_value(18) := p_source_66;
70445 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
70446 l_rec_acct_attrs.array_num_value(19) := p_source_59;
70447
70448 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70449 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70450
70451 ---------------------------------------------------------------------------------------------------------------
70452 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70453 ---------------------------------------------------------------------------------------------------------------
70454 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70455
70456 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70457 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70458
70459 IF xla_accounting_cache_pkg.GetValueChar
70460 (p_source_code => 'LEDGER_CATEGORY_CODE'
70461 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70462 AND l_bflow_method_code = 'PRIOR_ENTRY'
70463 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70464 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70465 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70466 )
70467 THEN
70468 xla_ae_lines_pkg.BflowUpgEntry
70469 (p_business_method_code => l_bflow_method_code
70470 ,p_business_class_code => l_bflow_class_code
70471 ,p_balance_type => l_balance_type_code);
70472 ELSE
70473 NULL;
70474 XLA_AE_LINES_PKG.business_flow_validation(
70475 p_business_method_code => l_bflow_method_code
70479
70476 ,p_business_class_code => l_bflow_class_code
70477 ,p_inherit_description_flag => l_inherit_desc_flag);
70478 END IF;
70480 --
70481 -- call analytical criteria
70482 --
70483 -- Inherited Analytical Criteria for business flow method of Prior Entry.
70484 --
70485 -- call description
70486 --
70487 -- No description or it is inherited.
70488 --
70489 -- call ADRs
70490 -- Bug 4922099
70491 --
70492 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70493 (NVL(l_actual_upg_option, 'N') = 'O') OR
70494 (NVL(l_enc_upg_option, 'N') = 'O')
70495 )
70496 THEN
70497 NULL;
70498 --
70499 --
70500
70501 --
70502 --
70503 END IF;
70504 --
70505 -- Bug 4922099
70506 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70507 (NVL(l_enc_upg_option, 'N') = 'O')
70508 ) AND
70509 (l_bflow_method_code = 'PRIOR_ENTRY')
70510 )
70511 THEN
70512 IF
70513 --
70514 1 = 1
70515 --
70516 THEN
70517 xla_accounting_err_pkg.build_message
70518 (p_appli_s_name => 'XLA'
70519 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70520 ,p_token_1 => 'LINE_NUMBER'
70521 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
70522 ,p_token_2 => 'LINE_TYPE_NAME'
70523 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
70524 l_component_type
70525 ,l_component_code
70526 ,l_component_type_code
70527 ,l_component_appl_id
70528 ,l_amb_context_code
70529 ,l_entity_code
70530 ,l_event_class_code
70531 )
70532 ,p_token_3 => 'OWNER'
70533 ,p_value_3 => xla_lookups_pkg.get_meaning(
70534 p_lookup_type => 'XLA_OWNER_TYPE'
70535 ,p_lookup_code => l_component_type_code
70536 )
70537 ,p_token_4 => 'PRODUCT_NAME'
70538 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70539 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70540 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70541 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70542 ,p_ae_header_id => NULL
70543 );
70544
70545 IF (C_LEVEL_ERROR>= g_log_level) THEN
70546 trace
70547 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70548 ,p_level => C_LEVEL_ERROR
70549 ,p_module => l_log_module);
70550 END IF;
70551 END IF;
70552 END IF;
70553 --
70554 --
70555 ------------------------------------------------------------------------------------------------
70556 -- 4219869 Business Flow
70557 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70558 -- Prior Entry. Currently, the following code is always generated.
70559 ------------------------------------------------------------------------------------------------
70560 -- No ValidateCurrentLine for business flow method of Prior Entry
70561
70562 ------------------------------------------------------------------------------------
70563 -- 4219869 Business Flow
70564 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70565 ------------------------------------------------------------------------------------
70566 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70567
70568 ----------------------------------------------------------------------------------
70569 -- 4219869 Business Flow
70570 -- Update journal entry status -- Need to generate this within IF <condition>
70571 ----------------------------------------------------------------------------------
70572 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70573 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70574 ,p_balance_type_code => l_balance_type_code
70575 );
70576
70577 -------------------------------------------------------------------------------------------
70578 -- 4262811 - Generate the Accrual Reversal lines
70579 -------------------------------------------------------------------------------------------
70580 BEGIN
70584 l_acc_rev_flag := 'N';
70581 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70582 (g_array_event(p_event_id).array_value_num('header_index'));
70583 IF l_acc_rev_flag IS NULL THEN
70585 END IF;
70586 EXCEPTION
70587 WHEN OTHERS THEN
70588 l_acc_rev_flag := 'N';
70589 END;
70590 --
70591 IF (l_acc_rev_flag = 'Y') THEN
70592
70593 -- 4645092 ------------------------------------------------------------------------------
70594 -- To allow MPA report to determine if it should generate report process
70595 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70596 ------------------------------------------------------------------------------------------
70597
70598 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70599 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70600 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
70601 -- call ADRs
70602 -- Bug 4922099
70603 --
70604 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70605 (NVL(l_actual_upg_option, 'N') = 'O') OR
70606 (NVL(l_enc_upg_option, 'N') = 'O')
70607 )
70608 THEN
70609 NULL;
70610 --
70611 --
70612
70613 --
70614 --
70615 END IF;
70616
70617 --
70618 -- Update the line information that should be overwritten
70619 --
70620 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70621 p_header_num => 1);
70622 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
70623
70624 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70625
70626 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
70627 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70628 END IF;
70629
70630 --
70631 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70632 --
70633 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70634 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
70635 ELSE
70636 ---------------------------------------------------------------------------------------------------
70637 -- 4262811a Switch Sign
70638 ---------------------------------------------------------------------------------------------------
70639 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
70640 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70641 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70642 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70643 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70644 -- 5132302
70645 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70646 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70647
70648 END IF;
70649
70650 -- 4955764
70651 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70652 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70653
70654
70655 XLA_AE_LINES_PKG.ValidateCurrentLine;
70656 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70657
70658 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70659 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70660 ,p_balance_type_code => l_balance_type_code);
70661
70662 END IF;
70663
70664 -----------------------------------------------------------------------------------------
70665 -- 4262811 Multiperiod Accounting
70666 -----------------------------------------------------------------------------------------
70667 -- No MPA option is assigned.
70668
70669
70670 END IF;
70671 END IF;
70672 --
70673
70674 --
70675 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70676 trace
70677 (p_msg => 'END of AcctLineType_131'
70678 ,p_level => C_LEVEL_PROCEDURE
70679 ,p_module => l_log_module);
70680 END IF;
70681 --
70682 EXCEPTION
70683 WHEN xla_exceptions_pkg.application_exception THEN
70684 RAISE;
70685 WHEN OTHERS THEN
70686 xla_exceptions_pkg.raise_message
70687 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_131');
70688 END AcctLineType_131;
70689 --
70690
70691 ---------------------------------------
70692 --
70693 -- PRIVATE FUNCTION
70694 -- AcctLineType_132
70695 --
70696 ---------------------------------------
70697 PROCEDURE AcctLineType_132 (
70698 p_application_id IN NUMBER
70699 ,p_event_id IN NUMBER
70700 ,p_calculate_acctd_flag IN VARCHAR2
70701 ,p_calculate_g_l_flag IN VARCHAR2
70702 ,p_actual_flag IN OUT VARCHAR2
70703 ,p_balance_type_code OUT VARCHAR2
70704 ,p_gain_or_loss_ref OUT VARCHAR2
70705
70709 , p_source_17 IN NUMBER
70706 --Payment Distribution (Payment Rate) Ledger Amount
70707 , p_source_9 IN NUMBER
70708 --Invoice Distribution Account
70710 --Invoice Distribution Type
70711 , p_source_20 IN VARCHAR2
70712 , p_source_20_meaning IN VARCHAR2
70713 --When to Account for Payment Option
70714 , p_source_38 IN VARCHAR2
70715 --Payment Distribution Type
70716 , p_source_39 IN VARCHAR2
70717 , p_source_39_meaning IN VARCHAR2
70718 --Accounting Reversal Indicator
70719 , p_source_40 IN VARCHAR2
70720 --Payment Distribution Amount
70721 , p_source_41 IN NUMBER
70722 --Business Flow Accounts Payable Application Identifier
70723 , p_source_42 IN NUMBER
70724 --Payment Distribution Identifier
70725 , p_source_47 IN NUMBER
70726 --Distribution Link Type
70727 , p_source_48 IN VARCHAR2
70728 --Payment Currency Code
70729 , p_source_49 IN VARCHAR2
70730 --Override Accounted Amount Indicator
70731 , p_source_53 IN VARCHAR2
70732 , p_source_53_meaning IN VARCHAR2
70733 --Payment Supplier Identifier
70734 , p_source_54 IN NUMBER
70735 --Payment Supplier Site Identifier
70736 , p_source_55 IN NUMBER
70737 --Third Party Type
70738 , p_source_56 IN VARCHAR2
70739 --Payment Distribution Reversed Identifier
70740 , p_source_57 IN NUMBER
70741 --Invoice Distribution Tax Line Identifier
70742 , p_source_58 IN NUMBER
70743 --Invoice Distribution Summary Tax Line Identifier
70744 , p_source_59 IN NUMBER
70745 --Payment Type
70746 , p_source_60 IN VARCHAR2
70747 , p_source_60_meaning IN VARCHAR2
70748 --Business Flow Invoice Distribution Type
70749 , p_source_62 IN VARCHAR2
70750 --Business Flow Invoice Entity Code
70751 , p_source_63 IN VARCHAR2
70752 --Business Flow Invoice Distribution Identifier
70753 , p_source_64 IN NUMBER
70754 --Business Flow Invoice Identifier
70755 , p_source_65 IN NUMBER
70756 --Invoice Distribution Tax Distribution Identifier from Tax
70757 , p_source_66 IN NUMBER
70758 --Payment Exchange Date
70759 , p_source_114 IN DATE
70760 --Payment Exchange Rate
70761 , p_source_115 IN NUMBER
70762 --Payment Exchange Rate Type
70763 , p_source_116 IN VARCHAR2
70764 )
70765 IS
70766
70767 l_component_type VARCHAR2(80);
70768 l_component_code VARCHAR2(30);
70769 l_component_type_code VARCHAR2(1);
70770 l_component_appl_id INTEGER;
70771 l_amb_context_code VARCHAR2(30);
70772 l_entity_code VARCHAR2(30);
70773 l_event_class_code VARCHAR2(30);
70774 l_ae_header_id NUMBER;
70775 l_event_type_code VARCHAR2(30);
70776 l_line_definition_code VARCHAR2(30);
70777 l_line_definition_owner_code VARCHAR2(1);
70778 --
70779 -- adr variables
70780 l_segment VARCHAR2(30);
70781 l_ccid NUMBER;
70782 l_adr_transaction_coa_id NUMBER;
70783 l_adr_accounting_coa_id NUMBER;
70784 l_adr_flexfield_segment_code VARCHAR2(30);
70785 l_adr_flex_value_set_id NUMBER;
70786 l_adr_value_type_code VARCHAR2(30);
70787 l_adr_value_combination_id NUMBER;
70788 l_adr_value_segment_code VARCHAR2(30);
70789
70790 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
70791 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
70792 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
70793 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
70794
70795 -- 4262811 Variables ------------------------------------------------------------------------------------------
70796 l_entered_amt_idx NUMBER;
70797 l_accted_amt_idx NUMBER;
70798 l_acc_rev_flag VARCHAR2(1);
70799 l_accrual_line_num NUMBER;
70800 l_tmp_amt NUMBER;
70801 l_acc_rev_natural_side_code VARCHAR2(1);
70802
70803 l_num_entries NUMBER;
70804 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
70805 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
70806 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
70807 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
70808 l_recog_line_1 NUMBER;
70809 l_recog_line_2 NUMBER;
70810
70811 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
70812 l_bflow_applied_to_amt NUMBER; -- 5132302
70813 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
70814
70815 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70816
70817 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
70818 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
70819
70820 ---------------------------------------------------------------------------------------------------------------
70821
70822
70823 --
70824 -- bulk performance
70825 --
70826 l_balance_type_code VARCHAR2(1);
70827 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70831 -- Upgrade strategy
70828 l_log_module VARCHAR2(240);
70829
70830 --
70832 --
70833 l_actual_upg_option VARCHAR2(1);
70834 l_enc_upg_option VARCHAR2(1);
70835
70836 --
70837 BEGIN
70838 --
70839 IF g_log_enabled THEN
70840 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
70841 END IF;
70842 --
70843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70844
70845 trace
70846 (p_msg => 'BEGIN of AcctLineType_132'
70847 ,p_level => C_LEVEL_PROCEDURE
70848 ,p_module => l_log_module);
70849
70850 END IF;
70851 --
70852 l_component_type := 'AMB_JLT';
70853 l_component_code := 'AP_MISC_EXPENSE_REF';
70854 l_component_type_code := 'S';
70855 l_component_appl_id := 200;
70856 l_amb_context_code := 'DEFAULT';
70857 l_entity_code := 'AP_PAYMENTS';
70858 l_event_class_code := 'REFUNDS';
70859 l_event_type_code := 'REFUNDS_ALL';
70860 l_line_definition_owner_code := 'S';
70861 l_line_definition_code := 'CASH_REFUNDS_ALL';
70862 --
70863 l_balance_type_code := 'A';
70864 l_segment := NULL;
70865 l_ccid := NULL;
70866 l_adr_transaction_coa_id := NULL;
70867 l_adr_accounting_coa_id := NULL;
70868 l_adr_flexfield_segment_code := NULL;
70869 l_adr_flex_value_set_id := NULL;
70870 l_adr_value_type_code := NULL;
70871 l_adr_value_combination_id := NULL;
70872 l_adr_value_segment_code := NULL;
70873
70874 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
70875 l_bflow_class_code := ''; -- 4219869 Business Flow
70876 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
70877 l_budgetary_control_flag := 'N';
70878
70879 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70880 l_bflow_applied_to_amt := NULL; -- 5132302
70881 l_entered_amt_idx := NULL; -- 4262811
70882 l_accted_amt_idx := NULL; -- 4262811
70883 l_acc_rev_flag := NULL; -- 4262811
70884 l_accrual_line_num := NULL; -- 4262811
70885 l_tmp_amt := NULL; -- 4262811
70886 --
70887
70888 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70889 l_balance_type_code <> 'B' THEN
70890 IF NVL(p_source_38,'
70891 ') <> 'CLEAR_CLEAR' AND
70892 NVL(p_source_20,'
70893 ') = 'MISCELLANEOUS' AND
70894 (NVL(p_source_39,'
70895 ') = 'CASH' OR
70896 NVL(p_source_39,'
70897 ') = 'DISCOUNT') AND
70898 NVL(p_source_60,'
70899 ') = 'R'
70900 THEN
70901
70902 --
70903 XLA_AE_LINES_PKG.SetNewLine;
70904
70905 p_balance_type_code := l_balance_type_code;
70906 -- set the flag so later we will know whether the gain loss line needs to be created
70907
70908 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70909 p_actual_flag :='A';
70910 END IF;
70911
70912 --
70913 -- bulk performance
70914 --
70915 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70916 p_header_num => 0); -- 4262811
70917 --
70918 -- set accounting line options
70919 --
70920 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70921 p_natural_side_code => 'D'
70922 , p_gain_or_loss_flag => 'N'
70923 , p_gl_transfer_mode_code => 'S'
70924 , p_acct_entry_type_code => 'A'
70925 , p_switch_side_flag => 'Y'
70926 , p_merge_duplicate_code => 'A'
70927 );
70928 --
70929 l_acc_rev_natural_side_code := 'C'; -- 4262811
70930 --
70931 --
70932 -- set accounting line type info
70933 --
70934 xla_ae_lines_pkg.SetAcctLineType
70935 (p_component_type => l_component_type
70936 ,p_event_type_code => l_event_type_code
70937 ,p_line_definition_owner_code => l_line_definition_owner_code
70938 ,p_line_definition_code => l_line_definition_code
70939 ,p_accounting_line_code => l_component_code
70940 ,p_accounting_line_type_code => l_component_type_code
70941 ,p_accounting_line_appl_id => l_component_appl_id
70942 ,p_amb_context_code => l_amb_context_code
70943 ,p_entity_code => l_entity_code
70944 ,p_event_class_code => l_event_class_code);
70945 --
70946 -- set accounting class
70947 --
70948 xla_ae_lines_pkg.SetAcctClass(
70949 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
70950 , p_ae_header_id => l_ae_header_id
70951 );
70952
70953 --
70954 -- set rounding class
70955 --
70956 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70957 'MISCELLANEOUS EXPENSE';
70958
70959 --
70960 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70961 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70962 --
70963 -- bulk performance
70964 --
70968 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70965 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70966
70967 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70969
70970 -- 4955764
70971 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70972 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70973
70974 -- 4458381 Public Sector Enh
70975
70976 --
70977 -- set accounting attributes for the line type
70978 --
70979 l_entered_amt_idx := 9;
70980 l_accted_amt_idx := 14;
70981 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70982 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70983 l_rec_acct_attrs.array_char_value(1) := p_source_40;
70984 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
70985 l_rec_acct_attrs.array_num_value(2) := p_source_42;
70986 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70987 l_rec_acct_attrs.array_char_value(3) := p_source_62;
70988 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
70989 l_rec_acct_attrs.array_char_value(4) := p_source_63;
70990 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
70991 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
70992 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70993 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
70994 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
70995 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
70996 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
70997 l_rec_acct_attrs.array_char_value(8) := p_source_48;
70998 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
70999 l_rec_acct_attrs.array_num_value(9) := p_source_41;
71000 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
71001 l_rec_acct_attrs.array_char_value(10) := p_source_49;
71002 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
71003 l_rec_acct_attrs.array_date_value(11) := p_source_114;
71004 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
71005 l_rec_acct_attrs.array_num_value(12) := p_source_115;
71006 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
71007 l_rec_acct_attrs.array_char_value(13) := p_source_116;
71008 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
71009 l_rec_acct_attrs.array_num_value(14) := p_source_9;
71010 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
71011 l_rec_acct_attrs.array_char_value(15) := p_source_53;
71012 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
71013 l_rec_acct_attrs.array_num_value(16) := p_source_54;
71014 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
71015 l_rec_acct_attrs.array_num_value(17) := p_source_55;
71016 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
71017 l_rec_acct_attrs.array_char_value(18) := p_source_56;
71018 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
71019 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
71020 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
71021 l_rec_acct_attrs.array_char_value(20) := p_source_48;
71022 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
71023 l_rec_acct_attrs.array_num_value(21) := p_source_58;
71024 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
71025 l_rec_acct_attrs.array_num_value(22) := p_source_66;
71026 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
71027 l_rec_acct_attrs.array_num_value(23) := p_source_59;
71028
71029 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71030 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71031
71032 ---------------------------------------------------------------------------------------------------------------
71033 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71034 ---------------------------------------------------------------------------------------------------------------
71035 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71036
71037 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71038 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71039
71040 IF xla_accounting_cache_pkg.GetValueChar
71041 (p_source_code => 'LEDGER_CATEGORY_CODE'
71042 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71043 AND l_bflow_method_code = 'PRIOR_ENTRY'
71044 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71045 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71046 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71047 )
71048 THEN
71049 xla_ae_lines_pkg.BflowUpgEntry
71050 (p_business_method_code => l_bflow_method_code
71051 ,p_business_class_code => l_bflow_class_code
71052 ,p_balance_type => l_balance_type_code);
71053 ELSE
71054 NULL;
71055 -- No business flow processing for business flow method of NONE.
71056 END IF;
71057
71061
71058 --
71059 -- call analytical criteria
71060 --
71062 --
71063 -- call description
71064 --
71065 -- No description or it is inherited.
71066 --
71067 -- call ADRs
71068 -- Bug 4922099
71069 --
71070 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71071 (NVL(l_actual_upg_option, 'N') = 'O') OR
71072 (NVL(l_enc_upg_option, 'N') = 'O')
71073 )
71074 THEN
71075 NULL;
71076 --
71077 --
71078
71079 l_ccid := AcctDerRule_26(
71080 p_application_id => p_application_id
71081 , p_ae_header_id => l_ae_header_id
71082 , p_source_17 => p_source_17
71083 , x_transaction_coa_id => l_adr_transaction_coa_id
71084 , x_accounting_coa_id => l_adr_accounting_coa_id
71085 , x_value_type_code => l_adr_value_type_code
71086 , p_side => 'NA'
71087 );
71088
71089 xla_ae_lines_pkg.set_ccid(
71090 p_code_combination_id => l_ccid
71091 , p_value_type_code => l_adr_value_type_code
71092 , p_transaction_coa_id => l_adr_transaction_coa_id
71093 , p_accounting_coa_id => l_adr_accounting_coa_id
71094 , p_adr_code => 'AP_INVOICE_DIST'
71095 , p_adr_type_code => 'S'
71096 , p_component_type => l_component_type
71097 , p_component_code => l_component_code
71098 , p_component_type_code => l_component_type_code
71099 , p_component_appl_id => l_component_appl_id
71100 , p_amb_context_code => l_amb_context_code
71101 , p_side => 'NA'
71102 );
71103
71104
71105 --
71106 --
71107 END IF;
71108 --
71109 -- Bug 4922099
71110 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71111 (NVL(l_enc_upg_option, 'N') = 'O')
71112 ) AND
71113 (l_bflow_method_code = 'PRIOR_ENTRY')
71114 )
71115 THEN
71116 IF
71117 --
71118 1 = 2
71119 --
71120 THEN
71121 xla_accounting_err_pkg.build_message
71122 (p_appli_s_name => 'XLA'
71123 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71124 ,p_token_1 => 'LINE_NUMBER'
71125 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
71126 ,p_token_2 => 'LINE_TYPE_NAME'
71127 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
71128 l_component_type
71129 ,l_component_code
71130 ,l_component_type_code
71131 ,l_component_appl_id
71132 ,l_amb_context_code
71133 ,l_entity_code
71134 ,l_event_class_code
71135 )
71136 ,p_token_3 => 'OWNER'
71137 ,p_value_3 => xla_lookups_pkg.get_meaning(
71138 p_lookup_type => 'XLA_OWNER_TYPE'
71139 ,p_lookup_code => l_component_type_code
71140 )
71141 ,p_token_4 => 'PRODUCT_NAME'
71142 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71143 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71144 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71145 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71146 ,p_ae_header_id => NULL
71147 );
71148
71149 IF (C_LEVEL_ERROR>= g_log_level) THEN
71150 trace
71151 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71152 ,p_level => C_LEVEL_ERROR
71153 ,p_module => l_log_module);
71154 END IF;
71155 END IF;
71156 END IF;
71157 --
71158 --
71159 ------------------------------------------------------------------------------------------------
71160 -- 4219869 Business Flow
71161 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71162 -- Prior Entry. Currently, the following code is always generated.
71163 ------------------------------------------------------------------------------------------------
71164 XLA_AE_LINES_PKG.ValidateCurrentLine;
71165
71166 ------------------------------------------------------------------------------------
71167 -- 4219869 Business Flow
71171
71168 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71169 ------------------------------------------------------------------------------------
71170 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71172 ----------------------------------------------------------------------------------
71173 -- 4219869 Business Flow
71174 -- Update journal entry status -- Need to generate this within IF <condition>
71175 ----------------------------------------------------------------------------------
71176 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71177 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71178 ,p_balance_type_code => l_balance_type_code
71179 );
71180
71181 -------------------------------------------------------------------------------------------
71182 -- 4262811 - Generate the Accrual Reversal lines
71183 -------------------------------------------------------------------------------------------
71184 BEGIN
71185 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71186 (g_array_event(p_event_id).array_value_num('header_index'));
71187 IF l_acc_rev_flag IS NULL THEN
71188 l_acc_rev_flag := 'N';
71189 END IF;
71190 EXCEPTION
71191 WHEN OTHERS THEN
71192 l_acc_rev_flag := 'N';
71193 END;
71194 --
71195 IF (l_acc_rev_flag = 'Y') THEN
71196
71197 -- 4645092 ------------------------------------------------------------------------------
71198 -- To allow MPA report to determine if it should generate report process
71199 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71200 ------------------------------------------------------------------------------------------
71201
71202 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71203 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71204 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
71205 -- call ADRs
71206 -- Bug 4922099
71207 --
71208 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71209 (NVL(l_actual_upg_option, 'N') = 'O') OR
71210 (NVL(l_enc_upg_option, 'N') = 'O')
71211 )
71212 THEN
71213 NULL;
71214 --
71215 --
71216
71217 l_ccid := AcctDerRule_26(
71218 p_application_id => p_application_id
71219 , p_ae_header_id => l_ae_header_id
71220 , p_source_17 => p_source_17
71221 , x_transaction_coa_id => l_adr_transaction_coa_id
71222 , x_accounting_coa_id => l_adr_accounting_coa_id
71223 , x_value_type_code => l_adr_value_type_code
71224 , p_side => 'NA'
71225 );
71226
71227 xla_ae_lines_pkg.set_ccid(
71228 p_code_combination_id => l_ccid
71229 , p_value_type_code => l_adr_value_type_code
71230 , p_transaction_coa_id => l_adr_transaction_coa_id
71231 , p_accounting_coa_id => l_adr_accounting_coa_id
71232 , p_adr_code => 'AP_INVOICE_DIST'
71233 , p_adr_type_code => 'S'
71234 , p_component_type => l_component_type
71235 , p_component_code => l_component_code
71236 , p_component_type_code => l_component_type_code
71237 , p_component_appl_id => l_component_appl_id
71238 , p_amb_context_code => l_amb_context_code
71239 , p_side => 'NA'
71240 );
71241
71242
71243 --
71244 --
71245 END IF;
71246
71247 --
71248 -- Update the line information that should be overwritten
71249 --
71250 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71251 p_header_num => 1);
71252 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
71253
71254 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71255
71256 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
71257 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71258 END IF;
71259
71260 --
71261 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71262 --
71263 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71264 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
71265 ELSE
71266 ---------------------------------------------------------------------------------------------------
71267 -- 4262811a Switch Sign
71268 ---------------------------------------------------------------------------------------------------
71269 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
71270 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71271 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71272 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71273 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71274 -- 5132302
71278 END IF;
71275 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71276 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71277
71279
71280 -- 4955764
71281 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71282 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71283
71284
71285 XLA_AE_LINES_PKG.ValidateCurrentLine;
71286 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71287
71288 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71289 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71290 ,p_balance_type_code => l_balance_type_code);
71291
71292 END IF;
71293
71294 -----------------------------------------------------------------------------------------
71295 -- 4262811 Multiperiod Accounting
71296 -----------------------------------------------------------------------------------------
71297 -- No MPA option is assigned.
71298
71299
71300 END IF;
71301 END IF;
71302 --
71303
71304 --
71305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71306 trace
71307 (p_msg => 'END of AcctLineType_132'
71308 ,p_level => C_LEVEL_PROCEDURE
71309 ,p_module => l_log_module);
71310 END IF;
71311 --
71312 EXCEPTION
71313 WHEN xla_exceptions_pkg.application_exception THEN
71314 RAISE;
71315 WHEN OTHERS THEN
71316 xla_exceptions_pkg.raise_message
71317 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_132');
71318 END AcctLineType_132;
71319 --
71320
71321 ---------------------------------------
71322 --
71323 -- PRIVATE FUNCTION
71324 -- AcctLineType_133
71325 --
71326 ---------------------------------------
71327 PROCEDURE AcctLineType_133 (
71328 p_application_id IN NUMBER
71329 ,p_event_id IN NUMBER
71330 ,p_calculate_acctd_flag IN VARCHAR2
71331 ,p_calculate_g_l_flag IN VARCHAR2
71332 ,p_actual_flag IN OUT VARCHAR2
71333 ,p_balance_type_code OUT VARCHAR2
71334 ,p_gain_or_loss_ref OUT VARCHAR2
71335
71336 --Payment Distribution (Payment Rate) Ledger Amount
71337 , p_source_9 IN NUMBER
71338 --Invoice Distribution Type
71339 , p_source_20 IN VARCHAR2
71340 , p_source_20_meaning IN VARCHAR2
71341 --When to Account for Payment Option
71342 , p_source_38 IN VARCHAR2
71343 --Payment Distribution Type
71344 , p_source_39 IN VARCHAR2
71345 , p_source_39_meaning IN VARCHAR2
71346 --Accounting Reversal Indicator
71347 , p_source_40 IN VARCHAR2
71348 --Payment Distribution Amount
71349 , p_source_41 IN NUMBER
71350 --Business Flow Accounts Payable Application Identifier
71351 , p_source_42 IN NUMBER
71352 --Payment Distribution Identifier
71353 , p_source_47 IN NUMBER
71354 --Distribution Link Type
71355 , p_source_48 IN VARCHAR2
71356 --Payment Currency Code
71357 , p_source_49 IN VARCHAR2
71358 --Override Accounted Amount Indicator
71359 , p_source_53 IN VARCHAR2
71360 , p_source_53_meaning IN VARCHAR2
71361 --Third Party Type
71362 , p_source_56 IN VARCHAR2
71363 --Payment Distribution Reversed Identifier
71364 , p_source_57 IN NUMBER
71365 --Invoice Distribution Tax Line Identifier
71366 , p_source_58 IN NUMBER
71367 --Invoice Distribution Summary Tax Line Identifier
71368 , p_source_59 IN NUMBER
71369 --Payment Type
71370 , p_source_60 IN VARCHAR2
71371 , p_source_60_meaning IN VARCHAR2
71372 --Business Flow Invoice Distribution Type
71373 , p_source_62 IN VARCHAR2
71374 --Business Flow Invoice Entity Code
71375 , p_source_63 IN VARCHAR2
71376 --Business Flow Invoice Distribution Identifier
71377 , p_source_64 IN NUMBER
71378 --Business Flow Invoice Identifier
71379 , p_source_65 IN NUMBER
71380 --Invoice Distribution Tax Distribution Identifier from Tax
71381 , p_source_66 IN NUMBER
71382 --Purchasing Encumbrance Option
71383 , p_source_102 IN VARCHAR2
71384 , p_source_102_meaning IN VARCHAR2
71385 --Invoice Encumbered Option
71386 , p_source_104 IN VARCHAR2
71387 , p_source_104_meaning IN VARCHAR2
71388 )
71389 IS
71390
71391 l_component_type VARCHAR2(80);
71392 l_component_code VARCHAR2(30);
71393 l_component_type_code VARCHAR2(1);
71394 l_component_appl_id INTEGER;
71395 l_amb_context_code VARCHAR2(30);
71396 l_entity_code VARCHAR2(30);
71397 l_event_class_code VARCHAR2(30);
71398 l_ae_header_id NUMBER;
71399 l_event_type_code VARCHAR2(30);
71400 l_line_definition_code VARCHAR2(30);
71401 l_line_definition_owner_code VARCHAR2(1);
71402 --
71403 -- adr variables
71404 l_segment VARCHAR2(30);
71405 l_ccid NUMBER;
71406 l_adr_transaction_coa_id NUMBER;
71407 l_adr_accounting_coa_id NUMBER;
71408 l_adr_flexfield_segment_code VARCHAR2(30);
71409 l_adr_flex_value_set_id NUMBER;
71413
71410 l_adr_value_type_code VARCHAR2(30);
71411 l_adr_value_combination_id NUMBER;
71412 l_adr_value_segment_code VARCHAR2(30);
71414 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
71415 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
71416 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
71417 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
71418
71419 -- 4262811 Variables ------------------------------------------------------------------------------------------
71420 l_entered_amt_idx NUMBER;
71421 l_accted_amt_idx NUMBER;
71422 l_acc_rev_flag VARCHAR2(1);
71423 l_accrual_line_num NUMBER;
71424 l_tmp_amt NUMBER;
71425 l_acc_rev_natural_side_code VARCHAR2(1);
71426
71427 l_num_entries NUMBER;
71428 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
71429 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
71430 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
71431 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
71432 l_recog_line_1 NUMBER;
71433 l_recog_line_2 NUMBER;
71434
71435 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
71436 l_bflow_applied_to_amt NUMBER; -- 5132302
71437 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
71438
71439 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71440
71441 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
71442 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
71443
71444 ---------------------------------------------------------------------------------------------------------------
71445
71446
71447 --
71448 -- bulk performance
71449 --
71450 l_balance_type_code VARCHAR2(1);
71451 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
71452 l_log_module VARCHAR2(240);
71453
71454 --
71455 -- Upgrade strategy
71456 --
71457 l_actual_upg_option VARCHAR2(1);
71458 l_enc_upg_option VARCHAR2(1);
71459
71460 --
71461 BEGIN
71462 --
71463 IF g_log_enabled THEN
71464 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
71465 END IF;
71466 --
71467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71468
71469 trace
71470 (p_msg => 'BEGIN of AcctLineType_133'
71471 ,p_level => C_LEVEL_PROCEDURE
71472 ,p_module => l_log_module);
71473
71474 END IF;
71475 --
71476 l_component_type := 'AMB_JLT';
71477 l_component_code := 'AP_MISC_EXPENSE_REF_ENC';
71478 l_component_type_code := 'S';
71479 l_component_appl_id := 200;
71480 l_amb_context_code := 'DEFAULT';
71481 l_entity_code := 'AP_PAYMENTS';
71482 l_event_class_code := 'REFUNDS';
71483 l_event_type_code := 'REFUNDS_ALL';
71484 l_line_definition_owner_code := 'S';
71485 l_line_definition_code := 'ENC_REFUNDS_ALL';
71486 --
71487 l_balance_type_code := 'E';
71488 l_segment := NULL;
71489 l_ccid := NULL;
71490 l_adr_transaction_coa_id := NULL;
71491 l_adr_accounting_coa_id := NULL;
71492 l_adr_flexfield_segment_code := NULL;
71493 l_adr_flex_value_set_id := NULL;
71494 l_adr_value_type_code := NULL;
71495 l_adr_value_combination_id := NULL;
71496 l_adr_value_segment_code := NULL;
71497
71498 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
71499 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
71500 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
71501 l_budgetary_control_flag := 'N';
71502
71503 l_bflow_applied_to_amt_idx := NULL; -- 5132302
71504 l_bflow_applied_to_amt := NULL; -- 5132302
71505 l_entered_amt_idx := NULL; -- 4262811
71506 l_accted_amt_idx := NULL; -- 4262811
71507 l_acc_rev_flag := NULL; -- 4262811
71508 l_accrual_line_num := NULL; -- 4262811
71509 l_tmp_amt := NULL; -- 4262811
71510 --
71511
71512 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71513 l_balance_type_code <> 'B' THEN
71514 IF NVL(p_source_38,'
71515 ') <> 'CLEAR_CLEAR' AND
71516 NVL(p_source_20,'
71517 ') = 'MISCELLANEOUS' AND
71518 (NVL(p_source_39,'
71519 ') = 'CASH' OR
71520 NVL(p_source_39,'
71521 ') = 'DISCOUNT') AND
71522 NVL(p_source_60,'
71523 ') = 'R' AND
71524 NVL(p_source_102,'
71525 ') = 'Y' AND
71526 NVL(p_source_104,'
71527 ') = 'Y'
71528 THEN
71529
71530 --
71531 XLA_AE_LINES_PKG.SetNewLine;
71532
71533 p_balance_type_code := l_balance_type_code;
71534 -- set the flag so later we will know whether the gain loss line needs to be created
71535
71536 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
71537 p_actual_flag :='A';
71538 END IF;
71539
71540 --
71541 -- bulk performance
71542 --
71546 -- set accounting line options
71543 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71544 p_header_num => 0); -- 4262811
71545 --
71547 --
71548 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71549 p_natural_side_code => 'D'
71550 , p_gain_or_loss_flag => 'N'
71551 , p_gl_transfer_mode_code => 'S'
71552 , p_acct_entry_type_code => 'E'
71553 , p_switch_side_flag => 'Y'
71554 , p_merge_duplicate_code => 'A'
71555 );
71556 --
71557 l_acc_rev_natural_side_code := 'C'; -- 4262811
71558 --
71559 --
71560 -- set accounting line type info
71561 --
71562 xla_ae_lines_pkg.SetAcctLineType
71563 (p_component_type => l_component_type
71564 ,p_event_type_code => l_event_type_code
71565 ,p_line_definition_owner_code => l_line_definition_owner_code
71566 ,p_line_definition_code => l_line_definition_code
71567 ,p_accounting_line_code => l_component_code
71568 ,p_accounting_line_type_code => l_component_type_code
71569 ,p_accounting_line_appl_id => l_component_appl_id
71570 ,p_amb_context_code => l_amb_context_code
71571 ,p_entity_code => l_entity_code
71572 ,p_event_class_code => l_event_class_code);
71573 --
71574 -- set accounting class
71575 --
71576 xla_ae_lines_pkg.SetAcctClass(
71577 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
71578 , p_ae_header_id => l_ae_header_id
71579 );
71580
71581 --
71582 -- set rounding class
71583 --
71584 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71585 'MISCELLANEOUS EXPENSE';
71586
71587 --
71588 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71589 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71590 --
71591 -- bulk performance
71592 --
71593 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71594
71595 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71596 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71597
71598 -- 4955764
71599 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71600 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71601
71602 -- 4458381 Public Sector Enh
71603
71604 --
71605 -- set accounting attributes for the line type
71606 --
71607 l_entered_amt_idx := 9;
71608 l_accted_amt_idx := 11;
71609 l_bflow_applied_to_amt_idx := NULL; -- 5132302
71610 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71611 l_rec_acct_attrs.array_char_value(1) := p_source_40;
71612 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
71613 l_rec_acct_attrs.array_num_value(2) := p_source_42;
71614 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71615 l_rec_acct_attrs.array_char_value(3) := p_source_62;
71616 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
71617 l_rec_acct_attrs.array_char_value(4) := p_source_63;
71618 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
71619 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
71620 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71621 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
71622 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
71623 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
71624 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
71625 l_rec_acct_attrs.array_char_value(8) := p_source_48;
71626 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
71627 l_rec_acct_attrs.array_num_value(9) := p_source_41;
71628 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
71629 l_rec_acct_attrs.array_char_value(10) := p_source_49;
71630 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
71631 l_rec_acct_attrs.array_num_value(11) := p_source_9;
71632 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
71633 l_rec_acct_attrs.array_char_value(12) := p_source_53;
71634 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
71635 l_rec_acct_attrs.array_char_value(13) := p_source_56;
71636 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
71637 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
71638 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
71639 l_rec_acct_attrs.array_char_value(15) := p_source_48;
71640 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
71641 l_rec_acct_attrs.array_num_value(16) := p_source_58;
71642 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
71643 l_rec_acct_attrs.array_num_value(17) := p_source_66;
71644 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
71645 l_rec_acct_attrs.array_num_value(18) := p_source_59;
71646
71647 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71651 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71648 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71649
71650 ---------------------------------------------------------------------------------------------------------------
71652 ---------------------------------------------------------------------------------------------------------------
71653 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71654
71655 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71656 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71657
71658 IF xla_accounting_cache_pkg.GetValueChar
71659 (p_source_code => 'LEDGER_CATEGORY_CODE'
71660 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71661 AND l_bflow_method_code = 'PRIOR_ENTRY'
71662 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71663 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71664 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71665 )
71666 THEN
71667 xla_ae_lines_pkg.BflowUpgEntry
71668 (p_business_method_code => l_bflow_method_code
71669 ,p_business_class_code => l_bflow_class_code
71670 ,p_balance_type => l_balance_type_code);
71671 ELSE
71672 NULL;
71673 XLA_AE_LINES_PKG.business_flow_validation(
71674 p_business_method_code => l_bflow_method_code
71675 ,p_business_class_code => l_bflow_class_code
71676 ,p_inherit_description_flag => l_inherit_desc_flag);
71677 END IF;
71678
71679 --
71680 -- call analytical criteria
71681 --
71682 -- Inherited Analytical Criteria for business flow method of Prior Entry.
71683 --
71684 -- call description
71685 --
71686 -- No description or it is inherited.
71687 --
71688 -- call ADRs
71689 -- Bug 4922099
71690 --
71691 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71692 (NVL(l_actual_upg_option, 'N') = 'O') OR
71693 (NVL(l_enc_upg_option, 'N') = 'O')
71694 )
71695 THEN
71696 NULL;
71697 --
71698 --
71699
71700 --
71701 --
71702 END IF;
71703 --
71704 -- Bug 4922099
71705 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71706 (NVL(l_enc_upg_option, 'N') = 'O')
71707 ) AND
71708 (l_bflow_method_code = 'PRIOR_ENTRY')
71709 )
71710 THEN
71711 IF
71712 --
71713 1 = 1
71714 --
71715 THEN
71716 xla_accounting_err_pkg.build_message
71717 (p_appli_s_name => 'XLA'
71718 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71719 ,p_token_1 => 'LINE_NUMBER'
71720 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
71721 ,p_token_2 => 'LINE_TYPE_NAME'
71722 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
71723 l_component_type
71724 ,l_component_code
71725 ,l_component_type_code
71726 ,l_component_appl_id
71727 ,l_amb_context_code
71728 ,l_entity_code
71729 ,l_event_class_code
71730 )
71731 ,p_token_3 => 'OWNER'
71732 ,p_value_3 => xla_lookups_pkg.get_meaning(
71733 p_lookup_type => 'XLA_OWNER_TYPE'
71734 ,p_lookup_code => l_component_type_code
71735 )
71736 ,p_token_4 => 'PRODUCT_NAME'
71737 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71738 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71739 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71740 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71741 ,p_ae_header_id => NULL
71742 );
71743
71744 IF (C_LEVEL_ERROR>= g_log_level) THEN
71745 trace
71746 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71747 ,p_level => C_LEVEL_ERROR
71748 ,p_module => l_log_module);
71749 END IF;
71750 END IF;
71754 ------------------------------------------------------------------------------------------------
71751 END IF;
71752 --
71753 --
71755 -- 4219869 Business Flow
71756 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71757 -- Prior Entry. Currently, the following code is always generated.
71758 ------------------------------------------------------------------------------------------------
71759 -- No ValidateCurrentLine for business flow method of Prior Entry
71760
71761 ------------------------------------------------------------------------------------
71762 -- 4219869 Business Flow
71763 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71764 ------------------------------------------------------------------------------------
71765 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71766
71767 ----------------------------------------------------------------------------------
71768 -- 4219869 Business Flow
71769 -- Update journal entry status -- Need to generate this within IF <condition>
71770 ----------------------------------------------------------------------------------
71771 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71772 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71773 ,p_balance_type_code => l_balance_type_code
71774 );
71775
71776 -------------------------------------------------------------------------------------------
71777 -- 4262811 - Generate the Accrual Reversal lines
71778 -------------------------------------------------------------------------------------------
71779 BEGIN
71780 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71781 (g_array_event(p_event_id).array_value_num('header_index'));
71782 IF l_acc_rev_flag IS NULL THEN
71783 l_acc_rev_flag := 'N';
71784 END IF;
71785 EXCEPTION
71786 WHEN OTHERS THEN
71787 l_acc_rev_flag := 'N';
71788 END;
71789 --
71790 IF (l_acc_rev_flag = 'Y') THEN
71791
71792 -- 4645092 ------------------------------------------------------------------------------
71793 -- To allow MPA report to determine if it should generate report process
71794 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71795 ------------------------------------------------------------------------------------------
71796
71797 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71798 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71799 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
71800 -- call ADRs
71801 -- Bug 4922099
71802 --
71803 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71804 (NVL(l_actual_upg_option, 'N') = 'O') OR
71805 (NVL(l_enc_upg_option, 'N') = 'O')
71806 )
71807 THEN
71808 NULL;
71809 --
71810 --
71811
71812 --
71813 --
71814 END IF;
71815
71816 --
71817 -- Update the line information that should be overwritten
71818 --
71819 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71820 p_header_num => 1);
71821 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
71822
71823 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71824
71825 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
71826 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71827 END IF;
71828
71829 --
71830 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71831 --
71832 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71833 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
71834 ELSE
71835 ---------------------------------------------------------------------------------------------------
71836 -- 4262811a Switch Sign
71837 ---------------------------------------------------------------------------------------------------
71838 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
71839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71840 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71841 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71842 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71843 -- 5132302
71844 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71845 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71846
71847 END IF;
71848
71849 -- 4955764
71850 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71851 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71852
71853
71854 XLA_AE_LINES_PKG.ValidateCurrentLine;
71855 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71856
71860
71857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71859 ,p_balance_type_code => l_balance_type_code);
71861 END IF;
71862
71863 -----------------------------------------------------------------------------------------
71864 -- 4262811 Multiperiod Accounting
71865 -----------------------------------------------------------------------------------------
71866 -- No MPA option is assigned.
71867
71868
71869 END IF;
71870 END IF;
71871 --
71872
71873 --
71874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71875 trace
71876 (p_msg => 'END of AcctLineType_133'
71877 ,p_level => C_LEVEL_PROCEDURE
71878 ,p_module => l_log_module);
71879 END IF;
71880 --
71881 EXCEPTION
71882 WHEN xla_exceptions_pkg.application_exception THEN
71883 RAISE;
71884 WHEN OTHERS THEN
71885 xla_exceptions_pkg.raise_message
71886 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_133');
71887 END AcctLineType_133;
71888 --
71889
71890 ---------------------------------------
71891 --
71892 -- PRIVATE FUNCTION
71893 -- AcctLineType_134
71894 --
71895 ---------------------------------------
71896 PROCEDURE AcctLineType_134 (
71897 p_application_id IN NUMBER
71898 ,p_event_id IN NUMBER
71899 ,p_calculate_acctd_flag IN VARCHAR2
71900 ,p_calculate_g_l_flag IN VARCHAR2
71901 ,p_actual_flag IN OUT VARCHAR2
71902 ,p_balance_type_code OUT VARCHAR2
71903 ,p_gain_or_loss_ref OUT VARCHAR2
71904
71905 --Recipient Invoice Distribution Account
71906 , p_source_36 IN NUMBER
71907 --When to Account for Payment Option
71908 , p_source_38 IN VARCHAR2
71909 --Accounting Reversal Indicator
71910 , p_source_40 IN VARCHAR2
71911 --Business Flow Accounts Payable Application Identifier
71912 , p_source_42 IN NUMBER
71913 --Distribution Link Type
71914 , p_source_48 IN VARCHAR2
71915 --Override Accounted Amount Indicator
71916 , p_source_53 IN VARCHAR2
71917 , p_source_53_meaning IN VARCHAR2
71918 --Third Party Type
71919 , p_source_56 IN VARCHAR2
71920 --Invoice Distribution Tax Line Identifier
71921 , p_source_58 IN NUMBER
71922 --Invoice Distribution Summary Tax Line Identifier
71923 , p_source_59 IN NUMBER
71924 --Invoice Distribution Tax Distribution Identifier from Tax
71925 , p_source_66 IN NUMBER
71926 --Prepayment Distribution Type
71927 , p_source_67 IN VARCHAR2
71928 --Recipient Invoice Distribution Type
71929 , p_source_68 IN VARCHAR2
71930 , p_source_68_meaning IN VARCHAR2
71931 --Prepayment Application Distribution Identifier
71932 , p_source_71 IN NUMBER
71933 --Invoice Identifier
71934 , p_source_72 IN NUMBER
71935 --Business Flow Prepayment Invoice Distribution Type
71936 , p_source_73 IN VARCHAR2
71937 --Business Flow Prepayment Invoice Entity Code
71938 , p_source_74 IN VARCHAR2
71939 --Business Flow Prepayment Invoice Distribution Identifier
71940 , p_source_75 IN NUMBER
71941 --Business Flow Prepayment Invoice Identifier
71942 , p_source_76 IN NUMBER
71943 --Upgrade Encumbrance Credit Account Class
71944 , p_source_77 IN VARCHAR2
71945 --Payables Encumbrance Upgrade Credit Account
71946 , p_source_78 IN NUMBER
71947 --Payables Encumbrance Upgrade Credit Amount
71948 , p_source_79 IN NUMBER
71949 --Invoice Currency Code
71950 , p_source_80 IN VARCHAR2
71951 --Payables Encumbrance Upgrade Credit Base Amount
71952 , p_source_81 IN NUMBER
71953 --Upgrade Encumbrance Debit Account Class
71954 , p_source_82 IN VARCHAR2
71955 --Payables Encumbrance Upgrade Debit Account
71956 , p_source_83 IN NUMBER
71957 --Payables Encumbrance Upgrade Debit Amount
71958 , p_source_84 IN NUMBER
71959 --Payables Encumbrance Upgrade Debit Base Amount
71960 , p_source_85 IN NUMBER
71961 --Payables Encumbrance Upgrade Option
71962 , p_source_86 IN VARCHAR2
71963 --Prepayment Distribution Amount
71964 , p_source_87 IN NUMBER
71965 --Prepayment Clearing Currency Code
71966 , p_source_88 IN VARCHAR2
71967 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
71968 , p_source_89 IN NUMBER
71969 --Deferred Accounting End Date
71970 , p_source_90 IN DATE
71971 --Deferred Accounting Option
71972 , p_source_91 IN VARCHAR2
71973 --Deferred Accounting Start Date
71974 , p_source_92 IN DATE
71975 --Invoice Supplier Identifier
71976 , p_source_93 IN NUMBER
71977 --Invoice Supplier Site Identifier
71978 , p_source_94 IN NUMBER
71979 --Identifier of the Prepayment Application Reversed
71980 , p_source_95 IN NUMBER
71981 --Payables Upgrade Credit Encumbrance Type Identifier
71982 , p_source_96 IN NUMBER
71983 --Payables Upgrade Debit Encumbrance Type Identifier
71984 , p_source_97 IN NUMBER
71985 --Prepayment Clearing Exchange Date
71986 , p_source_118 IN DATE
71987 --Prepayment Clearing Exchange Rate
71988 , p_source_119 IN NUMBER
71992 IS
71989 --Prepayment Clearing Exchange Rate Type
71990 , p_source_120 IN VARCHAR2
71991 )
71993
71994 l_component_type VARCHAR2(80);
71995 l_component_code VARCHAR2(30);
71996 l_component_type_code VARCHAR2(1);
71997 l_component_appl_id INTEGER;
71998 l_amb_context_code VARCHAR2(30);
71999 l_entity_code VARCHAR2(30);
72000 l_event_class_code VARCHAR2(30);
72001 l_ae_header_id NUMBER;
72002 l_event_type_code VARCHAR2(30);
72003 l_line_definition_code VARCHAR2(30);
72004 l_line_definition_owner_code VARCHAR2(1);
72005 --
72006 -- adr variables
72007 l_segment VARCHAR2(30);
72008 l_ccid NUMBER;
72009 l_adr_transaction_coa_id NUMBER;
72010 l_adr_accounting_coa_id NUMBER;
72011 l_adr_flexfield_segment_code VARCHAR2(30);
72012 l_adr_flex_value_set_id NUMBER;
72013 l_adr_value_type_code VARCHAR2(30);
72014 l_adr_value_combination_id NUMBER;
72015 l_adr_value_segment_code VARCHAR2(30);
72016
72017 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
72018 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
72019 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
72020 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
72021
72022 -- 4262811 Variables ------------------------------------------------------------------------------------------
72023 l_entered_amt_idx NUMBER;
72024 l_accted_amt_idx NUMBER;
72025 l_acc_rev_flag VARCHAR2(1);
72026 l_accrual_line_num NUMBER;
72027 l_tmp_amt NUMBER;
72028 l_acc_rev_natural_side_code VARCHAR2(1);
72029
72030 l_num_entries NUMBER;
72031 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
72032 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
72033 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
72034 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
72035 l_recog_line_1 NUMBER;
72036 l_recog_line_2 NUMBER;
72037
72038 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
72039 l_bflow_applied_to_amt NUMBER; -- 5132302
72040 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
72041
72042 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72043
72044 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
72045 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
72046
72047 ---------------------------------------------------------------------------------------------------------------
72048
72049
72050 --
72051 -- bulk performance
72052 --
72053 l_balance_type_code VARCHAR2(1);
72054 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72055 l_log_module VARCHAR2(240);
72056
72057 --
72058 -- Upgrade strategy
72059 --
72060 l_actual_upg_option VARCHAR2(1);
72061 l_enc_upg_option VARCHAR2(1);
72062
72063 --
72064 BEGIN
72065 --
72066 IF g_log_enabled THEN
72067 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
72068 END IF;
72069 --
72070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72071
72072 trace
72073 (p_msg => 'BEGIN of AcctLineType_134'
72074 ,p_level => C_LEVEL_PROCEDURE
72075 ,p_module => l_log_module);
72076
72077 END IF;
72078 --
72079 l_component_type := 'AMB_JLT';
72080 l_component_code := 'AP_MISC_PREPAY_CLR_RATE_APP';
72081 l_component_type_code := 'S';
72082 l_component_appl_id := 200;
72083 l_amb_context_code := 'DEFAULT';
72084 l_entity_code := 'AP_INVOICES';
72085 l_event_class_code := 'PREPAYMENT APPLICATIONS';
72086 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
72087 l_line_definition_owner_code := 'S';
72088 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
72089 --
72090 l_balance_type_code := 'A';
72091 l_segment := NULL;
72092 l_ccid := NULL;
72093 l_adr_transaction_coa_id := NULL;
72094 l_adr_accounting_coa_id := NULL;
72095 l_adr_flexfield_segment_code := NULL;
72096 l_adr_flex_value_set_id := NULL;
72097 l_adr_value_type_code := NULL;
72098 l_adr_value_combination_id := NULL;
72099 l_adr_value_segment_code := NULL;
72100
72101 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
72102 l_bflow_class_code := ''; -- 4219869 Business Flow
72103 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
72104 l_budgetary_control_flag := 'N';
72105
72106 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72107 l_bflow_applied_to_amt := NULL; -- 5132302
72108 l_entered_amt_idx := NULL; -- 4262811
72109 l_accted_amt_idx := NULL; -- 4262811
72110 l_acc_rev_flag := NULL; -- 4262811
72111 l_accrual_line_num := NULL; -- 4262811
72112 l_tmp_amt := NULL; -- 4262811
72113 --
72114
72118 ') = 'CLEAR_CLEAR' AND
72115 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72116 l_balance_type_code <> 'B' THEN
72117 IF NVL(p_source_38,'
72119 (NVL(p_source_67,'
72120 ') = 'PREPAY APPL' OR
72121 NVL(p_source_67,'
72122 ') = 'PREPAY APPL NONREC TAX' OR
72123 NVL(p_source_67,'
72124 ') = 'PREPAY APPL REC TAX') AND
72125 NVL(p_source_68,'
72126 ') = 'MISCELLANEOUS'
72127 THEN
72128
72129 --
72130 XLA_AE_LINES_PKG.SetNewLine;
72131
72132 p_balance_type_code := l_balance_type_code;
72133 -- set the flag so later we will know whether the gain loss line needs to be created
72134
72135 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72136 p_actual_flag :='A';
72137 END IF;
72138
72139 --
72140 -- bulk performance
72141 --
72142 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72143 p_header_num => 0); -- 4262811
72144 --
72145 -- set accounting line options
72146 --
72147 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72148 p_natural_side_code => 'C'
72149 , p_gain_or_loss_flag => 'N'
72150 , p_gl_transfer_mode_code => 'S'
72151 , p_acct_entry_type_code => 'A'
72152 , p_switch_side_flag => 'Y'
72153 , p_merge_duplicate_code => 'A'
72154 );
72155 --
72156 l_acc_rev_natural_side_code := 'D'; -- 4262811
72157 --
72158 --
72159 -- set accounting line type info
72160 --
72161 xla_ae_lines_pkg.SetAcctLineType
72162 (p_component_type => l_component_type
72163 ,p_event_type_code => l_event_type_code
72164 ,p_line_definition_owner_code => l_line_definition_owner_code
72165 ,p_line_definition_code => l_line_definition_code
72166 ,p_accounting_line_code => l_component_code
72167 ,p_accounting_line_type_code => l_component_type_code
72168 ,p_accounting_line_appl_id => l_component_appl_id
72169 ,p_amb_context_code => l_amb_context_code
72170 ,p_entity_code => l_entity_code
72171 ,p_event_class_code => l_event_class_code);
72172 --
72173 -- set accounting class
72174 --
72175 xla_ae_lines_pkg.SetAcctClass(
72176 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
72177 , p_ae_header_id => l_ae_header_id
72178 );
72179
72180 --
72181 -- set rounding class
72182 --
72183 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72184 'MISCELLANEOUS EXPENSE';
72185
72186 --
72187 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72188 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72189 --
72190 -- bulk performance
72191 --
72192 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72193
72194 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72195 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72196
72197 -- 4955764
72198 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72199 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72200
72201 -- 4458381 Public Sector Enh
72202
72203 --
72204 -- set accounting attributes for the line type
72205 --
72206 l_entered_amt_idx := 25;
72207 l_accted_amt_idx := 30;
72208 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72209 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72210 l_rec_acct_attrs.array_char_value(1) := p_source_40;
72211 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
72212 l_rec_acct_attrs.array_num_value(2) :=
72213 xla_ae_sources_pkg.GetSystemSourceNum(
72214 p_source_code => 'XLA_EVENT_APPL_ID'
72215 , p_source_type_code => 'Y'
72216 , p_source_application_id => 602
72217 );
72218 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
72219 l_rec_acct_attrs.array_char_value(3) := p_source_48;
72220 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
72221 l_rec_acct_attrs.array_char_value(4) :=
72222 xla_ae_sources_pkg.GetSystemSourceChar(
72223 p_source_code => 'XLA_ENTITY_CODE'
72224 , p_source_type_code => 'Y'
72225 , p_source_application_id => 602
72226 );
72227 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
72228 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
72229 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
72230 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
72231 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
72232 l_rec_acct_attrs.array_num_value(7) := p_source_42;
72233 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72234 l_rec_acct_attrs.array_char_value(8) := p_source_73;
72235 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
72236 l_rec_acct_attrs.array_char_value(9) := p_source_74;
72240 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
72237 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
72238 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
72239 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72241 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
72242 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
72243 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
72244 l_rec_acct_attrs.array_char_value(13) := p_source_48;
72245 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
72246 l_rec_acct_attrs.array_char_value(14) := p_source_77;
72247 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
72248 l_rec_acct_attrs.array_num_value(15) := p_source_78;
72249 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
72250 l_rec_acct_attrs.array_num_value(16) := p_source_79;
72251 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
72252 l_rec_acct_attrs.array_char_value(17) := p_source_80;
72253 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
72254 l_rec_acct_attrs.array_num_value(18) := p_source_81;
72255 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
72256 l_rec_acct_attrs.array_char_value(19) := p_source_82;
72257 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
72258 l_rec_acct_attrs.array_num_value(20) := p_source_83;
72259 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
72260 l_rec_acct_attrs.array_num_value(21) := p_source_84;
72261 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
72262 l_rec_acct_attrs.array_char_value(22) := p_source_80;
72263 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
72264 l_rec_acct_attrs.array_num_value(23) := p_source_85;
72265 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
72266 l_rec_acct_attrs.array_char_value(24) := p_source_86;
72267 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
72268 l_rec_acct_attrs.array_num_value(25) := p_source_87;
72269 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
72270 l_rec_acct_attrs.array_char_value(26) := p_source_88;
72271 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
72272 l_rec_acct_attrs.array_date_value(27) := p_source_118;
72273 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
72274 l_rec_acct_attrs.array_num_value(28) := p_source_119;
72275 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
72276 l_rec_acct_attrs.array_char_value(29) := p_source_120;
72277 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
72278 l_rec_acct_attrs.array_num_value(30) := p_source_89;
72279 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
72280 l_rec_acct_attrs.array_date_value(31) := p_source_90;
72281 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
72282 l_rec_acct_attrs.array_char_value(32) := p_source_91;
72283 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
72284 l_rec_acct_attrs.array_date_value(33) := p_source_92;
72285 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
72286 l_rec_acct_attrs.array_char_value(34) := p_source_53;
72287 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
72288 l_rec_acct_attrs.array_num_value(35) := p_source_93;
72289 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
72290 l_rec_acct_attrs.array_num_value(36) := p_source_94;
72291 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
72292 l_rec_acct_attrs.array_char_value(37) := p_source_56;
72293 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
72294 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
72295 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
72296 l_rec_acct_attrs.array_char_value(39) := p_source_48;
72297 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
72298 l_rec_acct_attrs.array_num_value(40) := p_source_58;
72299 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
72300 l_rec_acct_attrs.array_num_value(41) := p_source_66;
72301 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
72302 l_rec_acct_attrs.array_num_value(42) := p_source_59;
72303 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
72304 l_rec_acct_attrs.array_num_value(43) := p_source_96;
72305 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
72306 l_rec_acct_attrs.array_num_value(44) := p_source_97;
72307
72308 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72309 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72310
72311 ---------------------------------------------------------------------------------------------------------------
72312 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72313 ---------------------------------------------------------------------------------------------------------------
72314 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72315
72316 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72317 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72318
72319 IF xla_accounting_cache_pkg.GetValueChar
72323 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72320 (p_source_code => 'LEDGER_CATEGORY_CODE'
72321 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72322 AND l_bflow_method_code = 'PRIOR_ENTRY'
72324 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72325 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72326 )
72327 THEN
72328 xla_ae_lines_pkg.BflowUpgEntry
72329 (p_business_method_code => l_bflow_method_code
72330 ,p_business_class_code => l_bflow_class_code
72331 ,p_balance_type => l_balance_type_code);
72332 ELSE
72333 NULL;
72334 -- No business flow processing for business flow method of NONE.
72335 END IF;
72336
72337 --
72338 -- call analytical criteria
72339 --
72340
72341 --
72342 -- call description
72343 --
72344 -- No description or it is inherited.
72345 --
72346 -- call ADRs
72347 -- Bug 4922099
72348 --
72349 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72350 (NVL(l_actual_upg_option, 'N') = 'O') OR
72351 (NVL(l_enc_upg_option, 'N') = 'O')
72352 )
72353 THEN
72354 NULL;
72355 --
72356 --
72357
72358 l_ccid := AcctDerRule_33(
72359 p_application_id => p_application_id
72360 , p_ae_header_id => l_ae_header_id
72361 , p_source_36 => p_source_36
72362 , x_transaction_coa_id => l_adr_transaction_coa_id
72363 , x_accounting_coa_id => l_adr_accounting_coa_id
72364 , x_value_type_code => l_adr_value_type_code
72365 , p_side => 'NA'
72366 );
72367
72368 xla_ae_lines_pkg.set_ccid(
72369 p_code_combination_id => l_ccid
72370 , p_value_type_code => l_adr_value_type_code
72371 , p_transaction_coa_id => l_adr_transaction_coa_id
72372 , p_accounting_coa_id => l_adr_accounting_coa_id
72373 , p_adr_code => 'AP_RECP_INV_DIST'
72374 , p_adr_type_code => 'S'
72375 , p_component_type => l_component_type
72376 , p_component_code => l_component_code
72377 , p_component_type_code => l_component_type_code
72378 , p_component_appl_id => l_component_appl_id
72379 , p_amb_context_code => l_amb_context_code
72380 , p_side => 'NA'
72381 );
72382
72383
72384 --
72385 --
72386 END IF;
72387 --
72388 -- Bug 4922099
72389 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72390 (NVL(l_enc_upg_option, 'N') = 'O')
72391 ) AND
72392 (l_bflow_method_code = 'PRIOR_ENTRY')
72393 )
72394 THEN
72395 IF
72396 --
72397 1 = 2
72398 --
72399 THEN
72400 xla_accounting_err_pkg.build_message
72401 (p_appli_s_name => 'XLA'
72402 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72403 ,p_token_1 => 'LINE_NUMBER'
72404 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
72405 ,p_token_2 => 'LINE_TYPE_NAME'
72406 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
72407 l_component_type
72408 ,l_component_code
72409 ,l_component_type_code
72410 ,l_component_appl_id
72411 ,l_amb_context_code
72412 ,l_entity_code
72413 ,l_event_class_code
72414 )
72415 ,p_token_3 => 'OWNER'
72416 ,p_value_3 => xla_lookups_pkg.get_meaning(
72417 p_lookup_type => 'XLA_OWNER_TYPE'
72418 ,p_lookup_code => l_component_type_code
72419 )
72420 ,p_token_4 => 'PRODUCT_NAME'
72421 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72422 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72423 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72424 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72425 ,p_ae_header_id => NULL
72426 );
72427
72428 IF (C_LEVEL_ERROR>= g_log_level) THEN
72429 trace
72433 END IF;
72430 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72431 ,p_level => C_LEVEL_ERROR
72432 ,p_module => l_log_module);
72434 END IF;
72435 END IF;
72436 --
72437 --
72438 ------------------------------------------------------------------------------------------------
72439 -- 4219869 Business Flow
72440 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72441 -- Prior Entry. Currently, the following code is always generated.
72442 ------------------------------------------------------------------------------------------------
72443 XLA_AE_LINES_PKG.ValidateCurrentLine;
72444
72445 ------------------------------------------------------------------------------------
72446 -- 4219869 Business Flow
72447 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72448 ------------------------------------------------------------------------------------
72449 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72450
72451 ----------------------------------------------------------------------------------
72452 -- 4219869 Business Flow
72453 -- Update journal entry status -- Need to generate this within IF <condition>
72454 ----------------------------------------------------------------------------------
72455 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72456 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72457 ,p_balance_type_code => l_balance_type_code
72458 );
72459
72460 -------------------------------------------------------------------------------------------
72461 -- 4262811 - Generate the Accrual Reversal lines
72462 -------------------------------------------------------------------------------------------
72463 BEGIN
72464 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72465 (g_array_event(p_event_id).array_value_num('header_index'));
72466 IF l_acc_rev_flag IS NULL THEN
72467 l_acc_rev_flag := 'N';
72468 END IF;
72469 EXCEPTION
72470 WHEN OTHERS THEN
72471 l_acc_rev_flag := 'N';
72472 END;
72473 --
72474 IF (l_acc_rev_flag = 'Y') THEN
72475
72476 -- 4645092 ------------------------------------------------------------------------------
72477 -- To allow MPA report to determine if it should generate report process
72478 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72479 ------------------------------------------------------------------------------------------
72480
72481 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72482 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72483 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
72484 -- call ADRs
72485 -- Bug 4922099
72486 --
72487 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72488 (NVL(l_actual_upg_option, 'N') = 'O') OR
72489 (NVL(l_enc_upg_option, 'N') = 'O')
72490 )
72491 THEN
72492 NULL;
72493 --
72494 --
72495
72496 l_ccid := AcctDerRule_33(
72497 p_application_id => p_application_id
72498 , p_ae_header_id => l_ae_header_id
72499 , p_source_36 => p_source_36
72500 , x_transaction_coa_id => l_adr_transaction_coa_id
72501 , x_accounting_coa_id => l_adr_accounting_coa_id
72502 , x_value_type_code => l_adr_value_type_code
72503 , p_side => 'NA'
72504 );
72505
72506 xla_ae_lines_pkg.set_ccid(
72507 p_code_combination_id => l_ccid
72508 , p_value_type_code => l_adr_value_type_code
72509 , p_transaction_coa_id => l_adr_transaction_coa_id
72510 , p_accounting_coa_id => l_adr_accounting_coa_id
72511 , p_adr_code => 'AP_RECP_INV_DIST'
72512 , p_adr_type_code => 'S'
72513 , p_component_type => l_component_type
72514 , p_component_code => l_component_code
72515 , p_component_type_code => l_component_type_code
72516 , p_component_appl_id => l_component_appl_id
72517 , p_amb_context_code => l_amb_context_code
72518 , p_side => 'NA'
72519 );
72520
72521
72522 --
72523 --
72524 END IF;
72525
72526 --
72527 -- Update the line information that should be overwritten
72528 --
72529 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72530 p_header_num => 1);
72531 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
72532
72533 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72534
72535 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
72536 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72537 END IF;
72538
72539 --
72540 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72541 --
72542 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72546 -- 4262811a Switch Sign
72543 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
72544 ELSE
72545 ---------------------------------------------------------------------------------------------------
72547 ---------------------------------------------------------------------------------------------------
72548 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
72549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72550 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72551 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72552 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72553 -- 5132302
72554 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72555 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72556
72557 END IF;
72558
72559 -- 4955764
72560 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72561 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72562
72563
72564 XLA_AE_LINES_PKG.ValidateCurrentLine;
72565 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72566
72567 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72568 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72569 ,p_balance_type_code => l_balance_type_code);
72570
72571 END IF;
72572
72573 -----------------------------------------------------------------------------------------
72574 -- 4262811 Multiperiod Accounting
72575 -----------------------------------------------------------------------------------------
72576 -- No MPA option is assigned.
72577
72578
72579 END IF;
72580 END IF;
72581 --
72582
72583 --
72584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72585 trace
72586 (p_msg => 'END of AcctLineType_134'
72587 ,p_level => C_LEVEL_PROCEDURE
72588 ,p_module => l_log_module);
72589 END IF;
72590 --
72591 EXCEPTION
72592 WHEN xla_exceptions_pkg.application_exception THEN
72593 RAISE;
72594 WHEN OTHERS THEN
72595 xla_exceptions_pkg.raise_message
72596 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_134');
72597 END AcctLineType_134;
72598 --
72599
72600 ---------------------------------------
72601 --
72602 -- PRIVATE FUNCTION
72603 -- AcctLineType_135
72604 --
72605 ---------------------------------------
72606 PROCEDURE AcctLineType_135 (
72607 p_application_id IN NUMBER
72608 ,p_event_id IN NUMBER
72609 ,p_calculate_acctd_flag IN VARCHAR2
72610 ,p_calculate_g_l_flag IN VARCHAR2
72611 ,p_actual_flag IN OUT VARCHAR2
72612 ,p_balance_type_code OUT VARCHAR2
72613 ,p_gain_or_loss_ref OUT VARCHAR2
72614
72615 --Recipient Invoice Distribution Account
72616 , p_source_36 IN NUMBER
72617 --When to Account for Payment Option
72618 , p_source_38 IN VARCHAR2
72619 --Accounting Reversal Indicator
72620 , p_source_40 IN VARCHAR2
72621 --Business Flow Accounts Payable Application Identifier
72622 , p_source_42 IN NUMBER
72623 --Distribution Link Type
72624 , p_source_48 IN VARCHAR2
72625 --Override Accounted Amount Indicator
72626 , p_source_53 IN VARCHAR2
72627 , p_source_53_meaning IN VARCHAR2
72628 --Third Party Type
72629 , p_source_56 IN VARCHAR2
72630 --Invoice Distribution Tax Line Identifier
72631 , p_source_58 IN NUMBER
72632 --Invoice Distribution Summary Tax Line Identifier
72633 , p_source_59 IN NUMBER
72634 --Invoice Distribution Tax Distribution Identifier from Tax
72635 , p_source_66 IN NUMBER
72636 --Prepayment Distribution Type
72637 , p_source_67 IN VARCHAR2
72638 --Recipient Invoice Distribution Type
72639 , p_source_68 IN VARCHAR2
72640 , p_source_68_meaning IN VARCHAR2
72641 --Prepayment Application Distribution Identifier
72642 , p_source_71 IN NUMBER
72643 --Invoice Identifier
72644 , p_source_72 IN NUMBER
72645 --Business Flow Prepayment Invoice Distribution Type
72646 , p_source_73 IN VARCHAR2
72647 --Business Flow Prepayment Invoice Entity Code
72648 , p_source_74 IN VARCHAR2
72649 --Business Flow Prepayment Invoice Distribution Identifier
72650 , p_source_75 IN NUMBER
72651 --Business Flow Prepayment Invoice Identifier
72652 , p_source_76 IN NUMBER
72653 --Upgrade Encumbrance Credit Account Class
72654 , p_source_77 IN VARCHAR2
72655 --Payables Encumbrance Upgrade Credit Account
72656 , p_source_78 IN NUMBER
72657 --Payables Encumbrance Upgrade Credit Amount
72658 , p_source_79 IN NUMBER
72659 --Invoice Currency Code
72660 , p_source_80 IN VARCHAR2
72661 --Payables Encumbrance Upgrade Credit Base Amount
72662 , p_source_81 IN NUMBER
72663 --Upgrade Encumbrance Debit Account Class
72664 , p_source_82 IN VARCHAR2
72668 , p_source_84 IN NUMBER
72665 --Payables Encumbrance Upgrade Debit Account
72666 , p_source_83 IN NUMBER
72667 --Payables Encumbrance Upgrade Debit Amount
72669 --Payables Encumbrance Upgrade Debit Base Amount
72670 , p_source_85 IN NUMBER
72671 --Payables Encumbrance Upgrade Option
72672 , p_source_86 IN VARCHAR2
72673 --Prepayment Distribution Amount
72674 , p_source_87 IN NUMBER
72675 --Deferred Accounting End Date
72676 , p_source_90 IN DATE
72677 --Deferred Accounting Option
72678 , p_source_91 IN VARCHAR2
72679 --Deferred Accounting Start Date
72680 , p_source_92 IN DATE
72681 --Invoice Supplier Identifier
72682 , p_source_93 IN NUMBER
72683 --Invoice Supplier Site Identifier
72684 , p_source_94 IN NUMBER
72685 --Identifier of the Prepayment Application Reversed
72686 , p_source_95 IN NUMBER
72687 --Payables Upgrade Credit Encumbrance Type Identifier
72688 , p_source_96 IN NUMBER
72689 --Payables Upgrade Debit Encumbrance Type Identifier
72690 , p_source_97 IN NUMBER
72691 --Prepayment Payment Currency Code
72692 , p_source_98 IN VARCHAR2
72693 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
72694 , p_source_99 IN NUMBER
72695 --Prepayment Payment Exchange Date
72696 , p_source_121 IN DATE
72697 --Prepayment Payment Exchange Rate
72698 , p_source_122 IN NUMBER
72699 --Prepayment Payment Exchange Rate Type
72700 , p_source_123 IN VARCHAR2
72701 )
72702 IS
72703
72704 l_component_type VARCHAR2(80);
72705 l_component_code VARCHAR2(30);
72706 l_component_type_code VARCHAR2(1);
72707 l_component_appl_id INTEGER;
72708 l_amb_context_code VARCHAR2(30);
72709 l_entity_code VARCHAR2(30);
72710 l_event_class_code VARCHAR2(30);
72711 l_ae_header_id NUMBER;
72712 l_event_type_code VARCHAR2(30);
72713 l_line_definition_code VARCHAR2(30);
72714 l_line_definition_owner_code VARCHAR2(1);
72715 --
72716 -- adr variables
72717 l_segment VARCHAR2(30);
72718 l_ccid NUMBER;
72719 l_adr_transaction_coa_id NUMBER;
72720 l_adr_accounting_coa_id NUMBER;
72721 l_adr_flexfield_segment_code VARCHAR2(30);
72722 l_adr_flex_value_set_id NUMBER;
72723 l_adr_value_type_code VARCHAR2(30);
72724 l_adr_value_combination_id NUMBER;
72725 l_adr_value_segment_code VARCHAR2(30);
72726
72727 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
72728 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
72729 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
72730 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
72731
72732 -- 4262811 Variables ------------------------------------------------------------------------------------------
72733 l_entered_amt_idx NUMBER;
72734 l_accted_amt_idx NUMBER;
72735 l_acc_rev_flag VARCHAR2(1);
72736 l_accrual_line_num NUMBER;
72737 l_tmp_amt NUMBER;
72738 l_acc_rev_natural_side_code VARCHAR2(1);
72739
72740 l_num_entries NUMBER;
72741 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
72742 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
72743 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
72744 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
72745 l_recog_line_1 NUMBER;
72746 l_recog_line_2 NUMBER;
72747
72748 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
72749 l_bflow_applied_to_amt NUMBER; -- 5132302
72750 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
72751
72752 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72753
72754 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
72755 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
72756
72757 ---------------------------------------------------------------------------------------------------------------
72758
72759
72760 --
72761 -- bulk performance
72762 --
72763 l_balance_type_code VARCHAR2(1);
72764 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72765 l_log_module VARCHAR2(240);
72766
72767 --
72768 -- Upgrade strategy
72769 --
72770 l_actual_upg_option VARCHAR2(1);
72771 l_enc_upg_option VARCHAR2(1);
72772
72773 --
72774 BEGIN
72775 --
72776 IF g_log_enabled THEN
72777 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
72778 END IF;
72779 --
72780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72781
72782 trace
72783 (p_msg => 'BEGIN of AcctLineType_135'
72784 ,p_level => C_LEVEL_PROCEDURE
72785 ,p_module => l_log_module);
72786
72787 END IF;
72788 --
72789 l_component_type := 'AMB_JLT';
72790 l_component_code := 'AP_MISC_PREPAY_PAY_RATE_APP';
72791 l_component_type_code := 'S';
72792 l_component_appl_id := 200;
72796 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
72793 l_amb_context_code := 'DEFAULT';
72794 l_entity_code := 'AP_INVOICES';
72795 l_event_class_code := 'PREPAYMENT APPLICATIONS';
72797 l_line_definition_owner_code := 'S';
72798 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
72799 --
72800 l_balance_type_code := 'A';
72801 l_segment := NULL;
72802 l_ccid := NULL;
72803 l_adr_transaction_coa_id := NULL;
72804 l_adr_accounting_coa_id := NULL;
72805 l_adr_flexfield_segment_code := NULL;
72806 l_adr_flex_value_set_id := NULL;
72807 l_adr_value_type_code := NULL;
72808 l_adr_value_combination_id := NULL;
72809 l_adr_value_segment_code := NULL;
72810
72811 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
72812 l_bflow_class_code := ''; -- 4219869 Business Flow
72813 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
72814 l_budgetary_control_flag := 'N';
72815
72816 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72817 l_bflow_applied_to_amt := NULL; -- 5132302
72818 l_entered_amt_idx := NULL; -- 4262811
72819 l_accted_amt_idx := NULL; -- 4262811
72820 l_acc_rev_flag := NULL; -- 4262811
72821 l_accrual_line_num := NULL; -- 4262811
72822 l_tmp_amt := NULL; -- 4262811
72823 --
72824
72825 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72826 l_balance_type_code <> 'B' THEN
72827 IF NVL(p_source_38,'
72828 ') <> 'CLEAR_CLEAR' AND
72829 (NVL(p_source_67,'
72830 ') = 'PREPAY APPL' OR
72831 NVL(p_source_67,'
72832 ') = 'PREPAY APPL NONREC TAX' OR
72833 NVL(p_source_67,'
72834 ') = 'PREPAY APPL REC TAX') AND
72835 NVL(p_source_68,'
72836 ') = 'MISCELLANEOUS'
72837 THEN
72838
72839 --
72840 XLA_AE_LINES_PKG.SetNewLine;
72841
72842 p_balance_type_code := l_balance_type_code;
72843 -- set the flag so later we will know whether the gain loss line needs to be created
72844
72845 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72846 p_actual_flag :='A';
72847 END IF;
72848
72849 --
72850 -- bulk performance
72851 --
72852 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72853 p_header_num => 0); -- 4262811
72854 --
72855 -- set accounting line options
72856 --
72857 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72858 p_natural_side_code => 'C'
72859 , p_gain_or_loss_flag => 'N'
72860 , p_gl_transfer_mode_code => 'S'
72861 , p_acct_entry_type_code => 'A'
72862 , p_switch_side_flag => 'Y'
72863 , p_merge_duplicate_code => 'A'
72864 );
72865 --
72866 l_acc_rev_natural_side_code := 'D'; -- 4262811
72867 --
72868 --
72869 -- set accounting line type info
72870 --
72871 xla_ae_lines_pkg.SetAcctLineType
72872 (p_component_type => l_component_type
72873 ,p_event_type_code => l_event_type_code
72874 ,p_line_definition_owner_code => l_line_definition_owner_code
72875 ,p_line_definition_code => l_line_definition_code
72876 ,p_accounting_line_code => l_component_code
72877 ,p_accounting_line_type_code => l_component_type_code
72878 ,p_accounting_line_appl_id => l_component_appl_id
72879 ,p_amb_context_code => l_amb_context_code
72880 ,p_entity_code => l_entity_code
72881 ,p_event_class_code => l_event_class_code);
72882 --
72883 -- set accounting class
72884 --
72885 xla_ae_lines_pkg.SetAcctClass(
72886 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
72887 , p_ae_header_id => l_ae_header_id
72888 );
72889
72890 --
72891 -- set rounding class
72892 --
72893 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72894 'MISCELLANEOUS EXPENSE';
72895
72896 --
72897 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72898 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72899 --
72900 -- bulk performance
72901 --
72902 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72903
72904 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72905 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72906
72907 -- 4955764
72908 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72909 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72910
72911 -- 4458381 Public Sector Enh
72912
72913 --
72914 -- set accounting attributes for the line type
72915 --
72916 l_entered_amt_idx := 25;
72917 l_accted_amt_idx := 30;
72918 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72919 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72920 l_rec_acct_attrs.array_char_value(1) := p_source_40;
72924 p_source_code => 'XLA_EVENT_APPL_ID'
72921 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
72922 l_rec_acct_attrs.array_num_value(2) :=
72923 xla_ae_sources_pkg.GetSystemSourceNum(
72925 , p_source_type_code => 'Y'
72926 , p_source_application_id => 602
72927 );
72928 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
72929 l_rec_acct_attrs.array_char_value(3) := p_source_48;
72930 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
72931 l_rec_acct_attrs.array_char_value(4) :=
72932 xla_ae_sources_pkg.GetSystemSourceChar(
72933 p_source_code => 'XLA_ENTITY_CODE'
72934 , p_source_type_code => 'Y'
72935 , p_source_application_id => 602
72936 );
72937 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
72938 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
72939 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
72940 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
72941 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
72942 l_rec_acct_attrs.array_num_value(7) := p_source_42;
72943 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72944 l_rec_acct_attrs.array_char_value(8) := p_source_73;
72945 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
72946 l_rec_acct_attrs.array_char_value(9) := p_source_74;
72947 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
72948 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
72949 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72950 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
72951 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
72952 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
72953 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
72954 l_rec_acct_attrs.array_char_value(13) := p_source_48;
72955 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
72956 l_rec_acct_attrs.array_char_value(14) := p_source_77;
72957 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
72958 l_rec_acct_attrs.array_num_value(15) := p_source_78;
72959 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
72960 l_rec_acct_attrs.array_num_value(16) := p_source_79;
72961 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
72962 l_rec_acct_attrs.array_char_value(17) := p_source_80;
72963 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
72964 l_rec_acct_attrs.array_num_value(18) := p_source_81;
72965 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
72966 l_rec_acct_attrs.array_char_value(19) := p_source_82;
72967 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
72968 l_rec_acct_attrs.array_num_value(20) := p_source_83;
72969 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
72970 l_rec_acct_attrs.array_num_value(21) := p_source_84;
72971 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
72972 l_rec_acct_attrs.array_char_value(22) := p_source_80;
72973 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
72974 l_rec_acct_attrs.array_num_value(23) := p_source_85;
72975 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
72976 l_rec_acct_attrs.array_char_value(24) := p_source_86;
72977 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
72978 l_rec_acct_attrs.array_num_value(25) := p_source_87;
72979 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
72980 l_rec_acct_attrs.array_char_value(26) := p_source_98;
72981 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
72982 l_rec_acct_attrs.array_date_value(27) := p_source_121;
72983 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
72984 l_rec_acct_attrs.array_num_value(28) := p_source_122;
72985 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
72986 l_rec_acct_attrs.array_char_value(29) := p_source_123;
72987 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
72988 l_rec_acct_attrs.array_num_value(30) := p_source_99;
72989 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
72990 l_rec_acct_attrs.array_date_value(31) := p_source_90;
72991 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
72992 l_rec_acct_attrs.array_char_value(32) := p_source_91;
72993 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
72994 l_rec_acct_attrs.array_date_value(33) := p_source_92;
72995 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
72996 l_rec_acct_attrs.array_char_value(34) := p_source_53;
72997 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
72998 l_rec_acct_attrs.array_num_value(35) := p_source_93;
72999 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
73000 l_rec_acct_attrs.array_num_value(36) := p_source_94;
73001 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
73002 l_rec_acct_attrs.array_char_value(37) := p_source_56;
73003 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
73004 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
73005 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
73006 l_rec_acct_attrs.array_char_value(39) := p_source_48;
73010 l_rec_acct_attrs.array_num_value(41) := p_source_66;
73007 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
73008 l_rec_acct_attrs.array_num_value(40) := p_source_58;
73009 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
73011 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
73012 l_rec_acct_attrs.array_num_value(42) := p_source_59;
73013 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
73014 l_rec_acct_attrs.array_num_value(43) := p_source_96;
73015 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
73016 l_rec_acct_attrs.array_num_value(44) := p_source_97;
73017
73018 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73019 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73020
73021 ---------------------------------------------------------------------------------------------------------------
73022 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73023 ---------------------------------------------------------------------------------------------------------------
73024 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73025
73026 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73027 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73028
73029 IF xla_accounting_cache_pkg.GetValueChar
73030 (p_source_code => 'LEDGER_CATEGORY_CODE'
73031 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73032 AND l_bflow_method_code = 'PRIOR_ENTRY'
73033 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73034 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73035 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73036 )
73037 THEN
73038 xla_ae_lines_pkg.BflowUpgEntry
73039 (p_business_method_code => l_bflow_method_code
73040 ,p_business_class_code => l_bflow_class_code
73041 ,p_balance_type => l_balance_type_code);
73042 ELSE
73043 NULL;
73044 -- No business flow processing for business flow method of NONE.
73045 END IF;
73046
73047 --
73048 -- call analytical criteria
73049 --
73050
73051 --
73052 -- call description
73053 --
73054 -- No description or it is inherited.
73055 --
73056 -- call ADRs
73057 -- Bug 4922099
73058 --
73059 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73060 (NVL(l_actual_upg_option, 'N') = 'O') OR
73061 (NVL(l_enc_upg_option, 'N') = 'O')
73062 )
73063 THEN
73064 NULL;
73065 --
73066 --
73067
73068 l_ccid := AcctDerRule_33(
73069 p_application_id => p_application_id
73070 , p_ae_header_id => l_ae_header_id
73071 , p_source_36 => p_source_36
73072 , x_transaction_coa_id => l_adr_transaction_coa_id
73073 , x_accounting_coa_id => l_adr_accounting_coa_id
73074 , x_value_type_code => l_adr_value_type_code
73075 , p_side => 'NA'
73076 );
73077
73078 xla_ae_lines_pkg.set_ccid(
73079 p_code_combination_id => l_ccid
73080 , p_value_type_code => l_adr_value_type_code
73081 , p_transaction_coa_id => l_adr_transaction_coa_id
73082 , p_accounting_coa_id => l_adr_accounting_coa_id
73083 , p_adr_code => 'AP_RECP_INV_DIST'
73084 , p_adr_type_code => 'S'
73085 , p_component_type => l_component_type
73086 , p_component_code => l_component_code
73087 , p_component_type_code => l_component_type_code
73088 , p_component_appl_id => l_component_appl_id
73089 , p_amb_context_code => l_amb_context_code
73090 , p_side => 'NA'
73091 );
73092
73093
73094 --
73095 --
73096 END IF;
73097 --
73098 -- Bug 4922099
73099 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73100 (NVL(l_enc_upg_option, 'N') = 'O')
73101 ) AND
73102 (l_bflow_method_code = 'PRIOR_ENTRY')
73103 )
73104 THEN
73105 IF
73106 --
73107 1 = 2
73108 --
73109 THEN
73110 xla_accounting_err_pkg.build_message
73111 (p_appli_s_name => 'XLA'
73112 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73113 ,p_token_1 => 'LINE_NUMBER'
73114 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
73115 ,p_token_2 => 'LINE_TYPE_NAME'
73116 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
73117 l_component_type
73118 ,l_component_code
73119 ,l_component_type_code
73120 ,l_component_appl_id
73124 )
73121 ,l_amb_context_code
73122 ,l_entity_code
73123 ,l_event_class_code
73125 ,p_token_3 => 'OWNER'
73126 ,p_value_3 => xla_lookups_pkg.get_meaning(
73127 p_lookup_type => 'XLA_OWNER_TYPE'
73128 ,p_lookup_code => l_component_type_code
73129 )
73130 ,p_token_4 => 'PRODUCT_NAME'
73131 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73132 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73133 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73134 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73135 ,p_ae_header_id => NULL
73136 );
73137
73138 IF (C_LEVEL_ERROR>= g_log_level) THEN
73139 trace
73140 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73141 ,p_level => C_LEVEL_ERROR
73142 ,p_module => l_log_module);
73143 END IF;
73144 END IF;
73145 END IF;
73146 --
73147 --
73148 ------------------------------------------------------------------------------------------------
73149 -- 4219869 Business Flow
73150 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73151 -- Prior Entry. Currently, the following code is always generated.
73152 ------------------------------------------------------------------------------------------------
73153 XLA_AE_LINES_PKG.ValidateCurrentLine;
73154
73155 ------------------------------------------------------------------------------------
73156 -- 4219869 Business Flow
73157 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73158 ------------------------------------------------------------------------------------
73159 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73160
73161 ----------------------------------------------------------------------------------
73162 -- 4219869 Business Flow
73163 -- Update journal entry status -- Need to generate this within IF <condition>
73164 ----------------------------------------------------------------------------------
73165 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73166 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73167 ,p_balance_type_code => l_balance_type_code
73168 );
73169
73170 -------------------------------------------------------------------------------------------
73171 -- 4262811 - Generate the Accrual Reversal lines
73172 -------------------------------------------------------------------------------------------
73173 BEGIN
73174 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73175 (g_array_event(p_event_id).array_value_num('header_index'));
73176 IF l_acc_rev_flag IS NULL THEN
73177 l_acc_rev_flag := 'N';
73178 END IF;
73179 EXCEPTION
73180 WHEN OTHERS THEN
73181 l_acc_rev_flag := 'N';
73182 END;
73183 --
73184 IF (l_acc_rev_flag = 'Y') THEN
73185
73186 -- 4645092 ------------------------------------------------------------------------------
73187 -- To allow MPA report to determine if it should generate report process
73188 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73189 ------------------------------------------------------------------------------------------
73190
73191 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73192 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73193 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
73194 -- call ADRs
73195 -- Bug 4922099
73196 --
73197 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73198 (NVL(l_actual_upg_option, 'N') = 'O') OR
73199 (NVL(l_enc_upg_option, 'N') = 'O')
73200 )
73201 THEN
73202 NULL;
73203 --
73204 --
73205
73206 l_ccid := AcctDerRule_33(
73207 p_application_id => p_application_id
73208 , p_ae_header_id => l_ae_header_id
73209 , p_source_36 => p_source_36
73210 , x_transaction_coa_id => l_adr_transaction_coa_id
73211 , x_accounting_coa_id => l_adr_accounting_coa_id
73212 , x_value_type_code => l_adr_value_type_code
73213 , p_side => 'NA'
73214 );
73215
73216 xla_ae_lines_pkg.set_ccid(
73217 p_code_combination_id => l_ccid
73218 , p_value_type_code => l_adr_value_type_code
73219 , p_transaction_coa_id => l_adr_transaction_coa_id
73223 , p_component_type => l_component_type
73220 , p_accounting_coa_id => l_adr_accounting_coa_id
73221 , p_adr_code => 'AP_RECP_INV_DIST'
73222 , p_adr_type_code => 'S'
73224 , p_component_code => l_component_code
73225 , p_component_type_code => l_component_type_code
73226 , p_component_appl_id => l_component_appl_id
73227 , p_amb_context_code => l_amb_context_code
73228 , p_side => 'NA'
73229 );
73230
73231
73232 --
73233 --
73234 END IF;
73235
73236 --
73237 -- Update the line information that should be overwritten
73238 --
73239 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73240 p_header_num => 1);
73241 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
73242
73243 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73244
73245 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
73246 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73247 END IF;
73248
73249 --
73250 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73251 --
73252 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73253 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
73254 ELSE
73255 ---------------------------------------------------------------------------------------------------
73256 -- 4262811a Switch Sign
73257 ---------------------------------------------------------------------------------------------------
73258 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
73259 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73260 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73261 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73262 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73263 -- 5132302
73264 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73265 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73266
73267 END IF;
73268
73269 -- 4955764
73270 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73271 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73272
73273
73274 XLA_AE_LINES_PKG.ValidateCurrentLine;
73275 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73276
73277 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73278 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73279 ,p_balance_type_code => l_balance_type_code);
73280
73281 END IF;
73282
73283 -----------------------------------------------------------------------------------------
73284 -- 4262811 Multiperiod Accounting
73285 -----------------------------------------------------------------------------------------
73286 -- No MPA option is assigned.
73287
73288
73289 END IF;
73290 END IF;
73291 --
73292
73293 --
73294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73295 trace
73296 (p_msg => 'END of AcctLineType_135'
73297 ,p_level => C_LEVEL_PROCEDURE
73298 ,p_module => l_log_module);
73299 END IF;
73300 --
73301 EXCEPTION
73302 WHEN xla_exceptions_pkg.application_exception THEN
73303 RAISE;
73304 WHEN OTHERS THEN
73305 xla_exceptions_pkg.raise_message
73306 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_135');
73307 END AcctLineType_135;
73308 --
73309
73310 ---------------------------------------
73311 --
73312 -- PRIVATE FUNCTION
73313 -- AcctLineType_136
73314 --
73315 ---------------------------------------
73316 PROCEDURE AcctLineType_136 (
73317 p_application_id IN NUMBER
73318 ,p_event_id IN NUMBER
73319 ,p_calculate_acctd_flag IN VARCHAR2
73320 ,p_calculate_g_l_flag IN VARCHAR2
73321 ,p_actual_flag IN OUT VARCHAR2
73322 ,p_balance_type_code OUT VARCHAR2
73323 ,p_gain_or_loss_ref OUT VARCHAR2
73324
73325 --Payment Distribution (Cleared Rate) Ledger Amount
73326 , p_source_10 IN NUMBER
73327 --Invoice Distribution Account
73328 , p_source_17 IN NUMBER
73329 --Invoice Distribution Type
73330 , p_source_20 IN VARCHAR2
73331 , p_source_20_meaning IN VARCHAR2
73332 --When to Account for Payment Option
73333 , p_source_38 IN VARCHAR2
73334 --Payment Distribution Type
73335 , p_source_39 IN VARCHAR2
73336 , p_source_39_meaning IN VARCHAR2
73337 --Accounting Reversal Indicator
73338 , p_source_40 IN VARCHAR2
73339 --Payment Distribution Amount
73340 , p_source_41 IN NUMBER
73344 , p_source_43 IN VARCHAR2
73341 --Business Flow Accounts Payable Application Identifier
73342 , p_source_42 IN NUMBER
73343 --Business Flow Payment Distribution Type
73345 --Business Flow Payment Entity Code
73346 , p_source_44 IN VARCHAR2
73347 --Business Flow Payment Distribution Identifier
73348 , p_source_45 IN NUMBER
73349 --Business Flow Payment Identifier
73350 , p_source_46 IN NUMBER
73351 --Payment Distribution Identifier
73352 , p_source_47 IN NUMBER
73353 --Distribution Link Type
73354 , p_source_48 IN VARCHAR2
73355 --Payment Currency Code
73356 , p_source_49 IN VARCHAR2
73357 --Purchase Order Exchange Rate Date
73358 , p_source_50 IN DATE
73359 --Purchase Order Exchange Rate
73360 , p_source_51 IN NUMBER
73361 --Purchase Order Exchange Rate Type
73362 , p_source_52 IN VARCHAR2
73363 --Override Accounted Amount Indicator
73364 , p_source_53 IN VARCHAR2
73365 , p_source_53_meaning IN VARCHAR2
73366 --Payment Supplier Identifier
73367 , p_source_54 IN NUMBER
73368 --Payment Supplier Site Identifier
73369 , p_source_55 IN NUMBER
73370 --Third Party Type
73371 , p_source_56 IN VARCHAR2
73372 --Payment Distribution Reversed Identifier
73373 , p_source_57 IN NUMBER
73374 --Invoice Distribution Tax Line Identifier
73375 , p_source_58 IN NUMBER
73376 --Invoice Distribution Summary Tax Line Identifier
73377 , p_source_59 IN NUMBER
73378 --Accrue on Receipt Option
73379 , p_source_100 IN VARCHAR2
73380 , p_source_100_meaning IN VARCHAR2
73381 )
73382 IS
73383
73384 l_component_type VARCHAR2(80);
73385 l_component_code VARCHAR2(30);
73386 l_component_type_code VARCHAR2(1);
73387 l_component_appl_id INTEGER;
73388 l_amb_context_code VARCHAR2(30);
73389 l_entity_code VARCHAR2(30);
73390 l_event_class_code VARCHAR2(30);
73391 l_ae_header_id NUMBER;
73392 l_event_type_code VARCHAR2(30);
73393 l_line_definition_code VARCHAR2(30);
73394 l_line_definition_owner_code VARCHAR2(1);
73395 --
73396 -- adr variables
73397 l_segment VARCHAR2(30);
73398 l_ccid NUMBER;
73399 l_adr_transaction_coa_id NUMBER;
73400 l_adr_accounting_coa_id NUMBER;
73401 l_adr_flexfield_segment_code VARCHAR2(30);
73402 l_adr_flex_value_set_id NUMBER;
73403 l_adr_value_type_code VARCHAR2(30);
73404 l_adr_value_combination_id NUMBER;
73405 l_adr_value_segment_code VARCHAR2(30);
73406
73407 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
73408 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
73409 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
73410 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
73411
73412 -- 4262811 Variables ------------------------------------------------------------------------------------------
73413 l_entered_amt_idx NUMBER;
73414 l_accted_amt_idx NUMBER;
73415 l_acc_rev_flag VARCHAR2(1);
73416 l_accrual_line_num NUMBER;
73417 l_tmp_amt NUMBER;
73418 l_acc_rev_natural_side_code VARCHAR2(1);
73419
73420 l_num_entries NUMBER;
73421 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
73422 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
73423 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
73424 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
73425 l_recog_line_1 NUMBER;
73426 l_recog_line_2 NUMBER;
73427
73428 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
73429 l_bflow_applied_to_amt NUMBER; -- 5132302
73430 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
73431
73432 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73433
73434 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
73435 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
73436
73437 ---------------------------------------------------------------------------------------------------------------
73438
73439
73440 --
73441 -- bulk performance
73442 --
73443 l_balance_type_code VARCHAR2(1);
73444 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
73445 l_log_module VARCHAR2(240);
73446
73447 --
73448 -- Upgrade strategy
73449 --
73450 l_actual_upg_option VARCHAR2(1);
73451 l_enc_upg_option VARCHAR2(1);
73452
73453 --
73454 BEGIN
73455 --
73456 IF g_log_enabled THEN
73457 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
73458 END IF;
73459 --
73460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73461
73462 trace
73463 (p_msg => 'BEGIN of AcctLineType_136'
73464 ,p_level => C_LEVEL_PROCEDURE
73465 ,p_module => l_log_module);
73466
73467 END IF;
73468 --
73469 l_component_type := 'AMB_JLT';
73470 l_component_code := 'AP_NON_RECOV_TAX_ACCRUAL_CLEAR';
73471 l_component_type_code := 'S';
73472 l_component_appl_id := 200;
73476 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
73473 l_amb_context_code := 'DEFAULT';
73474 l_entity_code := 'AP_PAYMENTS';
73475 l_event_class_code := 'RECONCILED PAYMENTS';
73477 l_line_definition_owner_code := 'S';
73478 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
73479 --
73480 l_balance_type_code := 'A';
73481 l_segment := NULL;
73482 l_ccid := NULL;
73483 l_adr_transaction_coa_id := NULL;
73484 l_adr_accounting_coa_id := NULL;
73485 l_adr_flexfield_segment_code := NULL;
73486 l_adr_flex_value_set_id := NULL;
73487 l_adr_value_type_code := NULL;
73488 l_adr_value_combination_id := NULL;
73489 l_adr_value_segment_code := NULL;
73490
73491 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
73492 l_bflow_class_code := ''; -- 4219869 Business Flow
73493 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
73494 l_budgetary_control_flag := 'N';
73495
73496 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73497 l_bflow_applied_to_amt := NULL; -- 5132302
73498 l_entered_amt_idx := NULL; -- 4262811
73499 l_accted_amt_idx := NULL; -- 4262811
73500 l_acc_rev_flag := NULL; -- 4262811
73501 l_accrual_line_num := NULL; -- 4262811
73502 l_tmp_amt := NULL; -- 4262811
73503 --
73504
73505 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73506 l_balance_type_code <> 'B' THEN
73507 IF NVL(p_source_38,'
73508 ') = 'CLEAR_CLEAR' AND
73509 NVL(p_source_20,'
73510 ') = 'NONREC_TAX' AND
73511 NVL(p_source_100,'
73512 ') = 'Y' AND
73513 (NVL(p_source_39,'
73514 ') = 'CASH' OR
73515 NVL(p_source_39,'
73516 ') = 'AWT' OR
73517 NVL(p_source_39,'
73518 ') = 'DISCOUNT')
73519 THEN
73520
73521 --
73522 XLA_AE_LINES_PKG.SetNewLine;
73523
73524 p_balance_type_code := l_balance_type_code;
73525 -- set the flag so later we will know whether the gain loss line needs to be created
73526
73527 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73528 p_actual_flag :='A';
73529 END IF;
73530
73531 --
73532 -- bulk performance
73533 --
73534 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73535 p_header_num => 0); -- 4262811
73536 --
73537 -- set accounting line options
73538 --
73539 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73540 p_natural_side_code => 'D'
73541 , p_gain_or_loss_flag => 'N'
73542 , p_gl_transfer_mode_code => 'S'
73543 , p_acct_entry_type_code => 'A'
73544 , p_switch_side_flag => 'Y'
73545 , p_merge_duplicate_code => 'A'
73546 );
73547 --
73548 l_acc_rev_natural_side_code := 'C'; -- 4262811
73549 --
73550 --
73551 -- set accounting line type info
73552 --
73553 xla_ae_lines_pkg.SetAcctLineType
73554 (p_component_type => l_component_type
73555 ,p_event_type_code => l_event_type_code
73556 ,p_line_definition_owner_code => l_line_definition_owner_code
73557 ,p_line_definition_code => l_line_definition_code
73558 ,p_accounting_line_code => l_component_code
73559 ,p_accounting_line_type_code => l_component_type_code
73560 ,p_accounting_line_appl_id => l_component_appl_id
73561 ,p_amb_context_code => l_amb_context_code
73562 ,p_entity_code => l_entity_code
73563 ,p_event_class_code => l_event_class_code);
73564 --
73565 -- set accounting class
73566 --
73567 xla_ae_lines_pkg.SetAcctClass(
73568 p_accounting_class_code => 'NRTAX'
73569 , p_ae_header_id => l_ae_header_id
73570 );
73571
73572 --
73573 -- set rounding class
73574 --
73575 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73576 'NRTAX';
73577
73578 --
73579 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73580 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73581 --
73582 -- bulk performance
73583 --
73584 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73585
73586 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73587 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73588
73589 -- 4955764
73590 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73591 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73592
73593 -- 4458381 Public Sector Enh
73594
73595 --
73596 -- set accounting attributes for the line type
73597 --
73598 l_entered_amt_idx := 10;
73599 l_accted_amt_idx := 15;
73600 l_bflow_applied_to_amt_idx := 2; -- 5132302
73601 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73602 l_rec_acct_attrs.array_char_value(1) := p_source_40;
73606 l_rec_acct_attrs.array_num_value(3) := p_source_42;
73603 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
73604 l_rec_acct_attrs.array_num_value(2) := p_source_41;
73605 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
73607 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73608 l_rec_acct_attrs.array_char_value(4) := p_source_43;
73609 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
73610 l_rec_acct_attrs.array_char_value(5) := p_source_44;
73611 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
73612 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
73613 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73614 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
73615 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
73616 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
73617 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
73618 l_rec_acct_attrs.array_char_value(9) := p_source_48;
73619 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
73620 l_rec_acct_attrs.array_num_value(10) := p_source_41;
73621 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
73622 l_rec_acct_attrs.array_char_value(11) := p_source_49;
73623 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
73624 l_rec_acct_attrs.array_date_value(12) := p_source_50;
73625 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
73626 l_rec_acct_attrs.array_num_value(13) := p_source_51;
73627 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
73628 l_rec_acct_attrs.array_char_value(14) := p_source_52;
73629 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
73630 l_rec_acct_attrs.array_num_value(15) := p_source_10;
73631 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
73632 l_rec_acct_attrs.array_char_value(16) := p_source_53;
73633 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
73634 l_rec_acct_attrs.array_num_value(17) := p_source_54;
73635 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
73636 l_rec_acct_attrs.array_num_value(18) := p_source_55;
73637 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
73638 l_rec_acct_attrs.array_char_value(19) := p_source_56;
73639 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
73640 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
73641 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
73642 l_rec_acct_attrs.array_char_value(21) := p_source_48;
73643 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
73644 l_rec_acct_attrs.array_num_value(22) := p_source_58;
73645 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
73646 l_rec_acct_attrs.array_num_value(23) := p_source_58;
73647 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
73648 l_rec_acct_attrs.array_num_value(24) := p_source_59;
73649
73650 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73651 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73652
73653 ---------------------------------------------------------------------------------------------------------------
73654 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73655 ---------------------------------------------------------------------------------------------------------------
73656 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73657
73658 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73659 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73660
73661 IF xla_accounting_cache_pkg.GetValueChar
73662 (p_source_code => 'LEDGER_CATEGORY_CODE'
73663 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73664 AND l_bflow_method_code = 'PRIOR_ENTRY'
73665 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73666 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73667 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73668 )
73669 THEN
73670 xla_ae_lines_pkg.BflowUpgEntry
73671 (p_business_method_code => l_bflow_method_code
73672 ,p_business_class_code => l_bflow_class_code
73673 ,p_balance_type => l_balance_type_code);
73674 ELSE
73675 NULL;
73676 -- No business flow processing for business flow method of NONE.
73677 END IF;
73678
73679 --
73680 -- call analytical criteria
73681 --
73682
73683 --
73684 -- call description
73685 --
73686 -- No description or it is inherited.
73687 --
73688 -- call ADRs
73689 -- Bug 4922099
73690 --
73691 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73692 (NVL(l_actual_upg_option, 'N') = 'O') OR
73693 (NVL(l_enc_upg_option, 'N') = 'O')
73694 )
73695 THEN
73696 NULL;
73697 --
73698 --
73699
73700 l_ccid := AcctDerRule_26(
73701 p_application_id => p_application_id
73702 , p_ae_header_id => l_ae_header_id
73703 , p_source_17 => p_source_17
73704 , x_transaction_coa_id => l_adr_transaction_coa_id
73705 , x_accounting_coa_id => l_adr_accounting_coa_id
73709
73706 , x_value_type_code => l_adr_value_type_code
73707 , p_side => 'NA'
73708 );
73710 xla_ae_lines_pkg.set_ccid(
73711 p_code_combination_id => l_ccid
73712 , p_value_type_code => l_adr_value_type_code
73713 , p_transaction_coa_id => l_adr_transaction_coa_id
73714 , p_accounting_coa_id => l_adr_accounting_coa_id
73715 , p_adr_code => 'AP_INVOICE_DIST'
73716 , p_adr_type_code => 'S'
73717 , p_component_type => l_component_type
73718 , p_component_code => l_component_code
73719 , p_component_type_code => l_component_type_code
73720 , p_component_appl_id => l_component_appl_id
73721 , p_amb_context_code => l_amb_context_code
73722 , p_side => 'NA'
73723 );
73724
73725
73726 --
73727 --
73728 END IF;
73729 --
73730 -- Bug 4922099
73731 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73732 (NVL(l_enc_upg_option, 'N') = 'O')
73733 ) AND
73734 (l_bflow_method_code = 'PRIOR_ENTRY')
73735 )
73736 THEN
73737 IF
73738 --
73739 1 = 2
73740 --
73741 THEN
73742 xla_accounting_err_pkg.build_message
73743 (p_appli_s_name => 'XLA'
73744 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73745 ,p_token_1 => 'LINE_NUMBER'
73746 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
73747 ,p_token_2 => 'LINE_TYPE_NAME'
73748 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
73749 l_component_type
73750 ,l_component_code
73751 ,l_component_type_code
73752 ,l_component_appl_id
73753 ,l_amb_context_code
73754 ,l_entity_code
73755 ,l_event_class_code
73756 )
73757 ,p_token_3 => 'OWNER'
73758 ,p_value_3 => xla_lookups_pkg.get_meaning(
73759 p_lookup_type => 'XLA_OWNER_TYPE'
73760 ,p_lookup_code => l_component_type_code
73761 )
73762 ,p_token_4 => 'PRODUCT_NAME'
73763 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73764 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73765 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73766 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73767 ,p_ae_header_id => NULL
73768 );
73769
73770 IF (C_LEVEL_ERROR>= g_log_level) THEN
73771 trace
73772 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73773 ,p_level => C_LEVEL_ERROR
73774 ,p_module => l_log_module);
73775 END IF;
73776 END IF;
73777 END IF;
73778 --
73779 --
73780 ------------------------------------------------------------------------------------------------
73781 -- 4219869 Business Flow
73782 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73783 -- Prior Entry. Currently, the following code is always generated.
73784 ------------------------------------------------------------------------------------------------
73785 XLA_AE_LINES_PKG.ValidateCurrentLine;
73786
73787 ------------------------------------------------------------------------------------
73788 -- 4219869 Business Flow
73789 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73790 ------------------------------------------------------------------------------------
73791 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73792
73793 ----------------------------------------------------------------------------------
73794 -- 4219869 Business Flow
73795 -- Update journal entry status -- Need to generate this within IF <condition>
73796 ----------------------------------------------------------------------------------
73797 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73798 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73799 ,p_balance_type_code => l_balance_type_code
73800 );
73801
73805 BEGIN
73802 -------------------------------------------------------------------------------------------
73803 -- 4262811 - Generate the Accrual Reversal lines
73804 -------------------------------------------------------------------------------------------
73806 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73807 (g_array_event(p_event_id).array_value_num('header_index'));
73808 IF l_acc_rev_flag IS NULL THEN
73809 l_acc_rev_flag := 'N';
73810 END IF;
73811 EXCEPTION
73812 WHEN OTHERS THEN
73813 l_acc_rev_flag := 'N';
73814 END;
73815 --
73816 IF (l_acc_rev_flag = 'Y') THEN
73817
73818 -- 4645092 ------------------------------------------------------------------------------
73819 -- To allow MPA report to determine if it should generate report process
73820 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73821 ------------------------------------------------------------------------------------------
73822
73823 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73824 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73825 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
73826 -- call ADRs
73827 -- Bug 4922099
73828 --
73829 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73830 (NVL(l_actual_upg_option, 'N') = 'O') OR
73831 (NVL(l_enc_upg_option, 'N') = 'O')
73832 )
73833 THEN
73834 NULL;
73835 --
73836 --
73837
73838 l_ccid := AcctDerRule_26(
73839 p_application_id => p_application_id
73840 , p_ae_header_id => l_ae_header_id
73841 , p_source_17 => p_source_17
73842 , x_transaction_coa_id => l_adr_transaction_coa_id
73843 , x_accounting_coa_id => l_adr_accounting_coa_id
73844 , x_value_type_code => l_adr_value_type_code
73845 , p_side => 'NA'
73846 );
73847
73848 xla_ae_lines_pkg.set_ccid(
73849 p_code_combination_id => l_ccid
73850 , p_value_type_code => l_adr_value_type_code
73851 , p_transaction_coa_id => l_adr_transaction_coa_id
73852 , p_accounting_coa_id => l_adr_accounting_coa_id
73853 , p_adr_code => 'AP_INVOICE_DIST'
73854 , p_adr_type_code => 'S'
73855 , p_component_type => l_component_type
73856 , p_component_code => l_component_code
73857 , p_component_type_code => l_component_type_code
73858 , p_component_appl_id => l_component_appl_id
73859 , p_amb_context_code => l_amb_context_code
73860 , p_side => 'NA'
73861 );
73862
73863
73864 --
73865 --
73866 END IF;
73867
73868 --
73869 -- Update the line information that should be overwritten
73870 --
73871 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73872 p_header_num => 1);
73873 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
73874
73875 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73876
73877 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
73878 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73879 END IF;
73880
73881 --
73882 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73883 --
73884 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73885 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
73886 ELSE
73887 ---------------------------------------------------------------------------------------------------
73888 -- 4262811a Switch Sign
73889 ---------------------------------------------------------------------------------------------------
73890 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
73891 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73892 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73893 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73894 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73895 -- 5132302
73896 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73897 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73898
73899 END IF;
73900
73901 -- 4955764
73902 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73903 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73904
73905
73906 XLA_AE_LINES_PKG.ValidateCurrentLine;
73907 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73908
73909 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73910 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73914
73911 ,p_balance_type_code => l_balance_type_code);
73912
73913 END IF;
73915 -----------------------------------------------------------------------------------------
73916 -- 4262811 Multiperiod Accounting
73917 -----------------------------------------------------------------------------------------
73918 -- No MPA option is assigned.
73919
73920
73921 END IF;
73922 END IF;
73923 --
73924
73925 --
73926 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73927 trace
73928 (p_msg => 'END of AcctLineType_136'
73929 ,p_level => C_LEVEL_PROCEDURE
73930 ,p_module => l_log_module);
73931 END IF;
73932 --
73933 EXCEPTION
73934 WHEN xla_exceptions_pkg.application_exception THEN
73935 RAISE;
73936 WHEN OTHERS THEN
73937 xla_exceptions_pkg.raise_message
73938 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_136');
73939 END AcctLineType_136;
73940 --
73941
73942 ---------------------------------------
73943 --
73944 -- PRIVATE FUNCTION
73945 -- AcctLineType_137
73946 --
73947 ---------------------------------------
73948 PROCEDURE AcctLineType_137 (
73949 p_application_id IN NUMBER
73950 ,p_event_id IN NUMBER
73951 ,p_calculate_acctd_flag IN VARCHAR2
73952 ,p_calculate_g_l_flag IN VARCHAR2
73953 ,p_actual_flag IN OUT VARCHAR2
73954 ,p_balance_type_code OUT VARCHAR2
73955 ,p_gain_or_loss_ref OUT VARCHAR2
73956
73957 --Payment Distribution (Payment Rate) Ledger Amount
73958 , p_source_9 IN NUMBER
73959 --Invoice Distribution Account
73960 , p_source_17 IN NUMBER
73961 --Invoice Distribution Type
73962 , p_source_20 IN VARCHAR2
73963 , p_source_20_meaning IN VARCHAR2
73964 --When to Account for Payment Option
73965 , p_source_38 IN VARCHAR2
73966 --Payment Distribution Type
73967 , p_source_39 IN VARCHAR2
73968 , p_source_39_meaning IN VARCHAR2
73969 --Accounting Reversal Indicator
73970 , p_source_40 IN VARCHAR2
73971 --Payment Distribution Amount
73972 , p_source_41 IN NUMBER
73973 --Business Flow Accounts Payable Application Identifier
73974 , p_source_42 IN NUMBER
73975 --Payment Distribution Identifier
73976 , p_source_47 IN NUMBER
73977 --Distribution Link Type
73978 , p_source_48 IN VARCHAR2
73979 --Payment Currency Code
73980 , p_source_49 IN VARCHAR2
73981 --Purchase Order Exchange Rate Date
73982 , p_source_50 IN DATE
73983 --Purchase Order Exchange Rate
73984 , p_source_51 IN NUMBER
73985 --Purchase Order Exchange Rate Type
73986 , p_source_52 IN VARCHAR2
73987 --Override Accounted Amount Indicator
73988 , p_source_53 IN VARCHAR2
73989 , p_source_53_meaning IN VARCHAR2
73990 --Payment Supplier Identifier
73991 , p_source_54 IN NUMBER
73992 --Payment Supplier Site Identifier
73993 , p_source_55 IN NUMBER
73994 --Third Party Type
73995 , p_source_56 IN VARCHAR2
73996 --Payment Distribution Reversed Identifier
73997 , p_source_57 IN NUMBER
73998 --Invoice Distribution Tax Line Identifier
73999 , p_source_58 IN NUMBER
74000 --Invoice Distribution Summary Tax Line Identifier
74001 , p_source_59 IN NUMBER
74002 --Payment Type
74003 , p_source_60 IN VARCHAR2
74004 , p_source_60_meaning IN VARCHAR2
74005 --Invoice Distribution Amount of the Payment Distribution
74006 , p_source_61 IN NUMBER
74007 --Business Flow Invoice Distribution Type
74008 , p_source_62 IN VARCHAR2
74009 --Business Flow Invoice Entity Code
74010 , p_source_63 IN VARCHAR2
74011 --Business Flow Invoice Distribution Identifier
74012 , p_source_64 IN NUMBER
74013 --Business Flow Invoice Identifier
74014 , p_source_65 IN NUMBER
74015 --Invoice Distribution Tax Distribution Identifier from Tax
74016 , p_source_66 IN NUMBER
74017 --Accrue on Receipt Option
74018 , p_source_100 IN VARCHAR2
74019 , p_source_100_meaning IN VARCHAR2
74020 --Invoice Type Paid
74021 , p_source_101 IN VARCHAR2
74022 , p_source_101_meaning IN VARCHAR2
74023 )
74024 IS
74025
74026 l_component_type VARCHAR2(80);
74027 l_component_code VARCHAR2(30);
74028 l_component_type_code VARCHAR2(1);
74029 l_component_appl_id INTEGER;
74030 l_amb_context_code VARCHAR2(30);
74031 l_entity_code VARCHAR2(30);
74032 l_event_class_code VARCHAR2(30);
74033 l_ae_header_id NUMBER;
74034 l_event_type_code VARCHAR2(30);
74035 l_line_definition_code VARCHAR2(30);
74036 l_line_definition_owner_code VARCHAR2(1);
74037 --
74038 -- adr variables
74039 l_segment VARCHAR2(30);
74040 l_ccid NUMBER;
74041 l_adr_transaction_coa_id NUMBER;
74042 l_adr_accounting_coa_id NUMBER;
74043 l_adr_flexfield_segment_code VARCHAR2(30);
74044 l_adr_flex_value_set_id NUMBER;
74045 l_adr_value_type_code VARCHAR2(30);
74046 l_adr_value_combination_id NUMBER;
74047 l_adr_value_segment_code VARCHAR2(30);
74048
74052 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
74049 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
74050 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
74051 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
74053
74054 -- 4262811 Variables ------------------------------------------------------------------------------------------
74055 l_entered_amt_idx NUMBER;
74056 l_accted_amt_idx NUMBER;
74057 l_acc_rev_flag VARCHAR2(1);
74058 l_accrual_line_num NUMBER;
74059 l_tmp_amt NUMBER;
74060 l_acc_rev_natural_side_code VARCHAR2(1);
74061
74062 l_num_entries NUMBER;
74063 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
74064 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
74065 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
74066 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
74067 l_recog_line_1 NUMBER;
74068 l_recog_line_2 NUMBER;
74069
74070 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
74071 l_bflow_applied_to_amt NUMBER; -- 5132302
74072 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
74073
74074 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74075
74076 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
74077 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
74078
74079 ---------------------------------------------------------------------------------------------------------------
74080
74081
74082 --
74083 -- bulk performance
74084 --
74085 l_balance_type_code VARCHAR2(1);
74086 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74087 l_log_module VARCHAR2(240);
74088
74089 --
74090 -- Upgrade strategy
74091 --
74092 l_actual_upg_option VARCHAR2(1);
74093 l_enc_upg_option VARCHAR2(1);
74094
74095 --
74096 BEGIN
74097 --
74098 IF g_log_enabled THEN
74099 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
74100 END IF;
74101 --
74102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74103
74104 trace
74105 (p_msg => 'BEGIN of AcctLineType_137'
74106 ,p_level => C_LEVEL_PROCEDURE
74107 ,p_module => l_log_module);
74108
74109 END IF;
74110 --
74111 l_component_type := 'AMB_JLT';
74112 l_component_code := 'AP_NON_RECOV_TAX_ACCRUAL_PMT';
74113 l_component_type_code := 'S';
74114 l_component_appl_id := 200;
74115 l_amb_context_code := 'DEFAULT';
74116 l_entity_code := 'AP_PAYMENTS';
74117 l_event_class_code := 'PAYMENTS';
74118 l_event_type_code := 'PAYMENTS_ALL';
74119 l_line_definition_owner_code := 'S';
74120 l_line_definition_code := 'CASH_PAYMENTS_ALL';
74121 --
74122 l_balance_type_code := 'A';
74123 l_segment := NULL;
74124 l_ccid := NULL;
74125 l_adr_transaction_coa_id := NULL;
74126 l_adr_accounting_coa_id := NULL;
74127 l_adr_flexfield_segment_code := NULL;
74128 l_adr_flex_value_set_id := NULL;
74129 l_adr_value_type_code := NULL;
74130 l_adr_value_combination_id := NULL;
74131 l_adr_value_segment_code := NULL;
74132
74133 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
74134 l_bflow_class_code := ''; -- 4219869 Business Flow
74135 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
74136 l_budgetary_control_flag := 'N';
74137
74138 l_bflow_applied_to_amt_idx := NULL; -- 5132302
74139 l_bflow_applied_to_amt := NULL; -- 5132302
74140 l_entered_amt_idx := NULL; -- 4262811
74141 l_accted_amt_idx := NULL; -- 4262811
74142 l_acc_rev_flag := NULL; -- 4262811
74143 l_accrual_line_num := NULL; -- 4262811
74144 l_tmp_amt := NULL; -- 4262811
74145 --
74146
74147 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74148 l_balance_type_code <> 'B' THEN
74149 IF NVL(p_source_38,'
74150 ') <> 'CLEAR_CLEAR' AND
74151 NVL(p_source_20,'
74152 ') = 'NONREC_TAX' AND
74153 NVL(p_source_100,'
74154 ') = 'Y' AND
74155 NVL(p_source_101,'
74156 ') <> 'INTEREST' AND
74157 (NVL(p_source_39,'
74158 ') = 'CASH' OR
74159 NVL(p_source_39,'
74160 ') = 'AWT' OR
74161 NVL(p_source_39,'
74162 ') = 'DISCOUNT') AND
74163 NVL(p_source_60,'
74164 ') <> 'R'
74165 THEN
74166
74167 --
74168 XLA_AE_LINES_PKG.SetNewLine;
74169
74170 p_balance_type_code := l_balance_type_code;
74171 -- set the flag so later we will know whether the gain loss line needs to be created
74172
74173 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74174 p_actual_flag :='A';
74175 END IF;
74176
74177 --
74178 -- bulk performance
74179 --
74180 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74181 p_header_num => 0); -- 4262811
74182 --
74183 -- set accounting line options
74184 --
74188 , p_gl_transfer_mode_code => 'S'
74185 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74186 p_natural_side_code => 'D'
74187 , p_gain_or_loss_flag => 'N'
74189 , p_acct_entry_type_code => 'A'
74190 , p_switch_side_flag => 'Y'
74191 , p_merge_duplicate_code => 'A'
74192 );
74193 --
74194 l_acc_rev_natural_side_code := 'C'; -- 4262811
74195 --
74196 --
74197 -- set accounting line type info
74198 --
74199 xla_ae_lines_pkg.SetAcctLineType
74200 (p_component_type => l_component_type
74201 ,p_event_type_code => l_event_type_code
74202 ,p_line_definition_owner_code => l_line_definition_owner_code
74203 ,p_line_definition_code => l_line_definition_code
74204 ,p_accounting_line_code => l_component_code
74205 ,p_accounting_line_type_code => l_component_type_code
74206 ,p_accounting_line_appl_id => l_component_appl_id
74207 ,p_amb_context_code => l_amb_context_code
74208 ,p_entity_code => l_entity_code
74209 ,p_event_class_code => l_event_class_code);
74210 --
74211 -- set accounting class
74212 --
74213 xla_ae_lines_pkg.SetAcctClass(
74214 p_accounting_class_code => 'NRTAX'
74215 , p_ae_header_id => l_ae_header_id
74216 );
74217
74218 --
74219 -- set rounding class
74220 --
74221 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74222 'NRTAX';
74223
74224 --
74225 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74226 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74227 --
74228 -- bulk performance
74229 --
74230 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74231
74232 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74233 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74234
74235 -- 4955764
74236 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74237 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74238
74239 -- 4458381 Public Sector Enh
74240
74241 --
74242 -- set accounting attributes for the line type
74243 --
74244 l_entered_amt_idx := 10;
74245 l_accted_amt_idx := 15;
74246 l_bflow_applied_to_amt_idx := 2; -- 5132302
74247 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74248 l_rec_acct_attrs.array_char_value(1) := p_source_40;
74249 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
74250 l_rec_acct_attrs.array_num_value(2) := p_source_61;
74251 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
74252 l_rec_acct_attrs.array_num_value(3) := p_source_42;
74253 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74254 l_rec_acct_attrs.array_char_value(4) := p_source_62;
74255 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
74256 l_rec_acct_attrs.array_char_value(5) := p_source_63;
74257 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
74258 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
74259 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74260 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
74261 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
74262 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
74263 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
74264 l_rec_acct_attrs.array_char_value(9) := p_source_48;
74265 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
74266 l_rec_acct_attrs.array_num_value(10) := p_source_41;
74267 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
74268 l_rec_acct_attrs.array_char_value(11) := p_source_49;
74269 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
74270 l_rec_acct_attrs.array_date_value(12) := p_source_50;
74271 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
74272 l_rec_acct_attrs.array_num_value(13) := p_source_51;
74273 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
74274 l_rec_acct_attrs.array_char_value(14) := p_source_52;
74275 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
74276 l_rec_acct_attrs.array_num_value(15) := p_source_9;
74277 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
74278 l_rec_acct_attrs.array_char_value(16) := p_source_53;
74279 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
74280 l_rec_acct_attrs.array_num_value(17) := p_source_54;
74281 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
74282 l_rec_acct_attrs.array_num_value(18) := p_source_55;
74283 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
74284 l_rec_acct_attrs.array_char_value(19) := p_source_56;
74285 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
74286 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
74287 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
74288 l_rec_acct_attrs.array_char_value(21) := p_source_48;
74292 l_rec_acct_attrs.array_num_value(23) := p_source_66;
74289 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
74290 l_rec_acct_attrs.array_num_value(22) := p_source_58;
74291 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
74293 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
74294 l_rec_acct_attrs.array_num_value(24) := p_source_59;
74295
74296 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74297 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74298
74299 ---------------------------------------------------------------------------------------------------------------
74300 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74301 ---------------------------------------------------------------------------------------------------------------
74302 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74303
74304 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74305 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74306
74307 IF xla_accounting_cache_pkg.GetValueChar
74308 (p_source_code => 'LEDGER_CATEGORY_CODE'
74309 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74310 AND l_bflow_method_code = 'PRIOR_ENTRY'
74311 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74312 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74313 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74314 )
74315 THEN
74316 xla_ae_lines_pkg.BflowUpgEntry
74317 (p_business_method_code => l_bflow_method_code
74318 ,p_business_class_code => l_bflow_class_code
74319 ,p_balance_type => l_balance_type_code);
74320 ELSE
74321 NULL;
74322 -- No business flow processing for business flow method of NONE.
74323 END IF;
74324
74325 --
74326 -- call analytical criteria
74327 --
74328
74329 --
74330 -- call description
74331 --
74332 -- No description or it is inherited.
74333 --
74334 -- call ADRs
74335 -- Bug 4922099
74336 --
74337 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74338 (NVL(l_actual_upg_option, 'N') = 'O') OR
74339 (NVL(l_enc_upg_option, 'N') = 'O')
74340 )
74341 THEN
74342 NULL;
74343 --
74344 --
74345
74346 l_ccid := AcctDerRule_26(
74347 p_application_id => p_application_id
74348 , p_ae_header_id => l_ae_header_id
74349 , p_source_17 => p_source_17
74350 , x_transaction_coa_id => l_adr_transaction_coa_id
74351 , x_accounting_coa_id => l_adr_accounting_coa_id
74352 , x_value_type_code => l_adr_value_type_code
74353 , p_side => 'NA'
74354 );
74355
74356 xla_ae_lines_pkg.set_ccid(
74357 p_code_combination_id => l_ccid
74358 , p_value_type_code => l_adr_value_type_code
74359 , p_transaction_coa_id => l_adr_transaction_coa_id
74360 , p_accounting_coa_id => l_adr_accounting_coa_id
74361 , p_adr_code => 'AP_INVOICE_DIST'
74362 , p_adr_type_code => 'S'
74363 , p_component_type => l_component_type
74364 , p_component_code => l_component_code
74365 , p_component_type_code => l_component_type_code
74366 , p_component_appl_id => l_component_appl_id
74367 , p_amb_context_code => l_amb_context_code
74368 , p_side => 'NA'
74369 );
74370
74371
74372 --
74373 --
74374 END IF;
74375 --
74376 -- Bug 4922099
74377 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74378 (NVL(l_enc_upg_option, 'N') = 'O')
74379 ) AND
74380 (l_bflow_method_code = 'PRIOR_ENTRY')
74381 )
74382 THEN
74383 IF
74384 --
74385 1 = 2
74386 --
74387 THEN
74388 xla_accounting_err_pkg.build_message
74389 (p_appli_s_name => 'XLA'
74390 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74391 ,p_token_1 => 'LINE_NUMBER'
74392 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
74393 ,p_token_2 => 'LINE_TYPE_NAME'
74394 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
74395 l_component_type
74396 ,l_component_code
74397 ,l_component_type_code
74398 ,l_component_appl_id
74399 ,l_amb_context_code
74400 ,l_entity_code
74401 ,l_event_class_code
74402 )
74406 ,p_lookup_code => l_component_type_code
74403 ,p_token_3 => 'OWNER'
74404 ,p_value_3 => xla_lookups_pkg.get_meaning(
74405 p_lookup_type => 'XLA_OWNER_TYPE'
74407 )
74408 ,p_token_4 => 'PRODUCT_NAME'
74409 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74410 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74411 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74412 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74413 ,p_ae_header_id => NULL
74414 );
74415
74416 IF (C_LEVEL_ERROR>= g_log_level) THEN
74417 trace
74418 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74419 ,p_level => C_LEVEL_ERROR
74420 ,p_module => l_log_module);
74421 END IF;
74422 END IF;
74423 END IF;
74424 --
74425 --
74426 ------------------------------------------------------------------------------------------------
74427 -- 4219869 Business Flow
74428 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74429 -- Prior Entry. Currently, the following code is always generated.
74430 ------------------------------------------------------------------------------------------------
74431 XLA_AE_LINES_PKG.ValidateCurrentLine;
74432
74433 ------------------------------------------------------------------------------------
74434 -- 4219869 Business Flow
74435 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74436 ------------------------------------------------------------------------------------
74437 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74438
74439 ----------------------------------------------------------------------------------
74440 -- 4219869 Business Flow
74441 -- Update journal entry status -- Need to generate this within IF <condition>
74442 ----------------------------------------------------------------------------------
74443 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74444 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74445 ,p_balance_type_code => l_balance_type_code
74446 );
74447
74448 -------------------------------------------------------------------------------------------
74449 -- 4262811 - Generate the Accrual Reversal lines
74450 -------------------------------------------------------------------------------------------
74451 BEGIN
74452 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74453 (g_array_event(p_event_id).array_value_num('header_index'));
74454 IF l_acc_rev_flag IS NULL THEN
74455 l_acc_rev_flag := 'N';
74456 END IF;
74457 EXCEPTION
74458 WHEN OTHERS THEN
74459 l_acc_rev_flag := 'N';
74460 END;
74461 --
74462 IF (l_acc_rev_flag = 'Y') THEN
74463
74464 -- 4645092 ------------------------------------------------------------------------------
74465 -- To allow MPA report to determine if it should generate report process
74466 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74467 ------------------------------------------------------------------------------------------
74468
74469 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74470 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74471 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
74472 -- call ADRs
74473 -- Bug 4922099
74474 --
74475 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74476 (NVL(l_actual_upg_option, 'N') = 'O') OR
74477 (NVL(l_enc_upg_option, 'N') = 'O')
74478 )
74479 THEN
74480 NULL;
74481 --
74482 --
74483
74484 l_ccid := AcctDerRule_26(
74485 p_application_id => p_application_id
74486 , p_ae_header_id => l_ae_header_id
74487 , p_source_17 => p_source_17
74488 , x_transaction_coa_id => l_adr_transaction_coa_id
74489 , x_accounting_coa_id => l_adr_accounting_coa_id
74490 , x_value_type_code => l_adr_value_type_code
74491 , p_side => 'NA'
74492 );
74493
74494 xla_ae_lines_pkg.set_ccid(
74495 p_code_combination_id => l_ccid
74496 , p_value_type_code => l_adr_value_type_code
74497 , p_transaction_coa_id => l_adr_transaction_coa_id
74498 , p_accounting_coa_id => l_adr_accounting_coa_id
74499 , p_adr_code => 'AP_INVOICE_DIST'
74500 , p_adr_type_code => 'S'
74501 , p_component_type => l_component_type
74502 , p_component_code => l_component_code
74503 , p_component_type_code => l_component_type_code
74507 );
74504 , p_component_appl_id => l_component_appl_id
74505 , p_amb_context_code => l_amb_context_code
74506 , p_side => 'NA'
74508
74509
74510 --
74511 --
74512 END IF;
74513
74514 --
74515 -- Update the line information that should be overwritten
74516 --
74517 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74518 p_header_num => 1);
74519 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
74520
74521 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74522
74523 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
74524 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74525 END IF;
74526
74527 --
74528 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74529 --
74530 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74531 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
74532 ELSE
74533 ---------------------------------------------------------------------------------------------------
74534 -- 4262811a Switch Sign
74535 ---------------------------------------------------------------------------------------------------
74536 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
74537 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74538 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74539 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74540 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74541 -- 5132302
74542 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74543 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74544
74545 END IF;
74546
74547 -- 4955764
74548 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74549 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74550
74551
74552 XLA_AE_LINES_PKG.ValidateCurrentLine;
74553 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74554
74555 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74556 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74557 ,p_balance_type_code => l_balance_type_code);
74558
74559 END IF;
74560
74561 -----------------------------------------------------------------------------------------
74562 -- 4262811 Multiperiod Accounting
74563 -----------------------------------------------------------------------------------------
74564 -- No MPA option is assigned.
74565
74566
74567 END IF;
74568 END IF;
74569 --
74570
74571 --
74572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74573 trace
74574 (p_msg => 'END of AcctLineType_137'
74575 ,p_level => C_LEVEL_PROCEDURE
74576 ,p_module => l_log_module);
74577 END IF;
74578 --
74579 EXCEPTION
74580 WHEN xla_exceptions_pkg.application_exception THEN
74581 RAISE;
74582 WHEN OTHERS THEN
74583 xla_exceptions_pkg.raise_message
74584 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_137');
74585 END AcctLineType_137;
74586 --
74587
74588 ---------------------------------------
74589 --
74590 -- PRIVATE FUNCTION
74591 -- AcctLineType_138
74592 --
74593 ---------------------------------------
74594 PROCEDURE AcctLineType_138 (
74595 p_application_id IN NUMBER
74596 ,p_event_id IN NUMBER
74597 ,p_calculate_acctd_flag IN VARCHAR2
74598 ,p_calculate_g_l_flag IN VARCHAR2
74599 ,p_actual_flag IN OUT VARCHAR2
74600 ,p_balance_type_code OUT VARCHAR2
74601 ,p_gain_or_loss_ref OUT VARCHAR2
74602
74603 --Payment Distribution (Payment Rate) Ledger Amount
74604 , p_source_9 IN NUMBER
74605 --Invoice Distribution Account
74606 , p_source_17 IN NUMBER
74607 --Invoice Distribution Type
74608 , p_source_20 IN VARCHAR2
74609 , p_source_20_meaning IN VARCHAR2
74610 --When to Account for Payment Option
74611 , p_source_38 IN VARCHAR2
74612 --Payment Distribution Type
74613 , p_source_39 IN VARCHAR2
74614 , p_source_39_meaning IN VARCHAR2
74615 --Accounting Reversal Indicator
74616 , p_source_40 IN VARCHAR2
74617 --Payment Distribution Amount
74618 , p_source_41 IN NUMBER
74619 --Business Flow Accounts Payable Application Identifier
74620 , p_source_42 IN NUMBER
74621 --Payment Distribution Identifier
74622 , p_source_47 IN NUMBER
74623 --Distribution Link Type
74624 , p_source_48 IN VARCHAR2
74625 --Payment Currency Code
74626 , p_source_49 IN VARCHAR2
74627 --Purchase Order Exchange Rate Date
74631 --Purchase Order Exchange Rate Type
74628 , p_source_50 IN DATE
74629 --Purchase Order Exchange Rate
74630 , p_source_51 IN NUMBER
74632 , p_source_52 IN VARCHAR2
74633 --Override Accounted Amount Indicator
74634 , p_source_53 IN VARCHAR2
74635 , p_source_53_meaning IN VARCHAR2
74636 --Payment Supplier Identifier
74637 , p_source_54 IN NUMBER
74638 --Payment Supplier Site Identifier
74639 , p_source_55 IN NUMBER
74640 --Third Party Type
74641 , p_source_56 IN VARCHAR2
74642 --Payment Distribution Reversed Identifier
74643 , p_source_57 IN NUMBER
74644 --Invoice Distribution Tax Line Identifier
74645 , p_source_58 IN NUMBER
74646 --Invoice Distribution Summary Tax Line Identifier
74647 , p_source_59 IN NUMBER
74648 --Payment Type
74649 , p_source_60 IN VARCHAR2
74650 , p_source_60_meaning IN VARCHAR2
74651 --Business Flow Invoice Distribution Type
74652 , p_source_62 IN VARCHAR2
74653 --Business Flow Invoice Entity Code
74654 , p_source_63 IN VARCHAR2
74655 --Business Flow Invoice Distribution Identifier
74656 , p_source_64 IN NUMBER
74657 --Business Flow Invoice Identifier
74658 , p_source_65 IN NUMBER
74659 --Invoice Distribution Tax Distribution Identifier from Tax
74660 , p_source_66 IN NUMBER
74661 --Accrue on Receipt Option
74662 , p_source_100 IN VARCHAR2
74663 , p_source_100_meaning IN VARCHAR2
74664 )
74665 IS
74666
74667 l_component_type VARCHAR2(80);
74668 l_component_code VARCHAR2(30);
74669 l_component_type_code VARCHAR2(1);
74670 l_component_appl_id INTEGER;
74671 l_amb_context_code VARCHAR2(30);
74672 l_entity_code VARCHAR2(30);
74673 l_event_class_code VARCHAR2(30);
74674 l_ae_header_id NUMBER;
74675 l_event_type_code VARCHAR2(30);
74676 l_line_definition_code VARCHAR2(30);
74677 l_line_definition_owner_code VARCHAR2(1);
74678 --
74679 -- adr variables
74680 l_segment VARCHAR2(30);
74681 l_ccid NUMBER;
74682 l_adr_transaction_coa_id NUMBER;
74683 l_adr_accounting_coa_id NUMBER;
74684 l_adr_flexfield_segment_code VARCHAR2(30);
74685 l_adr_flex_value_set_id NUMBER;
74686 l_adr_value_type_code VARCHAR2(30);
74687 l_adr_value_combination_id NUMBER;
74688 l_adr_value_segment_code VARCHAR2(30);
74689
74690 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
74691 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
74692 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
74693 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
74694
74695 -- 4262811 Variables ------------------------------------------------------------------------------------------
74696 l_entered_amt_idx NUMBER;
74697 l_accted_amt_idx NUMBER;
74698 l_acc_rev_flag VARCHAR2(1);
74699 l_accrual_line_num NUMBER;
74700 l_tmp_amt NUMBER;
74701 l_acc_rev_natural_side_code VARCHAR2(1);
74702
74703 l_num_entries NUMBER;
74704 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
74705 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
74706 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
74707 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
74708 l_recog_line_1 NUMBER;
74709 l_recog_line_2 NUMBER;
74710
74711 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
74712 l_bflow_applied_to_amt NUMBER; -- 5132302
74713 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
74714
74715 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74716
74717 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
74718 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
74719
74720 ---------------------------------------------------------------------------------------------------------------
74721
74722
74723 --
74724 -- bulk performance
74725 --
74726 l_balance_type_code VARCHAR2(1);
74727 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74728 l_log_module VARCHAR2(240);
74729
74730 --
74731 -- Upgrade strategy
74732 --
74733 l_actual_upg_option VARCHAR2(1);
74734 l_enc_upg_option VARCHAR2(1);
74735
74736 --
74737 BEGIN
74738 --
74739 IF g_log_enabled THEN
74740 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
74741 END IF;
74742 --
74743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74744
74745 trace
74746 (p_msg => 'BEGIN of AcctLineType_138'
74747 ,p_level => C_LEVEL_PROCEDURE
74748 ,p_module => l_log_module);
74749
74750 END IF;
74751 --
74752 l_component_type := 'AMB_JLT';
74753 l_component_code := 'AP_NON_RECOV_TAX_ACCRUAL_REF';
74754 l_component_type_code := 'S';
74755 l_component_appl_id := 200;
74756 l_amb_context_code := 'DEFAULT';
74760 l_line_definition_owner_code := 'S';
74757 l_entity_code := 'AP_PAYMENTS';
74758 l_event_class_code := 'REFUNDS';
74759 l_event_type_code := 'REFUNDS_ALL';
74761 l_line_definition_code := 'CASH_REFUNDS_ALL';
74762 --
74763 l_balance_type_code := 'A';
74764 l_segment := NULL;
74765 l_ccid := NULL;
74766 l_adr_transaction_coa_id := NULL;
74767 l_adr_accounting_coa_id := NULL;
74768 l_adr_flexfield_segment_code := NULL;
74769 l_adr_flex_value_set_id := NULL;
74770 l_adr_value_type_code := NULL;
74771 l_adr_value_combination_id := NULL;
74772 l_adr_value_segment_code := NULL;
74773
74774 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
74775 l_bflow_class_code := ''; -- 4219869 Business Flow
74776 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
74777 l_budgetary_control_flag := 'N';
74778
74779 l_bflow_applied_to_amt_idx := NULL; -- 5132302
74780 l_bflow_applied_to_amt := NULL; -- 5132302
74781 l_entered_amt_idx := NULL; -- 4262811
74782 l_accted_amt_idx := NULL; -- 4262811
74783 l_acc_rev_flag := NULL; -- 4262811
74784 l_accrual_line_num := NULL; -- 4262811
74785 l_tmp_amt := NULL; -- 4262811
74786 --
74787
74788 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74789 l_balance_type_code <> 'B' THEN
74790 IF NVL(p_source_38,'
74791 ') <> 'CLEAR_CLEAR' AND
74792 NVL(p_source_20,'
74793 ') = 'NONREC_TAX' AND
74794 NVL(p_source_100,'
74795 ') = 'Y' AND
74796 (NVL(p_source_39,'
74797 ') = 'CASH' OR
74798 NVL(p_source_39,'
74799 ') = 'DISCOUNT') AND
74800 NVL(p_source_60,'
74801 ') = 'R'
74802 THEN
74803
74804 --
74805 XLA_AE_LINES_PKG.SetNewLine;
74806
74807 p_balance_type_code := l_balance_type_code;
74808 -- set the flag so later we will know whether the gain loss line needs to be created
74809
74810 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74811 p_actual_flag :='A';
74812 END IF;
74813
74814 --
74815 -- bulk performance
74816 --
74817 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74818 p_header_num => 0); -- 4262811
74819 --
74820 -- set accounting line options
74821 --
74822 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74823 p_natural_side_code => 'D'
74824 , p_gain_or_loss_flag => 'N'
74825 , p_gl_transfer_mode_code => 'S'
74826 , p_acct_entry_type_code => 'A'
74827 , p_switch_side_flag => 'Y'
74828 , p_merge_duplicate_code => 'A'
74829 );
74830 --
74831 l_acc_rev_natural_side_code := 'C'; -- 4262811
74832 --
74833 --
74834 -- set accounting line type info
74835 --
74836 xla_ae_lines_pkg.SetAcctLineType
74837 (p_component_type => l_component_type
74838 ,p_event_type_code => l_event_type_code
74839 ,p_line_definition_owner_code => l_line_definition_owner_code
74840 ,p_line_definition_code => l_line_definition_code
74841 ,p_accounting_line_code => l_component_code
74842 ,p_accounting_line_type_code => l_component_type_code
74843 ,p_accounting_line_appl_id => l_component_appl_id
74844 ,p_amb_context_code => l_amb_context_code
74845 ,p_entity_code => l_entity_code
74846 ,p_event_class_code => l_event_class_code);
74847 --
74848 -- set accounting class
74849 --
74850 xla_ae_lines_pkg.SetAcctClass(
74851 p_accounting_class_code => 'NRTAX'
74852 , p_ae_header_id => l_ae_header_id
74853 );
74854
74855 --
74856 -- set rounding class
74857 --
74858 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74859 'NRTAX';
74860
74861 --
74862 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74863 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74864 --
74865 -- bulk performance
74866 --
74867 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74868
74869 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74870 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74871
74872 -- 4955764
74873 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74874 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74875
74876 -- 4458381 Public Sector Enh
74877
74878 --
74879 -- set accounting attributes for the line type
74880 --
74881 l_entered_amt_idx := 9;
74882 l_accted_amt_idx := 14;
74883 l_bflow_applied_to_amt_idx := NULL; -- 5132302
74884 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74885 l_rec_acct_attrs.array_char_value(1) := p_source_40;
74886 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
74887 l_rec_acct_attrs.array_num_value(2) := p_source_42;
74891 l_rec_acct_attrs.array_char_value(4) := p_source_63;
74888 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74889 l_rec_acct_attrs.array_char_value(3) := p_source_62;
74890 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
74892 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
74893 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
74894 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74895 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
74896 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
74897 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
74898 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
74899 l_rec_acct_attrs.array_char_value(8) := p_source_48;
74900 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
74901 l_rec_acct_attrs.array_num_value(9) := p_source_41;
74902 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
74903 l_rec_acct_attrs.array_char_value(10) := p_source_49;
74904 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
74905 l_rec_acct_attrs.array_date_value(11) := p_source_50;
74906 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
74907 l_rec_acct_attrs.array_num_value(12) := p_source_51;
74908 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
74909 l_rec_acct_attrs.array_char_value(13) := p_source_52;
74910 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
74911 l_rec_acct_attrs.array_num_value(14) := p_source_9;
74912 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
74913 l_rec_acct_attrs.array_char_value(15) := p_source_53;
74914 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
74915 l_rec_acct_attrs.array_num_value(16) := p_source_54;
74916 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
74917 l_rec_acct_attrs.array_num_value(17) := p_source_55;
74918 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
74919 l_rec_acct_attrs.array_char_value(18) := p_source_56;
74920 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
74921 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
74922 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
74923 l_rec_acct_attrs.array_char_value(20) := p_source_48;
74924 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
74925 l_rec_acct_attrs.array_num_value(21) := p_source_58;
74926 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
74927 l_rec_acct_attrs.array_num_value(22) := p_source_66;
74928 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
74929 l_rec_acct_attrs.array_num_value(23) := p_source_59;
74930
74931 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74932 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74933
74934 ---------------------------------------------------------------------------------------------------------------
74935 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74936 ---------------------------------------------------------------------------------------------------------------
74937 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74938
74939 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74940 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74941
74942 IF xla_accounting_cache_pkg.GetValueChar
74943 (p_source_code => 'LEDGER_CATEGORY_CODE'
74944 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74945 AND l_bflow_method_code = 'PRIOR_ENTRY'
74946 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74947 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74948 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74949 )
74950 THEN
74951 xla_ae_lines_pkg.BflowUpgEntry
74952 (p_business_method_code => l_bflow_method_code
74953 ,p_business_class_code => l_bflow_class_code
74954 ,p_balance_type => l_balance_type_code);
74955 ELSE
74956 NULL;
74957 -- No business flow processing for business flow method of NONE.
74958 END IF;
74959
74960 --
74961 -- call analytical criteria
74962 --
74963
74964 --
74965 -- call description
74966 --
74967 -- No description or it is inherited.
74968 --
74969 -- call ADRs
74970 -- Bug 4922099
74971 --
74972 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74973 (NVL(l_actual_upg_option, 'N') = 'O') OR
74974 (NVL(l_enc_upg_option, 'N') = 'O')
74975 )
74976 THEN
74977 NULL;
74978 --
74979 --
74980
74981 l_ccid := AcctDerRule_26(
74982 p_application_id => p_application_id
74983 , p_ae_header_id => l_ae_header_id
74984 , p_source_17 => p_source_17
74985 , x_transaction_coa_id => l_adr_transaction_coa_id
74986 , x_accounting_coa_id => l_adr_accounting_coa_id
74987 , x_value_type_code => l_adr_value_type_code
74988 , p_side => 'NA'
74989 );
74990
74991 xla_ae_lines_pkg.set_ccid(
74995 , p_accounting_coa_id => l_adr_accounting_coa_id
74992 p_code_combination_id => l_ccid
74993 , p_value_type_code => l_adr_value_type_code
74994 , p_transaction_coa_id => l_adr_transaction_coa_id
74996 , p_adr_code => 'AP_INVOICE_DIST'
74997 , p_adr_type_code => 'S'
74998 , p_component_type => l_component_type
74999 , p_component_code => l_component_code
75000 , p_component_type_code => l_component_type_code
75001 , p_component_appl_id => l_component_appl_id
75002 , p_amb_context_code => l_amb_context_code
75003 , p_side => 'NA'
75004 );
75005
75006
75007 --
75008 --
75009 END IF;
75010 --
75011 -- Bug 4922099
75012 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75013 (NVL(l_enc_upg_option, 'N') = 'O')
75014 ) AND
75015 (l_bflow_method_code = 'PRIOR_ENTRY')
75016 )
75017 THEN
75018 IF
75019 --
75020 1 = 2
75021 --
75022 THEN
75023 xla_accounting_err_pkg.build_message
75024 (p_appli_s_name => 'XLA'
75025 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75026 ,p_token_1 => 'LINE_NUMBER'
75027 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
75028 ,p_token_2 => 'LINE_TYPE_NAME'
75029 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
75030 l_component_type
75031 ,l_component_code
75032 ,l_component_type_code
75033 ,l_component_appl_id
75034 ,l_amb_context_code
75035 ,l_entity_code
75036 ,l_event_class_code
75037 )
75038 ,p_token_3 => 'OWNER'
75039 ,p_value_3 => xla_lookups_pkg.get_meaning(
75040 p_lookup_type => 'XLA_OWNER_TYPE'
75041 ,p_lookup_code => l_component_type_code
75042 )
75043 ,p_token_4 => 'PRODUCT_NAME'
75044 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75045 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75046 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75047 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75048 ,p_ae_header_id => NULL
75049 );
75050
75051 IF (C_LEVEL_ERROR>= g_log_level) THEN
75052 trace
75053 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75054 ,p_level => C_LEVEL_ERROR
75055 ,p_module => l_log_module);
75056 END IF;
75057 END IF;
75058 END IF;
75059 --
75060 --
75061 ------------------------------------------------------------------------------------------------
75062 -- 4219869 Business Flow
75063 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75064 -- Prior Entry. Currently, the following code is always generated.
75065 ------------------------------------------------------------------------------------------------
75066 XLA_AE_LINES_PKG.ValidateCurrentLine;
75067
75068 ------------------------------------------------------------------------------------
75069 -- 4219869 Business Flow
75070 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75071 ------------------------------------------------------------------------------------
75072 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75073
75074 ----------------------------------------------------------------------------------
75075 -- 4219869 Business Flow
75076 -- Update journal entry status -- Need to generate this within IF <condition>
75077 ----------------------------------------------------------------------------------
75078 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75079 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75080 ,p_balance_type_code => l_balance_type_code
75081 );
75082
75083 -------------------------------------------------------------------------------------------
75084 -- 4262811 - Generate the Accrual Reversal lines
75085 -------------------------------------------------------------------------------------------
75086 BEGIN
75090 l_acc_rev_flag := 'N';
75087 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75088 (g_array_event(p_event_id).array_value_num('header_index'));
75089 IF l_acc_rev_flag IS NULL THEN
75091 END IF;
75092 EXCEPTION
75093 WHEN OTHERS THEN
75094 l_acc_rev_flag := 'N';
75095 END;
75096 --
75097 IF (l_acc_rev_flag = 'Y') THEN
75098
75099 -- 4645092 ------------------------------------------------------------------------------
75100 -- To allow MPA report to determine if it should generate report process
75101 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75102 ------------------------------------------------------------------------------------------
75103
75104 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75105 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75106 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
75107 -- call ADRs
75108 -- Bug 4922099
75109 --
75110 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75111 (NVL(l_actual_upg_option, 'N') = 'O') OR
75112 (NVL(l_enc_upg_option, 'N') = 'O')
75113 )
75114 THEN
75115 NULL;
75116 --
75117 --
75118
75119 l_ccid := AcctDerRule_26(
75120 p_application_id => p_application_id
75121 , p_ae_header_id => l_ae_header_id
75122 , p_source_17 => p_source_17
75123 , x_transaction_coa_id => l_adr_transaction_coa_id
75124 , x_accounting_coa_id => l_adr_accounting_coa_id
75125 , x_value_type_code => l_adr_value_type_code
75126 , p_side => 'NA'
75127 );
75128
75129 xla_ae_lines_pkg.set_ccid(
75130 p_code_combination_id => l_ccid
75131 , p_value_type_code => l_adr_value_type_code
75132 , p_transaction_coa_id => l_adr_transaction_coa_id
75133 , p_accounting_coa_id => l_adr_accounting_coa_id
75134 , p_adr_code => 'AP_INVOICE_DIST'
75135 , p_adr_type_code => 'S'
75136 , p_component_type => l_component_type
75137 , p_component_code => l_component_code
75138 , p_component_type_code => l_component_type_code
75139 , p_component_appl_id => l_component_appl_id
75140 , p_amb_context_code => l_amb_context_code
75141 , p_side => 'NA'
75142 );
75143
75144
75145 --
75146 --
75147 END IF;
75148
75149 --
75150 -- Update the line information that should be overwritten
75151 --
75152 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75153 p_header_num => 1);
75154 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
75155
75156 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75157
75158 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
75159 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75160 END IF;
75161
75162 --
75163 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75164 --
75165 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75166 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
75167 ELSE
75168 ---------------------------------------------------------------------------------------------------
75169 -- 4262811a Switch Sign
75170 ---------------------------------------------------------------------------------------------------
75171 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
75172 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75173 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75174 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75175 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75176 -- 5132302
75177 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75178 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75179
75180 END IF;
75181
75182 -- 4955764
75183 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75184 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75185
75186
75187 XLA_AE_LINES_PKG.ValidateCurrentLine;
75188 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75189
75190 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75191 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75192 ,p_balance_type_code => l_balance_type_code);
75193
75194 END IF;
75195
75196 -----------------------------------------------------------------------------------------
75200
75197 -- 4262811 Multiperiod Accounting
75198 -----------------------------------------------------------------------------------------
75199 -- No MPA option is assigned.
75201
75202 END IF;
75203 END IF;
75204 --
75205
75206 --
75207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75208 trace
75209 (p_msg => 'END of AcctLineType_138'
75210 ,p_level => C_LEVEL_PROCEDURE
75211 ,p_module => l_log_module);
75212 END IF;
75213 --
75214 EXCEPTION
75215 WHEN xla_exceptions_pkg.application_exception THEN
75216 RAISE;
75217 WHEN OTHERS THEN
75218 xla_exceptions_pkg.raise_message
75219 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_138');
75220 END AcctLineType_138;
75221 --
75222
75223 ---------------------------------------
75224 --
75225 -- PRIVATE FUNCTION
75226 -- AcctLineType_139
75227 --
75228 ---------------------------------------
75229 PROCEDURE AcctLineType_139 (
75230 p_application_id IN NUMBER
75231 ,p_event_id IN NUMBER
75232 ,p_calculate_acctd_flag IN VARCHAR2
75233 ,p_calculate_g_l_flag IN VARCHAR2
75234 ,p_actual_flag IN OUT VARCHAR2
75235 ,p_balance_type_code OUT VARCHAR2
75236 ,p_gain_or_loss_ref OUT VARCHAR2
75237
75238 --Payment Distribution (Cleared Rate) Ledger Amount
75239 , p_source_10 IN NUMBER
75240 --Invoice Distribution Account
75241 , p_source_17 IN NUMBER
75242 --Invoice Distribution Type
75243 , p_source_20 IN VARCHAR2
75244 , p_source_20_meaning IN VARCHAR2
75245 --When to Account for Payment Option
75246 , p_source_38 IN VARCHAR2
75247 --Payment Distribution Type
75248 , p_source_39 IN VARCHAR2
75249 , p_source_39_meaning IN VARCHAR2
75250 --Accounting Reversal Indicator
75251 , p_source_40 IN VARCHAR2
75252 --Payment Distribution Amount
75253 , p_source_41 IN NUMBER
75254 --Business Flow Accounts Payable Application Identifier
75255 , p_source_42 IN NUMBER
75256 --Business Flow Payment Distribution Type
75257 , p_source_43 IN VARCHAR2
75258 --Business Flow Payment Entity Code
75259 , p_source_44 IN VARCHAR2
75260 --Business Flow Payment Distribution Identifier
75261 , p_source_45 IN NUMBER
75262 --Business Flow Payment Identifier
75263 , p_source_46 IN NUMBER
75264 --Payment Distribution Identifier
75265 , p_source_47 IN NUMBER
75266 --Distribution Link Type
75267 , p_source_48 IN VARCHAR2
75268 --Payment Currency Code
75269 , p_source_49 IN VARCHAR2
75270 --Override Accounted Amount Indicator
75271 , p_source_53 IN VARCHAR2
75272 , p_source_53_meaning IN VARCHAR2
75273 --Payment Supplier Identifier
75274 , p_source_54 IN NUMBER
75275 --Payment Supplier Site Identifier
75276 , p_source_55 IN NUMBER
75277 --Third Party Type
75278 , p_source_56 IN VARCHAR2
75279 --Payment Distribution Reversed Identifier
75280 , p_source_57 IN NUMBER
75281 --Invoice Distribution Tax Line Identifier
75282 , p_source_58 IN NUMBER
75283 --Invoice Distribution Summary Tax Line Identifier
75284 , p_source_59 IN NUMBER
75285 --Accrue on Receipt Option
75286 , p_source_100 IN VARCHAR2
75287 , p_source_100_meaning IN VARCHAR2
75288 --Cleared Exchange Date
75289 , p_source_107 IN DATE
75290 --Cleared Exchange Rate
75291 , p_source_108 IN NUMBER
75292 --Cleared Exchange Rate Type
75293 , p_source_109 IN VARCHAR2
75294 )
75295 IS
75296
75297 l_component_type VARCHAR2(80);
75298 l_component_code VARCHAR2(30);
75299 l_component_type_code VARCHAR2(1);
75300 l_component_appl_id INTEGER;
75301 l_amb_context_code VARCHAR2(30);
75302 l_entity_code VARCHAR2(30);
75303 l_event_class_code VARCHAR2(30);
75304 l_ae_header_id NUMBER;
75305 l_event_type_code VARCHAR2(30);
75306 l_line_definition_code VARCHAR2(30);
75307 l_line_definition_owner_code VARCHAR2(1);
75308 --
75309 -- adr variables
75310 l_segment VARCHAR2(30);
75311 l_ccid NUMBER;
75312 l_adr_transaction_coa_id NUMBER;
75313 l_adr_accounting_coa_id NUMBER;
75314 l_adr_flexfield_segment_code VARCHAR2(30);
75315 l_adr_flex_value_set_id NUMBER;
75316 l_adr_value_type_code VARCHAR2(30);
75317 l_adr_value_combination_id NUMBER;
75318 l_adr_value_segment_code VARCHAR2(30);
75319
75320 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
75321 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
75322 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
75323 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
75324
75325 -- 4262811 Variables ------------------------------------------------------------------------------------------
75326 l_entered_amt_idx NUMBER;
75327 l_accted_amt_idx NUMBER;
75328 l_acc_rev_flag VARCHAR2(1);
75329 l_accrual_line_num NUMBER;
75330 l_tmp_amt NUMBER;
75331 l_acc_rev_natural_side_code VARCHAR2(1);
75332
75333 l_num_entries NUMBER;
75337 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
75334 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
75335 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
75336 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
75338 l_recog_line_1 NUMBER;
75339 l_recog_line_2 NUMBER;
75340
75341 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
75342 l_bflow_applied_to_amt NUMBER; -- 5132302
75343 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
75344
75345 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75346
75347 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
75348 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
75349
75350 ---------------------------------------------------------------------------------------------------------------
75351
75352
75353 --
75354 -- bulk performance
75355 --
75356 l_balance_type_code VARCHAR2(1);
75357 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
75358 l_log_module VARCHAR2(240);
75359
75360 --
75361 -- Upgrade strategy
75362 --
75363 l_actual_upg_option VARCHAR2(1);
75364 l_enc_upg_option VARCHAR2(1);
75365
75366 --
75367 BEGIN
75368 --
75369 IF g_log_enabled THEN
75370 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
75371 END IF;
75372 --
75373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75374
75375 trace
75376 (p_msg => 'BEGIN of AcctLineType_139'
75377 ,p_level => C_LEVEL_PROCEDURE
75378 ,p_module => l_log_module);
75379
75380 END IF;
75381 --
75382 l_component_type := 'AMB_JLT';
75383 l_component_code := 'AP_NON_RECOV_TAX_CLEAR';
75384 l_component_type_code := 'S';
75385 l_component_appl_id := 200;
75386 l_amb_context_code := 'DEFAULT';
75387 l_entity_code := 'AP_PAYMENTS';
75388 l_event_class_code := 'RECONCILED PAYMENTS';
75389 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
75390 l_line_definition_owner_code := 'S';
75391 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
75392 --
75393 l_balance_type_code := 'A';
75394 l_segment := NULL;
75395 l_ccid := NULL;
75396 l_adr_transaction_coa_id := NULL;
75397 l_adr_accounting_coa_id := NULL;
75398 l_adr_flexfield_segment_code := NULL;
75399 l_adr_flex_value_set_id := NULL;
75400 l_adr_value_type_code := NULL;
75401 l_adr_value_combination_id := NULL;
75402 l_adr_value_segment_code := NULL;
75403
75404 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
75405 l_bflow_class_code := ''; -- 4219869 Business Flow
75406 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
75407 l_budgetary_control_flag := 'N';
75408
75409 l_bflow_applied_to_amt_idx := NULL; -- 5132302
75410 l_bflow_applied_to_amt := NULL; -- 5132302
75411 l_entered_amt_idx := NULL; -- 4262811
75412 l_accted_amt_idx := NULL; -- 4262811
75413 l_acc_rev_flag := NULL; -- 4262811
75414 l_accrual_line_num := NULL; -- 4262811
75415 l_tmp_amt := NULL; -- 4262811
75416 --
75417
75418 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75419 l_balance_type_code <> 'B' THEN
75420 IF NVL(p_source_38,'
75421 ') = 'CLEAR_CLEAR' AND
75422 (NVL(p_source_20,'
75423 ') = 'NONREC_TAX' OR
75424 NVL(p_source_20,'
75425 ') = 'TERV' OR
75426 NVL(p_source_20,'
75427 ') = 'TIPV' OR
75428 NVL(p_source_20,'
75429 ') = 'TRV') AND
75430 NVL(p_source_100,'
75431 ') <> 'Y' AND
75432 (NVL(p_source_39,'
75433 ') = 'CASH' OR
75434 NVL(p_source_39,'
75435 ') = 'AWT' OR
75436 NVL(p_source_39,'
75437 ') = 'DISCOUNT')
75438 THEN
75439
75440 --
75441 XLA_AE_LINES_PKG.SetNewLine;
75442
75443 p_balance_type_code := l_balance_type_code;
75444 -- set the flag so later we will know whether the gain loss line needs to be created
75445
75446 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75447 p_actual_flag :='A';
75448 END IF;
75449
75450 --
75451 -- bulk performance
75452 --
75453 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75454 p_header_num => 0); -- 4262811
75455 --
75456 -- set accounting line options
75457 --
75458 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75459 p_natural_side_code => 'D'
75460 , p_gain_or_loss_flag => 'N'
75461 , p_gl_transfer_mode_code => 'S'
75462 , p_acct_entry_type_code => 'A'
75463 , p_switch_side_flag => 'Y'
75464 , p_merge_duplicate_code => 'A'
75465 );
75466 --
75467 l_acc_rev_natural_side_code := 'C'; -- 4262811
75468 --
75469 --
75470 -- set accounting line type info
75471 --
75472 xla_ae_lines_pkg.SetAcctLineType
75473 (p_component_type => l_component_type
75477 ,p_accounting_line_code => l_component_code
75474 ,p_event_type_code => l_event_type_code
75475 ,p_line_definition_owner_code => l_line_definition_owner_code
75476 ,p_line_definition_code => l_line_definition_code
75478 ,p_accounting_line_type_code => l_component_type_code
75479 ,p_accounting_line_appl_id => l_component_appl_id
75480 ,p_amb_context_code => l_amb_context_code
75481 ,p_entity_code => l_entity_code
75482 ,p_event_class_code => l_event_class_code);
75483 --
75484 -- set accounting class
75485 --
75486 xla_ae_lines_pkg.SetAcctClass(
75487 p_accounting_class_code => 'NRTAX'
75488 , p_ae_header_id => l_ae_header_id
75489 );
75490
75491 --
75492 -- set rounding class
75493 --
75494 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75495 'NRTAX';
75496
75497 --
75498 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75499 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75500 --
75501 -- bulk performance
75502 --
75503 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75504
75505 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75506 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75507
75508 -- 4955764
75509 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75510 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75511
75512 -- 4458381 Public Sector Enh
75513
75514 --
75515 -- set accounting attributes for the line type
75516 --
75517 l_entered_amt_idx := 10;
75518 l_accted_amt_idx := 15;
75519 l_bflow_applied_to_amt_idx := 2; -- 5132302
75520 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75521 l_rec_acct_attrs.array_char_value(1) := p_source_40;
75522 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
75523 l_rec_acct_attrs.array_num_value(2) := p_source_41;
75524 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
75525 l_rec_acct_attrs.array_num_value(3) := p_source_42;
75526 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75527 l_rec_acct_attrs.array_char_value(4) := p_source_43;
75528 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
75529 l_rec_acct_attrs.array_char_value(5) := p_source_44;
75530 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
75531 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
75532 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75533 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
75534 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
75535 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
75536 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
75537 l_rec_acct_attrs.array_char_value(9) := p_source_48;
75538 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
75539 l_rec_acct_attrs.array_num_value(10) := p_source_41;
75540 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
75541 l_rec_acct_attrs.array_char_value(11) := p_source_49;
75542 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
75543 l_rec_acct_attrs.array_date_value(12) := p_source_107;
75544 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
75545 l_rec_acct_attrs.array_num_value(13) := p_source_108;
75546 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
75547 l_rec_acct_attrs.array_char_value(14) := p_source_109;
75548 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
75549 l_rec_acct_attrs.array_num_value(15) := p_source_10;
75550 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
75551 l_rec_acct_attrs.array_char_value(16) := p_source_53;
75552 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
75553 l_rec_acct_attrs.array_num_value(17) := p_source_54;
75554 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
75555 l_rec_acct_attrs.array_num_value(18) := p_source_55;
75556 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
75557 l_rec_acct_attrs.array_char_value(19) := p_source_56;
75558 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
75559 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
75560 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
75561 l_rec_acct_attrs.array_char_value(21) := p_source_48;
75562 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
75563 l_rec_acct_attrs.array_num_value(22) := p_source_58;
75564 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
75565 l_rec_acct_attrs.array_num_value(23) := p_source_58;
75566 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
75567 l_rec_acct_attrs.array_num_value(24) := p_source_59;
75568
75569 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75570 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75571
75572 ---------------------------------------------------------------------------------------------------------------
75576
75573 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75574 ---------------------------------------------------------------------------------------------------------------
75575 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75577 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75578 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75579
75580 IF xla_accounting_cache_pkg.GetValueChar
75581 (p_source_code => 'LEDGER_CATEGORY_CODE'
75582 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75583 AND l_bflow_method_code = 'PRIOR_ENTRY'
75584 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75585 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75586 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75587 )
75588 THEN
75589 xla_ae_lines_pkg.BflowUpgEntry
75590 (p_business_method_code => l_bflow_method_code
75591 ,p_business_class_code => l_bflow_class_code
75592 ,p_balance_type => l_balance_type_code);
75593 ELSE
75594 NULL;
75595 -- No business flow processing for business flow method of NONE.
75596 END IF;
75597
75598 --
75599 -- call analytical criteria
75600 --
75601
75602 --
75603 -- call description
75604 --
75605 -- No description or it is inherited.
75606 --
75607 -- call ADRs
75608 -- Bug 4922099
75609 --
75610 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75611 (NVL(l_actual_upg_option, 'N') = 'O') OR
75612 (NVL(l_enc_upg_option, 'N') = 'O')
75613 )
75614 THEN
75615 NULL;
75616 --
75617 --
75618
75619 l_ccid := AcctDerRule_26(
75620 p_application_id => p_application_id
75621 , p_ae_header_id => l_ae_header_id
75622 , p_source_17 => p_source_17
75623 , x_transaction_coa_id => l_adr_transaction_coa_id
75624 , x_accounting_coa_id => l_adr_accounting_coa_id
75625 , x_value_type_code => l_adr_value_type_code
75626 , p_side => 'NA'
75627 );
75628
75629 xla_ae_lines_pkg.set_ccid(
75630 p_code_combination_id => l_ccid
75631 , p_value_type_code => l_adr_value_type_code
75632 , p_transaction_coa_id => l_adr_transaction_coa_id
75633 , p_accounting_coa_id => l_adr_accounting_coa_id
75634 , p_adr_code => 'AP_INVOICE_DIST'
75635 , p_adr_type_code => 'S'
75636 , p_component_type => l_component_type
75637 , p_component_code => l_component_code
75638 , p_component_type_code => l_component_type_code
75639 , p_component_appl_id => l_component_appl_id
75640 , p_amb_context_code => l_amb_context_code
75641 , p_side => 'NA'
75642 );
75643
75644
75645 --
75646 --
75647 END IF;
75648 --
75649 -- Bug 4922099
75650 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75651 (NVL(l_enc_upg_option, 'N') = 'O')
75652 ) AND
75653 (l_bflow_method_code = 'PRIOR_ENTRY')
75654 )
75655 THEN
75656 IF
75657 --
75658 1 = 2
75659 --
75660 THEN
75661 xla_accounting_err_pkg.build_message
75662 (p_appli_s_name => 'XLA'
75663 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75664 ,p_token_1 => 'LINE_NUMBER'
75665 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
75666 ,p_token_2 => 'LINE_TYPE_NAME'
75667 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
75668 l_component_type
75669 ,l_component_code
75670 ,l_component_type_code
75671 ,l_component_appl_id
75672 ,l_amb_context_code
75673 ,l_entity_code
75674 ,l_event_class_code
75675 )
75676 ,p_token_3 => 'OWNER'
75677 ,p_value_3 => xla_lookups_pkg.get_meaning(
75678 p_lookup_type => 'XLA_OWNER_TYPE'
75679 ,p_lookup_code => l_component_type_code
75680 )
75681 ,p_token_4 => 'PRODUCT_NAME'
75685 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75682 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75683 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75684 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75686 ,p_ae_header_id => NULL
75687 );
75688
75689 IF (C_LEVEL_ERROR>= g_log_level) THEN
75690 trace
75691 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75692 ,p_level => C_LEVEL_ERROR
75693 ,p_module => l_log_module);
75694 END IF;
75695 END IF;
75696 END IF;
75697 --
75698 --
75699 ------------------------------------------------------------------------------------------------
75700 -- 4219869 Business Flow
75701 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75702 -- Prior Entry. Currently, the following code is always generated.
75703 ------------------------------------------------------------------------------------------------
75704 XLA_AE_LINES_PKG.ValidateCurrentLine;
75705
75706 ------------------------------------------------------------------------------------
75707 -- 4219869 Business Flow
75708 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75709 ------------------------------------------------------------------------------------
75710 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75711
75712 ----------------------------------------------------------------------------------
75713 -- 4219869 Business Flow
75714 -- Update journal entry status -- Need to generate this within IF <condition>
75715 ----------------------------------------------------------------------------------
75716 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75717 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75718 ,p_balance_type_code => l_balance_type_code
75719 );
75720
75721 -------------------------------------------------------------------------------------------
75722 -- 4262811 - Generate the Accrual Reversal lines
75723 -------------------------------------------------------------------------------------------
75724 BEGIN
75725 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75726 (g_array_event(p_event_id).array_value_num('header_index'));
75727 IF l_acc_rev_flag IS NULL THEN
75728 l_acc_rev_flag := 'N';
75729 END IF;
75730 EXCEPTION
75731 WHEN OTHERS THEN
75732 l_acc_rev_flag := 'N';
75733 END;
75734 --
75735 IF (l_acc_rev_flag = 'Y') THEN
75736
75737 -- 4645092 ------------------------------------------------------------------------------
75738 -- To allow MPA report to determine if it should generate report process
75739 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75740 ------------------------------------------------------------------------------------------
75741
75742 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75743 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75744 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
75745 -- call ADRs
75746 -- Bug 4922099
75747 --
75748 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75749 (NVL(l_actual_upg_option, 'N') = 'O') OR
75750 (NVL(l_enc_upg_option, 'N') = 'O')
75751 )
75752 THEN
75753 NULL;
75754 --
75755 --
75756
75757 l_ccid := AcctDerRule_26(
75758 p_application_id => p_application_id
75759 , p_ae_header_id => l_ae_header_id
75760 , p_source_17 => p_source_17
75761 , x_transaction_coa_id => l_adr_transaction_coa_id
75762 , x_accounting_coa_id => l_adr_accounting_coa_id
75763 , x_value_type_code => l_adr_value_type_code
75764 , p_side => 'NA'
75765 );
75766
75767 xla_ae_lines_pkg.set_ccid(
75768 p_code_combination_id => l_ccid
75769 , p_value_type_code => l_adr_value_type_code
75770 , p_transaction_coa_id => l_adr_transaction_coa_id
75771 , p_accounting_coa_id => l_adr_accounting_coa_id
75772 , p_adr_code => 'AP_INVOICE_DIST'
75773 , p_adr_type_code => 'S'
75774 , p_component_type => l_component_type
75775 , p_component_code => l_component_code
75776 , p_component_type_code => l_component_type_code
75777 , p_component_appl_id => l_component_appl_id
75778 , p_amb_context_code => l_amb_context_code
75779 , p_side => 'NA'
75780 );
75781
75782
75783 --
75784 --
75785 END IF;
75786
75787 --
75788 -- Update the line information that should be overwritten
75789 --
75790 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75791 p_header_num => 1);
75795
75792 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
75793
75794 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75796 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
75797 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75798 END IF;
75799
75800 --
75801 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75802 --
75803 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75804 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
75805 ELSE
75806 ---------------------------------------------------------------------------------------------------
75807 -- 4262811a Switch Sign
75808 ---------------------------------------------------------------------------------------------------
75809 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
75810 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75811 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75812 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75813 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75814 -- 5132302
75815 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75816 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75817
75818 END IF;
75819
75820 -- 4955764
75821 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75822 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75823
75824
75825 XLA_AE_LINES_PKG.ValidateCurrentLine;
75826 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75827
75828 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75829 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75830 ,p_balance_type_code => l_balance_type_code);
75831
75832 END IF;
75833
75834 -----------------------------------------------------------------------------------------
75835 -- 4262811 Multiperiod Accounting
75836 -----------------------------------------------------------------------------------------
75837 -- No MPA option is assigned.
75838
75839
75840 END IF;
75841 END IF;
75842 --
75843
75844 --
75845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75846 trace
75847 (p_msg => 'END of AcctLineType_139'
75848 ,p_level => C_LEVEL_PROCEDURE
75849 ,p_module => l_log_module);
75850 END IF;
75851 --
75852 EXCEPTION
75853 WHEN xla_exceptions_pkg.application_exception THEN
75854 RAISE;
75855 WHEN OTHERS THEN
75856 xla_exceptions_pkg.raise_message
75857 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_139');
75858 END AcctLineType_139;
75859 --
75860
75861 ---------------------------------------
75862 --
75863 -- PRIVATE FUNCTION
75864 -- AcctLineType_140
75865 --
75866 ---------------------------------------
75867 PROCEDURE AcctLineType_140 (
75868 p_application_id IN NUMBER
75869 ,p_event_id IN NUMBER
75870 ,p_calculate_acctd_flag IN VARCHAR2
75871 ,p_calculate_g_l_flag IN VARCHAR2
75872 ,p_actual_flag IN OUT VARCHAR2
75873 ,p_balance_type_code OUT VARCHAR2
75874 ,p_gain_or_loss_ref OUT VARCHAR2
75875
75876 --Payment Distribution (Payment Rate) Ledger Amount
75877 , p_source_9 IN NUMBER
75878 --Invoice Distribution Type
75879 , p_source_20 IN VARCHAR2
75880 , p_source_20_meaning IN VARCHAR2
75881 --When to Account for Payment Option
75882 , p_source_38 IN VARCHAR2
75883 --Payment Distribution Type
75884 , p_source_39 IN VARCHAR2
75885 , p_source_39_meaning IN VARCHAR2
75886 --Accounting Reversal Indicator
75887 , p_source_40 IN VARCHAR2
75888 --Payment Distribution Amount
75889 , p_source_41 IN NUMBER
75890 --Business Flow Accounts Payable Application Identifier
75891 , p_source_42 IN NUMBER
75892 --Payment Distribution Identifier
75893 , p_source_47 IN NUMBER
75894 --Distribution Link Type
75895 , p_source_48 IN VARCHAR2
75896 --Payment Currency Code
75897 , p_source_49 IN VARCHAR2
75898 --Override Accounted Amount Indicator
75899 , p_source_53 IN VARCHAR2
75900 , p_source_53_meaning IN VARCHAR2
75901 --Third Party Type
75902 , p_source_56 IN VARCHAR2
75903 --Payment Distribution Reversed Identifier
75904 , p_source_57 IN NUMBER
75905 --Invoice Distribution Tax Line Identifier
75906 , p_source_58 IN NUMBER
75907 --Invoice Distribution Summary Tax Line Identifier
75908 , p_source_59 IN NUMBER
75909 --Business Flow Invoice Distribution Type
75910 , p_source_62 IN VARCHAR2
75911 --Business Flow Invoice Entity Code
75915 --Business Flow Invoice Identifier
75912 , p_source_63 IN VARCHAR2
75913 --Business Flow Invoice Distribution Identifier
75914 , p_source_64 IN NUMBER
75916 , p_source_65 IN NUMBER
75917 --Purchasing Encumbrance Option
75918 , p_source_102 IN VARCHAR2
75919 , p_source_102_meaning IN VARCHAR2
75920 --Invoice Encumbered Option
75921 , p_source_104 IN VARCHAR2
75922 , p_source_104_meaning IN VARCHAR2
75923 )
75924 IS
75925
75926 l_component_type VARCHAR2(80);
75927 l_component_code VARCHAR2(30);
75928 l_component_type_code VARCHAR2(1);
75929 l_component_appl_id INTEGER;
75930 l_amb_context_code VARCHAR2(30);
75931 l_entity_code VARCHAR2(30);
75932 l_event_class_code VARCHAR2(30);
75933 l_ae_header_id NUMBER;
75934 l_event_type_code VARCHAR2(30);
75935 l_line_definition_code VARCHAR2(30);
75936 l_line_definition_owner_code VARCHAR2(1);
75937 --
75938 -- adr variables
75939 l_segment VARCHAR2(30);
75940 l_ccid NUMBER;
75941 l_adr_transaction_coa_id NUMBER;
75942 l_adr_accounting_coa_id NUMBER;
75943 l_adr_flexfield_segment_code VARCHAR2(30);
75944 l_adr_flex_value_set_id NUMBER;
75945 l_adr_value_type_code VARCHAR2(30);
75946 l_adr_value_combination_id NUMBER;
75947 l_adr_value_segment_code VARCHAR2(30);
75948
75949 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
75950 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
75951 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
75952 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
75953
75954 -- 4262811 Variables ------------------------------------------------------------------------------------------
75955 l_entered_amt_idx NUMBER;
75956 l_accted_amt_idx NUMBER;
75957 l_acc_rev_flag VARCHAR2(1);
75958 l_accrual_line_num NUMBER;
75959 l_tmp_amt NUMBER;
75960 l_acc_rev_natural_side_code VARCHAR2(1);
75961
75962 l_num_entries NUMBER;
75963 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
75964 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
75965 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
75966 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
75967 l_recog_line_1 NUMBER;
75968 l_recog_line_2 NUMBER;
75969
75970 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
75971 l_bflow_applied_to_amt NUMBER; -- 5132302
75972 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
75973
75974 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75975
75976 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
75977 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
75978
75979 ---------------------------------------------------------------------------------------------------------------
75980
75981
75982 --
75983 -- bulk performance
75984 --
75985 l_balance_type_code VARCHAR2(1);
75986 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
75987 l_log_module VARCHAR2(240);
75988
75989 --
75990 -- Upgrade strategy
75991 --
75992 l_actual_upg_option VARCHAR2(1);
75993 l_enc_upg_option VARCHAR2(1);
75994
75995 --
75996 BEGIN
75997 --
75998 IF g_log_enabled THEN
75999 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
76000 END IF;
76001 --
76002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76003
76004 trace
76005 (p_msg => 'BEGIN of AcctLineType_140'
76006 ,p_level => C_LEVEL_PROCEDURE
76007 ,p_module => l_log_module);
76008
76009 END IF;
76010 --
76011 l_component_type := 'AMB_JLT';
76012 l_component_code := 'AP_NON_RECOV_TAX_CLR_ENC';
76013 l_component_type_code := 'S';
76014 l_component_appl_id := 200;
76015 l_amb_context_code := 'DEFAULT';
76016 l_entity_code := 'AP_PAYMENTS';
76017 l_event_class_code := 'RECONCILED PAYMENTS';
76018 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
76019 l_line_definition_owner_code := 'S';
76020 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
76021 --
76022 l_balance_type_code := 'E';
76023 l_segment := NULL;
76024 l_ccid := NULL;
76025 l_adr_transaction_coa_id := NULL;
76026 l_adr_accounting_coa_id := NULL;
76027 l_adr_flexfield_segment_code := NULL;
76028 l_adr_flex_value_set_id := NULL;
76029 l_adr_value_type_code := NULL;
76030 l_adr_value_combination_id := NULL;
76031 l_adr_value_segment_code := NULL;
76032
76033 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
76034 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
76035 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
76036 l_budgetary_control_flag := 'N';
76037
76038 l_bflow_applied_to_amt_idx := NULL; -- 5132302
76039 l_bflow_applied_to_amt := NULL; -- 5132302
76040 l_entered_amt_idx := NULL; -- 4262811
76044 l_tmp_amt := NULL; -- 4262811
76041 l_accted_amt_idx := NULL; -- 4262811
76042 l_acc_rev_flag := NULL; -- 4262811
76043 l_accrual_line_num := NULL; -- 4262811
76045 --
76046
76047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76048 l_balance_type_code <> 'B' THEN
76049 IF NVL(p_source_38,'
76050 ') = 'CLEAR_CLEAR' AND
76051 NVL(p_source_20,'
76052 ') = 'NONREC_TAX' AND
76053 (NVL(p_source_39,'
76054 ') = 'CASH' OR
76055 NVL(p_source_39,'
76056 ') = 'DISCOUNT') AND
76057 NVL(p_source_102,'
76058 ') = 'Y' AND
76059 NVL(p_source_104,'
76060 ') = 'Y'
76061 THEN
76062
76063 --
76064 XLA_AE_LINES_PKG.SetNewLine;
76065
76066 p_balance_type_code := l_balance_type_code;
76067 -- set the flag so later we will know whether the gain loss line needs to be created
76068
76069 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76070 p_actual_flag :='A';
76071 END IF;
76072
76073 --
76074 -- bulk performance
76075 --
76076 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76077 p_header_num => 0); -- 4262811
76078 --
76079 -- set accounting line options
76080 --
76081 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76082 p_natural_side_code => 'C'
76083 , p_gain_or_loss_flag => 'N'
76084 , p_gl_transfer_mode_code => 'S'
76085 , p_acct_entry_type_code => 'E'
76086 , p_switch_side_flag => 'Y'
76087 , p_merge_duplicate_code => 'A'
76088 );
76089 --
76090 l_acc_rev_natural_side_code := 'D'; -- 4262811
76091 --
76092 --
76093 -- set accounting line type info
76094 --
76095 xla_ae_lines_pkg.SetAcctLineType
76096 (p_component_type => l_component_type
76097 ,p_event_type_code => l_event_type_code
76098 ,p_line_definition_owner_code => l_line_definition_owner_code
76099 ,p_line_definition_code => l_line_definition_code
76100 ,p_accounting_line_code => l_component_code
76101 ,p_accounting_line_type_code => l_component_type_code
76102 ,p_accounting_line_appl_id => l_component_appl_id
76103 ,p_amb_context_code => l_amb_context_code
76104 ,p_entity_code => l_entity_code
76105 ,p_event_class_code => l_event_class_code);
76106 --
76107 -- set accounting class
76108 --
76109 xla_ae_lines_pkg.SetAcctClass(
76110 p_accounting_class_code => 'NRTAX'
76111 , p_ae_header_id => l_ae_header_id
76112 );
76113
76114 --
76115 -- set rounding class
76116 --
76117 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76118 'NRTAX';
76119
76120 --
76121 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76122 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76123 --
76124 -- bulk performance
76125 --
76126 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76127
76128 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76129 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76130
76131 -- 4955764
76132 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76133 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76134
76135 -- 4458381 Public Sector Enh
76136
76137 --
76138 -- set accounting attributes for the line type
76139 --
76140 l_entered_amt_idx := 10;
76141 l_accted_amt_idx := 12;
76142 l_bflow_applied_to_amt_idx := 2; -- 5132302
76143 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76144 l_rec_acct_attrs.array_char_value(1) := p_source_40;
76145 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76146 l_rec_acct_attrs.array_num_value(2) := p_source_41;
76147 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76148 l_rec_acct_attrs.array_num_value(3) := p_source_42;
76149 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76150 l_rec_acct_attrs.array_char_value(4) := p_source_62;
76151 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76152 l_rec_acct_attrs.array_char_value(5) := p_source_63;
76153 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76154 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
76155 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76156 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
76157 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76158 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
76159 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76160 l_rec_acct_attrs.array_char_value(9) := p_source_48;
76161 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76162 l_rec_acct_attrs.array_num_value(10) := p_source_41;
76166 l_rec_acct_attrs.array_num_value(12) := p_source_9;
76163 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76164 l_rec_acct_attrs.array_char_value(11) := p_source_49;
76165 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
76167 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
76168 l_rec_acct_attrs.array_char_value(13) := p_source_53;
76169 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
76170 l_rec_acct_attrs.array_char_value(14) := p_source_56;
76171 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
76172 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
76173 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
76174 l_rec_acct_attrs.array_char_value(16) := p_source_48;
76175 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
76176 l_rec_acct_attrs.array_num_value(17) := p_source_58;
76177 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
76178 l_rec_acct_attrs.array_num_value(18) := p_source_58;
76179 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
76180 l_rec_acct_attrs.array_num_value(19) := p_source_59;
76181
76182 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76183 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76184
76185 ---------------------------------------------------------------------------------------------------------------
76186 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76187 ---------------------------------------------------------------------------------------------------------------
76188 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76189
76190 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76191 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76192
76193 IF xla_accounting_cache_pkg.GetValueChar
76194 (p_source_code => 'LEDGER_CATEGORY_CODE'
76195 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76196 AND l_bflow_method_code = 'PRIOR_ENTRY'
76197 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76198 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76199 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76200 )
76201 THEN
76202 xla_ae_lines_pkg.BflowUpgEntry
76203 (p_business_method_code => l_bflow_method_code
76204 ,p_business_class_code => l_bflow_class_code
76205 ,p_balance_type => l_balance_type_code);
76206 ELSE
76207 NULL;
76208 XLA_AE_LINES_PKG.business_flow_validation(
76209 p_business_method_code => l_bflow_method_code
76210 ,p_business_class_code => l_bflow_class_code
76211 ,p_inherit_description_flag => l_inherit_desc_flag);
76212 END IF;
76213
76214 --
76215 -- call analytical criteria
76216 --
76217 -- Inherited Analytical Criteria for business flow method of Prior Entry.
76218 --
76219 -- call description
76220 --
76221 -- No description or it is inherited.
76222 --
76223 -- call ADRs
76224 -- Bug 4922099
76225 --
76226 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76227 (NVL(l_actual_upg_option, 'N') = 'O') OR
76228 (NVL(l_enc_upg_option, 'N') = 'O')
76229 )
76230 THEN
76231 NULL;
76232 --
76233 --
76234
76235 --
76236 --
76237 END IF;
76238 --
76239 -- Bug 4922099
76240 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76241 (NVL(l_enc_upg_option, 'N') = 'O')
76242 ) AND
76243 (l_bflow_method_code = 'PRIOR_ENTRY')
76244 )
76245 THEN
76246 IF
76247 --
76248 1 = 1
76249 --
76250 THEN
76251 xla_accounting_err_pkg.build_message
76252 (p_appli_s_name => 'XLA'
76253 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76254 ,p_token_1 => 'LINE_NUMBER'
76255 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
76256 ,p_token_2 => 'LINE_TYPE_NAME'
76257 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
76258 l_component_type
76259 ,l_component_code
76260 ,l_component_type_code
76261 ,l_component_appl_id
76262 ,l_amb_context_code
76263 ,l_entity_code
76264 ,l_event_class_code
76265 )
76269 ,p_lookup_code => l_component_type_code
76266 ,p_token_3 => 'OWNER'
76267 ,p_value_3 => xla_lookups_pkg.get_meaning(
76268 p_lookup_type => 'XLA_OWNER_TYPE'
76270 )
76271 ,p_token_4 => 'PRODUCT_NAME'
76272 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76273 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76274 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76275 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76276 ,p_ae_header_id => NULL
76277 );
76278
76279 IF (C_LEVEL_ERROR>= g_log_level) THEN
76280 trace
76281 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76282 ,p_level => C_LEVEL_ERROR
76283 ,p_module => l_log_module);
76284 END IF;
76285 END IF;
76286 END IF;
76287 --
76288 --
76289 ------------------------------------------------------------------------------------------------
76290 -- 4219869 Business Flow
76291 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76292 -- Prior Entry. Currently, the following code is always generated.
76293 ------------------------------------------------------------------------------------------------
76294 -- No ValidateCurrentLine for business flow method of Prior Entry
76295
76296 ------------------------------------------------------------------------------------
76297 -- 4219869 Business Flow
76298 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76299 ------------------------------------------------------------------------------------
76300 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76301
76302 ----------------------------------------------------------------------------------
76303 -- 4219869 Business Flow
76304 -- Update journal entry status -- Need to generate this within IF <condition>
76305 ----------------------------------------------------------------------------------
76306 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76307 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76308 ,p_balance_type_code => l_balance_type_code
76309 );
76310
76311 -------------------------------------------------------------------------------------------
76312 -- 4262811 - Generate the Accrual Reversal lines
76313 -------------------------------------------------------------------------------------------
76314 BEGIN
76315 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76316 (g_array_event(p_event_id).array_value_num('header_index'));
76317 IF l_acc_rev_flag IS NULL THEN
76318 l_acc_rev_flag := 'N';
76319 END IF;
76320 EXCEPTION
76321 WHEN OTHERS THEN
76322 l_acc_rev_flag := 'N';
76323 END;
76324 --
76325 IF (l_acc_rev_flag = 'Y') THEN
76326
76327 -- 4645092 ------------------------------------------------------------------------------
76328 -- To allow MPA report to determine if it should generate report process
76329 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76330 ------------------------------------------------------------------------------------------
76331
76332 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76333 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76334 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
76335 -- call ADRs
76336 -- Bug 4922099
76337 --
76338 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76339 (NVL(l_actual_upg_option, 'N') = 'O') OR
76340 (NVL(l_enc_upg_option, 'N') = 'O')
76341 )
76342 THEN
76343 NULL;
76344 --
76345 --
76346
76347 --
76348 --
76349 END IF;
76350
76351 --
76352 -- Update the line information that should be overwritten
76353 --
76354 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76355 p_header_num => 1);
76356 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
76357
76358 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76359
76360 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
76361 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76362 END IF;
76363
76364 --
76365 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76366 --
76367 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76371 -- 4262811a Switch Sign
76368 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
76369 ELSE
76370 ---------------------------------------------------------------------------------------------------
76372 ---------------------------------------------------------------------------------------------------
76373 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
76374 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76375 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76376 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76377 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76378 -- 5132302
76379 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76380 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76381
76382 END IF;
76383
76384 -- 4955764
76385 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76386 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76387
76388
76389 XLA_AE_LINES_PKG.ValidateCurrentLine;
76390 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76391
76392 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76393 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76394 ,p_balance_type_code => l_balance_type_code);
76395
76396 END IF;
76397
76398 -----------------------------------------------------------------------------------------
76399 -- 4262811 Multiperiod Accounting
76400 -----------------------------------------------------------------------------------------
76401 -- No MPA option is assigned.
76402
76403
76404 END IF;
76405 END IF;
76406 --
76407
76408 --
76409 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76410 trace
76411 (p_msg => 'END of AcctLineType_140'
76412 ,p_level => C_LEVEL_PROCEDURE
76413 ,p_module => l_log_module);
76414 END IF;
76415 --
76416 EXCEPTION
76417 WHEN xla_exceptions_pkg.application_exception THEN
76418 RAISE;
76419 WHEN OTHERS THEN
76420 xla_exceptions_pkg.raise_message
76421 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_140');
76422 END AcctLineType_140;
76423 --
76424
76425 ---------------------------------------
76426 --
76427 -- PRIVATE FUNCTION
76428 -- AcctLineType_141
76429 --
76430 ---------------------------------------
76431 PROCEDURE AcctLineType_141 (
76432 p_application_id IN NUMBER
76433 ,p_event_id IN NUMBER
76434 ,p_calculate_acctd_flag IN VARCHAR2
76435 ,p_calculate_g_l_flag IN VARCHAR2
76436 ,p_actual_flag IN OUT VARCHAR2
76437 ,p_balance_type_code OUT VARCHAR2
76438 ,p_gain_or_loss_ref OUT VARCHAR2
76439
76440 --Payment Distribution (Payment Rate) Ledger Amount
76441 , p_source_9 IN NUMBER
76442 --Invoice Distribution Account
76443 , p_source_17 IN NUMBER
76444 --Invoice Distribution Type
76445 , p_source_20 IN VARCHAR2
76446 , p_source_20_meaning IN VARCHAR2
76447 --When to Account for Payment Option
76448 , p_source_38 IN VARCHAR2
76449 --Payment Distribution Type
76450 , p_source_39 IN VARCHAR2
76451 , p_source_39_meaning IN VARCHAR2
76452 --Accounting Reversal Indicator
76453 , p_source_40 IN VARCHAR2
76454 --Payment Distribution Amount
76455 , p_source_41 IN NUMBER
76456 --Business Flow Accounts Payable Application Identifier
76457 , p_source_42 IN NUMBER
76458 --Payment Distribution Identifier
76459 , p_source_47 IN NUMBER
76460 --Distribution Link Type
76461 , p_source_48 IN VARCHAR2
76462 --Payment Currency Code
76463 , p_source_49 IN VARCHAR2
76464 --Override Accounted Amount Indicator
76465 , p_source_53 IN VARCHAR2
76466 , p_source_53_meaning IN VARCHAR2
76467 --Payment Supplier Identifier
76468 , p_source_54 IN NUMBER
76469 --Payment Supplier Site Identifier
76470 , p_source_55 IN NUMBER
76471 --Third Party Type
76472 , p_source_56 IN VARCHAR2
76473 --Payment Distribution Reversed Identifier
76474 , p_source_57 IN NUMBER
76475 --Invoice Distribution Tax Line Identifier
76476 , p_source_58 IN NUMBER
76477 --Invoice Distribution Summary Tax Line Identifier
76478 , p_source_59 IN NUMBER
76479 --Payment Type
76480 , p_source_60 IN VARCHAR2
76481 , p_source_60_meaning IN VARCHAR2
76482 --Invoice Distribution Amount of the Payment Distribution
76483 , p_source_61 IN NUMBER
76484 --Business Flow Invoice Distribution Type
76485 , p_source_62 IN VARCHAR2
76486 --Business Flow Invoice Entity Code
76487 , p_source_63 IN VARCHAR2
76488 --Business Flow Invoice Distribution Identifier
76489 , p_source_64 IN NUMBER
76490 --Business Flow Invoice Identifier
76491 , p_source_65 IN NUMBER
76495 , p_source_100 IN VARCHAR2
76492 --Invoice Distribution Tax Distribution Identifier from Tax
76493 , p_source_66 IN NUMBER
76494 --Accrue on Receipt Option
76496 , p_source_100_meaning IN VARCHAR2
76497 --Invoice Type Paid
76498 , p_source_101 IN VARCHAR2
76499 , p_source_101_meaning IN VARCHAR2
76500 --Payment Exchange Date
76501 , p_source_114 IN DATE
76502 --Payment Exchange Rate
76503 , p_source_115 IN NUMBER
76504 --Payment Exchange Rate Type
76505 , p_source_116 IN VARCHAR2
76506 )
76507 IS
76508
76509 l_component_type VARCHAR2(80);
76510 l_component_code VARCHAR2(30);
76511 l_component_type_code VARCHAR2(1);
76512 l_component_appl_id INTEGER;
76513 l_amb_context_code VARCHAR2(30);
76514 l_entity_code VARCHAR2(30);
76515 l_event_class_code VARCHAR2(30);
76516 l_ae_header_id NUMBER;
76517 l_event_type_code VARCHAR2(30);
76518 l_line_definition_code VARCHAR2(30);
76519 l_line_definition_owner_code VARCHAR2(1);
76520 --
76521 -- adr variables
76522 l_segment VARCHAR2(30);
76523 l_ccid NUMBER;
76524 l_adr_transaction_coa_id NUMBER;
76525 l_adr_accounting_coa_id NUMBER;
76526 l_adr_flexfield_segment_code VARCHAR2(30);
76527 l_adr_flex_value_set_id NUMBER;
76528 l_adr_value_type_code VARCHAR2(30);
76529 l_adr_value_combination_id NUMBER;
76530 l_adr_value_segment_code VARCHAR2(30);
76531
76532 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
76533 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
76534 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
76535 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
76536
76537 -- 4262811 Variables ------------------------------------------------------------------------------------------
76538 l_entered_amt_idx NUMBER;
76539 l_accted_amt_idx NUMBER;
76540 l_acc_rev_flag VARCHAR2(1);
76541 l_accrual_line_num NUMBER;
76542 l_tmp_amt NUMBER;
76543 l_acc_rev_natural_side_code VARCHAR2(1);
76544
76545 l_num_entries NUMBER;
76546 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
76547 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
76548 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
76549 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
76550 l_recog_line_1 NUMBER;
76551 l_recog_line_2 NUMBER;
76552
76553 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
76554 l_bflow_applied_to_amt NUMBER; -- 5132302
76555 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
76556
76557 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76558
76559 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
76560 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
76561
76562 ---------------------------------------------------------------------------------------------------------------
76563
76564
76565 --
76566 -- bulk performance
76567 --
76568 l_balance_type_code VARCHAR2(1);
76569 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76570 l_log_module VARCHAR2(240);
76571
76572 --
76573 -- Upgrade strategy
76574 --
76575 l_actual_upg_option VARCHAR2(1);
76576 l_enc_upg_option VARCHAR2(1);
76577
76578 --
76579 BEGIN
76580 --
76581 IF g_log_enabled THEN
76582 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
76583 END IF;
76584 --
76585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76586
76587 trace
76588 (p_msg => 'BEGIN of AcctLineType_141'
76589 ,p_level => C_LEVEL_PROCEDURE
76590 ,p_module => l_log_module);
76591
76592 END IF;
76593 --
76594 l_component_type := 'AMB_JLT';
76595 l_component_code := 'AP_NON_RECOV_TAX_PMT';
76596 l_component_type_code := 'S';
76597 l_component_appl_id := 200;
76598 l_amb_context_code := 'DEFAULT';
76599 l_entity_code := 'AP_PAYMENTS';
76600 l_event_class_code := 'PAYMENTS';
76601 l_event_type_code := 'PAYMENTS_ALL';
76602 l_line_definition_owner_code := 'S';
76603 l_line_definition_code := 'CASH_PAYMENTS_ALL';
76604 --
76605 l_balance_type_code := 'A';
76606 l_segment := NULL;
76607 l_ccid := NULL;
76608 l_adr_transaction_coa_id := NULL;
76609 l_adr_accounting_coa_id := NULL;
76610 l_adr_flexfield_segment_code := NULL;
76611 l_adr_flex_value_set_id := NULL;
76612 l_adr_value_type_code := NULL;
76613 l_adr_value_combination_id := NULL;
76614 l_adr_value_segment_code := NULL;
76615
76616 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
76617 l_bflow_class_code := ''; -- 4219869 Business Flow
76618 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
76619 l_budgetary_control_flag := 'N';
76620
76621 l_bflow_applied_to_amt_idx := NULL; -- 5132302
76622 l_bflow_applied_to_amt := NULL; -- 5132302
76626 l_accrual_line_num := NULL; -- 4262811
76623 l_entered_amt_idx := NULL; -- 4262811
76624 l_accted_amt_idx := NULL; -- 4262811
76625 l_acc_rev_flag := NULL; -- 4262811
76627 l_tmp_amt := NULL; -- 4262811
76628 --
76629
76630 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76631 l_balance_type_code <> 'B' THEN
76632 IF NVL(p_source_38,'
76633 ') <> 'CLEAR_CLEAR' AND
76634 (NVL(p_source_20,'
76635 ') = 'NONREC_TAX' OR
76636 NVL(p_source_20,'
76637 ') = 'TERV' OR
76638 NVL(p_source_20,'
76639 ') = 'TIPV' OR
76640 NVL(p_source_20,'
76641 ') = 'TRV') AND
76642 NVL(p_source_100,'
76643 ') <> 'Y' AND
76644 NVL(p_source_101,'
76645 ') <> 'INTEREST' AND
76646 (NVL(p_source_39,'
76647 ') = 'CASH' OR
76648 NVL(p_source_39,'
76649 ') = 'AWT' OR
76650 NVL(p_source_39,'
76651 ') = 'DISCOUNT') AND
76652 NVL(p_source_60,'
76653 ') <> 'R'
76654 THEN
76655
76656 --
76657 XLA_AE_LINES_PKG.SetNewLine;
76658
76659 p_balance_type_code := l_balance_type_code;
76660 -- set the flag so later we will know whether the gain loss line needs to be created
76661
76662 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76663 p_actual_flag :='A';
76664 END IF;
76665
76666 --
76667 -- bulk performance
76668 --
76669 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76670 p_header_num => 0); -- 4262811
76671 --
76672 -- set accounting line options
76673 --
76674 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76675 p_natural_side_code => 'D'
76676 , p_gain_or_loss_flag => 'N'
76677 , p_gl_transfer_mode_code => 'S'
76678 , p_acct_entry_type_code => 'A'
76679 , p_switch_side_flag => 'Y'
76680 , p_merge_duplicate_code => 'A'
76681 );
76682 --
76683 l_acc_rev_natural_side_code := 'C'; -- 4262811
76684 --
76685 --
76686 -- set accounting line type info
76687 --
76688 xla_ae_lines_pkg.SetAcctLineType
76689 (p_component_type => l_component_type
76690 ,p_event_type_code => l_event_type_code
76691 ,p_line_definition_owner_code => l_line_definition_owner_code
76692 ,p_line_definition_code => l_line_definition_code
76693 ,p_accounting_line_code => l_component_code
76694 ,p_accounting_line_type_code => l_component_type_code
76695 ,p_accounting_line_appl_id => l_component_appl_id
76696 ,p_amb_context_code => l_amb_context_code
76697 ,p_entity_code => l_entity_code
76698 ,p_event_class_code => l_event_class_code);
76699 --
76700 -- set accounting class
76701 --
76702 xla_ae_lines_pkg.SetAcctClass(
76703 p_accounting_class_code => 'NRTAX'
76704 , p_ae_header_id => l_ae_header_id
76705 );
76706
76707 --
76708 -- set rounding class
76709 --
76710 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76711 'NRTAX';
76712
76713 --
76714 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76715 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76716 --
76717 -- bulk performance
76718 --
76719 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76720
76721 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76722 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76723
76724 -- 4955764
76725 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76726 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76727
76728 -- 4458381 Public Sector Enh
76729
76730 --
76731 -- set accounting attributes for the line type
76732 --
76733 l_entered_amt_idx := 10;
76734 l_accted_amt_idx := 15;
76735 l_bflow_applied_to_amt_idx := 2; -- 5132302
76736 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76737 l_rec_acct_attrs.array_char_value(1) := p_source_40;
76738 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76739 l_rec_acct_attrs.array_num_value(2) := p_source_61;
76740 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76741 l_rec_acct_attrs.array_num_value(3) := p_source_42;
76742 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76743 l_rec_acct_attrs.array_char_value(4) := p_source_62;
76744 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76745 l_rec_acct_attrs.array_char_value(5) := p_source_63;
76746 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76747 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
76748 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76749 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
76750 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76754 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76751 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
76752 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76753 l_rec_acct_attrs.array_char_value(9) := p_source_48;
76755 l_rec_acct_attrs.array_num_value(10) := p_source_41;
76756 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76757 l_rec_acct_attrs.array_char_value(11) := p_source_49;
76758 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
76759 l_rec_acct_attrs.array_date_value(12) := p_source_114;
76760 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
76761 l_rec_acct_attrs.array_num_value(13) := p_source_115;
76762 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
76763 l_rec_acct_attrs.array_char_value(14) := p_source_116;
76764 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
76765 l_rec_acct_attrs.array_num_value(15) := p_source_9;
76766 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
76767 l_rec_acct_attrs.array_char_value(16) := p_source_53;
76768 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
76769 l_rec_acct_attrs.array_num_value(17) := p_source_54;
76770 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
76771 l_rec_acct_attrs.array_num_value(18) := p_source_55;
76772 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
76773 l_rec_acct_attrs.array_char_value(19) := p_source_56;
76774 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
76775 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
76776 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
76777 l_rec_acct_attrs.array_char_value(21) := p_source_48;
76778 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
76779 l_rec_acct_attrs.array_num_value(22) := p_source_58;
76780 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
76781 l_rec_acct_attrs.array_num_value(23) := p_source_66;
76782 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
76783 l_rec_acct_attrs.array_num_value(24) := p_source_59;
76784
76785 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76786 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76787
76788 ---------------------------------------------------------------------------------------------------------------
76789 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76790 ---------------------------------------------------------------------------------------------------------------
76791 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76792
76793 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76794 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76795
76796 IF xla_accounting_cache_pkg.GetValueChar
76797 (p_source_code => 'LEDGER_CATEGORY_CODE'
76798 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76799 AND l_bflow_method_code = 'PRIOR_ENTRY'
76800 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76801 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76802 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76803 )
76804 THEN
76805 xla_ae_lines_pkg.BflowUpgEntry
76806 (p_business_method_code => l_bflow_method_code
76807 ,p_business_class_code => l_bflow_class_code
76808 ,p_balance_type => l_balance_type_code);
76809 ELSE
76810 NULL;
76811 -- No business flow processing for business flow method of NONE.
76812 END IF;
76813
76814 --
76815 -- call analytical criteria
76816 --
76817
76818 --
76819 -- call description
76820 --
76821 -- No description or it is inherited.
76822 --
76823 -- call ADRs
76824 -- Bug 4922099
76825 --
76826 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76827 (NVL(l_actual_upg_option, 'N') = 'O') OR
76828 (NVL(l_enc_upg_option, 'N') = 'O')
76829 )
76830 THEN
76831 NULL;
76832 --
76833 --
76834
76835 l_ccid := AcctDerRule_26(
76836 p_application_id => p_application_id
76837 , p_ae_header_id => l_ae_header_id
76838 , p_source_17 => p_source_17
76839 , x_transaction_coa_id => l_adr_transaction_coa_id
76840 , x_accounting_coa_id => l_adr_accounting_coa_id
76841 , x_value_type_code => l_adr_value_type_code
76842 , p_side => 'NA'
76843 );
76844
76845 xla_ae_lines_pkg.set_ccid(
76846 p_code_combination_id => l_ccid
76847 , p_value_type_code => l_adr_value_type_code
76848 , p_transaction_coa_id => l_adr_transaction_coa_id
76849 , p_accounting_coa_id => l_adr_accounting_coa_id
76850 , p_adr_code => 'AP_INVOICE_DIST'
76851 , p_adr_type_code => 'S'
76852 , p_component_type => l_component_type
76853 , p_component_code => l_component_code
76854 , p_component_type_code => l_component_type_code
76855 , p_component_appl_id => l_component_appl_id
76859
76856 , p_amb_context_code => l_amb_context_code
76857 , p_side => 'NA'
76858 );
76860
76861 --
76862 --
76863 END IF;
76864 --
76865 -- Bug 4922099
76866 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76867 (NVL(l_enc_upg_option, 'N') = 'O')
76868 ) AND
76869 (l_bflow_method_code = 'PRIOR_ENTRY')
76870 )
76871 THEN
76872 IF
76873 --
76874 1 = 2
76875 --
76876 THEN
76877 xla_accounting_err_pkg.build_message
76878 (p_appli_s_name => 'XLA'
76879 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76880 ,p_token_1 => 'LINE_NUMBER'
76881 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
76882 ,p_token_2 => 'LINE_TYPE_NAME'
76883 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
76884 l_component_type
76885 ,l_component_code
76886 ,l_component_type_code
76887 ,l_component_appl_id
76888 ,l_amb_context_code
76889 ,l_entity_code
76890 ,l_event_class_code
76891 )
76892 ,p_token_3 => 'OWNER'
76893 ,p_value_3 => xla_lookups_pkg.get_meaning(
76894 p_lookup_type => 'XLA_OWNER_TYPE'
76895 ,p_lookup_code => l_component_type_code
76896 )
76897 ,p_token_4 => 'PRODUCT_NAME'
76898 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76899 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76900 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76901 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76902 ,p_ae_header_id => NULL
76903 );
76904
76905 IF (C_LEVEL_ERROR>= g_log_level) THEN
76906 trace
76907 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76908 ,p_level => C_LEVEL_ERROR
76909 ,p_module => l_log_module);
76910 END IF;
76911 END IF;
76912 END IF;
76913 --
76914 --
76915 ------------------------------------------------------------------------------------------------
76916 -- 4219869 Business Flow
76917 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76918 -- Prior Entry. Currently, the following code is always generated.
76919 ------------------------------------------------------------------------------------------------
76920 XLA_AE_LINES_PKG.ValidateCurrentLine;
76921
76922 ------------------------------------------------------------------------------------
76923 -- 4219869 Business Flow
76924 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76925 ------------------------------------------------------------------------------------
76926 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76927
76928 ----------------------------------------------------------------------------------
76929 -- 4219869 Business Flow
76930 -- Update journal entry status -- Need to generate this within IF <condition>
76931 ----------------------------------------------------------------------------------
76932 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76933 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76934 ,p_balance_type_code => l_balance_type_code
76935 );
76936
76937 -------------------------------------------------------------------------------------------
76938 -- 4262811 - Generate the Accrual Reversal lines
76939 -------------------------------------------------------------------------------------------
76940 BEGIN
76941 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76942 (g_array_event(p_event_id).array_value_num('header_index'));
76943 IF l_acc_rev_flag IS NULL THEN
76944 l_acc_rev_flag := 'N';
76945 END IF;
76946 EXCEPTION
76947 WHEN OTHERS THEN
76948 l_acc_rev_flag := 'N';
76949 END;
76950 --
76951 IF (l_acc_rev_flag = 'Y') THEN
76952
76956 ------------------------------------------------------------------------------------------
76953 -- 4645092 ------------------------------------------------------------------------------
76954 -- To allow MPA report to determine if it should generate report process
76955 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76957
76958 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76959 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76960 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
76961 -- call ADRs
76962 -- Bug 4922099
76963 --
76964 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76965 (NVL(l_actual_upg_option, 'N') = 'O') OR
76966 (NVL(l_enc_upg_option, 'N') = 'O')
76967 )
76968 THEN
76969 NULL;
76970 --
76971 --
76972
76973 l_ccid := AcctDerRule_26(
76974 p_application_id => p_application_id
76975 , p_ae_header_id => l_ae_header_id
76976 , p_source_17 => p_source_17
76977 , x_transaction_coa_id => l_adr_transaction_coa_id
76978 , x_accounting_coa_id => l_adr_accounting_coa_id
76979 , x_value_type_code => l_adr_value_type_code
76980 , p_side => 'NA'
76981 );
76982
76983 xla_ae_lines_pkg.set_ccid(
76984 p_code_combination_id => l_ccid
76985 , p_value_type_code => l_adr_value_type_code
76986 , p_transaction_coa_id => l_adr_transaction_coa_id
76987 , p_accounting_coa_id => l_adr_accounting_coa_id
76988 , p_adr_code => 'AP_INVOICE_DIST'
76989 , p_adr_type_code => 'S'
76990 , p_component_type => l_component_type
76991 , p_component_code => l_component_code
76992 , p_component_type_code => l_component_type_code
76993 , p_component_appl_id => l_component_appl_id
76994 , p_amb_context_code => l_amb_context_code
76995 , p_side => 'NA'
76996 );
76997
76998
76999 --
77000 --
77001 END IF;
77002
77003 --
77004 -- Update the line information that should be overwritten
77005 --
77006 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77007 p_header_num => 1);
77008 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
77009
77010 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77011
77012 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
77013 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77014 END IF;
77015
77016 --
77017 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77018 --
77019 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77020 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
77021 ELSE
77022 ---------------------------------------------------------------------------------------------------
77023 -- 4262811a Switch Sign
77024 ---------------------------------------------------------------------------------------------------
77025 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
77026 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77027 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77028 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77029 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77030 -- 5132302
77031 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77032 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77033
77034 END IF;
77035
77036 -- 4955764
77037 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77038 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77039
77040
77041 XLA_AE_LINES_PKG.ValidateCurrentLine;
77042 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77043
77044 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77045 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77046 ,p_balance_type_code => l_balance_type_code);
77047
77048 END IF;
77049
77050 -----------------------------------------------------------------------------------------
77051 -- 4262811 Multiperiod Accounting
77052 -----------------------------------------------------------------------------------------
77053 -- No MPA option is assigned.
77054
77055
77056 END IF;
77057 END IF;
77058 --
77059
77060 --
77061 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77062 trace
77063 (p_msg => 'END of AcctLineType_141'
77064 ,p_level => C_LEVEL_PROCEDURE
77065 ,p_module => l_log_module);
77069 WHEN xla_exceptions_pkg.application_exception THEN
77066 END IF;
77067 --
77068 EXCEPTION
77070 RAISE;
77071 WHEN OTHERS THEN
77072 xla_exceptions_pkg.raise_message
77073 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_141');
77074 END AcctLineType_141;
77075 --
77076
77077 ---------------------------------------
77078 --
77079 -- PRIVATE FUNCTION
77080 -- AcctLineType_142
77081 --
77082 ---------------------------------------
77083 PROCEDURE AcctLineType_142 (
77084 p_application_id IN NUMBER
77085 ,p_event_id IN NUMBER
77086 ,p_calculate_acctd_flag IN VARCHAR2
77087 ,p_calculate_g_l_flag IN VARCHAR2
77088 ,p_actual_flag IN OUT VARCHAR2
77089 ,p_balance_type_code OUT VARCHAR2
77090 ,p_gain_or_loss_ref OUT VARCHAR2
77091
77092 --Payment Distribution (Payment Rate) Ledger Amount
77093 , p_source_9 IN NUMBER
77094 --Invoice Distribution Type
77095 , p_source_20 IN VARCHAR2
77096 , p_source_20_meaning IN VARCHAR2
77097 --When to Account for Payment Option
77098 , p_source_38 IN VARCHAR2
77099 --Payment Distribution Type
77100 , p_source_39 IN VARCHAR2
77101 , p_source_39_meaning IN VARCHAR2
77102 --Accounting Reversal Indicator
77103 , p_source_40 IN VARCHAR2
77104 --Payment Distribution Amount
77105 , p_source_41 IN NUMBER
77106 --Business Flow Accounts Payable Application Identifier
77107 , p_source_42 IN NUMBER
77108 --Payment Distribution Identifier
77109 , p_source_47 IN NUMBER
77110 --Distribution Link Type
77111 , p_source_48 IN VARCHAR2
77112 --Payment Currency Code
77113 , p_source_49 IN VARCHAR2
77114 --Override Accounted Amount Indicator
77115 , p_source_53 IN VARCHAR2
77116 , p_source_53_meaning IN VARCHAR2
77117 --Third Party Type
77118 , p_source_56 IN VARCHAR2
77119 --Payment Distribution Reversed Identifier
77120 , p_source_57 IN NUMBER
77121 --Invoice Distribution Tax Line Identifier
77122 , p_source_58 IN NUMBER
77123 --Invoice Distribution Summary Tax Line Identifier
77124 , p_source_59 IN NUMBER
77125 --Payment Type
77126 , p_source_60 IN VARCHAR2
77127 , p_source_60_meaning IN VARCHAR2
77128 --Invoice Distribution Amount of the Payment Distribution
77129 , p_source_61 IN NUMBER
77130 --Business Flow Invoice Distribution Type
77131 , p_source_62 IN VARCHAR2
77132 --Business Flow Invoice Entity Code
77133 , p_source_63 IN VARCHAR2
77134 --Business Flow Invoice Distribution Identifier
77135 , p_source_64 IN NUMBER
77136 --Business Flow Invoice Identifier
77137 , p_source_65 IN NUMBER
77138 --Invoice Distribution Tax Distribution Identifier from Tax
77139 , p_source_66 IN NUMBER
77140 --Invoice Type Paid
77141 , p_source_101 IN VARCHAR2
77142 , p_source_101_meaning IN VARCHAR2
77143 --Purchasing Encumbrance Option
77144 , p_source_102 IN VARCHAR2
77145 , p_source_102_meaning IN VARCHAR2
77146 --Invoice Encumbered Option
77147 , p_source_104 IN VARCHAR2
77148 , p_source_104_meaning IN VARCHAR2
77149 )
77150 IS
77151
77152 l_component_type VARCHAR2(80);
77153 l_component_code VARCHAR2(30);
77154 l_component_type_code VARCHAR2(1);
77155 l_component_appl_id INTEGER;
77156 l_amb_context_code VARCHAR2(30);
77157 l_entity_code VARCHAR2(30);
77158 l_event_class_code VARCHAR2(30);
77159 l_ae_header_id NUMBER;
77160 l_event_type_code VARCHAR2(30);
77161 l_line_definition_code VARCHAR2(30);
77162 l_line_definition_owner_code VARCHAR2(1);
77163 --
77164 -- adr variables
77165 l_segment VARCHAR2(30);
77166 l_ccid NUMBER;
77167 l_adr_transaction_coa_id NUMBER;
77168 l_adr_accounting_coa_id NUMBER;
77169 l_adr_flexfield_segment_code VARCHAR2(30);
77170 l_adr_flex_value_set_id NUMBER;
77171 l_adr_value_type_code VARCHAR2(30);
77172 l_adr_value_combination_id NUMBER;
77173 l_adr_value_segment_code VARCHAR2(30);
77174
77175 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
77176 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
77177 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
77178 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
77179
77180 -- 4262811 Variables ------------------------------------------------------------------------------------------
77181 l_entered_amt_idx NUMBER;
77182 l_accted_amt_idx NUMBER;
77183 l_acc_rev_flag VARCHAR2(1);
77184 l_accrual_line_num NUMBER;
77185 l_tmp_amt NUMBER;
77186 l_acc_rev_natural_side_code VARCHAR2(1);
77187
77188 l_num_entries NUMBER;
77189 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
77190 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
77191 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
77192 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
77193 l_recog_line_1 NUMBER;
77194 l_recog_line_2 NUMBER;
77195
77196 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
77200 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77197 l_bflow_applied_to_amt NUMBER; -- 5132302
77198 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
77199
77201
77202 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
77203 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
77204
77205 ---------------------------------------------------------------------------------------------------------------
77206
77207
77208 --
77209 -- bulk performance
77210 --
77211 l_balance_type_code VARCHAR2(1);
77212 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
77213 l_log_module VARCHAR2(240);
77214
77215 --
77216 -- Upgrade strategy
77217 --
77218 l_actual_upg_option VARCHAR2(1);
77219 l_enc_upg_option VARCHAR2(1);
77220
77221 --
77222 BEGIN
77223 --
77224 IF g_log_enabled THEN
77225 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
77226 END IF;
77227 --
77228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77229
77230 trace
77231 (p_msg => 'BEGIN of AcctLineType_142'
77232 ,p_level => C_LEVEL_PROCEDURE
77233 ,p_module => l_log_module);
77234
77235 END IF;
77236 --
77237 l_component_type := 'AMB_JLT';
77238 l_component_code := 'AP_NON_RECOV_TAX_PMT_ENC';
77239 l_component_type_code := 'S';
77240 l_component_appl_id := 200;
77241 l_amb_context_code := 'DEFAULT';
77242 l_entity_code := 'AP_PAYMENTS';
77243 l_event_class_code := 'PAYMENTS';
77244 l_event_type_code := 'PAYMENTS_ALL';
77245 l_line_definition_owner_code := 'S';
77246 l_line_definition_code := 'ENC_PAYMENTS_ALL';
77247 --
77248 l_balance_type_code := 'E';
77249 l_segment := NULL;
77250 l_ccid := NULL;
77251 l_adr_transaction_coa_id := NULL;
77252 l_adr_accounting_coa_id := NULL;
77253 l_adr_flexfield_segment_code := NULL;
77254 l_adr_flex_value_set_id := NULL;
77255 l_adr_value_type_code := NULL;
77256 l_adr_value_combination_id := NULL;
77257 l_adr_value_segment_code := NULL;
77258
77259 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
77260 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
77261 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
77262 l_budgetary_control_flag := 'N';
77263
77264 l_bflow_applied_to_amt_idx := NULL; -- 5132302
77265 l_bflow_applied_to_amt := NULL; -- 5132302
77266 l_entered_amt_idx := NULL; -- 4262811
77267 l_accted_amt_idx := NULL; -- 4262811
77268 l_acc_rev_flag := NULL; -- 4262811
77269 l_accrual_line_num := NULL; -- 4262811
77270 l_tmp_amt := NULL; -- 4262811
77271 --
77272
77273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77274 l_balance_type_code <> 'B' THEN
77275 IF NVL(p_source_38,'
77276 ') <> 'CLEAR_CLEAR' AND
77277 NVL(p_source_20,'
77278 ') = 'NONREC_TAX' AND
77279 NVL(p_source_101,'
77280 ') <> 'INTEREST' AND
77281 (NVL(p_source_39,'
77282 ') = 'CASH' OR
77283 NVL(p_source_39,'
77284 ') = 'DISCOUNT') AND
77285 NVL(p_source_60,'
77286 ') <> 'R' AND
77287 NVL(p_source_102,'
77288 ') = 'Y' AND
77289 NVL(p_source_104,'
77290 ') = 'Y'
77291 THEN
77292
77293 --
77294 XLA_AE_LINES_PKG.SetNewLine;
77295
77296 p_balance_type_code := l_balance_type_code;
77297 -- set the flag so later we will know whether the gain loss line needs to be created
77298
77299 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77300 p_actual_flag :='A';
77301 END IF;
77302
77303 --
77304 -- bulk performance
77305 --
77306 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77307 p_header_num => 0); -- 4262811
77308 --
77309 -- set accounting line options
77310 --
77311 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77312 p_natural_side_code => 'C'
77313 , p_gain_or_loss_flag => 'N'
77314 , p_gl_transfer_mode_code => 'S'
77315 , p_acct_entry_type_code => 'E'
77316 , p_switch_side_flag => 'Y'
77317 , p_merge_duplicate_code => 'A'
77318 );
77319 --
77320 l_acc_rev_natural_side_code := 'D'; -- 4262811
77321 --
77322 --
77323 -- set accounting line type info
77324 --
77325 xla_ae_lines_pkg.SetAcctLineType
77326 (p_component_type => l_component_type
77327 ,p_event_type_code => l_event_type_code
77328 ,p_line_definition_owner_code => l_line_definition_owner_code
77329 ,p_line_definition_code => l_line_definition_code
77330 ,p_accounting_line_code => l_component_code
77331 ,p_accounting_line_type_code => l_component_type_code
77332 ,p_accounting_line_appl_id => l_component_appl_id
77333 ,p_amb_context_code => l_amb_context_code
77334 ,p_entity_code => l_entity_code
77338 --
77335 ,p_event_class_code => l_event_class_code);
77336 --
77337 -- set accounting class
77339 xla_ae_lines_pkg.SetAcctClass(
77340 p_accounting_class_code => 'NRTAX'
77341 , p_ae_header_id => l_ae_header_id
77342 );
77343
77344 --
77345 -- set rounding class
77346 --
77347 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77348 'NRTAX';
77349
77350 --
77351 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77352 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77353 --
77354 -- bulk performance
77355 --
77356 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77357
77358 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77359 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77360
77361 -- 4955764
77362 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77363 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77364
77365 -- 4458381 Public Sector Enh
77366
77367 --
77368 -- set accounting attributes for the line type
77369 --
77370 l_entered_amt_idx := 10;
77371 l_accted_amt_idx := 12;
77372 l_bflow_applied_to_amt_idx := 2; -- 5132302
77373 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77374 l_rec_acct_attrs.array_char_value(1) := p_source_40;
77375 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
77376 l_rec_acct_attrs.array_num_value(2) := p_source_61;
77377 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
77378 l_rec_acct_attrs.array_num_value(3) := p_source_42;
77379 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77380 l_rec_acct_attrs.array_char_value(4) := p_source_62;
77381 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
77382 l_rec_acct_attrs.array_char_value(5) := p_source_63;
77383 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
77384 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
77385 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77386 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
77387 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
77388 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
77389 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
77390 l_rec_acct_attrs.array_char_value(9) := p_source_48;
77391 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
77392 l_rec_acct_attrs.array_num_value(10) := p_source_41;
77393 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
77394 l_rec_acct_attrs.array_char_value(11) := p_source_49;
77395 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
77396 l_rec_acct_attrs.array_num_value(12) := p_source_9;
77397 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
77398 l_rec_acct_attrs.array_char_value(13) := p_source_53;
77399 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
77400 l_rec_acct_attrs.array_char_value(14) := p_source_56;
77401 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
77402 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
77403 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
77404 l_rec_acct_attrs.array_char_value(16) := p_source_48;
77405 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
77406 l_rec_acct_attrs.array_num_value(17) := p_source_58;
77407 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
77408 l_rec_acct_attrs.array_num_value(18) := p_source_66;
77409 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
77410 l_rec_acct_attrs.array_num_value(19) := p_source_59;
77411
77412 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77413 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77414
77415 ---------------------------------------------------------------------------------------------------------------
77416 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77417 ---------------------------------------------------------------------------------------------------------------
77418 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77419
77420 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77421 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77422
77423 IF xla_accounting_cache_pkg.GetValueChar
77424 (p_source_code => 'LEDGER_CATEGORY_CODE'
77425 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77426 AND l_bflow_method_code = 'PRIOR_ENTRY'
77427 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77428 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77429 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77430 )
77431 THEN
77435 ,p_balance_type => l_balance_type_code);
77432 xla_ae_lines_pkg.BflowUpgEntry
77433 (p_business_method_code => l_bflow_method_code
77434 ,p_business_class_code => l_bflow_class_code
77436 ELSE
77437 NULL;
77438 XLA_AE_LINES_PKG.business_flow_validation(
77439 p_business_method_code => l_bflow_method_code
77440 ,p_business_class_code => l_bflow_class_code
77441 ,p_inherit_description_flag => l_inherit_desc_flag);
77442 END IF;
77443
77444 --
77445 -- call analytical criteria
77446 --
77447 -- Inherited Analytical Criteria for business flow method of Prior Entry.
77448 --
77449 -- call description
77450 --
77451 -- No description or it is inherited.
77452 --
77453 -- call ADRs
77454 -- Bug 4922099
77455 --
77456 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77457 (NVL(l_actual_upg_option, 'N') = 'O') OR
77458 (NVL(l_enc_upg_option, 'N') = 'O')
77459 )
77460 THEN
77461 NULL;
77462 --
77463 --
77464
77465 --
77466 --
77467 END IF;
77468 --
77469 -- Bug 4922099
77470 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77471 (NVL(l_enc_upg_option, 'N') = 'O')
77472 ) AND
77473 (l_bflow_method_code = 'PRIOR_ENTRY')
77474 )
77475 THEN
77476 IF
77477 --
77478 1 = 1
77479 --
77480 THEN
77481 xla_accounting_err_pkg.build_message
77482 (p_appli_s_name => 'XLA'
77483 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77484 ,p_token_1 => 'LINE_NUMBER'
77485 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
77486 ,p_token_2 => 'LINE_TYPE_NAME'
77487 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
77488 l_component_type
77489 ,l_component_code
77490 ,l_component_type_code
77491 ,l_component_appl_id
77492 ,l_amb_context_code
77493 ,l_entity_code
77494 ,l_event_class_code
77495 )
77496 ,p_token_3 => 'OWNER'
77497 ,p_value_3 => xla_lookups_pkg.get_meaning(
77498 p_lookup_type => 'XLA_OWNER_TYPE'
77499 ,p_lookup_code => l_component_type_code
77500 )
77501 ,p_token_4 => 'PRODUCT_NAME'
77502 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77503 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77504 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77505 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77506 ,p_ae_header_id => NULL
77507 );
77508
77509 IF (C_LEVEL_ERROR>= g_log_level) THEN
77510 trace
77511 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77512 ,p_level => C_LEVEL_ERROR
77513 ,p_module => l_log_module);
77514 END IF;
77515 END IF;
77516 END IF;
77517 --
77518 --
77519 ------------------------------------------------------------------------------------------------
77520 -- 4219869 Business Flow
77521 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77522 -- Prior Entry. Currently, the following code is always generated.
77523 ------------------------------------------------------------------------------------------------
77524 -- No ValidateCurrentLine for business flow method of Prior Entry
77525
77526 ------------------------------------------------------------------------------------
77527 -- 4219869 Business Flow
77528 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77529 ------------------------------------------------------------------------------------
77530 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77531
77532 ----------------------------------------------------------------------------------
77533 -- 4219869 Business Flow
77534 -- Update journal entry status -- Need to generate this within IF <condition>
77535 ----------------------------------------------------------------------------------
77539 );
77536 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77537 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77538 ,p_balance_type_code => l_balance_type_code
77540
77541 -------------------------------------------------------------------------------------------
77542 -- 4262811 - Generate the Accrual Reversal lines
77543 -------------------------------------------------------------------------------------------
77544 BEGIN
77545 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77546 (g_array_event(p_event_id).array_value_num('header_index'));
77547 IF l_acc_rev_flag IS NULL THEN
77548 l_acc_rev_flag := 'N';
77549 END IF;
77550 EXCEPTION
77551 WHEN OTHERS THEN
77552 l_acc_rev_flag := 'N';
77553 END;
77554 --
77555 IF (l_acc_rev_flag = 'Y') THEN
77556
77557 -- 4645092 ------------------------------------------------------------------------------
77558 -- To allow MPA report to determine if it should generate report process
77559 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77560 ------------------------------------------------------------------------------------------
77561
77562 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77563 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77564 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
77565 -- call ADRs
77566 -- Bug 4922099
77567 --
77568 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77569 (NVL(l_actual_upg_option, 'N') = 'O') OR
77570 (NVL(l_enc_upg_option, 'N') = 'O')
77571 )
77572 THEN
77573 NULL;
77574 --
77575 --
77576
77577 --
77578 --
77579 END IF;
77580
77581 --
77582 -- Update the line information that should be overwritten
77583 --
77584 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77585 p_header_num => 1);
77586 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
77587
77588 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77589
77590 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
77591 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77592 END IF;
77593
77594 --
77595 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77596 --
77597 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77598 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
77599 ELSE
77600 ---------------------------------------------------------------------------------------------------
77601 -- 4262811a Switch Sign
77602 ---------------------------------------------------------------------------------------------------
77603 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
77604 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77605 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77606 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77607 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77608 -- 5132302
77609 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77610 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77611
77612 END IF;
77613
77614 -- 4955764
77615 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77616 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77617
77618
77619 XLA_AE_LINES_PKG.ValidateCurrentLine;
77620 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77621
77622 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77623 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77624 ,p_balance_type_code => l_balance_type_code);
77625
77626 END IF;
77627
77628 -----------------------------------------------------------------------------------------
77629 -- 4262811 Multiperiod Accounting
77630 -----------------------------------------------------------------------------------------
77631 -- No MPA option is assigned.
77632
77633
77634 END IF;
77635 END IF;
77636 --
77637
77638 --
77639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77640 trace
77641 (p_msg => 'END of AcctLineType_142'
77642 ,p_level => C_LEVEL_PROCEDURE
77643 ,p_module => l_log_module);
77644 END IF;
77645 --
77646 EXCEPTION
77647 WHEN xla_exceptions_pkg.application_exception THEN
77648 RAISE;
77649 WHEN OTHERS THEN
77650 xla_exceptions_pkg.raise_message
77651 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_142');
77652 END AcctLineType_142;
77653 --
77657 -- PRIVATE FUNCTION
77654
77655 ---------------------------------------
77656 --
77658 -- AcctLineType_143
77659 --
77660 ---------------------------------------
77661 PROCEDURE AcctLineType_143 (
77662 p_application_id IN NUMBER
77663 ,p_event_id IN NUMBER
77664 ,p_calculate_acctd_flag IN VARCHAR2
77665 ,p_calculate_g_l_flag IN VARCHAR2
77666 ,p_actual_flag IN OUT VARCHAR2
77667 ,p_balance_type_code OUT VARCHAR2
77668 ,p_gain_or_loss_ref OUT VARCHAR2
77669
77670 --Payment Distribution (Payment Rate) Ledger Amount
77671 , p_source_9 IN NUMBER
77672 --Invoice Distribution Account
77673 , p_source_17 IN NUMBER
77674 --Invoice Distribution Type
77675 , p_source_20 IN VARCHAR2
77676 , p_source_20_meaning IN VARCHAR2
77677 --When to Account for Payment Option
77678 , p_source_38 IN VARCHAR2
77679 --Payment Distribution Type
77680 , p_source_39 IN VARCHAR2
77681 , p_source_39_meaning IN VARCHAR2
77682 --Accounting Reversal Indicator
77683 , p_source_40 IN VARCHAR2
77684 --Payment Distribution Amount
77685 , p_source_41 IN NUMBER
77686 --Business Flow Accounts Payable Application Identifier
77687 , p_source_42 IN NUMBER
77688 --Payment Distribution Identifier
77689 , p_source_47 IN NUMBER
77690 --Distribution Link Type
77691 , p_source_48 IN VARCHAR2
77692 --Payment Currency Code
77693 , p_source_49 IN VARCHAR2
77694 --Override Accounted Amount Indicator
77695 , p_source_53 IN VARCHAR2
77696 , p_source_53_meaning IN VARCHAR2
77697 --Payment Supplier Identifier
77698 , p_source_54 IN NUMBER
77699 --Payment Supplier Site Identifier
77700 , p_source_55 IN NUMBER
77701 --Third Party Type
77702 , p_source_56 IN VARCHAR2
77703 --Payment Distribution Reversed Identifier
77704 , p_source_57 IN NUMBER
77705 --Invoice Distribution Tax Line Identifier
77706 , p_source_58 IN NUMBER
77707 --Invoice Distribution Summary Tax Line Identifier
77708 , p_source_59 IN NUMBER
77709 --Payment Type
77710 , p_source_60 IN VARCHAR2
77711 , p_source_60_meaning IN VARCHAR2
77712 --Business Flow Invoice Distribution Type
77713 , p_source_62 IN VARCHAR2
77714 --Business Flow Invoice Entity Code
77715 , p_source_63 IN VARCHAR2
77716 --Business Flow Invoice Distribution Identifier
77717 , p_source_64 IN NUMBER
77718 --Business Flow Invoice Identifier
77719 , p_source_65 IN NUMBER
77720 --Invoice Distribution Tax Distribution Identifier from Tax
77721 , p_source_66 IN NUMBER
77722 --Accrue on Receipt Option
77723 , p_source_100 IN VARCHAR2
77724 , p_source_100_meaning IN VARCHAR2
77725 --Payment Exchange Date
77726 , p_source_114 IN DATE
77727 --Payment Exchange Rate
77728 , p_source_115 IN NUMBER
77729 --Payment Exchange Rate Type
77730 , p_source_116 IN VARCHAR2
77731 )
77732 IS
77733
77734 l_component_type VARCHAR2(80);
77735 l_component_code VARCHAR2(30);
77736 l_component_type_code VARCHAR2(1);
77737 l_component_appl_id INTEGER;
77738 l_amb_context_code VARCHAR2(30);
77739 l_entity_code VARCHAR2(30);
77740 l_event_class_code VARCHAR2(30);
77741 l_ae_header_id NUMBER;
77742 l_event_type_code VARCHAR2(30);
77743 l_line_definition_code VARCHAR2(30);
77744 l_line_definition_owner_code VARCHAR2(1);
77745 --
77746 -- adr variables
77747 l_segment VARCHAR2(30);
77748 l_ccid NUMBER;
77749 l_adr_transaction_coa_id NUMBER;
77750 l_adr_accounting_coa_id NUMBER;
77751 l_adr_flexfield_segment_code VARCHAR2(30);
77752 l_adr_flex_value_set_id NUMBER;
77753 l_adr_value_type_code VARCHAR2(30);
77754 l_adr_value_combination_id NUMBER;
77755 l_adr_value_segment_code VARCHAR2(30);
77756
77757 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
77758 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
77759 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
77760 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
77761
77762 -- 4262811 Variables ------------------------------------------------------------------------------------------
77763 l_entered_amt_idx NUMBER;
77764 l_accted_amt_idx NUMBER;
77765 l_acc_rev_flag VARCHAR2(1);
77766 l_accrual_line_num NUMBER;
77767 l_tmp_amt NUMBER;
77768 l_acc_rev_natural_side_code VARCHAR2(1);
77769
77770 l_num_entries NUMBER;
77771 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
77772 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
77773 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
77774 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
77775 l_recog_line_1 NUMBER;
77776 l_recog_line_2 NUMBER;
77777
77778 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
77779 l_bflow_applied_to_amt NUMBER; -- 5132302
77780 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
77781
77785 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
77782 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77783
77784 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
77786
77787 ---------------------------------------------------------------------------------------------------------------
77788
77789
77790 --
77791 -- bulk performance
77792 --
77793 l_balance_type_code VARCHAR2(1);
77794 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
77795 l_log_module VARCHAR2(240);
77796
77797 --
77798 -- Upgrade strategy
77799 --
77800 l_actual_upg_option VARCHAR2(1);
77801 l_enc_upg_option VARCHAR2(1);
77802
77803 --
77804 BEGIN
77805 --
77806 IF g_log_enabled THEN
77807 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
77808 END IF;
77809 --
77810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77811
77812 trace
77813 (p_msg => 'BEGIN of AcctLineType_143'
77814 ,p_level => C_LEVEL_PROCEDURE
77815 ,p_module => l_log_module);
77816
77817 END IF;
77818 --
77819 l_component_type := 'AMB_JLT';
77820 l_component_code := 'AP_NON_RECOV_TAX_REF';
77821 l_component_type_code := 'S';
77822 l_component_appl_id := 200;
77823 l_amb_context_code := 'DEFAULT';
77824 l_entity_code := 'AP_PAYMENTS';
77825 l_event_class_code := 'REFUNDS';
77826 l_event_type_code := 'REFUNDS_ALL';
77827 l_line_definition_owner_code := 'S';
77828 l_line_definition_code := 'CASH_REFUNDS_ALL';
77829 --
77830 l_balance_type_code := 'A';
77831 l_segment := NULL;
77832 l_ccid := NULL;
77833 l_adr_transaction_coa_id := NULL;
77834 l_adr_accounting_coa_id := NULL;
77835 l_adr_flexfield_segment_code := NULL;
77836 l_adr_flex_value_set_id := NULL;
77837 l_adr_value_type_code := NULL;
77838 l_adr_value_combination_id := NULL;
77839 l_adr_value_segment_code := NULL;
77840
77841 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
77842 l_bflow_class_code := ''; -- 4219869 Business Flow
77843 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
77844 l_budgetary_control_flag := 'N';
77845
77846 l_bflow_applied_to_amt_idx := NULL; -- 5132302
77847 l_bflow_applied_to_amt := NULL; -- 5132302
77848 l_entered_amt_idx := NULL; -- 4262811
77849 l_accted_amt_idx := NULL; -- 4262811
77850 l_acc_rev_flag := NULL; -- 4262811
77851 l_accrual_line_num := NULL; -- 4262811
77852 l_tmp_amt := NULL; -- 4262811
77853 --
77854
77855 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77856 l_balance_type_code <> 'B' THEN
77857 IF NVL(p_source_38,'
77858 ') <> 'CLEAR_CLEAR' AND
77859 (NVL(p_source_20,'
77860 ') = 'NONREC_TAX' OR
77861 NVL(p_source_20,'
77862 ') = 'TERV' OR
77863 NVL(p_source_20,'
77864 ') = 'TIPV' OR
77865 NVL(p_source_20,'
77866 ') = 'TRV') AND
77867 NVL(p_source_100,'
77868 ') <> 'Y' AND
77869 (NVL(p_source_39,'
77870 ') = 'CASH' OR
77871 NVL(p_source_39,'
77872 ') = 'DISCOUNT') AND
77873 NVL(p_source_60,'
77874 ') = 'R'
77875 THEN
77876
77877 --
77878 XLA_AE_LINES_PKG.SetNewLine;
77879
77880 p_balance_type_code := l_balance_type_code;
77881 -- set the flag so later we will know whether the gain loss line needs to be created
77882
77883 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77884 p_actual_flag :='A';
77885 END IF;
77886
77887 --
77888 -- bulk performance
77889 --
77890 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77891 p_header_num => 0); -- 4262811
77892 --
77893 -- set accounting line options
77894 --
77895 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77896 p_natural_side_code => 'D'
77897 , p_gain_or_loss_flag => 'N'
77898 , p_gl_transfer_mode_code => 'S'
77899 , p_acct_entry_type_code => 'A'
77900 , p_switch_side_flag => 'Y'
77901 , p_merge_duplicate_code => 'A'
77902 );
77903 --
77904 l_acc_rev_natural_side_code := 'C'; -- 4262811
77905 --
77906 --
77907 -- set accounting line type info
77908 --
77909 xla_ae_lines_pkg.SetAcctLineType
77910 (p_component_type => l_component_type
77911 ,p_event_type_code => l_event_type_code
77912 ,p_line_definition_owner_code => l_line_definition_owner_code
77913 ,p_line_definition_code => l_line_definition_code
77914 ,p_accounting_line_code => l_component_code
77915 ,p_accounting_line_type_code => l_component_type_code
77916 ,p_accounting_line_appl_id => l_component_appl_id
77917 ,p_amb_context_code => l_amb_context_code
77918 ,p_entity_code => l_entity_code
77919 ,p_event_class_code => l_event_class_code);
77920 --
77921 -- set accounting class
77922 --
77926 );
77923 xla_ae_lines_pkg.SetAcctClass(
77924 p_accounting_class_code => 'NRTAX'
77925 , p_ae_header_id => l_ae_header_id
77927
77928 --
77929 -- set rounding class
77930 --
77931 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77932 'NRTAX';
77933
77934 --
77935 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77936 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77937 --
77938 -- bulk performance
77939 --
77940 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77941
77942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77943 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77944
77945 -- 4955764
77946 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77947 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77948
77949 -- 4458381 Public Sector Enh
77950
77951 --
77952 -- set accounting attributes for the line type
77953 --
77954 l_entered_amt_idx := 9;
77955 l_accted_amt_idx := 14;
77956 l_bflow_applied_to_amt_idx := NULL; -- 5132302
77957 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77958 l_rec_acct_attrs.array_char_value(1) := p_source_40;
77959 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
77960 l_rec_acct_attrs.array_num_value(2) := p_source_42;
77961 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77962 l_rec_acct_attrs.array_char_value(3) := p_source_62;
77963 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
77964 l_rec_acct_attrs.array_char_value(4) := p_source_63;
77965 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
77966 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
77967 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77968 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
77969 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
77970 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
77971 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
77972 l_rec_acct_attrs.array_char_value(8) := p_source_48;
77973 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
77974 l_rec_acct_attrs.array_num_value(9) := p_source_41;
77975 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
77976 l_rec_acct_attrs.array_char_value(10) := p_source_49;
77977 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
77978 l_rec_acct_attrs.array_date_value(11) := p_source_114;
77979 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
77980 l_rec_acct_attrs.array_num_value(12) := p_source_115;
77981 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
77982 l_rec_acct_attrs.array_char_value(13) := p_source_116;
77983 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
77984 l_rec_acct_attrs.array_num_value(14) := p_source_9;
77985 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
77986 l_rec_acct_attrs.array_char_value(15) := p_source_53;
77987 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
77988 l_rec_acct_attrs.array_num_value(16) := p_source_54;
77989 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
77990 l_rec_acct_attrs.array_num_value(17) := p_source_55;
77991 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
77992 l_rec_acct_attrs.array_char_value(18) := p_source_56;
77993 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
77994 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
77995 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
77996 l_rec_acct_attrs.array_char_value(20) := p_source_48;
77997 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
77998 l_rec_acct_attrs.array_num_value(21) := p_source_58;
77999 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
78000 l_rec_acct_attrs.array_num_value(22) := p_source_66;
78001 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
78002 l_rec_acct_attrs.array_num_value(23) := p_source_59;
78003
78004 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78005 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78006
78007 ---------------------------------------------------------------------------------------------------------------
78008 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78009 ---------------------------------------------------------------------------------------------------------------
78010 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78011
78012 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78013 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78014
78015 IF xla_accounting_cache_pkg.GetValueChar
78016 (p_source_code => 'LEDGER_CATEGORY_CODE'
78020 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78017 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78018 AND l_bflow_method_code = 'PRIOR_ENTRY'
78019 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78021 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78022 )
78023 THEN
78024 xla_ae_lines_pkg.BflowUpgEntry
78025 (p_business_method_code => l_bflow_method_code
78026 ,p_business_class_code => l_bflow_class_code
78027 ,p_balance_type => l_balance_type_code);
78028 ELSE
78029 NULL;
78030 -- No business flow processing for business flow method of NONE.
78031 END IF;
78032
78033 --
78034 -- call analytical criteria
78035 --
78036
78037 --
78038 -- call description
78039 --
78040 -- No description or it is inherited.
78041 --
78042 -- call ADRs
78043 -- Bug 4922099
78044 --
78045 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78046 (NVL(l_actual_upg_option, 'N') = 'O') OR
78047 (NVL(l_enc_upg_option, 'N') = 'O')
78048 )
78049 THEN
78050 NULL;
78051 --
78052 --
78053
78054 l_ccid := AcctDerRule_26(
78055 p_application_id => p_application_id
78056 , p_ae_header_id => l_ae_header_id
78057 , p_source_17 => p_source_17
78058 , x_transaction_coa_id => l_adr_transaction_coa_id
78059 , x_accounting_coa_id => l_adr_accounting_coa_id
78060 , x_value_type_code => l_adr_value_type_code
78061 , p_side => 'NA'
78062 );
78063
78064 xla_ae_lines_pkg.set_ccid(
78065 p_code_combination_id => l_ccid
78066 , p_value_type_code => l_adr_value_type_code
78067 , p_transaction_coa_id => l_adr_transaction_coa_id
78068 , p_accounting_coa_id => l_adr_accounting_coa_id
78069 , p_adr_code => 'AP_INVOICE_DIST'
78070 , p_adr_type_code => 'S'
78071 , p_component_type => l_component_type
78072 , p_component_code => l_component_code
78073 , p_component_type_code => l_component_type_code
78074 , p_component_appl_id => l_component_appl_id
78075 , p_amb_context_code => l_amb_context_code
78076 , p_side => 'NA'
78077 );
78078
78079
78080 --
78081 --
78082 END IF;
78083 --
78084 -- Bug 4922099
78085 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78086 (NVL(l_enc_upg_option, 'N') = 'O')
78087 ) AND
78088 (l_bflow_method_code = 'PRIOR_ENTRY')
78089 )
78090 THEN
78091 IF
78092 --
78093 1 = 2
78094 --
78095 THEN
78096 xla_accounting_err_pkg.build_message
78097 (p_appli_s_name => 'XLA'
78098 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78099 ,p_token_1 => 'LINE_NUMBER'
78100 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
78101 ,p_token_2 => 'LINE_TYPE_NAME'
78102 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
78103 l_component_type
78104 ,l_component_code
78105 ,l_component_type_code
78106 ,l_component_appl_id
78107 ,l_amb_context_code
78108 ,l_entity_code
78109 ,l_event_class_code
78110 )
78111 ,p_token_3 => 'OWNER'
78112 ,p_value_3 => xla_lookups_pkg.get_meaning(
78113 p_lookup_type => 'XLA_OWNER_TYPE'
78114 ,p_lookup_code => l_component_type_code
78115 )
78116 ,p_token_4 => 'PRODUCT_NAME'
78117 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78118 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78119 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78120 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78121 ,p_ae_header_id => NULL
78122 );
78123
78124 IF (C_LEVEL_ERROR>= g_log_level) THEN
78125 trace
78129 END IF;
78126 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78127 ,p_level => C_LEVEL_ERROR
78128 ,p_module => l_log_module);
78130 END IF;
78131 END IF;
78132 --
78133 --
78134 ------------------------------------------------------------------------------------------------
78135 -- 4219869 Business Flow
78136 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78137 -- Prior Entry. Currently, the following code is always generated.
78138 ------------------------------------------------------------------------------------------------
78139 XLA_AE_LINES_PKG.ValidateCurrentLine;
78140
78141 ------------------------------------------------------------------------------------
78142 -- 4219869 Business Flow
78143 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78144 ------------------------------------------------------------------------------------
78145 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78146
78147 ----------------------------------------------------------------------------------
78148 -- 4219869 Business Flow
78149 -- Update journal entry status -- Need to generate this within IF <condition>
78150 ----------------------------------------------------------------------------------
78151 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78152 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78153 ,p_balance_type_code => l_balance_type_code
78154 );
78155
78156 -------------------------------------------------------------------------------------------
78157 -- 4262811 - Generate the Accrual Reversal lines
78158 -------------------------------------------------------------------------------------------
78159 BEGIN
78160 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78161 (g_array_event(p_event_id).array_value_num('header_index'));
78162 IF l_acc_rev_flag IS NULL THEN
78163 l_acc_rev_flag := 'N';
78164 END IF;
78165 EXCEPTION
78166 WHEN OTHERS THEN
78167 l_acc_rev_flag := 'N';
78168 END;
78169 --
78170 IF (l_acc_rev_flag = 'Y') THEN
78171
78172 -- 4645092 ------------------------------------------------------------------------------
78173 -- To allow MPA report to determine if it should generate report process
78174 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78175 ------------------------------------------------------------------------------------------
78176
78177 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78178 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78179 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
78180 -- call ADRs
78181 -- Bug 4922099
78182 --
78183 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78184 (NVL(l_actual_upg_option, 'N') = 'O') OR
78185 (NVL(l_enc_upg_option, 'N') = 'O')
78186 )
78187 THEN
78188 NULL;
78189 --
78190 --
78191
78192 l_ccid := AcctDerRule_26(
78193 p_application_id => p_application_id
78194 , p_ae_header_id => l_ae_header_id
78195 , p_source_17 => p_source_17
78196 , x_transaction_coa_id => l_adr_transaction_coa_id
78197 , x_accounting_coa_id => l_adr_accounting_coa_id
78198 , x_value_type_code => l_adr_value_type_code
78199 , p_side => 'NA'
78200 );
78201
78202 xla_ae_lines_pkg.set_ccid(
78203 p_code_combination_id => l_ccid
78204 , p_value_type_code => l_adr_value_type_code
78205 , p_transaction_coa_id => l_adr_transaction_coa_id
78206 , p_accounting_coa_id => l_adr_accounting_coa_id
78207 , p_adr_code => 'AP_INVOICE_DIST'
78208 , p_adr_type_code => 'S'
78209 , p_component_type => l_component_type
78210 , p_component_code => l_component_code
78211 , p_component_type_code => l_component_type_code
78212 , p_component_appl_id => l_component_appl_id
78213 , p_amb_context_code => l_amb_context_code
78214 , p_side => 'NA'
78215 );
78216
78217
78218 --
78219 --
78220 END IF;
78221
78222 --
78223 -- Update the line information that should be overwritten
78224 --
78225 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78226 p_header_num => 1);
78227 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
78228
78229 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78230
78231 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
78232 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78233 END IF;
78234
78235 --
78236 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78237 --
78238 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78242 -- 4262811a Switch Sign
78239 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
78240 ELSE
78241 ---------------------------------------------------------------------------------------------------
78243 ---------------------------------------------------------------------------------------------------
78244 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
78245 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78246 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78247 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78248 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78249 -- 5132302
78250 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78251 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78252
78253 END IF;
78254
78255 -- 4955764
78256 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78257 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78258
78259
78260 XLA_AE_LINES_PKG.ValidateCurrentLine;
78261 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78262
78263 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78264 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78265 ,p_balance_type_code => l_balance_type_code);
78266
78267 END IF;
78268
78269 -----------------------------------------------------------------------------------------
78270 -- 4262811 Multiperiod Accounting
78271 -----------------------------------------------------------------------------------------
78272 -- No MPA option is assigned.
78273
78274
78275 END IF;
78276 END IF;
78277 --
78278
78279 --
78280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78281 trace
78282 (p_msg => 'END of AcctLineType_143'
78283 ,p_level => C_LEVEL_PROCEDURE
78284 ,p_module => l_log_module);
78285 END IF;
78286 --
78287 EXCEPTION
78288 WHEN xla_exceptions_pkg.application_exception THEN
78289 RAISE;
78290 WHEN OTHERS THEN
78291 xla_exceptions_pkg.raise_message
78292 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_143');
78293 END AcctLineType_143;
78294 --
78295
78296 ---------------------------------------
78297 --
78298 -- PRIVATE FUNCTION
78299 -- AcctLineType_144
78300 --
78301 ---------------------------------------
78302 PROCEDURE AcctLineType_144 (
78303 p_application_id IN NUMBER
78304 ,p_event_id IN NUMBER
78305 ,p_calculate_acctd_flag IN VARCHAR2
78306 ,p_calculate_g_l_flag IN VARCHAR2
78307 ,p_actual_flag IN OUT VARCHAR2
78308 ,p_balance_type_code OUT VARCHAR2
78309 ,p_gain_or_loss_ref OUT VARCHAR2
78310
78311 --Payment Distribution (Payment Rate) Ledger Amount
78312 , p_source_9 IN NUMBER
78313 --Invoice Distribution Type
78314 , p_source_20 IN VARCHAR2
78315 , p_source_20_meaning IN VARCHAR2
78316 --When to Account for Payment Option
78317 , p_source_38 IN VARCHAR2
78318 --Payment Distribution Type
78319 , p_source_39 IN VARCHAR2
78320 , p_source_39_meaning IN VARCHAR2
78321 --Accounting Reversal Indicator
78322 , p_source_40 IN VARCHAR2
78323 --Payment Distribution Amount
78324 , p_source_41 IN NUMBER
78325 --Business Flow Accounts Payable Application Identifier
78326 , p_source_42 IN NUMBER
78327 --Payment Distribution Identifier
78328 , p_source_47 IN NUMBER
78329 --Distribution Link Type
78330 , p_source_48 IN VARCHAR2
78331 --Payment Currency Code
78332 , p_source_49 IN VARCHAR2
78333 --Override Accounted Amount Indicator
78334 , p_source_53 IN VARCHAR2
78335 , p_source_53_meaning IN VARCHAR2
78336 --Third Party Type
78337 , p_source_56 IN VARCHAR2
78338 --Payment Distribution Reversed Identifier
78339 , p_source_57 IN NUMBER
78340 --Invoice Distribution Tax Line Identifier
78341 , p_source_58 IN NUMBER
78342 --Invoice Distribution Summary Tax Line Identifier
78343 , p_source_59 IN NUMBER
78344 --Payment Type
78345 , p_source_60 IN VARCHAR2
78346 , p_source_60_meaning IN VARCHAR2
78347 --Business Flow Invoice Distribution Type
78348 , p_source_62 IN VARCHAR2
78349 --Business Flow Invoice Entity Code
78350 , p_source_63 IN VARCHAR2
78351 --Business Flow Invoice Distribution Identifier
78352 , p_source_64 IN NUMBER
78353 --Business Flow Invoice Identifier
78354 , p_source_65 IN NUMBER
78355 --Invoice Distribution Tax Distribution Identifier from Tax
78356 , p_source_66 IN NUMBER
78357 --Purchasing Encumbrance Option
78358 , p_source_102 IN VARCHAR2
78359 , p_source_102_meaning IN VARCHAR2
78360 --Invoice Encumbered Option
78361 , p_source_104 IN VARCHAR2
78362 , p_source_104_meaning IN VARCHAR2
78363 )
78364 IS
78365
78366 l_component_type VARCHAR2(80);
78370 l_amb_context_code VARCHAR2(30);
78367 l_component_code VARCHAR2(30);
78368 l_component_type_code VARCHAR2(1);
78369 l_component_appl_id INTEGER;
78371 l_entity_code VARCHAR2(30);
78372 l_event_class_code VARCHAR2(30);
78373 l_ae_header_id NUMBER;
78374 l_event_type_code VARCHAR2(30);
78375 l_line_definition_code VARCHAR2(30);
78376 l_line_definition_owner_code VARCHAR2(1);
78377 --
78378 -- adr variables
78379 l_segment VARCHAR2(30);
78380 l_ccid NUMBER;
78381 l_adr_transaction_coa_id NUMBER;
78382 l_adr_accounting_coa_id NUMBER;
78383 l_adr_flexfield_segment_code VARCHAR2(30);
78384 l_adr_flex_value_set_id NUMBER;
78385 l_adr_value_type_code VARCHAR2(30);
78386 l_adr_value_combination_id NUMBER;
78387 l_adr_value_segment_code VARCHAR2(30);
78388
78389 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
78390 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
78391 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
78392 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
78393
78394 -- 4262811 Variables ------------------------------------------------------------------------------------------
78395 l_entered_amt_idx NUMBER;
78396 l_accted_amt_idx NUMBER;
78397 l_acc_rev_flag VARCHAR2(1);
78398 l_accrual_line_num NUMBER;
78399 l_tmp_amt NUMBER;
78400 l_acc_rev_natural_side_code VARCHAR2(1);
78401
78402 l_num_entries NUMBER;
78403 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
78404 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
78405 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
78406 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
78407 l_recog_line_1 NUMBER;
78408 l_recog_line_2 NUMBER;
78409
78410 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
78411 l_bflow_applied_to_amt NUMBER; -- 5132302
78412 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
78413
78414 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78415
78416 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
78417 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
78418
78419 ---------------------------------------------------------------------------------------------------------------
78420
78421
78422 --
78423 -- bulk performance
78424 --
78425 l_balance_type_code VARCHAR2(1);
78426 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
78427 l_log_module VARCHAR2(240);
78428
78429 --
78430 -- Upgrade strategy
78431 --
78432 l_actual_upg_option VARCHAR2(1);
78433 l_enc_upg_option VARCHAR2(1);
78434
78435 --
78436 BEGIN
78437 --
78438 IF g_log_enabled THEN
78439 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
78440 END IF;
78441 --
78442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78443
78444 trace
78445 (p_msg => 'BEGIN of AcctLineType_144'
78446 ,p_level => C_LEVEL_PROCEDURE
78447 ,p_module => l_log_module);
78448
78449 END IF;
78450 --
78451 l_component_type := 'AMB_JLT';
78452 l_component_code := 'AP_NON_RECOV_TAX_REF_ENC';
78453 l_component_type_code := 'S';
78454 l_component_appl_id := 200;
78455 l_amb_context_code := 'DEFAULT';
78456 l_entity_code := 'AP_PAYMENTS';
78457 l_event_class_code := 'REFUNDS';
78458 l_event_type_code := 'REFUNDS_ALL';
78459 l_line_definition_owner_code := 'S';
78460 l_line_definition_code := 'ENC_REFUNDS_ALL';
78461 --
78462 l_balance_type_code := 'E';
78463 l_segment := NULL;
78464 l_ccid := NULL;
78465 l_adr_transaction_coa_id := NULL;
78466 l_adr_accounting_coa_id := NULL;
78467 l_adr_flexfield_segment_code := NULL;
78468 l_adr_flex_value_set_id := NULL;
78469 l_adr_value_type_code := NULL;
78470 l_adr_value_combination_id := NULL;
78471 l_adr_value_segment_code := NULL;
78472
78473 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
78474 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
78475 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
78476 l_budgetary_control_flag := 'N';
78477
78478 l_bflow_applied_to_amt_idx := NULL; -- 5132302
78479 l_bflow_applied_to_amt := NULL; -- 5132302
78480 l_entered_amt_idx := NULL; -- 4262811
78481 l_accted_amt_idx := NULL; -- 4262811
78482 l_acc_rev_flag := NULL; -- 4262811
78483 l_accrual_line_num := NULL; -- 4262811
78484 l_tmp_amt := NULL; -- 4262811
78485 --
78486
78487 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78488 l_balance_type_code <> 'B' THEN
78489 IF NVL(p_source_38,'
78490 ') <> 'CLEAR_CLEAR' AND
78491 NVL(p_source_20,'
78492 ') = 'NONREC_TAX' AND
78496 ') = 'DISCOUNT') AND
78493 (NVL(p_source_39,'
78494 ') = 'CASH' OR
78495 NVL(p_source_39,'
78497 NVL(p_source_60,'
78498 ') = 'R' AND
78499 NVL(p_source_102,'
78500 ') = 'Y' AND
78501 NVL(p_source_104,'
78502 ') = 'Y'
78503 THEN
78504
78505 --
78506 XLA_AE_LINES_PKG.SetNewLine;
78507
78508 p_balance_type_code := l_balance_type_code;
78509 -- set the flag so later we will know whether the gain loss line needs to be created
78510
78511 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78512 p_actual_flag :='A';
78513 END IF;
78514
78515 --
78516 -- bulk performance
78517 --
78518 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78519 p_header_num => 0); -- 4262811
78520 --
78521 -- set accounting line options
78522 --
78523 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78524 p_natural_side_code => 'D'
78525 , p_gain_or_loss_flag => 'N'
78526 , p_gl_transfer_mode_code => 'S'
78527 , p_acct_entry_type_code => 'E'
78528 , p_switch_side_flag => 'Y'
78529 , p_merge_duplicate_code => 'A'
78530 );
78531 --
78532 l_acc_rev_natural_side_code := 'C'; -- 4262811
78533 --
78534 --
78535 -- set accounting line type info
78536 --
78537 xla_ae_lines_pkg.SetAcctLineType
78538 (p_component_type => l_component_type
78539 ,p_event_type_code => l_event_type_code
78540 ,p_line_definition_owner_code => l_line_definition_owner_code
78541 ,p_line_definition_code => l_line_definition_code
78542 ,p_accounting_line_code => l_component_code
78543 ,p_accounting_line_type_code => l_component_type_code
78544 ,p_accounting_line_appl_id => l_component_appl_id
78545 ,p_amb_context_code => l_amb_context_code
78546 ,p_entity_code => l_entity_code
78547 ,p_event_class_code => l_event_class_code);
78548 --
78549 -- set accounting class
78550 --
78551 xla_ae_lines_pkg.SetAcctClass(
78552 p_accounting_class_code => 'NRTAX'
78553 , p_ae_header_id => l_ae_header_id
78554 );
78555
78556 --
78557 -- set rounding class
78558 --
78559 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78560 'NRTAX';
78561
78562 --
78563 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78564 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78565 --
78566 -- bulk performance
78567 --
78568 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78569
78570 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78571 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78572
78573 -- 4955764
78574 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78575 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78576
78577 -- 4458381 Public Sector Enh
78578
78579 --
78580 -- set accounting attributes for the line type
78581 --
78582 l_entered_amt_idx := 9;
78583 l_accted_amt_idx := 11;
78584 l_bflow_applied_to_amt_idx := NULL; -- 5132302
78585 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78586 l_rec_acct_attrs.array_char_value(1) := p_source_40;
78587 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
78588 l_rec_acct_attrs.array_num_value(2) := p_source_42;
78589 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78590 l_rec_acct_attrs.array_char_value(3) := p_source_62;
78591 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
78592 l_rec_acct_attrs.array_char_value(4) := p_source_63;
78593 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
78594 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
78595 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78596 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
78597 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
78598 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
78599 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
78600 l_rec_acct_attrs.array_char_value(8) := p_source_48;
78601 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
78602 l_rec_acct_attrs.array_num_value(9) := p_source_41;
78603 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
78604 l_rec_acct_attrs.array_char_value(10) := p_source_49;
78605 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
78606 l_rec_acct_attrs.array_num_value(11) := p_source_9;
78607 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
78608 l_rec_acct_attrs.array_char_value(12) := p_source_53;
78609 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
78610 l_rec_acct_attrs.array_char_value(13) := p_source_56;
78611 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
78612 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
78613 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
78617 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
78614 l_rec_acct_attrs.array_char_value(15) := p_source_48;
78615 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
78616 l_rec_acct_attrs.array_num_value(16) := p_source_58;
78618 l_rec_acct_attrs.array_num_value(17) := p_source_66;
78619 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
78620 l_rec_acct_attrs.array_num_value(18) := p_source_59;
78621
78622 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78623 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78624
78625 ---------------------------------------------------------------------------------------------------------------
78626 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78627 ---------------------------------------------------------------------------------------------------------------
78628 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78629
78630 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78631 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78632
78633 IF xla_accounting_cache_pkg.GetValueChar
78634 (p_source_code => 'LEDGER_CATEGORY_CODE'
78635 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78636 AND l_bflow_method_code = 'PRIOR_ENTRY'
78637 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78638 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78639 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78640 )
78641 THEN
78642 xla_ae_lines_pkg.BflowUpgEntry
78643 (p_business_method_code => l_bflow_method_code
78644 ,p_business_class_code => l_bflow_class_code
78645 ,p_balance_type => l_balance_type_code);
78646 ELSE
78647 NULL;
78648 XLA_AE_LINES_PKG.business_flow_validation(
78649 p_business_method_code => l_bflow_method_code
78650 ,p_business_class_code => l_bflow_class_code
78651 ,p_inherit_description_flag => l_inherit_desc_flag);
78652 END IF;
78653
78654 --
78655 -- call analytical criteria
78656 --
78657 -- Inherited Analytical Criteria for business flow method of Prior Entry.
78658 --
78659 -- call description
78660 --
78661 -- No description or it is inherited.
78662 --
78663 -- call ADRs
78664 -- Bug 4922099
78665 --
78666 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78667 (NVL(l_actual_upg_option, 'N') = 'O') OR
78668 (NVL(l_enc_upg_option, 'N') = 'O')
78669 )
78670 THEN
78671 NULL;
78672 --
78673 --
78674
78675 --
78676 --
78677 END IF;
78678 --
78679 -- Bug 4922099
78680 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78681 (NVL(l_enc_upg_option, 'N') = 'O')
78682 ) AND
78683 (l_bflow_method_code = 'PRIOR_ENTRY')
78684 )
78685 THEN
78686 IF
78687 --
78688 1 = 1
78689 --
78690 THEN
78691 xla_accounting_err_pkg.build_message
78692 (p_appli_s_name => 'XLA'
78693 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78694 ,p_token_1 => 'LINE_NUMBER'
78695 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
78696 ,p_token_2 => 'LINE_TYPE_NAME'
78697 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
78698 l_component_type
78699 ,l_component_code
78700 ,l_component_type_code
78701 ,l_component_appl_id
78702 ,l_amb_context_code
78703 ,l_entity_code
78704 ,l_event_class_code
78705 )
78706 ,p_token_3 => 'OWNER'
78707 ,p_value_3 => xla_lookups_pkg.get_meaning(
78708 p_lookup_type => 'XLA_OWNER_TYPE'
78709 ,p_lookup_code => l_component_type_code
78710 )
78711 ,p_token_4 => 'PRODUCT_NAME'
78712 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78713 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78717 );
78714 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78715 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78716 ,p_ae_header_id => NULL
78718
78719 IF (C_LEVEL_ERROR>= g_log_level) THEN
78720 trace
78721 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78722 ,p_level => C_LEVEL_ERROR
78723 ,p_module => l_log_module);
78724 END IF;
78725 END IF;
78726 END IF;
78727 --
78728 --
78729 ------------------------------------------------------------------------------------------------
78730 -- 4219869 Business Flow
78731 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78732 -- Prior Entry. Currently, the following code is always generated.
78733 ------------------------------------------------------------------------------------------------
78734 -- No ValidateCurrentLine for business flow method of Prior Entry
78735
78736 ------------------------------------------------------------------------------------
78737 -- 4219869 Business Flow
78738 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78739 ------------------------------------------------------------------------------------
78740 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78741
78742 ----------------------------------------------------------------------------------
78743 -- 4219869 Business Flow
78744 -- Update journal entry status -- Need to generate this within IF <condition>
78745 ----------------------------------------------------------------------------------
78746 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78747 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78748 ,p_balance_type_code => l_balance_type_code
78749 );
78750
78751 -------------------------------------------------------------------------------------------
78752 -- 4262811 - Generate the Accrual Reversal lines
78753 -------------------------------------------------------------------------------------------
78754 BEGIN
78755 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78756 (g_array_event(p_event_id).array_value_num('header_index'));
78757 IF l_acc_rev_flag IS NULL THEN
78758 l_acc_rev_flag := 'N';
78759 END IF;
78760 EXCEPTION
78761 WHEN OTHERS THEN
78762 l_acc_rev_flag := 'N';
78763 END;
78764 --
78765 IF (l_acc_rev_flag = 'Y') THEN
78766
78767 -- 4645092 ------------------------------------------------------------------------------
78768 -- To allow MPA report to determine if it should generate report process
78769 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78770 ------------------------------------------------------------------------------------------
78771
78772 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78773 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78774 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
78775 -- call ADRs
78776 -- Bug 4922099
78777 --
78778 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78779 (NVL(l_actual_upg_option, 'N') = 'O') OR
78780 (NVL(l_enc_upg_option, 'N') = 'O')
78781 )
78782 THEN
78783 NULL;
78784 --
78785 --
78786
78787 --
78788 --
78789 END IF;
78790
78791 --
78792 -- Update the line information that should be overwritten
78793 --
78794 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78795 p_header_num => 1);
78796 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
78797
78798 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78799
78800 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
78801 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78802 END IF;
78803
78804 --
78805 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78806 --
78807 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78808 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
78809 ELSE
78810 ---------------------------------------------------------------------------------------------------
78811 -- 4262811a Switch Sign
78812 ---------------------------------------------------------------------------------------------------
78813 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
78814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78816 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78817 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78821
78818 -- 5132302
78819 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78820 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78822 END IF;
78823
78824 -- 4955764
78825 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78826 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78827
78828
78829 XLA_AE_LINES_PKG.ValidateCurrentLine;
78830 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78831
78832 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78833 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78834 ,p_balance_type_code => l_balance_type_code);
78835
78836 END IF;
78837
78838 -----------------------------------------------------------------------------------------
78839 -- 4262811 Multiperiod Accounting
78840 -----------------------------------------------------------------------------------------
78841 -- No MPA option is assigned.
78842
78843
78844 END IF;
78845 END IF;
78846 --
78847
78848 --
78849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78850 trace
78851 (p_msg => 'END of AcctLineType_144'
78852 ,p_level => C_LEVEL_PROCEDURE
78853 ,p_module => l_log_module);
78854 END IF;
78855 --
78856 EXCEPTION
78857 WHEN xla_exceptions_pkg.application_exception THEN
78858 RAISE;
78859 WHEN OTHERS THEN
78860 xla_exceptions_pkg.raise_message
78861 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_144');
78862 END AcctLineType_144;
78863 --
78864
78865 ---------------------------------------
78866 --
78867 -- PRIVATE FUNCTION
78868 -- AcctLineType_145
78869 --
78870 ---------------------------------------
78871 PROCEDURE AcctLineType_145 (
78872 p_application_id IN NUMBER
78873 ,p_event_id IN NUMBER
78874 ,p_calculate_acctd_flag IN VARCHAR2
78875 ,p_calculate_g_l_flag IN VARCHAR2
78876 ,p_actual_flag IN OUT VARCHAR2
78877 ,p_balance_type_code OUT VARCHAR2
78878 ,p_gain_or_loss_ref OUT VARCHAR2
78879
78880 --Invoice Distribution Account
78881 , p_source_17 IN NUMBER
78882 --When to Account for Payment Option
78883 , p_source_38 IN VARCHAR2
78884 --Accounting Reversal Indicator
78885 , p_source_40 IN VARCHAR2
78886 --Business Flow Accounts Payable Application Identifier
78887 , p_source_42 IN NUMBER
78888 --Distribution Link Type
78889 , p_source_48 IN VARCHAR2
78890 --Purchase Order Exchange Rate Date
78891 , p_source_50 IN DATE
78892 --Purchase Order Exchange Rate
78893 , p_source_51 IN NUMBER
78894 --Purchase Order Exchange Rate Type
78895 , p_source_52 IN VARCHAR2
78896 --Override Accounted Amount Indicator
78897 , p_source_53 IN VARCHAR2
78898 , p_source_53_meaning IN VARCHAR2
78899 --Third Party Type
78900 , p_source_56 IN VARCHAR2
78901 --Invoice Distribution Tax Line Identifier
78902 , p_source_58 IN NUMBER
78903 --Invoice Distribution Summary Tax Line Identifier
78904 , p_source_59 IN NUMBER
78905 --Invoice Distribution Tax Distribution Identifier from Tax
78906 , p_source_66 IN NUMBER
78907 --Prepayment Distribution Type
78908 , p_source_67 IN VARCHAR2
78909 --Recipient Invoice Distribution Type
78910 , p_source_68 IN VARCHAR2
78911 , p_source_68_meaning IN VARCHAR2
78912 --Prepayment Application Distribution Identifier
78913 , p_source_71 IN NUMBER
78914 --Invoice Identifier
78915 , p_source_72 IN NUMBER
78916 --Business Flow Prepayment Invoice Distribution Type
78917 , p_source_73 IN VARCHAR2
78918 --Business Flow Prepayment Invoice Entity Code
78919 , p_source_74 IN VARCHAR2
78920 --Business Flow Prepayment Invoice Distribution Identifier
78921 , p_source_75 IN NUMBER
78922 --Business Flow Prepayment Invoice Identifier
78923 , p_source_76 IN NUMBER
78924 --Upgrade Encumbrance Credit Account Class
78925 , p_source_77 IN VARCHAR2
78926 --Payables Encumbrance Upgrade Credit Account
78927 , p_source_78 IN NUMBER
78928 --Payables Encumbrance Upgrade Credit Amount
78929 , p_source_79 IN NUMBER
78930 --Invoice Currency Code
78931 , p_source_80 IN VARCHAR2
78932 --Payables Encumbrance Upgrade Credit Base Amount
78933 , p_source_81 IN NUMBER
78934 --Upgrade Encumbrance Debit Account Class
78935 , p_source_82 IN VARCHAR2
78936 --Payables Encumbrance Upgrade Debit Account
78937 , p_source_83 IN NUMBER
78938 --Payables Encumbrance Upgrade Debit Amount
78939 , p_source_84 IN NUMBER
78940 --Payables Encumbrance Upgrade Debit Base Amount
78941 , p_source_85 IN NUMBER
78942 --Payables Encumbrance Upgrade Option
78943 , p_source_86 IN VARCHAR2
78944 --Prepayment Distribution Amount
78945 , p_source_87 IN NUMBER
78946 --Prepayment Clearing Currency Code
78947 , p_source_88 IN VARCHAR2
78948 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
78952 --Deferred Accounting Option
78949 , p_source_89 IN NUMBER
78950 --Deferred Accounting End Date
78951 , p_source_90 IN DATE
78953 , p_source_91 IN VARCHAR2
78954 --Deferred Accounting Start Date
78955 , p_source_92 IN DATE
78956 --Invoice Supplier Identifier
78957 , p_source_93 IN NUMBER
78958 --Invoice Supplier Site Identifier
78959 , p_source_94 IN NUMBER
78960 --Identifier of the Prepayment Application Reversed
78961 , p_source_95 IN NUMBER
78962 --Payables Upgrade Credit Encumbrance Type Identifier
78963 , p_source_96 IN NUMBER
78964 --Payables Upgrade Debit Encumbrance Type Identifier
78965 , p_source_97 IN NUMBER
78966 --Accrue on Receipt Option
78967 , p_source_100 IN VARCHAR2
78968 , p_source_100_meaning IN VARCHAR2
78969 )
78970 IS
78971
78972 l_component_type VARCHAR2(80);
78973 l_component_code VARCHAR2(30);
78974 l_component_type_code VARCHAR2(1);
78975 l_component_appl_id INTEGER;
78976 l_amb_context_code VARCHAR2(30);
78977 l_entity_code VARCHAR2(30);
78978 l_event_class_code VARCHAR2(30);
78979 l_ae_header_id NUMBER;
78980 l_event_type_code VARCHAR2(30);
78981 l_line_definition_code VARCHAR2(30);
78982 l_line_definition_owner_code VARCHAR2(1);
78983 --
78984 -- adr variables
78985 l_segment VARCHAR2(30);
78986 l_ccid NUMBER;
78987 l_adr_transaction_coa_id NUMBER;
78988 l_adr_accounting_coa_id NUMBER;
78989 l_adr_flexfield_segment_code VARCHAR2(30);
78990 l_adr_flex_value_set_id NUMBER;
78991 l_adr_value_type_code VARCHAR2(30);
78992 l_adr_value_combination_id NUMBER;
78993 l_adr_value_segment_code VARCHAR2(30);
78994
78995 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
78996 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
78997 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
78998 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
78999
79000 -- 4262811 Variables ------------------------------------------------------------------------------------------
79001 l_entered_amt_idx NUMBER;
79002 l_accted_amt_idx NUMBER;
79003 l_acc_rev_flag VARCHAR2(1);
79004 l_accrual_line_num NUMBER;
79005 l_tmp_amt NUMBER;
79006 l_acc_rev_natural_side_code VARCHAR2(1);
79007
79008 l_num_entries NUMBER;
79009 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
79010 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
79011 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
79012 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
79013 l_recog_line_1 NUMBER;
79014 l_recog_line_2 NUMBER;
79015
79016 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
79017 l_bflow_applied_to_amt NUMBER; -- 5132302
79018 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
79019
79020 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79021
79022 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
79023 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
79024
79025 ---------------------------------------------------------------------------------------------------------------
79026
79027
79028 --
79029 -- bulk performance
79030 --
79031 l_balance_type_code VARCHAR2(1);
79032 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79033 l_log_module VARCHAR2(240);
79034
79035 --
79036 -- Upgrade strategy
79037 --
79038 l_actual_upg_option VARCHAR2(1);
79039 l_enc_upg_option VARCHAR2(1);
79040
79041 --
79042 BEGIN
79043 --
79044 IF g_log_enabled THEN
79045 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
79046 END IF;
79047 --
79048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79049
79050 trace
79051 (p_msg => 'BEGIN of AcctLineType_145'
79052 ,p_level => C_LEVEL_PROCEDURE
79053 ,p_module => l_log_module);
79054
79055 END IF;
79056 --
79057 l_component_type := 'AMB_JLT';
79058 l_component_code := 'AP_NRTAX_ACCRUAL_PREPAY_CLR';
79059 l_component_type_code := 'S';
79060 l_component_appl_id := 200;
79061 l_amb_context_code := 'DEFAULT';
79062 l_entity_code := 'AP_INVOICES';
79063 l_event_class_code := 'PREPAYMENT APPLICATIONS';
79064 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
79065 l_line_definition_owner_code := 'S';
79066 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
79067 --
79068 l_balance_type_code := 'A';
79069 l_segment := NULL;
79070 l_ccid := NULL;
79071 l_adr_transaction_coa_id := NULL;
79072 l_adr_accounting_coa_id := NULL;
79073 l_adr_flexfield_segment_code := NULL;
79074 l_adr_flex_value_set_id := NULL;
79075 l_adr_value_type_code := NULL;
79076 l_adr_value_combination_id := NULL;
79077 l_adr_value_segment_code := NULL;
79078
79082 l_budgetary_control_flag := 'N';
79079 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
79080 l_bflow_class_code := ''; -- 4219869 Business Flow
79081 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
79083
79084 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79085 l_bflow_applied_to_amt := NULL; -- 5132302
79086 l_entered_amt_idx := NULL; -- 4262811
79087 l_accted_amt_idx := NULL; -- 4262811
79088 l_acc_rev_flag := NULL; -- 4262811
79089 l_accrual_line_num := NULL; -- 4262811
79090 l_tmp_amt := NULL; -- 4262811
79091 --
79092
79093 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79094 l_balance_type_code <> 'B' THEN
79095 IF NVL(p_source_38,'
79096 ') = 'CLEAR_CLEAR' AND
79097 (NVL(p_source_67,'
79098 ') = 'PREPAY APPL' OR
79099 NVL(p_source_67,'
79100 ') = 'PREPAY APPL NONREC TAX' OR
79101 NVL(p_source_67,'
79102 ') = 'PREPAY APPL REC TAX') AND
79103 NVL(p_source_68,'
79104 ') = 'NONREC_TAX' AND
79105 NVL(p_source_100,'
79106 ') = 'Y'
79107 THEN
79108
79109 --
79110 XLA_AE_LINES_PKG.SetNewLine;
79111
79112 p_balance_type_code := l_balance_type_code;
79113 -- set the flag so later we will know whether the gain loss line needs to be created
79114
79115 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79116 p_actual_flag :='A';
79117 END IF;
79118
79119 --
79120 -- bulk performance
79121 --
79122 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79123 p_header_num => 0); -- 4262811
79124 --
79125 -- set accounting line options
79126 --
79127 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79128 p_natural_side_code => 'C'
79129 , p_gain_or_loss_flag => 'N'
79130 , p_gl_transfer_mode_code => 'S'
79131 , p_acct_entry_type_code => 'A'
79132 , p_switch_side_flag => 'Y'
79133 , p_merge_duplicate_code => 'A'
79134 );
79135 --
79136 l_acc_rev_natural_side_code := 'D'; -- 4262811
79137 --
79138 --
79139 -- set accounting line type info
79140 --
79141 xla_ae_lines_pkg.SetAcctLineType
79142 (p_component_type => l_component_type
79143 ,p_event_type_code => l_event_type_code
79144 ,p_line_definition_owner_code => l_line_definition_owner_code
79145 ,p_line_definition_code => l_line_definition_code
79146 ,p_accounting_line_code => l_component_code
79147 ,p_accounting_line_type_code => l_component_type_code
79148 ,p_accounting_line_appl_id => l_component_appl_id
79149 ,p_amb_context_code => l_amb_context_code
79150 ,p_entity_code => l_entity_code
79151 ,p_event_class_code => l_event_class_code);
79152 --
79153 -- set accounting class
79154 --
79155 xla_ae_lines_pkg.SetAcctClass(
79156 p_accounting_class_code => 'ACCRUAL'
79157 , p_ae_header_id => l_ae_header_id
79158 );
79159
79160 --
79161 -- set rounding class
79162 --
79163 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79164 'ACCRUAL';
79165
79166 --
79167 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79168 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79169 --
79170 -- bulk performance
79171 --
79172 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79173
79174 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79175 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79176
79177 -- 4955764
79178 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79179 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79180
79181 -- 4458381 Public Sector Enh
79182
79183 --
79184 -- set accounting attributes for the line type
79185 --
79186 l_entered_amt_idx := 25;
79187 l_accted_amt_idx := 30;
79188 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79189 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79190 l_rec_acct_attrs.array_char_value(1) := p_source_40;
79191 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79192 l_rec_acct_attrs.array_num_value(2) :=
79193 xla_ae_sources_pkg.GetSystemSourceNum(
79194 p_source_code => 'XLA_EVENT_APPL_ID'
79195 , p_source_type_code => 'Y'
79196 , p_source_application_id => 602
79197 );
79198 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79199 l_rec_acct_attrs.array_char_value(3) := p_source_48;
79200 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79201 l_rec_acct_attrs.array_char_value(4) :=
79202 xla_ae_sources_pkg.GetSystemSourceChar(
79203 p_source_code => 'XLA_ENTITY_CODE'
79204 , p_source_type_code => 'Y'
79205 , p_source_application_id => 602
79206 );
79210 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
79207 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79208 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
79209 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79211 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79212 l_rec_acct_attrs.array_num_value(7) := p_source_42;
79213 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79214 l_rec_acct_attrs.array_char_value(8) := p_source_73;
79215 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79216 l_rec_acct_attrs.array_char_value(9) := p_source_74;
79217 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79218 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
79219 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79220 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
79221 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79222 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
79223 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79224 l_rec_acct_attrs.array_char_value(13) := p_source_48;
79225 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79226 l_rec_acct_attrs.array_char_value(14) := p_source_77;
79227 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79228 l_rec_acct_attrs.array_num_value(15) := p_source_78;
79229 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79230 l_rec_acct_attrs.array_num_value(16) := p_source_79;
79231 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79232 l_rec_acct_attrs.array_char_value(17) := p_source_80;
79233 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79234 l_rec_acct_attrs.array_num_value(18) := p_source_81;
79235 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79236 l_rec_acct_attrs.array_char_value(19) := p_source_82;
79237 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79238 l_rec_acct_attrs.array_num_value(20) := p_source_83;
79239 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79240 l_rec_acct_attrs.array_num_value(21) := p_source_84;
79241 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79242 l_rec_acct_attrs.array_char_value(22) := p_source_80;
79243 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79244 l_rec_acct_attrs.array_num_value(23) := p_source_85;
79245 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
79246 l_rec_acct_attrs.array_char_value(24) := p_source_86;
79247 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
79248 l_rec_acct_attrs.array_num_value(25) := p_source_87;
79249 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
79250 l_rec_acct_attrs.array_char_value(26) := p_source_88;
79251 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
79252 l_rec_acct_attrs.array_date_value(27) := p_source_50;
79253 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
79254 l_rec_acct_attrs.array_num_value(28) := p_source_51;
79255 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
79256 l_rec_acct_attrs.array_char_value(29) := p_source_52;
79257 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
79258 l_rec_acct_attrs.array_num_value(30) := p_source_89;
79259 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
79260 l_rec_acct_attrs.array_date_value(31) := p_source_90;
79261 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
79262 l_rec_acct_attrs.array_char_value(32) := p_source_91;
79263 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
79264 l_rec_acct_attrs.array_date_value(33) := p_source_92;
79265 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
79266 l_rec_acct_attrs.array_char_value(34) := p_source_53;
79267 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
79268 l_rec_acct_attrs.array_num_value(35) := p_source_93;
79269 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
79270 l_rec_acct_attrs.array_num_value(36) := p_source_94;
79271 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
79272 l_rec_acct_attrs.array_char_value(37) := p_source_56;
79273 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
79274 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
79275 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
79276 l_rec_acct_attrs.array_char_value(39) := p_source_48;
79277 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
79278 l_rec_acct_attrs.array_num_value(40) := p_source_58;
79279 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
79280 l_rec_acct_attrs.array_num_value(41) := p_source_66;
79281 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
79282 l_rec_acct_attrs.array_num_value(42) := p_source_59;
79283 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
79284 l_rec_acct_attrs.array_num_value(43) := p_source_96;
79285 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
79286 l_rec_acct_attrs.array_num_value(44) := p_source_97;
79287
79288 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79289 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79290
79291 ---------------------------------------------------------------------------------------------------------------
79295
79292 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79293 ---------------------------------------------------------------------------------------------------------------
79294 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79296 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79297 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79298
79299 IF xla_accounting_cache_pkg.GetValueChar
79300 (p_source_code => 'LEDGER_CATEGORY_CODE'
79301 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79302 AND l_bflow_method_code = 'PRIOR_ENTRY'
79303 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79304 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79305 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79306 )
79307 THEN
79308 xla_ae_lines_pkg.BflowUpgEntry
79309 (p_business_method_code => l_bflow_method_code
79310 ,p_business_class_code => l_bflow_class_code
79311 ,p_balance_type => l_balance_type_code);
79312 ELSE
79313 NULL;
79314 -- No business flow processing for business flow method of NONE.
79315 END IF;
79316
79317 --
79318 -- call analytical criteria
79319 --
79320
79321 --
79322 -- call description
79323 --
79324 -- No description or it is inherited.
79325 --
79326 -- call ADRs
79327 -- Bug 4922099
79328 --
79329 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79330 (NVL(l_actual_upg_option, 'N') = 'O') OR
79331 (NVL(l_enc_upg_option, 'N') = 'O')
79332 )
79333 THEN
79334 NULL;
79335 --
79336 --
79337
79338 l_ccid := AcctDerRule_26(
79339 p_application_id => p_application_id
79340 , p_ae_header_id => l_ae_header_id
79341 , p_source_17 => p_source_17
79342 , x_transaction_coa_id => l_adr_transaction_coa_id
79343 , x_accounting_coa_id => l_adr_accounting_coa_id
79344 , x_value_type_code => l_adr_value_type_code
79345 , p_side => 'NA'
79346 );
79347
79348 xla_ae_lines_pkg.set_ccid(
79349 p_code_combination_id => l_ccid
79350 , p_value_type_code => l_adr_value_type_code
79351 , p_transaction_coa_id => l_adr_transaction_coa_id
79352 , p_accounting_coa_id => l_adr_accounting_coa_id
79353 , p_adr_code => 'AP_INVOICE_DIST'
79354 , p_adr_type_code => 'S'
79355 , p_component_type => l_component_type
79356 , p_component_code => l_component_code
79357 , p_component_type_code => l_component_type_code
79358 , p_component_appl_id => l_component_appl_id
79359 , p_amb_context_code => l_amb_context_code
79360 , p_side => 'NA'
79361 );
79362
79363
79364 --
79365 --
79366 END IF;
79367 --
79368 -- Bug 4922099
79369 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79370 (NVL(l_enc_upg_option, 'N') = 'O')
79371 ) AND
79372 (l_bflow_method_code = 'PRIOR_ENTRY')
79373 )
79374 THEN
79375 IF
79376 --
79377 1 = 2
79378 --
79379 THEN
79380 xla_accounting_err_pkg.build_message
79381 (p_appli_s_name => 'XLA'
79382 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79383 ,p_token_1 => 'LINE_NUMBER'
79384 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
79385 ,p_token_2 => 'LINE_TYPE_NAME'
79386 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
79387 l_component_type
79388 ,l_component_code
79389 ,l_component_type_code
79390 ,l_component_appl_id
79391 ,l_amb_context_code
79392 ,l_entity_code
79393 ,l_event_class_code
79394 )
79395 ,p_token_3 => 'OWNER'
79396 ,p_value_3 => xla_lookups_pkg.get_meaning(
79397 p_lookup_type => 'XLA_OWNER_TYPE'
79398 ,p_lookup_code => l_component_type_code
79399 )
79400 ,p_token_4 => 'PRODUCT_NAME'
79404 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79401 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79402 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79403 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79405 ,p_ae_header_id => NULL
79406 );
79407
79408 IF (C_LEVEL_ERROR>= g_log_level) THEN
79409 trace
79410 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79411 ,p_level => C_LEVEL_ERROR
79412 ,p_module => l_log_module);
79413 END IF;
79414 END IF;
79415 END IF;
79416 --
79417 --
79418 ------------------------------------------------------------------------------------------------
79419 -- 4219869 Business Flow
79420 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79421 -- Prior Entry. Currently, the following code is always generated.
79422 ------------------------------------------------------------------------------------------------
79423 XLA_AE_LINES_PKG.ValidateCurrentLine;
79424
79425 ------------------------------------------------------------------------------------
79426 -- 4219869 Business Flow
79427 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79428 ------------------------------------------------------------------------------------
79429 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79430
79431 ----------------------------------------------------------------------------------
79432 -- 4219869 Business Flow
79433 -- Update journal entry status -- Need to generate this within IF <condition>
79434 ----------------------------------------------------------------------------------
79435 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79436 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79437 ,p_balance_type_code => l_balance_type_code
79438 );
79439
79440 -------------------------------------------------------------------------------------------
79441 -- 4262811 - Generate the Accrual Reversal lines
79442 -------------------------------------------------------------------------------------------
79443 BEGIN
79444 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79445 (g_array_event(p_event_id).array_value_num('header_index'));
79446 IF l_acc_rev_flag IS NULL THEN
79447 l_acc_rev_flag := 'N';
79448 END IF;
79449 EXCEPTION
79450 WHEN OTHERS THEN
79451 l_acc_rev_flag := 'N';
79452 END;
79453 --
79454 IF (l_acc_rev_flag = 'Y') THEN
79455
79456 -- 4645092 ------------------------------------------------------------------------------
79457 -- To allow MPA report to determine if it should generate report process
79458 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79459 ------------------------------------------------------------------------------------------
79460
79461 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79462 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79463 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
79464 -- call ADRs
79465 -- Bug 4922099
79466 --
79467 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79468 (NVL(l_actual_upg_option, 'N') = 'O') OR
79469 (NVL(l_enc_upg_option, 'N') = 'O')
79470 )
79471 THEN
79472 NULL;
79473 --
79474 --
79475
79476 l_ccid := AcctDerRule_26(
79477 p_application_id => p_application_id
79478 , p_ae_header_id => l_ae_header_id
79479 , p_source_17 => p_source_17
79480 , x_transaction_coa_id => l_adr_transaction_coa_id
79481 , x_accounting_coa_id => l_adr_accounting_coa_id
79482 , x_value_type_code => l_adr_value_type_code
79483 , p_side => 'NA'
79484 );
79485
79486 xla_ae_lines_pkg.set_ccid(
79487 p_code_combination_id => l_ccid
79488 , p_value_type_code => l_adr_value_type_code
79489 , p_transaction_coa_id => l_adr_transaction_coa_id
79490 , p_accounting_coa_id => l_adr_accounting_coa_id
79491 , p_adr_code => 'AP_INVOICE_DIST'
79492 , p_adr_type_code => 'S'
79493 , p_component_type => l_component_type
79494 , p_component_code => l_component_code
79495 , p_component_type_code => l_component_type_code
79496 , p_component_appl_id => l_component_appl_id
79497 , p_amb_context_code => l_amb_context_code
79498 , p_side => 'NA'
79499 );
79500
79501
79502 --
79503 --
79504 END IF;
79505
79506 --
79507 -- Update the line information that should be overwritten
79508 --
79509 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79510 p_header_num => 1);
79514
79511 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
79512
79513 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79515 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
79516 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79517 END IF;
79518
79519 --
79520 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79521 --
79522 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79523 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
79524 ELSE
79525 ---------------------------------------------------------------------------------------------------
79526 -- 4262811a Switch Sign
79527 ---------------------------------------------------------------------------------------------------
79528 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
79529 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79530 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79531 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79532 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79533 -- 5132302
79534 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79535 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79536
79537 END IF;
79538
79539 -- 4955764
79540 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79541 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79542
79543
79544 XLA_AE_LINES_PKG.ValidateCurrentLine;
79545 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79546
79547 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79548 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79549 ,p_balance_type_code => l_balance_type_code);
79550
79551 END IF;
79552
79553 -----------------------------------------------------------------------------------------
79554 -- 4262811 Multiperiod Accounting
79555 -----------------------------------------------------------------------------------------
79556 -- No MPA option is assigned.
79557
79558
79559 END IF;
79560 END IF;
79561 --
79562
79563 --
79564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79565 trace
79566 (p_msg => 'END of AcctLineType_145'
79567 ,p_level => C_LEVEL_PROCEDURE
79568 ,p_module => l_log_module);
79569 END IF;
79570 --
79571 EXCEPTION
79572 WHEN xla_exceptions_pkg.application_exception THEN
79573 RAISE;
79574 WHEN OTHERS THEN
79575 xla_exceptions_pkg.raise_message
79576 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_145');
79577 END AcctLineType_145;
79578 --
79579
79580 ---------------------------------------
79581 --
79582 -- PRIVATE FUNCTION
79583 -- AcctLineType_146
79584 --
79585 ---------------------------------------
79586 PROCEDURE AcctLineType_146 (
79587 p_application_id IN NUMBER
79588 ,p_event_id IN NUMBER
79589 ,p_calculate_acctd_flag IN VARCHAR2
79590 ,p_calculate_g_l_flag IN VARCHAR2
79591 ,p_actual_flag IN OUT VARCHAR2
79592 ,p_balance_type_code OUT VARCHAR2
79593 ,p_gain_or_loss_ref OUT VARCHAR2
79594
79595 --Invoice Distribution Account
79596 , p_source_17 IN NUMBER
79597 --When to Account for Payment Option
79598 , p_source_38 IN VARCHAR2
79599 --Accounting Reversal Indicator
79600 , p_source_40 IN VARCHAR2
79601 --Business Flow Accounts Payable Application Identifier
79602 , p_source_42 IN NUMBER
79603 --Distribution Link Type
79604 , p_source_48 IN VARCHAR2
79605 --Purchase Order Exchange Rate Date
79606 , p_source_50 IN DATE
79607 --Purchase Order Exchange Rate
79608 , p_source_51 IN NUMBER
79609 --Purchase Order Exchange Rate Type
79610 , p_source_52 IN VARCHAR2
79611 --Override Accounted Amount Indicator
79612 , p_source_53 IN VARCHAR2
79613 , p_source_53_meaning IN VARCHAR2
79614 --Third Party Type
79615 , p_source_56 IN VARCHAR2
79616 --Invoice Distribution Tax Line Identifier
79617 , p_source_58 IN NUMBER
79618 --Invoice Distribution Summary Tax Line Identifier
79619 , p_source_59 IN NUMBER
79620 --Invoice Distribution Tax Distribution Identifier from Tax
79621 , p_source_66 IN NUMBER
79622 --Prepayment Distribution Type
79623 , p_source_67 IN VARCHAR2
79624 --Recipient Invoice Distribution Type
79625 , p_source_68 IN VARCHAR2
79626 , p_source_68_meaning IN VARCHAR2
79627 --Prepayment Application Distribution Identifier
79628 , p_source_71 IN NUMBER
79629 --Invoice Identifier
79630 , p_source_72 IN NUMBER
79634 , p_source_74 IN VARCHAR2
79631 --Business Flow Prepayment Invoice Distribution Type
79632 , p_source_73 IN VARCHAR2
79633 --Business Flow Prepayment Invoice Entity Code
79635 --Business Flow Prepayment Invoice Distribution Identifier
79636 , p_source_75 IN NUMBER
79637 --Business Flow Prepayment Invoice Identifier
79638 , p_source_76 IN NUMBER
79639 --Upgrade Encumbrance Credit Account Class
79640 , p_source_77 IN VARCHAR2
79641 --Payables Encumbrance Upgrade Credit Account
79642 , p_source_78 IN NUMBER
79643 --Payables Encumbrance Upgrade Credit Amount
79644 , p_source_79 IN NUMBER
79645 --Invoice Currency Code
79646 , p_source_80 IN VARCHAR2
79647 --Payables Encumbrance Upgrade Credit Base Amount
79648 , p_source_81 IN NUMBER
79649 --Upgrade Encumbrance Debit Account Class
79650 , p_source_82 IN VARCHAR2
79651 --Payables Encumbrance Upgrade Debit Account
79652 , p_source_83 IN NUMBER
79653 --Payables Encumbrance Upgrade Debit Amount
79654 , p_source_84 IN NUMBER
79655 --Payables Encumbrance Upgrade Debit Base Amount
79656 , p_source_85 IN NUMBER
79657 --Payables Encumbrance Upgrade Option
79658 , p_source_86 IN VARCHAR2
79659 --Prepayment Distribution Amount
79660 , p_source_87 IN NUMBER
79661 --Deferred Accounting End Date
79662 , p_source_90 IN DATE
79663 --Deferred Accounting Option
79664 , p_source_91 IN VARCHAR2
79665 --Deferred Accounting Start Date
79666 , p_source_92 IN DATE
79667 --Invoice Supplier Identifier
79668 , p_source_93 IN NUMBER
79669 --Invoice Supplier Site Identifier
79670 , p_source_94 IN NUMBER
79671 --Identifier of the Prepayment Application Reversed
79672 , p_source_95 IN NUMBER
79673 --Payables Upgrade Credit Encumbrance Type Identifier
79674 , p_source_96 IN NUMBER
79675 --Payables Upgrade Debit Encumbrance Type Identifier
79676 , p_source_97 IN NUMBER
79677 --Prepayment Payment Currency Code
79678 , p_source_98 IN VARCHAR2
79679 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
79680 , p_source_99 IN NUMBER
79681 --Accrue on Receipt Option
79682 , p_source_100 IN VARCHAR2
79683 , p_source_100_meaning IN VARCHAR2
79684 )
79685 IS
79686
79687 l_component_type VARCHAR2(80);
79688 l_component_code VARCHAR2(30);
79689 l_component_type_code VARCHAR2(1);
79690 l_component_appl_id INTEGER;
79691 l_amb_context_code VARCHAR2(30);
79692 l_entity_code VARCHAR2(30);
79693 l_event_class_code VARCHAR2(30);
79694 l_ae_header_id NUMBER;
79695 l_event_type_code VARCHAR2(30);
79696 l_line_definition_code VARCHAR2(30);
79697 l_line_definition_owner_code VARCHAR2(1);
79698 --
79699 -- adr variables
79700 l_segment VARCHAR2(30);
79701 l_ccid NUMBER;
79702 l_adr_transaction_coa_id NUMBER;
79703 l_adr_accounting_coa_id NUMBER;
79704 l_adr_flexfield_segment_code VARCHAR2(30);
79705 l_adr_flex_value_set_id NUMBER;
79706 l_adr_value_type_code VARCHAR2(30);
79707 l_adr_value_combination_id NUMBER;
79708 l_adr_value_segment_code VARCHAR2(30);
79709
79710 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
79711 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
79712 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
79713 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
79714
79715 -- 4262811 Variables ------------------------------------------------------------------------------------------
79716 l_entered_amt_idx NUMBER;
79717 l_accted_amt_idx NUMBER;
79718 l_acc_rev_flag VARCHAR2(1);
79719 l_accrual_line_num NUMBER;
79720 l_tmp_amt NUMBER;
79721 l_acc_rev_natural_side_code VARCHAR2(1);
79722
79723 l_num_entries NUMBER;
79724 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
79725 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
79726 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
79727 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
79728 l_recog_line_1 NUMBER;
79729 l_recog_line_2 NUMBER;
79730
79731 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
79732 l_bflow_applied_to_amt NUMBER; -- 5132302
79733 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
79734
79735 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79736
79737 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
79738 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
79739
79740 ---------------------------------------------------------------------------------------------------------------
79741
79742
79743 --
79744 -- bulk performance
79745 --
79746 l_balance_type_code VARCHAR2(1);
79747 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79748 l_log_module VARCHAR2(240);
79749
79750 --
79751 -- Upgrade strategy
79752 --
79753 l_actual_upg_option VARCHAR2(1);
79754 l_enc_upg_option VARCHAR2(1);
79755
79759 IF g_log_enabled THEN
79756 --
79757 BEGIN
79758 --
79760 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
79761 END IF;
79762 --
79763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79764
79765 trace
79766 (p_msg => 'BEGIN of AcctLineType_146'
79767 ,p_level => C_LEVEL_PROCEDURE
79768 ,p_module => l_log_module);
79769
79770 END IF;
79771 --
79772 l_component_type := 'AMB_JLT';
79773 l_component_code := 'AP_NRTAX_ACCRUAL_PREPAY_PAY';
79774 l_component_type_code := 'S';
79775 l_component_appl_id := 200;
79776 l_amb_context_code := 'DEFAULT';
79777 l_entity_code := 'AP_INVOICES';
79778 l_event_class_code := 'PREPAYMENT APPLICATIONS';
79779 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
79780 l_line_definition_owner_code := 'S';
79781 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
79782 --
79783 l_balance_type_code := 'A';
79784 l_segment := NULL;
79785 l_ccid := NULL;
79786 l_adr_transaction_coa_id := NULL;
79787 l_adr_accounting_coa_id := NULL;
79788 l_adr_flexfield_segment_code := NULL;
79789 l_adr_flex_value_set_id := NULL;
79790 l_adr_value_type_code := NULL;
79791 l_adr_value_combination_id := NULL;
79792 l_adr_value_segment_code := NULL;
79793
79794 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
79795 l_bflow_class_code := ''; -- 4219869 Business Flow
79796 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
79797 l_budgetary_control_flag := 'N';
79798
79799 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79800 l_bflow_applied_to_amt := NULL; -- 5132302
79801 l_entered_amt_idx := NULL; -- 4262811
79802 l_accted_amt_idx := NULL; -- 4262811
79803 l_acc_rev_flag := NULL; -- 4262811
79804 l_accrual_line_num := NULL; -- 4262811
79805 l_tmp_amt := NULL; -- 4262811
79806 --
79807
79808 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79809 l_balance_type_code <> 'B' THEN
79810 IF NVL(p_source_38,'
79811 ') <> 'CLEAR_CLEAR' AND
79812 (NVL(p_source_67,'
79813 ') = 'PREPAY APPL' OR
79814 NVL(p_source_67,'
79815 ') = 'PREPAY APPL NONREC TAX' OR
79816 NVL(p_source_67,'
79817 ') = 'PREPAY APPL REC TAX') AND
79818 NVL(p_source_68,'
79819 ') = 'NONREC_TAX' AND
79820 NVL(p_source_100,'
79821 ') = 'Y'
79822 THEN
79823
79824 --
79825 XLA_AE_LINES_PKG.SetNewLine;
79826
79827 p_balance_type_code := l_balance_type_code;
79828 -- set the flag so later we will know whether the gain loss line needs to be created
79829
79830 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79831 p_actual_flag :='A';
79832 END IF;
79833
79834 --
79835 -- bulk performance
79836 --
79837 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79838 p_header_num => 0); -- 4262811
79839 --
79840 -- set accounting line options
79841 --
79842 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79843 p_natural_side_code => 'C'
79844 , p_gain_or_loss_flag => 'N'
79845 , p_gl_transfer_mode_code => 'S'
79846 , p_acct_entry_type_code => 'A'
79847 , p_switch_side_flag => 'Y'
79848 , p_merge_duplicate_code => 'A'
79849 );
79850 --
79851 l_acc_rev_natural_side_code := 'D'; -- 4262811
79852 --
79853 --
79854 -- set accounting line type info
79855 --
79856 xla_ae_lines_pkg.SetAcctLineType
79857 (p_component_type => l_component_type
79858 ,p_event_type_code => l_event_type_code
79859 ,p_line_definition_owner_code => l_line_definition_owner_code
79860 ,p_line_definition_code => l_line_definition_code
79861 ,p_accounting_line_code => l_component_code
79862 ,p_accounting_line_type_code => l_component_type_code
79863 ,p_accounting_line_appl_id => l_component_appl_id
79864 ,p_amb_context_code => l_amb_context_code
79865 ,p_entity_code => l_entity_code
79866 ,p_event_class_code => l_event_class_code);
79867 --
79868 -- set accounting class
79869 --
79870 xla_ae_lines_pkg.SetAcctClass(
79871 p_accounting_class_code => 'ACCRUAL'
79872 , p_ae_header_id => l_ae_header_id
79873 );
79874
79875 --
79876 -- set rounding class
79877 --
79878 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79879 'ACCRUAL';
79880
79881 --
79882 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79883 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79884 --
79885 -- bulk performance
79886 --
79887 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79888
79889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79893 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79890 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79891
79892 -- 4955764
79894 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79895
79896 -- 4458381 Public Sector Enh
79897
79898 --
79899 -- set accounting attributes for the line type
79900 --
79901 l_entered_amt_idx := 25;
79902 l_accted_amt_idx := 30;
79903 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79904 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79905 l_rec_acct_attrs.array_char_value(1) := p_source_40;
79906 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79907 l_rec_acct_attrs.array_num_value(2) :=
79908 xla_ae_sources_pkg.GetSystemSourceNum(
79909 p_source_code => 'XLA_EVENT_APPL_ID'
79910 , p_source_type_code => 'Y'
79911 , p_source_application_id => 602
79912 );
79913 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79914 l_rec_acct_attrs.array_char_value(3) := p_source_48;
79915 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79916 l_rec_acct_attrs.array_char_value(4) :=
79917 xla_ae_sources_pkg.GetSystemSourceChar(
79918 p_source_code => 'XLA_ENTITY_CODE'
79919 , p_source_type_code => 'Y'
79920 , p_source_application_id => 602
79921 );
79922 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79923 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
79924 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79925 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
79926 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79927 l_rec_acct_attrs.array_num_value(7) := p_source_42;
79928 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79929 l_rec_acct_attrs.array_char_value(8) := p_source_73;
79930 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79931 l_rec_acct_attrs.array_char_value(9) := p_source_74;
79932 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79933 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
79934 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79935 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
79936 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79937 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
79938 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79939 l_rec_acct_attrs.array_char_value(13) := p_source_48;
79940 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79941 l_rec_acct_attrs.array_char_value(14) := p_source_77;
79942 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79943 l_rec_acct_attrs.array_num_value(15) := p_source_78;
79944 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79945 l_rec_acct_attrs.array_num_value(16) := p_source_79;
79946 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79947 l_rec_acct_attrs.array_char_value(17) := p_source_80;
79948 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79949 l_rec_acct_attrs.array_num_value(18) := p_source_81;
79950 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79951 l_rec_acct_attrs.array_char_value(19) := p_source_82;
79952 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79953 l_rec_acct_attrs.array_num_value(20) := p_source_83;
79954 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79955 l_rec_acct_attrs.array_num_value(21) := p_source_84;
79956 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79957 l_rec_acct_attrs.array_char_value(22) := p_source_80;
79958 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79959 l_rec_acct_attrs.array_num_value(23) := p_source_85;
79960 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
79961 l_rec_acct_attrs.array_char_value(24) := p_source_86;
79962 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
79963 l_rec_acct_attrs.array_num_value(25) := p_source_87;
79964 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
79965 l_rec_acct_attrs.array_char_value(26) := p_source_98;
79966 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
79967 l_rec_acct_attrs.array_date_value(27) := p_source_50;
79968 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
79969 l_rec_acct_attrs.array_num_value(28) := p_source_51;
79970 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
79971 l_rec_acct_attrs.array_char_value(29) := p_source_52;
79972 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
79973 l_rec_acct_attrs.array_num_value(30) := p_source_99;
79974 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
79975 l_rec_acct_attrs.array_date_value(31) := p_source_90;
79976 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
79977 l_rec_acct_attrs.array_char_value(32) := p_source_91;
79978 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
79979 l_rec_acct_attrs.array_date_value(33) := p_source_92;
79980 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
79981 l_rec_acct_attrs.array_char_value(34) := p_source_53;
79985 l_rec_acct_attrs.array_num_value(36) := p_source_94;
79982 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
79983 l_rec_acct_attrs.array_num_value(35) := p_source_93;
79984 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
79986 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
79987 l_rec_acct_attrs.array_char_value(37) := p_source_56;
79988 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
79989 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
79990 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
79991 l_rec_acct_attrs.array_char_value(39) := p_source_48;
79992 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
79993 l_rec_acct_attrs.array_num_value(40) := p_source_58;
79994 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
79995 l_rec_acct_attrs.array_num_value(41) := p_source_66;
79996 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
79997 l_rec_acct_attrs.array_num_value(42) := p_source_59;
79998 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
79999 l_rec_acct_attrs.array_num_value(43) := p_source_96;
80000 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80001 l_rec_acct_attrs.array_num_value(44) := p_source_97;
80002
80003 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80004 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80005
80006 ---------------------------------------------------------------------------------------------------------------
80007 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80008 ---------------------------------------------------------------------------------------------------------------
80009 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80010
80011 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80012 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80013
80014 IF xla_accounting_cache_pkg.GetValueChar
80015 (p_source_code => 'LEDGER_CATEGORY_CODE'
80016 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80017 AND l_bflow_method_code = 'PRIOR_ENTRY'
80018 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80019 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80020 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80021 )
80022 THEN
80023 xla_ae_lines_pkg.BflowUpgEntry
80024 (p_business_method_code => l_bflow_method_code
80025 ,p_business_class_code => l_bflow_class_code
80026 ,p_balance_type => l_balance_type_code);
80027 ELSE
80028 NULL;
80029 -- No business flow processing for business flow method of NONE.
80030 END IF;
80031
80032 --
80033 -- call analytical criteria
80034 --
80035
80036 --
80037 -- call description
80038 --
80039 -- No description or it is inherited.
80040 --
80041 -- call ADRs
80042 -- Bug 4922099
80043 --
80044 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80045 (NVL(l_actual_upg_option, 'N') = 'O') OR
80046 (NVL(l_enc_upg_option, 'N') = 'O')
80047 )
80048 THEN
80049 NULL;
80050 --
80051 --
80052
80053 l_ccid := AcctDerRule_26(
80054 p_application_id => p_application_id
80055 , p_ae_header_id => l_ae_header_id
80056 , p_source_17 => p_source_17
80057 , x_transaction_coa_id => l_adr_transaction_coa_id
80058 , x_accounting_coa_id => l_adr_accounting_coa_id
80059 , x_value_type_code => l_adr_value_type_code
80060 , p_side => 'NA'
80061 );
80062
80063 xla_ae_lines_pkg.set_ccid(
80064 p_code_combination_id => l_ccid
80065 , p_value_type_code => l_adr_value_type_code
80066 , p_transaction_coa_id => l_adr_transaction_coa_id
80067 , p_accounting_coa_id => l_adr_accounting_coa_id
80068 , p_adr_code => 'AP_INVOICE_DIST'
80069 , p_adr_type_code => 'S'
80070 , p_component_type => l_component_type
80071 , p_component_code => l_component_code
80072 , p_component_type_code => l_component_type_code
80073 , p_component_appl_id => l_component_appl_id
80074 , p_amb_context_code => l_amb_context_code
80075 , p_side => 'NA'
80076 );
80077
80078
80079 --
80080 --
80081 END IF;
80082 --
80083 -- Bug 4922099
80084 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80085 (NVL(l_enc_upg_option, 'N') = 'O')
80086 ) AND
80087 (l_bflow_method_code = 'PRIOR_ENTRY')
80088 )
80089 THEN
80090 IF
80091 --
80092 1 = 2
80093 --
80094 THEN
80095 xla_accounting_err_pkg.build_message
80096 (p_appli_s_name => 'XLA'
80097 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80101 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
80098 ,p_token_1 => 'LINE_NUMBER'
80099 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
80100 ,p_token_2 => 'LINE_TYPE_NAME'
80102 l_component_type
80103 ,l_component_code
80104 ,l_component_type_code
80105 ,l_component_appl_id
80106 ,l_amb_context_code
80107 ,l_entity_code
80108 ,l_event_class_code
80109 )
80110 ,p_token_3 => 'OWNER'
80111 ,p_value_3 => xla_lookups_pkg.get_meaning(
80112 p_lookup_type => 'XLA_OWNER_TYPE'
80113 ,p_lookup_code => l_component_type_code
80114 )
80115 ,p_token_4 => 'PRODUCT_NAME'
80116 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80117 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80118 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80119 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80120 ,p_ae_header_id => NULL
80121 );
80122
80123 IF (C_LEVEL_ERROR>= g_log_level) THEN
80124 trace
80125 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80126 ,p_level => C_LEVEL_ERROR
80127 ,p_module => l_log_module);
80128 END IF;
80129 END IF;
80130 END IF;
80131 --
80132 --
80133 ------------------------------------------------------------------------------------------------
80134 -- 4219869 Business Flow
80135 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80136 -- Prior Entry. Currently, the following code is always generated.
80137 ------------------------------------------------------------------------------------------------
80138 XLA_AE_LINES_PKG.ValidateCurrentLine;
80139
80140 ------------------------------------------------------------------------------------
80141 -- 4219869 Business Flow
80142 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80143 ------------------------------------------------------------------------------------
80144 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80145
80146 ----------------------------------------------------------------------------------
80147 -- 4219869 Business Flow
80148 -- Update journal entry status -- Need to generate this within IF <condition>
80149 ----------------------------------------------------------------------------------
80150 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80151 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80152 ,p_balance_type_code => l_balance_type_code
80153 );
80154
80155 -------------------------------------------------------------------------------------------
80156 -- 4262811 - Generate the Accrual Reversal lines
80157 -------------------------------------------------------------------------------------------
80158 BEGIN
80159 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80160 (g_array_event(p_event_id).array_value_num('header_index'));
80161 IF l_acc_rev_flag IS NULL THEN
80162 l_acc_rev_flag := 'N';
80163 END IF;
80164 EXCEPTION
80165 WHEN OTHERS THEN
80166 l_acc_rev_flag := 'N';
80167 END;
80168 --
80169 IF (l_acc_rev_flag = 'Y') THEN
80170
80171 -- 4645092 ------------------------------------------------------------------------------
80172 -- To allow MPA report to determine if it should generate report process
80173 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80174 ------------------------------------------------------------------------------------------
80175
80176 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80177 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80178 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
80179 -- call ADRs
80180 -- Bug 4922099
80181 --
80182 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80183 (NVL(l_actual_upg_option, 'N') = 'O') OR
80184 (NVL(l_enc_upg_option, 'N') = 'O')
80185 )
80186 THEN
80187 NULL;
80188 --
80189 --
80190
80194 , p_source_17 => p_source_17
80191 l_ccid := AcctDerRule_26(
80192 p_application_id => p_application_id
80193 , p_ae_header_id => l_ae_header_id
80195 , x_transaction_coa_id => l_adr_transaction_coa_id
80196 , x_accounting_coa_id => l_adr_accounting_coa_id
80197 , x_value_type_code => l_adr_value_type_code
80198 , p_side => 'NA'
80199 );
80200
80201 xla_ae_lines_pkg.set_ccid(
80202 p_code_combination_id => l_ccid
80203 , p_value_type_code => l_adr_value_type_code
80204 , p_transaction_coa_id => l_adr_transaction_coa_id
80205 , p_accounting_coa_id => l_adr_accounting_coa_id
80206 , p_adr_code => 'AP_INVOICE_DIST'
80207 , p_adr_type_code => 'S'
80208 , p_component_type => l_component_type
80209 , p_component_code => l_component_code
80210 , p_component_type_code => l_component_type_code
80211 , p_component_appl_id => l_component_appl_id
80212 , p_amb_context_code => l_amb_context_code
80213 , p_side => 'NA'
80214 );
80215
80216
80217 --
80218 --
80219 END IF;
80220
80221 --
80222 -- Update the line information that should be overwritten
80223 --
80224 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80225 p_header_num => 1);
80226 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
80227
80228 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80229
80230 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
80231 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80232 END IF;
80233
80234 --
80235 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80236 --
80237 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80238 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
80239 ELSE
80240 ---------------------------------------------------------------------------------------------------
80241 -- 4262811a Switch Sign
80242 ---------------------------------------------------------------------------------------------------
80243 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
80244 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80245 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80246 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80247 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80248 -- 5132302
80249 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80250 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80251
80252 END IF;
80253
80254 -- 4955764
80255 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80256 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80257
80258
80259 XLA_AE_LINES_PKG.ValidateCurrentLine;
80260 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80261
80262 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80263 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80264 ,p_balance_type_code => l_balance_type_code);
80265
80266 END IF;
80267
80268 -----------------------------------------------------------------------------------------
80269 -- 4262811 Multiperiod Accounting
80270 -----------------------------------------------------------------------------------------
80271 -- No MPA option is assigned.
80272
80273
80274 END IF;
80275 END IF;
80276 --
80277
80278 --
80279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80280 trace
80281 (p_msg => 'END of AcctLineType_146'
80282 ,p_level => C_LEVEL_PROCEDURE
80283 ,p_module => l_log_module);
80284 END IF;
80285 --
80286 EXCEPTION
80287 WHEN xla_exceptions_pkg.application_exception THEN
80288 RAISE;
80289 WHEN OTHERS THEN
80290 xla_exceptions_pkg.raise_message
80291 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_146');
80292 END AcctLineType_146;
80293 --
80294
80295 ---------------------------------------
80296 --
80297 -- PRIVATE FUNCTION
80298 -- AcctLineType_147
80299 --
80300 ---------------------------------------
80301 PROCEDURE AcctLineType_147 (
80302 p_application_id IN NUMBER
80303 ,p_event_id IN NUMBER
80304 ,p_calculate_acctd_flag IN VARCHAR2
80305 ,p_calculate_g_l_flag IN VARCHAR2
80306 ,p_actual_flag IN OUT VARCHAR2
80307 ,p_balance_type_code OUT VARCHAR2
80308 ,p_gain_or_loss_ref OUT VARCHAR2
80309
80310 --Recipient Invoice Distribution Account
80311 , p_source_36 IN NUMBER
80312 --When to Account for Payment Option
80316 --Business Flow Accounts Payable Application Identifier
80313 , p_source_38 IN VARCHAR2
80314 --Accounting Reversal Indicator
80315 , p_source_40 IN VARCHAR2
80317 , p_source_42 IN NUMBER
80318 --Distribution Link Type
80319 , p_source_48 IN VARCHAR2
80320 --Override Accounted Amount Indicator
80321 , p_source_53 IN VARCHAR2
80322 , p_source_53_meaning IN VARCHAR2
80323 --Third Party Type
80324 , p_source_56 IN VARCHAR2
80325 --Invoice Distribution Tax Line Identifier
80326 , p_source_58 IN NUMBER
80327 --Invoice Distribution Summary Tax Line Identifier
80328 , p_source_59 IN NUMBER
80329 --Invoice Distribution Tax Distribution Identifier from Tax
80330 , p_source_66 IN NUMBER
80331 --Prepayment Distribution Type
80332 , p_source_67 IN VARCHAR2
80333 --Recipient Invoice Distribution Type
80334 , p_source_68 IN VARCHAR2
80335 , p_source_68_meaning IN VARCHAR2
80336 --Prepayment Application Distribution Identifier
80337 , p_source_71 IN NUMBER
80338 --Invoice Identifier
80339 , p_source_72 IN NUMBER
80340 --Business Flow Prepayment Invoice Distribution Type
80341 , p_source_73 IN VARCHAR2
80342 --Business Flow Prepayment Invoice Entity Code
80343 , p_source_74 IN VARCHAR2
80344 --Business Flow Prepayment Invoice Distribution Identifier
80345 , p_source_75 IN NUMBER
80346 --Business Flow Prepayment Invoice Identifier
80347 , p_source_76 IN NUMBER
80348 --Upgrade Encumbrance Credit Account Class
80349 , p_source_77 IN VARCHAR2
80350 --Payables Encumbrance Upgrade Credit Account
80351 , p_source_78 IN NUMBER
80352 --Payables Encumbrance Upgrade Credit Amount
80353 , p_source_79 IN NUMBER
80354 --Invoice Currency Code
80355 , p_source_80 IN VARCHAR2
80356 --Payables Encumbrance Upgrade Credit Base Amount
80357 , p_source_81 IN NUMBER
80358 --Upgrade Encumbrance Debit Account Class
80359 , p_source_82 IN VARCHAR2
80360 --Payables Encumbrance Upgrade Debit Account
80361 , p_source_83 IN NUMBER
80362 --Payables Encumbrance Upgrade Debit Amount
80363 , p_source_84 IN NUMBER
80364 --Payables Encumbrance Upgrade Debit Base Amount
80365 , p_source_85 IN NUMBER
80366 --Payables Encumbrance Upgrade Option
80367 , p_source_86 IN VARCHAR2
80368 --Prepayment Distribution Amount
80369 , p_source_87 IN NUMBER
80370 --Prepayment Clearing Currency Code
80371 , p_source_88 IN VARCHAR2
80372 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
80373 , p_source_89 IN NUMBER
80374 --Deferred Accounting End Date
80375 , p_source_90 IN DATE
80376 --Deferred Accounting Option
80377 , p_source_91 IN VARCHAR2
80378 --Deferred Accounting Start Date
80379 , p_source_92 IN DATE
80380 --Invoice Supplier Identifier
80381 , p_source_93 IN NUMBER
80382 --Invoice Supplier Site Identifier
80383 , p_source_94 IN NUMBER
80384 --Identifier of the Prepayment Application Reversed
80385 , p_source_95 IN NUMBER
80386 --Payables Upgrade Credit Encumbrance Type Identifier
80387 , p_source_96 IN NUMBER
80388 --Payables Upgrade Debit Encumbrance Type Identifier
80389 , p_source_97 IN NUMBER
80390 --Accrue on Receipt Option
80391 , p_source_100 IN VARCHAR2
80392 , p_source_100_meaning IN VARCHAR2
80393 --Prepayment Clearing Exchange Date
80394 , p_source_118 IN DATE
80395 --Prepayment Clearing Exchange Rate
80396 , p_source_119 IN NUMBER
80397 --Prepayment Clearing Exchange Rate Type
80398 , p_source_120 IN VARCHAR2
80399 )
80400 IS
80401
80402 l_component_type VARCHAR2(80);
80403 l_component_code VARCHAR2(30);
80404 l_component_type_code VARCHAR2(1);
80405 l_component_appl_id INTEGER;
80406 l_amb_context_code VARCHAR2(30);
80407 l_entity_code VARCHAR2(30);
80408 l_event_class_code VARCHAR2(30);
80409 l_ae_header_id NUMBER;
80410 l_event_type_code VARCHAR2(30);
80411 l_line_definition_code VARCHAR2(30);
80412 l_line_definition_owner_code VARCHAR2(1);
80413 --
80414 -- adr variables
80415 l_segment VARCHAR2(30);
80416 l_ccid NUMBER;
80417 l_adr_transaction_coa_id NUMBER;
80418 l_adr_accounting_coa_id NUMBER;
80419 l_adr_flexfield_segment_code VARCHAR2(30);
80420 l_adr_flex_value_set_id NUMBER;
80421 l_adr_value_type_code VARCHAR2(30);
80422 l_adr_value_combination_id NUMBER;
80423 l_adr_value_segment_code VARCHAR2(30);
80424
80425 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
80426 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
80427 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
80428 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
80429
80430 -- 4262811 Variables ------------------------------------------------------------------------------------------
80431 l_entered_amt_idx NUMBER;
80432 l_accted_amt_idx NUMBER;
80433 l_acc_rev_flag VARCHAR2(1);
80434 l_accrual_line_num NUMBER;
80435 l_tmp_amt NUMBER;
80436 l_acc_rev_natural_side_code VARCHAR2(1);
80440 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
80437
80438 l_num_entries NUMBER;
80439 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
80441 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
80442 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
80443 l_recog_line_1 NUMBER;
80444 l_recog_line_2 NUMBER;
80445
80446 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
80447 l_bflow_applied_to_amt NUMBER; -- 5132302
80448 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
80449
80450 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80451
80452 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
80453 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
80454
80455 ---------------------------------------------------------------------------------------------------------------
80456
80457
80458 --
80459 -- bulk performance
80460 --
80461 l_balance_type_code VARCHAR2(1);
80462 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
80463 l_log_module VARCHAR2(240);
80464
80465 --
80466 -- Upgrade strategy
80467 --
80468 l_actual_upg_option VARCHAR2(1);
80469 l_enc_upg_option VARCHAR2(1);
80470
80471 --
80472 BEGIN
80473 --
80474 IF g_log_enabled THEN
80475 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
80476 END IF;
80477 --
80478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80479
80480 trace
80481 (p_msg => 'BEGIN of AcctLineType_147'
80482 ,p_level => C_LEVEL_PROCEDURE
80483 ,p_module => l_log_module);
80484
80485 END IF;
80486 --
80487 l_component_type := 'AMB_JLT';
80488 l_component_code := 'AP_NRTAX_PREPAY_CLR_RATE_APP';
80489 l_component_type_code := 'S';
80490 l_component_appl_id := 200;
80491 l_amb_context_code := 'DEFAULT';
80492 l_entity_code := 'AP_INVOICES';
80493 l_event_class_code := 'PREPAYMENT APPLICATIONS';
80494 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
80495 l_line_definition_owner_code := 'S';
80496 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
80497 --
80498 l_balance_type_code := 'A';
80499 l_segment := NULL;
80500 l_ccid := NULL;
80501 l_adr_transaction_coa_id := NULL;
80502 l_adr_accounting_coa_id := NULL;
80503 l_adr_flexfield_segment_code := NULL;
80504 l_adr_flex_value_set_id := NULL;
80505 l_adr_value_type_code := NULL;
80506 l_adr_value_combination_id := NULL;
80507 l_adr_value_segment_code := NULL;
80508
80509 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
80510 l_bflow_class_code := ''; -- 4219869 Business Flow
80511 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
80512 l_budgetary_control_flag := 'N';
80513
80514 l_bflow_applied_to_amt_idx := NULL; -- 5132302
80515 l_bflow_applied_to_amt := NULL; -- 5132302
80516 l_entered_amt_idx := NULL; -- 4262811
80517 l_accted_amt_idx := NULL; -- 4262811
80518 l_acc_rev_flag := NULL; -- 4262811
80519 l_accrual_line_num := NULL; -- 4262811
80520 l_tmp_amt := NULL; -- 4262811
80521 --
80522
80523 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80524 l_balance_type_code <> 'B' THEN
80525 IF NVL(p_source_38,'
80526 ') = 'CLEAR_CLEAR' AND
80527 (NVL(p_source_67,'
80528 ') = 'PREPAY APPL' OR
80529 NVL(p_source_67,'
80530 ') = 'PREPAY APPL NONREC TAX' OR
80531 NVL(p_source_67,'
80532 ') = 'PREPAY APPL REC TAX') AND
80533 (NVL(p_source_68,'
80534 ') = 'NONREC_TAX' OR
80535 NVL(p_source_68,'
80536 ') = 'TERV') AND
80537 NVL(p_source_100,'
80538 ') <> 'Y'
80539 THEN
80540
80541 --
80542 XLA_AE_LINES_PKG.SetNewLine;
80543
80544 p_balance_type_code := l_balance_type_code;
80545 -- set the flag so later we will know whether the gain loss line needs to be created
80546
80547 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80548 p_actual_flag :='A';
80549 END IF;
80550
80551 --
80552 -- bulk performance
80553 --
80554 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80555 p_header_num => 0); -- 4262811
80556 --
80557 -- set accounting line options
80558 --
80559 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80560 p_natural_side_code => 'C'
80561 , p_gain_or_loss_flag => 'N'
80562 , p_gl_transfer_mode_code => 'S'
80563 , p_acct_entry_type_code => 'A'
80564 , p_switch_side_flag => 'Y'
80565 , p_merge_duplicate_code => 'A'
80566 );
80567 --
80568 l_acc_rev_natural_side_code := 'D'; -- 4262811
80569 --
80570 --
80571 -- set accounting line type info
80572 --
80573 xla_ae_lines_pkg.SetAcctLineType
80577 ,p_line_definition_code => l_line_definition_code
80574 (p_component_type => l_component_type
80575 ,p_event_type_code => l_event_type_code
80576 ,p_line_definition_owner_code => l_line_definition_owner_code
80578 ,p_accounting_line_code => l_component_code
80579 ,p_accounting_line_type_code => l_component_type_code
80580 ,p_accounting_line_appl_id => l_component_appl_id
80581 ,p_amb_context_code => l_amb_context_code
80582 ,p_entity_code => l_entity_code
80583 ,p_event_class_code => l_event_class_code);
80584 --
80585 -- set accounting class
80586 --
80587 xla_ae_lines_pkg.SetAcctClass(
80588 p_accounting_class_code => 'NRTAX'
80589 , p_ae_header_id => l_ae_header_id
80590 );
80591
80592 --
80593 -- set rounding class
80594 --
80595 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80596 'NRTAX';
80597
80598 --
80599 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80600 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80601 --
80602 -- bulk performance
80603 --
80604 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80605
80606 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80607 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80608
80609 -- 4955764
80610 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80611 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80612
80613 -- 4458381 Public Sector Enh
80614
80615 --
80616 -- set accounting attributes for the line type
80617 --
80618 l_entered_amt_idx := 25;
80619 l_accted_amt_idx := 30;
80620 l_bflow_applied_to_amt_idx := NULL; -- 5132302
80621 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80622 l_rec_acct_attrs.array_char_value(1) := p_source_40;
80623 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80624 l_rec_acct_attrs.array_num_value(2) :=
80625 xla_ae_sources_pkg.GetSystemSourceNum(
80626 p_source_code => 'XLA_EVENT_APPL_ID'
80627 , p_source_type_code => 'Y'
80628 , p_source_application_id => 602
80629 );
80630 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
80631 l_rec_acct_attrs.array_char_value(3) := p_source_48;
80632 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
80633 l_rec_acct_attrs.array_char_value(4) :=
80634 xla_ae_sources_pkg.GetSystemSourceChar(
80635 p_source_code => 'XLA_ENTITY_CODE'
80636 , p_source_type_code => 'Y'
80637 , p_source_application_id => 602
80638 );
80639 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
80640 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
80641 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
80642 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
80643 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
80644 l_rec_acct_attrs.array_num_value(7) := p_source_42;
80645 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80646 l_rec_acct_attrs.array_char_value(8) := p_source_73;
80647 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
80648 l_rec_acct_attrs.array_char_value(9) := p_source_74;
80649 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
80650 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
80651 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80652 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
80653 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
80654 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
80655 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
80656 l_rec_acct_attrs.array_char_value(13) := p_source_48;
80657 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
80658 l_rec_acct_attrs.array_char_value(14) := p_source_77;
80659 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
80660 l_rec_acct_attrs.array_num_value(15) := p_source_78;
80661 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
80662 l_rec_acct_attrs.array_num_value(16) := p_source_79;
80663 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
80664 l_rec_acct_attrs.array_char_value(17) := p_source_80;
80665 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
80666 l_rec_acct_attrs.array_num_value(18) := p_source_81;
80667 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
80668 l_rec_acct_attrs.array_char_value(19) := p_source_82;
80669 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
80670 l_rec_acct_attrs.array_num_value(20) := p_source_83;
80671 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
80672 l_rec_acct_attrs.array_num_value(21) := p_source_84;
80673 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
80677 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
80674 l_rec_acct_attrs.array_char_value(22) := p_source_80;
80675 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
80676 l_rec_acct_attrs.array_num_value(23) := p_source_85;
80678 l_rec_acct_attrs.array_char_value(24) := p_source_86;
80679 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
80680 l_rec_acct_attrs.array_num_value(25) := p_source_87;
80681 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
80682 l_rec_acct_attrs.array_char_value(26) := p_source_88;
80683 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
80684 l_rec_acct_attrs.array_date_value(27) := p_source_118;
80685 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
80686 l_rec_acct_attrs.array_num_value(28) := p_source_119;
80687 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
80688 l_rec_acct_attrs.array_char_value(29) := p_source_120;
80689 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
80690 l_rec_acct_attrs.array_num_value(30) := p_source_89;
80691 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
80692 l_rec_acct_attrs.array_date_value(31) := p_source_90;
80693 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
80694 l_rec_acct_attrs.array_char_value(32) := p_source_91;
80695 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
80696 l_rec_acct_attrs.array_date_value(33) := p_source_92;
80697 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
80698 l_rec_acct_attrs.array_char_value(34) := p_source_53;
80699 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
80700 l_rec_acct_attrs.array_num_value(35) := p_source_93;
80701 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
80702 l_rec_acct_attrs.array_num_value(36) := p_source_94;
80703 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
80704 l_rec_acct_attrs.array_char_value(37) := p_source_56;
80705 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
80706 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
80707 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
80708 l_rec_acct_attrs.array_char_value(39) := p_source_48;
80709 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80710 l_rec_acct_attrs.array_num_value(40) := p_source_58;
80711 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80712 l_rec_acct_attrs.array_num_value(41) := p_source_66;
80713 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80714 l_rec_acct_attrs.array_num_value(42) := p_source_59;
80715 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80716 l_rec_acct_attrs.array_num_value(43) := p_source_96;
80717 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80718 l_rec_acct_attrs.array_num_value(44) := p_source_97;
80719
80720 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80721 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80722
80723 ---------------------------------------------------------------------------------------------------------------
80724 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80725 ---------------------------------------------------------------------------------------------------------------
80726 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80727
80728 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80729 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80730
80731 IF xla_accounting_cache_pkg.GetValueChar
80732 (p_source_code => 'LEDGER_CATEGORY_CODE'
80733 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80734 AND l_bflow_method_code = 'PRIOR_ENTRY'
80735 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80736 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80737 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80738 )
80739 THEN
80740 xla_ae_lines_pkg.BflowUpgEntry
80741 (p_business_method_code => l_bflow_method_code
80742 ,p_business_class_code => l_bflow_class_code
80743 ,p_balance_type => l_balance_type_code);
80744 ELSE
80745 NULL;
80746 -- No business flow processing for business flow method of NONE.
80747 END IF;
80748
80749 --
80750 -- call analytical criteria
80751 --
80752
80753 --
80754 -- call description
80755 --
80756 -- No description or it is inherited.
80757 --
80758 -- call ADRs
80759 -- Bug 4922099
80760 --
80761 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80762 (NVL(l_actual_upg_option, 'N') = 'O') OR
80763 (NVL(l_enc_upg_option, 'N') = 'O')
80764 )
80765 THEN
80766 NULL;
80767 --
80768 --
80769
80770 l_ccid := AcctDerRule_33(
80771 p_application_id => p_application_id
80772 , p_ae_header_id => l_ae_header_id
80773 , p_source_36 => p_source_36
80774 , x_transaction_coa_id => l_adr_transaction_coa_id
80778 );
80775 , x_accounting_coa_id => l_adr_accounting_coa_id
80776 , x_value_type_code => l_adr_value_type_code
80777 , p_side => 'NA'
80779
80780 xla_ae_lines_pkg.set_ccid(
80781 p_code_combination_id => l_ccid
80782 , p_value_type_code => l_adr_value_type_code
80783 , p_transaction_coa_id => l_adr_transaction_coa_id
80784 , p_accounting_coa_id => l_adr_accounting_coa_id
80785 , p_adr_code => 'AP_RECP_INV_DIST'
80786 , p_adr_type_code => 'S'
80787 , p_component_type => l_component_type
80788 , p_component_code => l_component_code
80789 , p_component_type_code => l_component_type_code
80790 , p_component_appl_id => l_component_appl_id
80791 , p_amb_context_code => l_amb_context_code
80792 , p_side => 'NA'
80793 );
80794
80795
80796 --
80797 --
80798 END IF;
80799 --
80800 -- Bug 4922099
80801 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80802 (NVL(l_enc_upg_option, 'N') = 'O')
80803 ) AND
80804 (l_bflow_method_code = 'PRIOR_ENTRY')
80805 )
80806 THEN
80807 IF
80808 --
80809 1 = 2
80810 --
80811 THEN
80812 xla_accounting_err_pkg.build_message
80813 (p_appli_s_name => 'XLA'
80814 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80815 ,p_token_1 => 'LINE_NUMBER'
80816 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
80817 ,p_token_2 => 'LINE_TYPE_NAME'
80818 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
80819 l_component_type
80820 ,l_component_code
80821 ,l_component_type_code
80822 ,l_component_appl_id
80823 ,l_amb_context_code
80824 ,l_entity_code
80825 ,l_event_class_code
80826 )
80827 ,p_token_3 => 'OWNER'
80828 ,p_value_3 => xla_lookups_pkg.get_meaning(
80829 p_lookup_type => 'XLA_OWNER_TYPE'
80830 ,p_lookup_code => l_component_type_code
80831 )
80832 ,p_token_4 => 'PRODUCT_NAME'
80833 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80834 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80835 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80836 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80837 ,p_ae_header_id => NULL
80838 );
80839
80840 IF (C_LEVEL_ERROR>= g_log_level) THEN
80841 trace
80842 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80843 ,p_level => C_LEVEL_ERROR
80844 ,p_module => l_log_module);
80845 END IF;
80846 END IF;
80847 END IF;
80848 --
80849 --
80850 ------------------------------------------------------------------------------------------------
80851 -- 4219869 Business Flow
80852 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80853 -- Prior Entry. Currently, the following code is always generated.
80854 ------------------------------------------------------------------------------------------------
80855 XLA_AE_LINES_PKG.ValidateCurrentLine;
80856
80857 ------------------------------------------------------------------------------------
80858 -- 4219869 Business Flow
80859 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80860 ------------------------------------------------------------------------------------
80861 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80862
80863 ----------------------------------------------------------------------------------
80864 -- 4219869 Business Flow
80865 -- Update journal entry status -- Need to generate this within IF <condition>
80866 ----------------------------------------------------------------------------------
80867 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80868 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80869 ,p_balance_type_code => l_balance_type_code
80870 );
80871
80872 -------------------------------------------------------------------------------------------
80873 -- 4262811 - Generate the Accrual Reversal lines
80877 (g_array_event(p_event_id).array_value_num('header_index'));
80874 -------------------------------------------------------------------------------------------
80875 BEGIN
80876 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80878 IF l_acc_rev_flag IS NULL THEN
80879 l_acc_rev_flag := 'N';
80880 END IF;
80881 EXCEPTION
80882 WHEN OTHERS THEN
80883 l_acc_rev_flag := 'N';
80884 END;
80885 --
80886 IF (l_acc_rev_flag = 'Y') THEN
80887
80888 -- 4645092 ------------------------------------------------------------------------------
80889 -- To allow MPA report to determine if it should generate report process
80890 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80891 ------------------------------------------------------------------------------------------
80892
80893 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80894 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80895 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
80896 -- call ADRs
80897 -- Bug 4922099
80898 --
80899 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80900 (NVL(l_actual_upg_option, 'N') = 'O') OR
80901 (NVL(l_enc_upg_option, 'N') = 'O')
80902 )
80903 THEN
80904 NULL;
80905 --
80906 --
80907
80908 l_ccid := AcctDerRule_33(
80909 p_application_id => p_application_id
80910 , p_ae_header_id => l_ae_header_id
80911 , p_source_36 => p_source_36
80912 , x_transaction_coa_id => l_adr_transaction_coa_id
80913 , x_accounting_coa_id => l_adr_accounting_coa_id
80914 , x_value_type_code => l_adr_value_type_code
80915 , p_side => 'NA'
80916 );
80917
80918 xla_ae_lines_pkg.set_ccid(
80919 p_code_combination_id => l_ccid
80920 , p_value_type_code => l_adr_value_type_code
80921 , p_transaction_coa_id => l_adr_transaction_coa_id
80922 , p_accounting_coa_id => l_adr_accounting_coa_id
80923 , p_adr_code => 'AP_RECP_INV_DIST'
80924 , p_adr_type_code => 'S'
80925 , p_component_type => l_component_type
80926 , p_component_code => l_component_code
80927 , p_component_type_code => l_component_type_code
80928 , p_component_appl_id => l_component_appl_id
80929 , p_amb_context_code => l_amb_context_code
80930 , p_side => 'NA'
80931 );
80932
80933
80934 --
80935 --
80936 END IF;
80937
80938 --
80939 -- Update the line information that should be overwritten
80940 --
80941 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80942 p_header_num => 1);
80943 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
80944
80945 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80946
80947 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
80948 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80949 END IF;
80950
80951 --
80952 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80953 --
80954 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80955 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
80956 ELSE
80957 ---------------------------------------------------------------------------------------------------
80958 -- 4262811a Switch Sign
80959 ---------------------------------------------------------------------------------------------------
80960 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
80961 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80962 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80963 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80964 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80965 -- 5132302
80966 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80967 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80968
80969 END IF;
80970
80971 -- 4955764
80972 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80973 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80974
80975
80976 XLA_AE_LINES_PKG.ValidateCurrentLine;
80977 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80978
80979 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80980 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80981 ,p_balance_type_code => l_balance_type_code);
80982
80983 END IF;
80984
80985 -----------------------------------------------------------------------------------------
80989
80986 -- 4262811 Multiperiod Accounting
80987 -----------------------------------------------------------------------------------------
80988 -- No MPA option is assigned.
80990
80991 END IF;
80992 END IF;
80993 --
80994
80995 --
80996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80997 trace
80998 (p_msg => 'END of AcctLineType_147'
80999 ,p_level => C_LEVEL_PROCEDURE
81000 ,p_module => l_log_module);
81001 END IF;
81002 --
81003 EXCEPTION
81004 WHEN xla_exceptions_pkg.application_exception THEN
81005 RAISE;
81006 WHEN OTHERS THEN
81007 xla_exceptions_pkg.raise_message
81008 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_147');
81009 END AcctLineType_147;
81010 --
81011
81012 ---------------------------------------
81013 --
81014 -- PRIVATE FUNCTION
81015 -- AcctLineType_148
81016 --
81017 ---------------------------------------
81018 PROCEDURE AcctLineType_148 (
81019 p_application_id IN NUMBER
81020 ,p_event_id IN NUMBER
81021 ,p_calculate_acctd_flag IN VARCHAR2
81022 ,p_calculate_g_l_flag IN VARCHAR2
81023 ,p_actual_flag IN OUT VARCHAR2
81024 ,p_balance_type_code OUT VARCHAR2
81025 ,p_gain_or_loss_ref OUT VARCHAR2
81026
81027 --Recipient Invoice Distribution Account
81028 , p_source_36 IN NUMBER
81029 --When to Account for Payment Option
81030 , p_source_38 IN VARCHAR2
81031 --Accounting Reversal Indicator
81032 , p_source_40 IN VARCHAR2
81033 --Business Flow Accounts Payable Application Identifier
81034 , p_source_42 IN NUMBER
81035 --Distribution Link Type
81036 , p_source_48 IN VARCHAR2
81037 --Override Accounted Amount Indicator
81038 , p_source_53 IN VARCHAR2
81039 , p_source_53_meaning IN VARCHAR2
81040 --Third Party Type
81041 , p_source_56 IN VARCHAR2
81042 --Invoice Distribution Tax Line Identifier
81043 , p_source_58 IN NUMBER
81044 --Invoice Distribution Summary Tax Line Identifier
81045 , p_source_59 IN NUMBER
81046 --Invoice Distribution Tax Distribution Identifier from Tax
81047 , p_source_66 IN NUMBER
81048 --Prepayment Distribution Type
81049 , p_source_67 IN VARCHAR2
81050 --Recipient Invoice Distribution Type
81051 , p_source_68 IN VARCHAR2
81052 , p_source_68_meaning IN VARCHAR2
81053 --Prepayment Application Distribution Identifier
81054 , p_source_71 IN NUMBER
81055 --Invoice Identifier
81056 , p_source_72 IN NUMBER
81057 --Business Flow Prepayment Invoice Distribution Type
81058 , p_source_73 IN VARCHAR2
81059 --Business Flow Prepayment Invoice Entity Code
81060 , p_source_74 IN VARCHAR2
81061 --Business Flow Prepayment Invoice Distribution Identifier
81062 , p_source_75 IN NUMBER
81063 --Business Flow Prepayment Invoice Identifier
81064 , p_source_76 IN NUMBER
81065 --Upgrade Encumbrance Credit Account Class
81066 , p_source_77 IN VARCHAR2
81067 --Payables Encumbrance Upgrade Credit Account
81068 , p_source_78 IN NUMBER
81069 --Payables Encumbrance Upgrade Credit Amount
81070 , p_source_79 IN NUMBER
81071 --Invoice Currency Code
81072 , p_source_80 IN VARCHAR2
81073 --Payables Encumbrance Upgrade Credit Base Amount
81074 , p_source_81 IN NUMBER
81075 --Upgrade Encumbrance Debit Account Class
81076 , p_source_82 IN VARCHAR2
81077 --Payables Encumbrance Upgrade Debit Account
81078 , p_source_83 IN NUMBER
81079 --Payables Encumbrance Upgrade Debit Amount
81080 , p_source_84 IN NUMBER
81081 --Payables Encumbrance Upgrade Debit Base Amount
81082 , p_source_85 IN NUMBER
81083 --Payables Encumbrance Upgrade Option
81084 , p_source_86 IN VARCHAR2
81085 --Prepayment Distribution Amount
81086 , p_source_87 IN NUMBER
81087 --Deferred Accounting End Date
81088 , p_source_90 IN DATE
81089 --Deferred Accounting Option
81090 , p_source_91 IN VARCHAR2
81091 --Deferred Accounting Start Date
81092 , p_source_92 IN DATE
81093 --Invoice Supplier Identifier
81094 , p_source_93 IN NUMBER
81095 --Invoice Supplier Site Identifier
81096 , p_source_94 IN NUMBER
81097 --Identifier of the Prepayment Application Reversed
81098 , p_source_95 IN NUMBER
81099 --Payables Upgrade Credit Encumbrance Type Identifier
81100 , p_source_96 IN NUMBER
81101 --Payables Upgrade Debit Encumbrance Type Identifier
81102 , p_source_97 IN NUMBER
81103 --Prepayment Payment Currency Code
81104 , p_source_98 IN VARCHAR2
81105 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
81106 , p_source_99 IN NUMBER
81107 --Accrue on Receipt Option
81108 , p_source_100 IN VARCHAR2
81109 , p_source_100_meaning IN VARCHAR2
81110 --Prepayment Payment Exchange Date
81111 , p_source_121 IN DATE
81112 --Prepayment Payment Exchange Rate
81113 , p_source_122 IN NUMBER
81114 --Prepayment Payment Exchange Rate Type
81115 , p_source_123 IN VARCHAR2
81116 )
81117 IS
81118
81119 l_component_type VARCHAR2(80);
81120 l_component_code VARCHAR2(30);
81124 l_entity_code VARCHAR2(30);
81121 l_component_type_code VARCHAR2(1);
81122 l_component_appl_id INTEGER;
81123 l_amb_context_code VARCHAR2(30);
81125 l_event_class_code VARCHAR2(30);
81126 l_ae_header_id NUMBER;
81127 l_event_type_code VARCHAR2(30);
81128 l_line_definition_code VARCHAR2(30);
81129 l_line_definition_owner_code VARCHAR2(1);
81130 --
81131 -- adr variables
81132 l_segment VARCHAR2(30);
81133 l_ccid NUMBER;
81134 l_adr_transaction_coa_id NUMBER;
81135 l_adr_accounting_coa_id NUMBER;
81136 l_adr_flexfield_segment_code VARCHAR2(30);
81137 l_adr_flex_value_set_id NUMBER;
81138 l_adr_value_type_code VARCHAR2(30);
81139 l_adr_value_combination_id NUMBER;
81140 l_adr_value_segment_code VARCHAR2(30);
81141
81142 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
81143 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
81144 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
81145 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
81146
81147 -- 4262811 Variables ------------------------------------------------------------------------------------------
81148 l_entered_amt_idx NUMBER;
81149 l_accted_amt_idx NUMBER;
81150 l_acc_rev_flag VARCHAR2(1);
81151 l_accrual_line_num NUMBER;
81152 l_tmp_amt NUMBER;
81153 l_acc_rev_natural_side_code VARCHAR2(1);
81154
81155 l_num_entries NUMBER;
81156 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
81157 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
81158 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
81159 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
81160 l_recog_line_1 NUMBER;
81161 l_recog_line_2 NUMBER;
81162
81163 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
81164 l_bflow_applied_to_amt NUMBER; -- 5132302
81165 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
81166
81167 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81168
81169 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
81170 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
81171
81172 ---------------------------------------------------------------------------------------------------------------
81173
81174
81175 --
81176 -- bulk performance
81177 --
81178 l_balance_type_code VARCHAR2(1);
81179 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
81180 l_log_module VARCHAR2(240);
81181
81182 --
81183 -- Upgrade strategy
81184 --
81185 l_actual_upg_option VARCHAR2(1);
81186 l_enc_upg_option VARCHAR2(1);
81187
81188 --
81189 BEGIN
81190 --
81191 IF g_log_enabled THEN
81192 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
81193 END IF;
81194 --
81195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81196
81197 trace
81198 (p_msg => 'BEGIN of AcctLineType_148'
81199 ,p_level => C_LEVEL_PROCEDURE
81200 ,p_module => l_log_module);
81201
81202 END IF;
81203 --
81204 l_component_type := 'AMB_JLT';
81205 l_component_code := 'AP_NRTAX_PREPAY_PAY_RATE_APP';
81206 l_component_type_code := 'S';
81207 l_component_appl_id := 200;
81208 l_amb_context_code := 'DEFAULT';
81209 l_entity_code := 'AP_INVOICES';
81210 l_event_class_code := 'PREPAYMENT APPLICATIONS';
81211 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
81212 l_line_definition_owner_code := 'S';
81213 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
81214 --
81215 l_balance_type_code := 'A';
81216 l_segment := NULL;
81217 l_ccid := NULL;
81218 l_adr_transaction_coa_id := NULL;
81219 l_adr_accounting_coa_id := NULL;
81220 l_adr_flexfield_segment_code := NULL;
81221 l_adr_flex_value_set_id := NULL;
81222 l_adr_value_type_code := NULL;
81223 l_adr_value_combination_id := NULL;
81224 l_adr_value_segment_code := NULL;
81225
81226 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
81227 l_bflow_class_code := ''; -- 4219869 Business Flow
81228 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
81229 l_budgetary_control_flag := 'N';
81230
81231 l_bflow_applied_to_amt_idx := NULL; -- 5132302
81232 l_bflow_applied_to_amt := NULL; -- 5132302
81233 l_entered_amt_idx := NULL; -- 4262811
81234 l_accted_amt_idx := NULL; -- 4262811
81235 l_acc_rev_flag := NULL; -- 4262811
81236 l_accrual_line_num := NULL; -- 4262811
81237 l_tmp_amt := NULL; -- 4262811
81238 --
81239
81240 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81241 l_balance_type_code <> 'B' THEN
81242 IF NVL(p_source_38,'
81243 ') <> 'CLEAR_CLEAR' AND
81244 (NVL(p_source_67,'
81248 NVL(p_source_67,'
81245 ') = 'PREPAY APPL' OR
81246 NVL(p_source_67,'
81247 ') = 'PREPAY APPL NONREC TAX' OR
81249 ') = 'PREPAY APPL REC TAX') AND
81250 (NVL(p_source_68,'
81251 ') = 'NONREC_TAX' OR
81252 NVL(p_source_68,'
81253 ') = 'TERV') AND
81254 NVL(p_source_100,'
81255 ') <> 'Y'
81256 THEN
81257
81258 --
81259 XLA_AE_LINES_PKG.SetNewLine;
81260
81261 p_balance_type_code := l_balance_type_code;
81262 -- set the flag so later we will know whether the gain loss line needs to be created
81263
81264 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81265 p_actual_flag :='A';
81266 END IF;
81267
81268 --
81269 -- bulk performance
81270 --
81271 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81272 p_header_num => 0); -- 4262811
81273 --
81274 -- set accounting line options
81275 --
81276 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81277 p_natural_side_code => 'C'
81278 , p_gain_or_loss_flag => 'N'
81279 , p_gl_transfer_mode_code => 'S'
81280 , p_acct_entry_type_code => 'A'
81281 , p_switch_side_flag => 'Y'
81282 , p_merge_duplicate_code => 'A'
81283 );
81284 --
81285 l_acc_rev_natural_side_code := 'D'; -- 4262811
81286 --
81287 --
81288 -- set accounting line type info
81289 --
81290 xla_ae_lines_pkg.SetAcctLineType
81291 (p_component_type => l_component_type
81292 ,p_event_type_code => l_event_type_code
81293 ,p_line_definition_owner_code => l_line_definition_owner_code
81294 ,p_line_definition_code => l_line_definition_code
81295 ,p_accounting_line_code => l_component_code
81296 ,p_accounting_line_type_code => l_component_type_code
81297 ,p_accounting_line_appl_id => l_component_appl_id
81298 ,p_amb_context_code => l_amb_context_code
81299 ,p_entity_code => l_entity_code
81300 ,p_event_class_code => l_event_class_code);
81301 --
81302 -- set accounting class
81303 --
81304 xla_ae_lines_pkg.SetAcctClass(
81305 p_accounting_class_code => 'NRTAX'
81306 , p_ae_header_id => l_ae_header_id
81307 );
81308
81309 --
81310 -- set rounding class
81311 --
81312 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81313 'NRTAX';
81314
81315 --
81316 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81317 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81318 --
81319 -- bulk performance
81320 --
81321 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81322
81323 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81324 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81325
81326 -- 4955764
81327 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81328 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81329
81330 -- 4458381 Public Sector Enh
81331
81332 --
81333 -- set accounting attributes for the line type
81334 --
81335 l_entered_amt_idx := 25;
81336 l_accted_amt_idx := 30;
81337 l_bflow_applied_to_amt_idx := NULL; -- 5132302
81338 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81339 l_rec_acct_attrs.array_char_value(1) := p_source_40;
81340 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
81341 l_rec_acct_attrs.array_num_value(2) :=
81342 xla_ae_sources_pkg.GetSystemSourceNum(
81343 p_source_code => 'XLA_EVENT_APPL_ID'
81344 , p_source_type_code => 'Y'
81345 , p_source_application_id => 602
81346 );
81347 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
81348 l_rec_acct_attrs.array_char_value(3) := p_source_48;
81349 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
81350 l_rec_acct_attrs.array_char_value(4) :=
81351 xla_ae_sources_pkg.GetSystemSourceChar(
81352 p_source_code => 'XLA_ENTITY_CODE'
81353 , p_source_type_code => 'Y'
81354 , p_source_application_id => 602
81355 );
81356 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
81357 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
81358 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
81359 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
81360 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
81361 l_rec_acct_attrs.array_num_value(7) := p_source_42;
81362 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81363 l_rec_acct_attrs.array_char_value(8) := p_source_73;
81364 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
81365 l_rec_acct_attrs.array_char_value(9) := p_source_74;
81366 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
81367 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
81371 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
81368 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81369 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
81370 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
81372 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
81373 l_rec_acct_attrs.array_char_value(13) := p_source_48;
81374 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
81375 l_rec_acct_attrs.array_char_value(14) := p_source_77;
81376 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
81377 l_rec_acct_attrs.array_num_value(15) := p_source_78;
81378 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
81379 l_rec_acct_attrs.array_num_value(16) := p_source_79;
81380 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
81381 l_rec_acct_attrs.array_char_value(17) := p_source_80;
81382 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
81383 l_rec_acct_attrs.array_num_value(18) := p_source_81;
81384 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
81385 l_rec_acct_attrs.array_char_value(19) := p_source_82;
81386 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
81387 l_rec_acct_attrs.array_num_value(20) := p_source_83;
81388 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
81389 l_rec_acct_attrs.array_num_value(21) := p_source_84;
81390 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
81391 l_rec_acct_attrs.array_char_value(22) := p_source_80;
81392 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
81393 l_rec_acct_attrs.array_num_value(23) := p_source_85;
81394 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
81395 l_rec_acct_attrs.array_char_value(24) := p_source_86;
81396 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
81397 l_rec_acct_attrs.array_num_value(25) := p_source_87;
81398 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
81399 l_rec_acct_attrs.array_char_value(26) := p_source_98;
81400 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
81401 l_rec_acct_attrs.array_date_value(27) := p_source_121;
81402 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
81403 l_rec_acct_attrs.array_num_value(28) := p_source_122;
81404 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
81405 l_rec_acct_attrs.array_char_value(29) := p_source_123;
81406 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
81407 l_rec_acct_attrs.array_num_value(30) := p_source_99;
81408 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
81409 l_rec_acct_attrs.array_date_value(31) := p_source_90;
81410 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
81411 l_rec_acct_attrs.array_char_value(32) := p_source_91;
81412 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
81413 l_rec_acct_attrs.array_date_value(33) := p_source_92;
81414 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
81415 l_rec_acct_attrs.array_char_value(34) := p_source_53;
81416 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
81417 l_rec_acct_attrs.array_num_value(35) := p_source_93;
81418 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
81419 l_rec_acct_attrs.array_num_value(36) := p_source_94;
81420 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
81421 l_rec_acct_attrs.array_char_value(37) := p_source_56;
81422 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
81423 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
81424 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
81425 l_rec_acct_attrs.array_char_value(39) := p_source_48;
81426 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
81427 l_rec_acct_attrs.array_num_value(40) := p_source_58;
81428 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
81429 l_rec_acct_attrs.array_num_value(41) := p_source_66;
81430 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
81431 l_rec_acct_attrs.array_num_value(42) := p_source_59;
81432 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
81433 l_rec_acct_attrs.array_num_value(43) := p_source_96;
81434 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
81435 l_rec_acct_attrs.array_num_value(44) := p_source_97;
81436
81437 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81438 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81439
81440 ---------------------------------------------------------------------------------------------------------------
81441 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81442 ---------------------------------------------------------------------------------------------------------------
81443 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81444
81445 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81446 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81447
81448 IF xla_accounting_cache_pkg.GetValueChar
81449 (p_source_code => 'LEDGER_CATEGORY_CODE'
81450 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81451 AND l_bflow_method_code = 'PRIOR_ENTRY'
81455 )
81452 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81453 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81454 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81456 THEN
81457 xla_ae_lines_pkg.BflowUpgEntry
81458 (p_business_method_code => l_bflow_method_code
81459 ,p_business_class_code => l_bflow_class_code
81460 ,p_balance_type => l_balance_type_code);
81461 ELSE
81462 NULL;
81463 -- No business flow processing for business flow method of NONE.
81464 END IF;
81465
81466 --
81467 -- call analytical criteria
81468 --
81469
81470 --
81471 -- call description
81472 --
81473 -- No description or it is inherited.
81474 --
81475 -- call ADRs
81476 -- Bug 4922099
81477 --
81478 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81479 (NVL(l_actual_upg_option, 'N') = 'O') OR
81480 (NVL(l_enc_upg_option, 'N') = 'O')
81481 )
81482 THEN
81483 NULL;
81484 --
81485 --
81486
81487 l_ccid := AcctDerRule_33(
81488 p_application_id => p_application_id
81489 , p_ae_header_id => l_ae_header_id
81490 , p_source_36 => p_source_36
81491 , x_transaction_coa_id => l_adr_transaction_coa_id
81492 , x_accounting_coa_id => l_adr_accounting_coa_id
81493 , x_value_type_code => l_adr_value_type_code
81494 , p_side => 'NA'
81495 );
81496
81497 xla_ae_lines_pkg.set_ccid(
81498 p_code_combination_id => l_ccid
81499 , p_value_type_code => l_adr_value_type_code
81500 , p_transaction_coa_id => l_adr_transaction_coa_id
81501 , p_accounting_coa_id => l_adr_accounting_coa_id
81502 , p_adr_code => 'AP_RECP_INV_DIST'
81503 , p_adr_type_code => 'S'
81504 , p_component_type => l_component_type
81505 , p_component_code => l_component_code
81506 , p_component_type_code => l_component_type_code
81507 , p_component_appl_id => l_component_appl_id
81508 , p_amb_context_code => l_amb_context_code
81509 , p_side => 'NA'
81510 );
81511
81512
81513 --
81514 --
81515 END IF;
81516 --
81517 -- Bug 4922099
81518 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81519 (NVL(l_enc_upg_option, 'N') = 'O')
81520 ) AND
81521 (l_bflow_method_code = 'PRIOR_ENTRY')
81522 )
81523 THEN
81524 IF
81525 --
81526 1 = 2
81527 --
81528 THEN
81529 xla_accounting_err_pkg.build_message
81530 (p_appli_s_name => 'XLA'
81531 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81532 ,p_token_1 => 'LINE_NUMBER'
81533 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
81534 ,p_token_2 => 'LINE_TYPE_NAME'
81535 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
81536 l_component_type
81537 ,l_component_code
81538 ,l_component_type_code
81539 ,l_component_appl_id
81540 ,l_amb_context_code
81541 ,l_entity_code
81542 ,l_event_class_code
81543 )
81544 ,p_token_3 => 'OWNER'
81545 ,p_value_3 => xla_lookups_pkg.get_meaning(
81546 p_lookup_type => 'XLA_OWNER_TYPE'
81547 ,p_lookup_code => l_component_type_code
81548 )
81549 ,p_token_4 => 'PRODUCT_NAME'
81550 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81551 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81552 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81553 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81554 ,p_ae_header_id => NULL
81555 );
81556
81557 IF (C_LEVEL_ERROR>= g_log_level) THEN
81558 trace
81559 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81560 ,p_level => C_LEVEL_ERROR
81561 ,p_module => l_log_module);
81562 END IF;
81563 END IF;
81564 END IF;
81568 -- 4219869 Business Flow
81565 --
81566 --
81567 ------------------------------------------------------------------------------------------------
81569 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81570 -- Prior Entry. Currently, the following code is always generated.
81571 ------------------------------------------------------------------------------------------------
81572 XLA_AE_LINES_PKG.ValidateCurrentLine;
81573
81574 ------------------------------------------------------------------------------------
81575 -- 4219869 Business Flow
81576 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81577 ------------------------------------------------------------------------------------
81578 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81579
81580 ----------------------------------------------------------------------------------
81581 -- 4219869 Business Flow
81582 -- Update journal entry status -- Need to generate this within IF <condition>
81583 ----------------------------------------------------------------------------------
81584 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81585 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81586 ,p_balance_type_code => l_balance_type_code
81587 );
81588
81589 -------------------------------------------------------------------------------------------
81590 -- 4262811 - Generate the Accrual Reversal lines
81591 -------------------------------------------------------------------------------------------
81592 BEGIN
81593 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81594 (g_array_event(p_event_id).array_value_num('header_index'));
81595 IF l_acc_rev_flag IS NULL THEN
81596 l_acc_rev_flag := 'N';
81597 END IF;
81598 EXCEPTION
81599 WHEN OTHERS THEN
81600 l_acc_rev_flag := 'N';
81601 END;
81602 --
81603 IF (l_acc_rev_flag = 'Y') THEN
81604
81605 -- 4645092 ------------------------------------------------------------------------------
81606 -- To allow MPA report to determine if it should generate report process
81607 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81608 ------------------------------------------------------------------------------------------
81609
81610 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81611 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81612 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
81613 -- call ADRs
81614 -- Bug 4922099
81615 --
81616 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81617 (NVL(l_actual_upg_option, 'N') = 'O') OR
81618 (NVL(l_enc_upg_option, 'N') = 'O')
81619 )
81620 THEN
81621 NULL;
81622 --
81623 --
81624
81625 l_ccid := AcctDerRule_33(
81626 p_application_id => p_application_id
81627 , p_ae_header_id => l_ae_header_id
81628 , p_source_36 => p_source_36
81629 , x_transaction_coa_id => l_adr_transaction_coa_id
81630 , x_accounting_coa_id => l_adr_accounting_coa_id
81631 , x_value_type_code => l_adr_value_type_code
81632 , p_side => 'NA'
81633 );
81634
81635 xla_ae_lines_pkg.set_ccid(
81636 p_code_combination_id => l_ccid
81637 , p_value_type_code => l_adr_value_type_code
81638 , p_transaction_coa_id => l_adr_transaction_coa_id
81639 , p_accounting_coa_id => l_adr_accounting_coa_id
81640 , p_adr_code => 'AP_RECP_INV_DIST'
81641 , p_adr_type_code => 'S'
81642 , p_component_type => l_component_type
81643 , p_component_code => l_component_code
81644 , p_component_type_code => l_component_type_code
81645 , p_component_appl_id => l_component_appl_id
81646 , p_amb_context_code => l_amb_context_code
81647 , p_side => 'NA'
81648 );
81649
81650
81651 --
81652 --
81653 END IF;
81654
81655 --
81656 -- Update the line information that should be overwritten
81657 --
81658 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81659 p_header_num => 1);
81660 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
81661
81662 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81663
81664 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
81665 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81666 END IF;
81667
81668 --
81669 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81670 --
81671 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81672 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
81673 ELSE
81674 ---------------------------------------------------------------------------------------------------
81675 -- 4262811a Switch Sign
81679 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81676 ---------------------------------------------------------------------------------------------------
81677 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
81678 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81680 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81681 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81682 -- 5132302
81683 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81684 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81685
81686 END IF;
81687
81688 -- 4955764
81689 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81690 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81691
81692
81693 XLA_AE_LINES_PKG.ValidateCurrentLine;
81694 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81695
81696 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81697 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81698 ,p_balance_type_code => l_balance_type_code);
81699
81700 END IF;
81701
81702 -----------------------------------------------------------------------------------------
81703 -- 4262811 Multiperiod Accounting
81704 -----------------------------------------------------------------------------------------
81705 -- No MPA option is assigned.
81706
81707
81708 END IF;
81709 END IF;
81710 --
81711
81712 --
81713 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81714 trace
81715 (p_msg => 'END of AcctLineType_148'
81716 ,p_level => C_LEVEL_PROCEDURE
81717 ,p_module => l_log_module);
81718 END IF;
81719 --
81720 EXCEPTION
81721 WHEN xla_exceptions_pkg.application_exception THEN
81722 RAISE;
81723 WHEN OTHERS THEN
81724 xla_exceptions_pkg.raise_message
81725 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_148');
81726 END AcctLineType_148;
81727 --
81728
81729 ---------------------------------------
81730 --
81731 -- PRIVATE FUNCTION
81732 -- AcctLineType_149
81733 --
81734 ---------------------------------------
81735 PROCEDURE AcctLineType_149 (
81736 p_application_id IN NUMBER
81737 ,p_event_id IN NUMBER
81738 ,p_calculate_acctd_flag IN VARCHAR2
81739 ,p_calculate_g_l_flag IN VARCHAR2
81740 ,p_actual_flag IN OUT VARCHAR2
81741 ,p_balance_type_code OUT VARCHAR2
81742 ,p_gain_or_loss_ref OUT VARCHAR2
81743
81744 --Payment Distribution (Payment Rate) Ledger Amount
81745 , p_source_9 IN NUMBER
81746 --Payment Card Accrued Account
81747 , p_source_31 IN NUMBER
81748 --Accounting Reversal Indicator
81749 , p_source_40 IN VARCHAR2
81750 --Payment Distribution Amount
81751 , p_source_41 IN NUMBER
81752 --Business Flow Accounts Payable Application Identifier
81753 , p_source_42 IN NUMBER
81754 --Payment Distribution Identifier
81755 , p_source_47 IN NUMBER
81756 --Distribution Link Type
81757 , p_source_48 IN VARCHAR2
81758 --Payment Currency Code
81759 , p_source_49 IN VARCHAR2
81760 --Override Accounted Amount Indicator
81761 , p_source_53 IN VARCHAR2
81762 , p_source_53_meaning IN VARCHAR2
81763 --Payment Supplier Identifier
81764 , p_source_54 IN NUMBER
81765 --Payment Supplier Site Identifier
81766 , p_source_55 IN NUMBER
81767 --Third Party Type
81768 , p_source_56 IN VARCHAR2
81769 --Payment Distribution Reversed Identifier
81770 , p_source_57 IN NUMBER
81771 --Invoice Distribution Tax Line Identifier
81772 , p_source_58 IN NUMBER
81773 --Invoice Distribution Summary Tax Line Identifier
81774 , p_source_59 IN NUMBER
81775 --Invoice Distribution Amount of the Payment Distribution
81776 , p_source_61 IN NUMBER
81777 --Business Flow Invoice Distribution Type
81778 , p_source_62 IN VARCHAR2
81779 --Business Flow Invoice Entity Code
81780 , p_source_63 IN VARCHAR2
81781 --Business Flow Invoice Distribution Identifier
81782 , p_source_64 IN NUMBER
81783 --Business Flow Invoice Identifier
81784 , p_source_65 IN NUMBER
81785 --Invoice Distribution Tax Distribution Identifier from Tax
81786 , p_source_66 IN NUMBER
81787 --Payment Processing Type
81788 , p_source_113 IN VARCHAR2
81789 --Payment Exchange Date
81790 , p_source_114 IN DATE
81791 --Payment Exchange Rate
81792 , p_source_115 IN NUMBER
81793 --Payment Exchange Rate Type
81794 , p_source_116 IN VARCHAR2
81795 )
81796 IS
81797
81798 l_component_type VARCHAR2(80);
81799 l_component_code VARCHAR2(30);
81800 l_component_type_code VARCHAR2(1);
81801 l_component_appl_id INTEGER;
81802 l_amb_context_code VARCHAR2(30);
81806 l_event_type_code VARCHAR2(30);
81803 l_entity_code VARCHAR2(30);
81804 l_event_class_code VARCHAR2(30);
81805 l_ae_header_id NUMBER;
81807 l_line_definition_code VARCHAR2(30);
81808 l_line_definition_owner_code VARCHAR2(1);
81809 --
81810 -- adr variables
81811 l_segment VARCHAR2(30);
81812 l_ccid NUMBER;
81813 l_adr_transaction_coa_id NUMBER;
81814 l_adr_accounting_coa_id NUMBER;
81815 l_adr_flexfield_segment_code VARCHAR2(30);
81816 l_adr_flex_value_set_id NUMBER;
81817 l_adr_value_type_code VARCHAR2(30);
81818 l_adr_value_combination_id NUMBER;
81819 l_adr_value_segment_code VARCHAR2(30);
81820
81821 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
81822 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
81823 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
81824 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
81825
81826 -- 4262811 Variables ------------------------------------------------------------------------------------------
81827 l_entered_amt_idx NUMBER;
81828 l_accted_amt_idx NUMBER;
81829 l_acc_rev_flag VARCHAR2(1);
81830 l_accrual_line_num NUMBER;
81831 l_tmp_amt NUMBER;
81832 l_acc_rev_natural_side_code VARCHAR2(1);
81833
81834 l_num_entries NUMBER;
81835 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
81836 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
81837 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
81838 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
81839 l_recog_line_1 NUMBER;
81840 l_recog_line_2 NUMBER;
81841
81842 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
81843 l_bflow_applied_to_amt NUMBER; -- 5132302
81844 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
81845
81846 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81847
81848 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
81849 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
81850
81851 ---------------------------------------------------------------------------------------------------------------
81852
81853
81854 --
81855 -- bulk performance
81856 --
81857 l_balance_type_code VARCHAR2(1);
81858 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
81859 l_log_module VARCHAR2(240);
81860
81861 --
81862 -- Upgrade strategy
81863 --
81864 l_actual_upg_option VARCHAR2(1);
81865 l_enc_upg_option VARCHAR2(1);
81866
81867 --
81868 BEGIN
81869 --
81870 IF g_log_enabled THEN
81871 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
81872 END IF;
81873 --
81874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81875
81876 trace
81877 (p_msg => 'BEGIN of AcctLineType_149'
81878 ,p_level => C_LEVEL_PROCEDURE
81879 ,p_module => l_log_module);
81880
81881 END IF;
81882 --
81883 l_component_type := 'AMB_JLT';
81884 l_component_code := 'AP_PAYCARD_PMT';
81885 l_component_type_code := 'S';
81886 l_component_appl_id := 200;
81887 l_amb_context_code := 'DEFAULT';
81888 l_entity_code := 'AP_PAYMENTS';
81889 l_event_class_code := 'PAYMENTS';
81890 l_event_type_code := 'PAYMENTS_ALL';
81891 l_line_definition_owner_code := 'S';
81892 l_line_definition_code := 'CASH_PAYMENTS_ALL';
81893 --
81894 l_balance_type_code := 'A';
81895 l_segment := NULL;
81896 l_ccid := NULL;
81897 l_adr_transaction_coa_id := NULL;
81898 l_adr_accounting_coa_id := NULL;
81899 l_adr_flexfield_segment_code := NULL;
81900 l_adr_flex_value_set_id := NULL;
81901 l_adr_value_type_code := NULL;
81902 l_adr_value_combination_id := NULL;
81903 l_adr_value_segment_code := NULL;
81904
81905 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
81906 l_bflow_class_code := ''; -- 4219869 Business Flow
81907 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
81908 l_budgetary_control_flag := 'N';
81909
81910 l_bflow_applied_to_amt_idx := NULL; -- 5132302
81911 l_bflow_applied_to_amt := NULL; -- 5132302
81912 l_entered_amt_idx := NULL; -- 4262811
81913 l_accted_amt_idx := NULL; -- 4262811
81914 l_acc_rev_flag := NULL; -- 4262811
81915 l_accrual_line_num := NULL; -- 4262811
81916 l_tmp_amt := NULL; -- 4262811
81917 --
81918
81919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81920 l_balance_type_code <> 'B' THEN
81921 IF NVL(p_source_113,'
81922 ') = 'PAYMENTCARD'
81923 THEN
81924
81925 --
81926 XLA_AE_LINES_PKG.SetNewLine;
81927
81928 p_balance_type_code := l_balance_type_code;
81929 -- set the flag so later we will know whether the gain loss line needs to be created
81933 END IF;
81930
81931 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81932 p_actual_flag :='A';
81934
81935 --
81936 -- bulk performance
81937 --
81938 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81939 p_header_num => 0); -- 4262811
81940 --
81941 -- set accounting line options
81942 --
81943 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81944 p_natural_side_code => 'C'
81945 , p_gain_or_loss_flag => 'N'
81946 , p_gl_transfer_mode_code => 'S'
81947 , p_acct_entry_type_code => 'A'
81948 , p_switch_side_flag => 'Y'
81949 , p_merge_duplicate_code => 'A'
81950 );
81951 --
81952 l_acc_rev_natural_side_code := 'D'; -- 4262811
81953 --
81954 --
81955 -- set accounting line type info
81956 --
81957 xla_ae_lines_pkg.SetAcctLineType
81958 (p_component_type => l_component_type
81959 ,p_event_type_code => l_event_type_code
81960 ,p_line_definition_owner_code => l_line_definition_owner_code
81961 ,p_line_definition_code => l_line_definition_code
81962 ,p_accounting_line_code => l_component_code
81963 ,p_accounting_line_type_code => l_component_type_code
81964 ,p_accounting_line_appl_id => l_component_appl_id
81965 ,p_amb_context_code => l_amb_context_code
81966 ,p_entity_code => l_entity_code
81967 ,p_event_class_code => l_event_class_code);
81968 --
81969 -- set accounting class
81970 --
81971 xla_ae_lines_pkg.SetAcctClass(
81972 p_accounting_class_code => 'PAYMENTCARD'
81973 , p_ae_header_id => l_ae_header_id
81974 );
81975
81976 --
81977 -- set rounding class
81978 --
81979 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81980 'PAYMENTCARD';
81981
81982 --
81983 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81984 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81985 --
81986 -- bulk performance
81987 --
81988 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81989
81990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81991 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81992
81993 -- 4955764
81994 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81995 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81996
81997 -- 4458381 Public Sector Enh
81998
81999 --
82000 -- set accounting attributes for the line type
82001 --
82002 l_entered_amt_idx := 10;
82003 l_accted_amt_idx := 15;
82004 l_bflow_applied_to_amt_idx := 2; -- 5132302
82005 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82006 l_rec_acct_attrs.array_char_value(1) := p_source_40;
82007 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82008 l_rec_acct_attrs.array_num_value(2) := p_source_61;
82009 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82010 l_rec_acct_attrs.array_num_value(3) := p_source_42;
82011 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82012 l_rec_acct_attrs.array_char_value(4) := p_source_62;
82013 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82014 l_rec_acct_attrs.array_char_value(5) := p_source_63;
82015 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82016 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
82017 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82018 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
82019 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82020 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
82021 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82022 l_rec_acct_attrs.array_char_value(9) := p_source_48;
82023 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82024 l_rec_acct_attrs.array_num_value(10) := p_source_41;
82025 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82026 l_rec_acct_attrs.array_char_value(11) := p_source_49;
82027 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
82028 l_rec_acct_attrs.array_date_value(12) := p_source_114;
82029 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
82030 l_rec_acct_attrs.array_num_value(13) := p_source_115;
82031 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
82032 l_rec_acct_attrs.array_char_value(14) := p_source_116;
82033 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
82034 l_rec_acct_attrs.array_num_value(15) := p_source_9;
82035 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
82036 l_rec_acct_attrs.array_char_value(16) := p_source_53;
82037 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
82038 l_rec_acct_attrs.array_num_value(17) := p_source_54;
82039 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
82040 l_rec_acct_attrs.array_num_value(18) := p_source_55;
82041 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
82045 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
82042 l_rec_acct_attrs.array_char_value(19) := p_source_56;
82043 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
82044 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
82046 l_rec_acct_attrs.array_char_value(21) := p_source_48;
82047 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
82048 l_rec_acct_attrs.array_num_value(22) := p_source_58;
82049 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
82050 l_rec_acct_attrs.array_num_value(23) := p_source_66;
82051 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
82052 l_rec_acct_attrs.array_num_value(24) := p_source_59;
82053
82054 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82055 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82056
82057 ---------------------------------------------------------------------------------------------------------------
82058 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82059 ---------------------------------------------------------------------------------------------------------------
82060 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82061
82062 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82063 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82064
82065 IF xla_accounting_cache_pkg.GetValueChar
82066 (p_source_code => 'LEDGER_CATEGORY_CODE'
82067 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82068 AND l_bflow_method_code = 'PRIOR_ENTRY'
82069 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82070 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82071 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82072 )
82073 THEN
82074 xla_ae_lines_pkg.BflowUpgEntry
82075 (p_business_method_code => l_bflow_method_code
82076 ,p_business_class_code => l_bflow_class_code
82077 ,p_balance_type => l_balance_type_code);
82078 ELSE
82079 NULL;
82080 -- No business flow processing for business flow method of NONE.
82081 END IF;
82082
82083 --
82084 -- call analytical criteria
82085 --
82086
82087 --
82088 -- call description
82089 --
82090 -- No description or it is inherited.
82091 --
82092 -- call ADRs
82093 -- Bug 4922099
82094 --
82095 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82096 (NVL(l_actual_upg_option, 'N') = 'O') OR
82097 (NVL(l_enc_upg_option, 'N') = 'O')
82098 )
82099 THEN
82100 NULL;
82101 --
82102 --
82103
82104 l_ccid := AcctDerRule_27(
82105 p_application_id => p_application_id
82106 , p_ae_header_id => l_ae_header_id
82107 , p_source_31 => p_source_31
82108 , x_transaction_coa_id => l_adr_transaction_coa_id
82109 , x_accounting_coa_id => l_adr_accounting_coa_id
82110 , x_value_type_code => l_adr_value_type_code
82111 , p_side => 'NA'
82112 );
82113
82114 xla_ae_lines_pkg.set_ccid(
82115 p_code_combination_id => l_ccid
82116 , p_value_type_code => l_adr_value_type_code
82117 , p_transaction_coa_id => l_adr_transaction_coa_id
82118 , p_accounting_coa_id => l_adr_accounting_coa_id
82119 , p_adr_code => 'AP_PAYCARD_ACCRUED_ADR'
82120 , p_adr_type_code => 'S'
82121 , p_component_type => l_component_type
82122 , p_component_code => l_component_code
82123 , p_component_type_code => l_component_type_code
82124 , p_component_appl_id => l_component_appl_id
82125 , p_amb_context_code => l_amb_context_code
82126 , p_side => 'NA'
82127 );
82128
82129
82130 --
82131 --
82132 END IF;
82133 --
82134 -- Bug 4922099
82135 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82136 (NVL(l_enc_upg_option, 'N') = 'O')
82137 ) AND
82138 (l_bflow_method_code = 'PRIOR_ENTRY')
82139 )
82140 THEN
82141 IF
82142 --
82143 1 = 2
82144 --
82145 THEN
82146 xla_accounting_err_pkg.build_message
82147 (p_appli_s_name => 'XLA'
82148 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82149 ,p_token_1 => 'LINE_NUMBER'
82150 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
82151 ,p_token_2 => 'LINE_TYPE_NAME'
82152 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
82153 l_component_type
82154 ,l_component_code
82155 ,l_component_type_code
82159 ,l_event_class_code
82156 ,l_component_appl_id
82157 ,l_amb_context_code
82158 ,l_entity_code
82160 )
82161 ,p_token_3 => 'OWNER'
82162 ,p_value_3 => xla_lookups_pkg.get_meaning(
82163 p_lookup_type => 'XLA_OWNER_TYPE'
82164 ,p_lookup_code => l_component_type_code
82165 )
82166 ,p_token_4 => 'PRODUCT_NAME'
82167 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82168 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82169 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82170 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82171 ,p_ae_header_id => NULL
82172 );
82173
82174 IF (C_LEVEL_ERROR>= g_log_level) THEN
82175 trace
82176 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82177 ,p_level => C_LEVEL_ERROR
82178 ,p_module => l_log_module);
82179 END IF;
82180 END IF;
82181 END IF;
82182 --
82183 --
82184 ------------------------------------------------------------------------------------------------
82185 -- 4219869 Business Flow
82186 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82187 -- Prior Entry. Currently, the following code is always generated.
82188 ------------------------------------------------------------------------------------------------
82189 XLA_AE_LINES_PKG.ValidateCurrentLine;
82190
82191 ------------------------------------------------------------------------------------
82192 -- 4219869 Business Flow
82193 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82194 ------------------------------------------------------------------------------------
82195 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82196
82197 ----------------------------------------------------------------------------------
82198 -- 4219869 Business Flow
82199 -- Update journal entry status -- Need to generate this within IF <condition>
82200 ----------------------------------------------------------------------------------
82201 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82202 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82203 ,p_balance_type_code => l_balance_type_code
82204 );
82205
82206 -------------------------------------------------------------------------------------------
82207 -- 4262811 - Generate the Accrual Reversal lines
82208 -------------------------------------------------------------------------------------------
82209 BEGIN
82210 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82211 (g_array_event(p_event_id).array_value_num('header_index'));
82212 IF l_acc_rev_flag IS NULL THEN
82213 l_acc_rev_flag := 'N';
82214 END IF;
82215 EXCEPTION
82216 WHEN OTHERS THEN
82217 l_acc_rev_flag := 'N';
82218 END;
82219 --
82220 IF (l_acc_rev_flag = 'Y') THEN
82221
82222 -- 4645092 ------------------------------------------------------------------------------
82223 -- To allow MPA report to determine if it should generate report process
82224 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82225 ------------------------------------------------------------------------------------------
82226
82227 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82228 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82229 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
82230 -- call ADRs
82231 -- Bug 4922099
82232 --
82233 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82234 (NVL(l_actual_upg_option, 'N') = 'O') OR
82235 (NVL(l_enc_upg_option, 'N') = 'O')
82236 )
82237 THEN
82238 NULL;
82239 --
82240 --
82241
82242 l_ccid := AcctDerRule_27(
82243 p_application_id => p_application_id
82244 , p_ae_header_id => l_ae_header_id
82245 , p_source_31 => p_source_31
82246 , x_transaction_coa_id => l_adr_transaction_coa_id
82247 , x_accounting_coa_id => l_adr_accounting_coa_id
82248 , x_value_type_code => l_adr_value_type_code
82249 , p_side => 'NA'
82250 );
82251
82252 xla_ae_lines_pkg.set_ccid(
82253 p_code_combination_id => l_ccid
82254 , p_value_type_code => l_adr_value_type_code
82258 , p_adr_type_code => 'S'
82255 , p_transaction_coa_id => l_adr_transaction_coa_id
82256 , p_accounting_coa_id => l_adr_accounting_coa_id
82257 , p_adr_code => 'AP_PAYCARD_ACCRUED_ADR'
82259 , p_component_type => l_component_type
82260 , p_component_code => l_component_code
82261 , p_component_type_code => l_component_type_code
82262 , p_component_appl_id => l_component_appl_id
82263 , p_amb_context_code => l_amb_context_code
82264 , p_side => 'NA'
82265 );
82266
82267
82268 --
82269 --
82270 END IF;
82271
82272 --
82273 -- Update the line information that should be overwritten
82274 --
82275 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82276 p_header_num => 1);
82277 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
82278
82279 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82280
82281 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
82282 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82283 END IF;
82284
82285 --
82286 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82287 --
82288 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82289 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
82290 ELSE
82291 ---------------------------------------------------------------------------------------------------
82292 -- 4262811a Switch Sign
82293 ---------------------------------------------------------------------------------------------------
82294 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
82295 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82296 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82297 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82298 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82299 -- 5132302
82300 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82301 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82302
82303 END IF;
82304
82305 -- 4955764
82306 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82307 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82308
82309
82310 XLA_AE_LINES_PKG.ValidateCurrentLine;
82311 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82312
82313 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82314 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82315 ,p_balance_type_code => l_balance_type_code);
82316
82317 END IF;
82318
82319 -----------------------------------------------------------------------------------------
82320 -- 4262811 Multiperiod Accounting
82321 -----------------------------------------------------------------------------------------
82322 -- No MPA option is assigned.
82323
82324
82325 END IF;
82326 END IF;
82327 --
82328
82329 --
82330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82331 trace
82332 (p_msg => 'END of AcctLineType_149'
82333 ,p_level => C_LEVEL_PROCEDURE
82334 ,p_module => l_log_module);
82335 END IF;
82336 --
82337 EXCEPTION
82338 WHEN xla_exceptions_pkg.application_exception THEN
82339 RAISE;
82340 WHEN OTHERS THEN
82341 xla_exceptions_pkg.raise_message
82342 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_149');
82343 END AcctLineType_149;
82344 --
82345
82346 ---------------------------------------
82347 --
82348 -- PRIVATE FUNCTION
82349 -- AcctLineType_150
82350 --
82351 ---------------------------------------
82352 PROCEDURE AcctLineType_150 (
82353 p_application_id IN NUMBER
82354 ,p_event_id IN NUMBER
82355 ,p_calculate_acctd_flag IN VARCHAR2
82356 ,p_calculate_g_l_flag IN VARCHAR2
82357 ,p_actual_flag IN OUT VARCHAR2
82358 ,p_balance_type_code OUT VARCHAR2
82359 ,p_gain_or_loss_ref OUT VARCHAR2
82360
82361 --Automatic Offsets Value
82362 , p_source_4 IN VARCHAR2
82363 , p_source_4_meaning IN VARCHAR2
82364 --Payment Distribution (Payment Rate) Ledger Amount
82365 , p_source_9 IN NUMBER
82366 --Invoice Distribution Account
82367 , p_source_17 IN NUMBER
82368 --Payables Options Rounding Account
82369 , p_source_37 IN NUMBER
82370 --When to Account for Payment Option
82371 , p_source_38 IN VARCHAR2
82372 --Payment Distribution Type
82373 , p_source_39 IN VARCHAR2
82374 , p_source_39_meaning IN VARCHAR2
82375 --Accounting Reversal Indicator
82379 --Business Flow Accounts Payable Application Identifier
82376 , p_source_40 IN VARCHAR2
82377 --Payment Distribution Amount
82378 , p_source_41 IN NUMBER
82380 , p_source_42 IN NUMBER
82381 --Business Flow Payment Distribution Type
82382 , p_source_43 IN VARCHAR2
82383 --Business Flow Payment Entity Code
82384 , p_source_44 IN VARCHAR2
82385 --Business Flow Payment Distribution Identifier
82386 , p_source_45 IN NUMBER
82387 --Business Flow Payment Identifier
82388 , p_source_46 IN NUMBER
82389 --Payment Distribution Identifier
82390 , p_source_47 IN NUMBER
82391 --Distribution Link Type
82392 , p_source_48 IN VARCHAR2
82393 --Payment Currency Code
82394 , p_source_49 IN VARCHAR2
82395 --Override Accounted Amount Indicator
82396 , p_source_53 IN VARCHAR2
82397 , p_source_53_meaning IN VARCHAR2
82398 --Payment Supplier Identifier
82399 , p_source_54 IN NUMBER
82400 --Payment Supplier Site Identifier
82401 , p_source_55 IN NUMBER
82402 --Third Party Type
82403 , p_source_56 IN VARCHAR2
82404 --Payment Distribution Reversed Identifier
82405 , p_source_57 IN NUMBER
82406 --Invoice Distribution Tax Line Identifier
82407 , p_source_58 IN NUMBER
82408 --Invoice Distribution Summary Tax Line Identifier
82409 , p_source_59 IN NUMBER
82410 --Payment Maturity Date
82411 , p_source_111 IN DATE
82412 --Payment Exchange Date
82413 , p_source_114 IN DATE
82414 --Payment Exchange Rate
82415 , p_source_115 IN NUMBER
82416 --Payment Exchange Rate Type
82417 , p_source_116 IN VARCHAR2
82418 )
82419 IS
82420
82421 l_component_type VARCHAR2(80);
82422 l_component_code VARCHAR2(30);
82423 l_component_type_code VARCHAR2(1);
82424 l_component_appl_id INTEGER;
82425 l_amb_context_code VARCHAR2(30);
82426 l_entity_code VARCHAR2(30);
82427 l_event_class_code VARCHAR2(30);
82428 l_ae_header_id NUMBER;
82429 l_event_type_code VARCHAR2(30);
82430 l_line_definition_code VARCHAR2(30);
82431 l_line_definition_owner_code VARCHAR2(1);
82432 --
82433 -- adr variables
82434 l_segment VARCHAR2(30);
82435 l_ccid NUMBER;
82436 l_adr_transaction_coa_id NUMBER;
82437 l_adr_accounting_coa_id NUMBER;
82438 l_adr_flexfield_segment_code VARCHAR2(30);
82439 l_adr_flex_value_set_id NUMBER;
82440 l_adr_value_type_code VARCHAR2(30);
82441 l_adr_value_combination_id NUMBER;
82442 l_adr_value_segment_code VARCHAR2(30);
82443
82444 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
82445 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
82446 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
82447 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
82448
82449 -- 4262811 Variables ------------------------------------------------------------------------------------------
82450 l_entered_amt_idx NUMBER;
82451 l_accted_amt_idx NUMBER;
82452 l_acc_rev_flag VARCHAR2(1);
82453 l_accrual_line_num NUMBER;
82454 l_tmp_amt NUMBER;
82455 l_acc_rev_natural_side_code VARCHAR2(1);
82456
82457 l_num_entries NUMBER;
82458 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
82459 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
82460 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
82461 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
82462 l_recog_line_1 NUMBER;
82463 l_recog_line_2 NUMBER;
82464
82465 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
82466 l_bflow_applied_to_amt NUMBER; -- 5132302
82467 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
82468
82469 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82470
82471 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
82472 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
82473
82474 ---------------------------------------------------------------------------------------------------------------
82475
82476
82477 --
82478 -- bulk performance
82479 --
82480 l_balance_type_code VARCHAR2(1);
82481 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
82482 l_log_module VARCHAR2(240);
82483
82484 --
82485 -- Upgrade strategy
82486 --
82487 l_actual_upg_option VARCHAR2(1);
82488 l_enc_upg_option VARCHAR2(1);
82489
82490 --
82491 BEGIN
82492 --
82493 IF g_log_enabled THEN
82494 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
82495 END IF;
82496 --
82497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82498
82499 trace
82500 (p_msg => 'BEGIN of AcctLineType_150'
82501 ,p_level => C_LEVEL_PROCEDURE
82502 ,p_module => l_log_module);
82503
82504 END IF;
82505 --
82506 l_component_type := 'AMB_JLT';
82510 l_amb_context_code := 'DEFAULT';
82507 l_component_code := 'AP_PMT_CLR_ROUNDING_CLEAR';
82508 l_component_type_code := 'S';
82509 l_component_appl_id := 200;
82511 l_entity_code := 'AP_PAYMENTS';
82512 l_event_class_code := 'RECONCILED PAYMENTS';
82513 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
82514 l_line_definition_owner_code := 'S';
82515 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
82516 --
82517 l_balance_type_code := 'A';
82518 l_segment := NULL;
82519 l_ccid := NULL;
82520 l_adr_transaction_coa_id := NULL;
82521 l_adr_accounting_coa_id := NULL;
82522 l_adr_flexfield_segment_code := NULL;
82523 l_adr_flex_value_set_id := NULL;
82524 l_adr_value_type_code := NULL;
82525 l_adr_value_combination_id := NULL;
82526 l_adr_value_segment_code := NULL;
82527
82528 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
82529 l_bflow_class_code := ''; -- 4219869 Business Flow
82530 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
82531 l_budgetary_control_flag := 'N';
82532
82533 l_bflow_applied_to_amt_idx := NULL; -- 5132302
82534 l_bflow_applied_to_amt := NULL; -- 5132302
82535 l_entered_amt_idx := NULL; -- 4262811
82536 l_accted_amt_idx := NULL; -- 4262811
82537 l_acc_rev_flag := NULL; -- 4262811
82538 l_accrual_line_num := NULL; -- 4262811
82539 l_tmp_amt := NULL; -- 4262811
82540 --
82541
82542 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82543 l_balance_type_code <> 'B' THEN
82544 IF (NVL(p_source_38,'
82545 ') = 'ALWAYS_ALWAYS' OR
82546 NVL(p_source_38,'
82547 ') = 'ALWAYS_CLEAR') AND
82548 NVL(p_source_39,'
82549 ') = 'PAYMENT TO CLEARING ROUNDING' AND
82550 p_source_111 IS NULL
82551 THEN
82552
82553 --
82554 XLA_AE_LINES_PKG.SetNewLine;
82555
82556 p_balance_type_code := l_balance_type_code;
82557 -- set the flag so later we will know whether the gain loss line needs to be created
82558
82559 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82560 p_actual_flag :='A';
82561 END IF;
82562
82563 --
82564 -- bulk performance
82565 --
82566 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82567 p_header_num => 0); -- 4262811
82568 --
82569 -- set accounting line options
82570 --
82571 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82572 p_natural_side_code => 'D'
82573 , p_gain_or_loss_flag => 'N'
82574 , p_gl_transfer_mode_code => 'S'
82575 , p_acct_entry_type_code => 'A'
82576 , p_switch_side_flag => 'Y'
82577 , p_merge_duplicate_code => 'A'
82578 );
82579 --
82580 l_acc_rev_natural_side_code := 'C'; -- 4262811
82581 --
82582 --
82583 -- set accounting line type info
82584 --
82585 xla_ae_lines_pkg.SetAcctLineType
82586 (p_component_type => l_component_type
82587 ,p_event_type_code => l_event_type_code
82588 ,p_line_definition_owner_code => l_line_definition_owner_code
82589 ,p_line_definition_code => l_line_definition_code
82590 ,p_accounting_line_code => l_component_code
82591 ,p_accounting_line_type_code => l_component_type_code
82592 ,p_accounting_line_appl_id => l_component_appl_id
82593 ,p_amb_context_code => l_amb_context_code
82594 ,p_entity_code => l_entity_code
82595 ,p_event_class_code => l_event_class_code);
82596 --
82597 -- set accounting class
82598 --
82599 xla_ae_lines_pkg.SetAcctClass(
82600 p_accounting_class_code => 'ROUNDING'
82601 , p_ae_header_id => l_ae_header_id
82602 );
82603
82604 --
82605 -- set rounding class
82606 --
82607 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82608 'ROUNDING';
82609
82610 --
82611 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82612 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82613 --
82614 -- bulk performance
82615 --
82616 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82617
82618 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82619 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82620
82621 -- 4955764
82622 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82623 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82624
82625 -- 4458381 Public Sector Enh
82626
82627 --
82628 -- set accounting attributes for the line type
82629 --
82630 l_entered_amt_idx := 10;
82631 l_accted_amt_idx := 15;
82632 l_bflow_applied_to_amt_idx := 2; -- 5132302
82633 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82634 l_rec_acct_attrs.array_char_value(1) := p_source_40;
82638 l_rec_acct_attrs.array_num_value(3) := p_source_42;
82635 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82636 l_rec_acct_attrs.array_num_value(2) := p_source_41;
82637 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82639 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82640 l_rec_acct_attrs.array_char_value(4) := p_source_43;
82641 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82642 l_rec_acct_attrs.array_char_value(5) := p_source_44;
82643 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82644 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
82645 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82646 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
82647 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82648 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
82649 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82650 l_rec_acct_attrs.array_char_value(9) := p_source_48;
82651 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82652 l_rec_acct_attrs.array_num_value(10) := p_source_41;
82653 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82654 l_rec_acct_attrs.array_char_value(11) := p_source_49;
82655 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
82656 l_rec_acct_attrs.array_date_value(12) := p_source_114;
82657 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
82658 l_rec_acct_attrs.array_num_value(13) := p_source_115;
82659 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
82660 l_rec_acct_attrs.array_char_value(14) := p_source_116;
82661 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
82662 l_rec_acct_attrs.array_num_value(15) := p_source_9;
82663 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
82664 l_rec_acct_attrs.array_char_value(16) := p_source_53;
82665 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
82666 l_rec_acct_attrs.array_num_value(17) := p_source_54;
82667 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
82668 l_rec_acct_attrs.array_num_value(18) := p_source_55;
82669 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
82670 l_rec_acct_attrs.array_char_value(19) := p_source_56;
82671 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
82672 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
82673 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
82674 l_rec_acct_attrs.array_char_value(21) := p_source_48;
82675 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
82676 l_rec_acct_attrs.array_num_value(22) := p_source_58;
82677 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
82678 l_rec_acct_attrs.array_num_value(23) := p_source_58;
82679 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
82680 l_rec_acct_attrs.array_num_value(24) := p_source_59;
82681
82682 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82683 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82684
82685 ---------------------------------------------------------------------------------------------------------------
82686 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82687 ---------------------------------------------------------------------------------------------------------------
82688 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82689
82690 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82691 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82692
82693 IF xla_accounting_cache_pkg.GetValueChar
82694 (p_source_code => 'LEDGER_CATEGORY_CODE'
82695 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82696 AND l_bflow_method_code = 'PRIOR_ENTRY'
82697 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82698 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82699 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82700 )
82701 THEN
82702 xla_ae_lines_pkg.BflowUpgEntry
82703 (p_business_method_code => l_bflow_method_code
82704 ,p_business_class_code => l_bflow_class_code
82705 ,p_balance_type => l_balance_type_code);
82706 ELSE
82707 NULL;
82708 -- No business flow processing for business flow method of NONE.
82709 END IF;
82710
82711 --
82712 -- call analytical criteria
82713 --
82714
82715 --
82716 -- call description
82717 --
82718 -- No description or it is inherited.
82719 --
82720 -- call ADRs
82721 -- Bug 4922099
82722 --
82723 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82724 (NVL(l_actual_upg_option, 'N') = 'O') OR
82725 (NVL(l_enc_upg_option, 'N') = 'O')
82726 )
82727 THEN
82728 NULL;
82729 --
82730 --
82731
82732 l_ccid := AcctDerRule_35(
82733 p_application_id => p_application_id
82734 , p_ae_header_id => l_ae_header_id
82735 , p_source_4 => p_source_4
82736 , p_source_4_meaning => p_source_4_meaning
82737 , p_source_17 => p_source_17
82741 , x_value_type_code => l_adr_value_type_code
82738 , p_source_37 => p_source_37
82739 , x_transaction_coa_id => l_adr_transaction_coa_id
82740 , x_accounting_coa_id => l_adr_accounting_coa_id
82742 , p_side => 'NA'
82743 );
82744
82745 xla_ae_lines_pkg.set_ccid(
82746 p_code_combination_id => l_ccid
82747 , p_value_type_code => l_adr_value_type_code
82748 , p_transaction_coa_id => l_adr_transaction_coa_id
82749 , p_accounting_coa_id => l_adr_accounting_coa_id
82750 , p_adr_code => 'AP_ROUNDING'
82751 , p_adr_type_code => 'S'
82752 , p_component_type => l_component_type
82753 , p_component_code => l_component_code
82754 , p_component_type_code => l_component_type_code
82755 , p_component_appl_id => l_component_appl_id
82756 , p_amb_context_code => l_amb_context_code
82757 , p_side => 'NA'
82758 );
82759
82760
82761 --
82762 --
82763 END IF;
82764 --
82765 -- Bug 4922099
82766 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82767 (NVL(l_enc_upg_option, 'N') = 'O')
82768 ) AND
82769 (l_bflow_method_code = 'PRIOR_ENTRY')
82770 )
82771 THEN
82772 IF
82773 --
82774 1 = 2
82775 --
82776 THEN
82777 xla_accounting_err_pkg.build_message
82778 (p_appli_s_name => 'XLA'
82779 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82780 ,p_token_1 => 'LINE_NUMBER'
82781 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
82782 ,p_token_2 => 'LINE_TYPE_NAME'
82783 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
82784 l_component_type
82785 ,l_component_code
82786 ,l_component_type_code
82787 ,l_component_appl_id
82788 ,l_amb_context_code
82789 ,l_entity_code
82790 ,l_event_class_code
82791 )
82792 ,p_token_3 => 'OWNER'
82793 ,p_value_3 => xla_lookups_pkg.get_meaning(
82794 p_lookup_type => 'XLA_OWNER_TYPE'
82795 ,p_lookup_code => l_component_type_code
82796 )
82797 ,p_token_4 => 'PRODUCT_NAME'
82798 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82799 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82800 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82801 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82802 ,p_ae_header_id => NULL
82803 );
82804
82805 IF (C_LEVEL_ERROR>= g_log_level) THEN
82806 trace
82807 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82808 ,p_level => C_LEVEL_ERROR
82809 ,p_module => l_log_module);
82810 END IF;
82811 END IF;
82812 END IF;
82813 --
82814 --
82815 ------------------------------------------------------------------------------------------------
82816 -- 4219869 Business Flow
82817 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82818 -- Prior Entry. Currently, the following code is always generated.
82819 ------------------------------------------------------------------------------------------------
82820 XLA_AE_LINES_PKG.ValidateCurrentLine;
82821
82822 ------------------------------------------------------------------------------------
82823 -- 4219869 Business Flow
82824 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82825 ------------------------------------------------------------------------------------
82826 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82827
82828 ----------------------------------------------------------------------------------
82829 -- 4219869 Business Flow
82830 -- Update journal entry status -- Need to generate this within IF <condition>
82831 ----------------------------------------------------------------------------------
82832 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82833 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82837 -------------------------------------------------------------------------------------------
82834 ,p_balance_type_code => l_balance_type_code
82835 );
82836
82838 -- 4262811 - Generate the Accrual Reversal lines
82839 -------------------------------------------------------------------------------------------
82840 BEGIN
82841 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82842 (g_array_event(p_event_id).array_value_num('header_index'));
82843 IF l_acc_rev_flag IS NULL THEN
82844 l_acc_rev_flag := 'N';
82845 END IF;
82846 EXCEPTION
82847 WHEN OTHERS THEN
82848 l_acc_rev_flag := 'N';
82849 END;
82850 --
82851 IF (l_acc_rev_flag = 'Y') THEN
82852
82853 -- 4645092 ------------------------------------------------------------------------------
82854 -- To allow MPA report to determine if it should generate report process
82855 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82856 ------------------------------------------------------------------------------------------
82857
82858 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82859 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82860 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
82861 -- call ADRs
82862 -- Bug 4922099
82863 --
82864 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82865 (NVL(l_actual_upg_option, 'N') = 'O') OR
82866 (NVL(l_enc_upg_option, 'N') = 'O')
82867 )
82868 THEN
82869 NULL;
82870 --
82871 --
82872
82873 l_ccid := AcctDerRule_35(
82874 p_application_id => p_application_id
82875 , p_ae_header_id => l_ae_header_id
82876 , p_source_4 => p_source_4
82877 , p_source_4_meaning => p_source_4_meaning
82878 , p_source_17 => p_source_17
82879 , p_source_37 => p_source_37
82880 , x_transaction_coa_id => l_adr_transaction_coa_id
82881 , x_accounting_coa_id => l_adr_accounting_coa_id
82882 , x_value_type_code => l_adr_value_type_code
82883 , p_side => 'NA'
82884 );
82885
82886 xla_ae_lines_pkg.set_ccid(
82887 p_code_combination_id => l_ccid
82888 , p_value_type_code => l_adr_value_type_code
82889 , p_transaction_coa_id => l_adr_transaction_coa_id
82890 , p_accounting_coa_id => l_adr_accounting_coa_id
82891 , p_adr_code => 'AP_ROUNDING'
82892 , p_adr_type_code => 'S'
82893 , p_component_type => l_component_type
82894 , p_component_code => l_component_code
82895 , p_component_type_code => l_component_type_code
82896 , p_component_appl_id => l_component_appl_id
82897 , p_amb_context_code => l_amb_context_code
82898 , p_side => 'NA'
82899 );
82900
82901
82902 --
82903 --
82904 END IF;
82905
82906 --
82907 -- Update the line information that should be overwritten
82908 --
82909 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82910 p_header_num => 1);
82911 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
82912
82913 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82914
82915 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
82916 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82917 END IF;
82918
82919 --
82920 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82921 --
82922 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82923 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
82924 ELSE
82925 ---------------------------------------------------------------------------------------------------
82926 -- 4262811a Switch Sign
82927 ---------------------------------------------------------------------------------------------------
82928 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
82929 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82931 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82933 -- 5132302
82934 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82936
82937 END IF;
82938
82939 -- 4955764
82940 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82941 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82942
82943
82947 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82944 XLA_AE_LINES_PKG.ValidateCurrentLine;
82945 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82946
82948 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82949 ,p_balance_type_code => l_balance_type_code);
82950
82951 END IF;
82952
82953 -----------------------------------------------------------------------------------------
82954 -- 4262811 Multiperiod Accounting
82955 -----------------------------------------------------------------------------------------
82956 -- No MPA option is assigned.
82957
82958
82959 END IF;
82960 END IF;
82961 --
82962
82963 --
82964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82965 trace
82966 (p_msg => 'END of AcctLineType_150'
82967 ,p_level => C_LEVEL_PROCEDURE
82968 ,p_module => l_log_module);
82969 END IF;
82970 --
82971 EXCEPTION
82972 WHEN xla_exceptions_pkg.application_exception THEN
82973 RAISE;
82974 WHEN OTHERS THEN
82975 xla_exceptions_pkg.raise_message
82976 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_150');
82977 END AcctLineType_150;
82978 --
82979
82980 ---------------------------------------
82981 --
82982 -- PRIVATE FUNCTION
82983 -- AcctLineType_151
82984 --
82985 ---------------------------------------
82986 PROCEDURE AcctLineType_151 (
82987 p_application_id IN NUMBER
82988 ,p_event_id IN NUMBER
82989 ,p_calculate_acctd_flag IN VARCHAR2
82990 ,p_calculate_g_l_flag IN VARCHAR2
82991 ,p_actual_flag IN OUT VARCHAR2
82992 ,p_balance_type_code OUT VARCHAR2
82993 ,p_gain_or_loss_ref OUT VARCHAR2
82994
82995 --Payment Distribution (Payment Rate) Ledger Amount
82996 , p_source_9 IN NUMBER
82997 --Invoice Distribution Account
82998 , p_source_17 IN NUMBER
82999 --Prepaid Expense Account Source Option
83000 , p_source_18 IN VARCHAR2
83001 , p_source_18_meaning IN VARCHAR2
83002 --Purchase Order Number
83003 , p_source_19 IN VARCHAR2
83004 --Invoice Distribution Type
83005 , p_source_20 IN VARCHAR2
83006 , p_source_20_meaning IN VARCHAR2
83007 --Purchase Order Charge Account
83008 , p_source_28 IN NUMBER
83009 --When to Account for Payment Option
83010 , p_source_38 IN VARCHAR2
83011 --Payment Distribution Type
83012 , p_source_39 IN VARCHAR2
83013 , p_source_39_meaning IN VARCHAR2
83014 --Accounting Reversal Indicator
83015 , p_source_40 IN VARCHAR2
83016 --Payment Distribution Amount
83017 , p_source_41 IN NUMBER
83018 --Business Flow Accounts Payable Application Identifier
83019 , p_source_42 IN NUMBER
83020 --Payment Distribution Identifier
83021 , p_source_47 IN NUMBER
83022 --Distribution Link Type
83023 , p_source_48 IN VARCHAR2
83024 --Payment Currency Code
83025 , p_source_49 IN VARCHAR2
83026 --Override Accounted Amount Indicator
83027 , p_source_53 IN VARCHAR2
83028 , p_source_53_meaning IN VARCHAR2
83029 --Payment Supplier Identifier
83030 , p_source_54 IN NUMBER
83031 --Payment Supplier Site Identifier
83032 , p_source_55 IN NUMBER
83033 --Third Party Type
83034 , p_source_56 IN VARCHAR2
83035 --Payment Distribution Reversed Identifier
83036 , p_source_57 IN NUMBER
83037 --Invoice Distribution Tax Line Identifier
83038 , p_source_58 IN NUMBER
83039 --Invoice Distribution Summary Tax Line Identifier
83040 , p_source_59 IN NUMBER
83041 --Payment Type
83042 , p_source_60 IN VARCHAR2
83043 , p_source_60_meaning IN VARCHAR2
83044 --Invoice Distribution Amount of the Payment Distribution
83045 , p_source_61 IN NUMBER
83046 --Business Flow Invoice Distribution Type
83047 , p_source_62 IN VARCHAR2
83048 --Business Flow Invoice Entity Code
83049 , p_source_63 IN VARCHAR2
83050 --Business Flow Invoice Distribution Identifier
83051 , p_source_64 IN NUMBER
83052 --Business Flow Invoice Identifier
83053 , p_source_65 IN NUMBER
83054 --Invoice Distribution Tax Distribution Identifier from Tax
83055 , p_source_66 IN NUMBER
83056 --Invoice Type Paid
83057 , p_source_101 IN VARCHAR2
83058 , p_source_101_meaning IN VARCHAR2
83059 --Payment Exchange Date
83060 , p_source_114 IN DATE
83061 --Payment Exchange Rate
83062 , p_source_115 IN NUMBER
83063 --Payment Exchange Rate Type
83064 , p_source_116 IN VARCHAR2
83065 )
83066 IS
83067
83068 l_component_type VARCHAR2(80);
83069 l_component_code VARCHAR2(30);
83070 l_component_type_code VARCHAR2(1);
83071 l_component_appl_id INTEGER;
83072 l_amb_context_code VARCHAR2(30);
83073 l_entity_code VARCHAR2(30);
83074 l_event_class_code VARCHAR2(30);
83075 l_ae_header_id NUMBER;
83076 l_event_type_code VARCHAR2(30);
83077 l_line_definition_code VARCHAR2(30);
83078 l_line_definition_owner_code VARCHAR2(1);
83079 --
83080 -- adr variables
83081 l_segment VARCHAR2(30);
83082 l_ccid NUMBER;
83086 l_adr_flex_value_set_id NUMBER;
83083 l_adr_transaction_coa_id NUMBER;
83084 l_adr_accounting_coa_id NUMBER;
83085 l_adr_flexfield_segment_code VARCHAR2(30);
83087 l_adr_value_type_code VARCHAR2(30);
83088 l_adr_value_combination_id NUMBER;
83089 l_adr_value_segment_code VARCHAR2(30);
83090
83091 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
83092 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
83093 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
83094 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
83095
83096 -- 4262811 Variables ------------------------------------------------------------------------------------------
83097 l_entered_amt_idx NUMBER;
83098 l_accted_amt_idx NUMBER;
83099 l_acc_rev_flag VARCHAR2(1);
83100 l_accrual_line_num NUMBER;
83101 l_tmp_amt NUMBER;
83102 l_acc_rev_natural_side_code VARCHAR2(1);
83103
83104 l_num_entries NUMBER;
83105 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
83106 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
83107 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
83108 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
83109 l_recog_line_1 NUMBER;
83110 l_recog_line_2 NUMBER;
83111
83112 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
83113 l_bflow_applied_to_amt NUMBER; -- 5132302
83114 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
83115
83116 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83117
83118 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
83119 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
83120
83121 ---------------------------------------------------------------------------------------------------------------
83122
83123
83124 --
83125 -- bulk performance
83126 --
83127 l_balance_type_code VARCHAR2(1);
83128 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83129 l_log_module VARCHAR2(240);
83130
83131 --
83132 -- Upgrade strategy
83133 --
83134 l_actual_upg_option VARCHAR2(1);
83135 l_enc_upg_option VARCHAR2(1);
83136
83137 --
83138 BEGIN
83139 --
83140 IF g_log_enabled THEN
83141 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
83142 END IF;
83143 --
83144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83145
83146 trace
83147 (p_msg => 'BEGIN of AcctLineType_151'
83148 ,p_level => C_LEVEL_PROCEDURE
83149 ,p_module => l_log_module);
83150
83151 END IF;
83152 --
83153 l_component_type := 'AMB_JLT';
83154 l_component_code := 'AP_PREPAID_EXPENSE_CASH_PMT';
83155 l_component_type_code := 'S';
83156 l_component_appl_id := 200;
83157 l_amb_context_code := 'DEFAULT';
83158 l_entity_code := 'AP_PAYMENTS';
83159 l_event_class_code := 'PAYMENTS';
83160 l_event_type_code := 'PAYMENTS_ALL';
83161 l_line_definition_owner_code := 'S';
83162 l_line_definition_code := 'CASH_PAYMENTS_ALL';
83163 --
83164 l_balance_type_code := 'A';
83165 l_segment := NULL;
83166 l_ccid := NULL;
83167 l_adr_transaction_coa_id := NULL;
83168 l_adr_accounting_coa_id := NULL;
83169 l_adr_flexfield_segment_code := NULL;
83170 l_adr_flex_value_set_id := NULL;
83171 l_adr_value_type_code := NULL;
83172 l_adr_value_combination_id := NULL;
83173 l_adr_value_segment_code := NULL;
83174
83175 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
83176 l_bflow_class_code := 'AP_PREPAY'; -- 4219869 Business Flow
83177 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
83178 l_budgetary_control_flag := 'N';
83179
83180 l_bflow_applied_to_amt_idx := NULL; -- 5132302
83181 l_bflow_applied_to_amt := NULL; -- 5132302
83182 l_entered_amt_idx := NULL; -- 4262811
83183 l_accted_amt_idx := NULL; -- 4262811
83184 l_acc_rev_flag := NULL; -- 4262811
83185 l_accrual_line_num := NULL; -- 4262811
83186 l_tmp_amt := NULL; -- 4262811
83187 --
83188
83189 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83190 l_balance_type_code <> 'B' THEN
83191 IF NVL(p_source_38,'
83192 ') <> 'CLEAR_CLEAR' AND
83193 (NVL(p_source_20,'
83194 ') = 'ITEM' OR
83195 NVL(p_source_20,'
83196 ') = 'AWT' OR
83197 NVL(p_source_20,'
83198 ') = 'RETROEXPENSE') AND
83199 NVL(p_source_101,'
83200 ') = 'PREPAYMENT' AND
83201 (NVL(p_source_39,'
83202 ') = 'CASH' OR
83203 NVL(p_source_39,'
83204 ') = 'AWT' OR
83205 NVL(p_source_39,'
83206 ') = 'DISCOUNT') AND
83207 NVL(p_source_60,'
83208 ') <> 'R'
83209 THEN
83210
83211 --
83212 XLA_AE_LINES_PKG.SetNewLine;
83213
83214 p_balance_type_code := l_balance_type_code;
83215 -- set the flag so later we will know whether the gain loss line needs to be created
83216
83220
83217 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83218 p_actual_flag :='A';
83219 END IF;
83221 --
83222 -- bulk performance
83223 --
83224 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83225 p_header_num => 0); -- 4262811
83226 --
83227 -- set accounting line options
83228 --
83229 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83230 p_natural_side_code => 'D'
83231 , p_gain_or_loss_flag => 'N'
83232 , p_gl_transfer_mode_code => 'S'
83233 , p_acct_entry_type_code => 'A'
83234 , p_switch_side_flag => 'Y'
83235 , p_merge_duplicate_code => 'A'
83236 );
83237 --
83238 l_acc_rev_natural_side_code := 'C'; -- 4262811
83239 --
83240 --
83241 -- set accounting line type info
83242 --
83243 xla_ae_lines_pkg.SetAcctLineType
83244 (p_component_type => l_component_type
83245 ,p_event_type_code => l_event_type_code
83246 ,p_line_definition_owner_code => l_line_definition_owner_code
83247 ,p_line_definition_code => l_line_definition_code
83248 ,p_accounting_line_code => l_component_code
83249 ,p_accounting_line_type_code => l_component_type_code
83250 ,p_accounting_line_appl_id => l_component_appl_id
83251 ,p_amb_context_code => l_amb_context_code
83252 ,p_entity_code => l_entity_code
83253 ,p_event_class_code => l_event_class_code);
83254 --
83255 -- set accounting class
83256 --
83257 xla_ae_lines_pkg.SetAcctClass(
83258 p_accounting_class_code => 'PREPAID_EXPENSE'
83259 , p_ae_header_id => l_ae_header_id
83260 );
83261
83262 --
83263 -- set rounding class
83264 --
83265 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83266 'PREPAID_EXPENSE';
83267
83268 --
83269 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83270 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83271 --
83272 -- bulk performance
83273 --
83274 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83275
83276 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83277 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83278
83279 -- 4955764
83280 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83281 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83282
83283 -- 4458381 Public Sector Enh
83284
83285 --
83286 -- set accounting attributes for the line type
83287 --
83288 l_entered_amt_idx := 10;
83289 l_accted_amt_idx := 15;
83290 l_bflow_applied_to_amt_idx := 2; -- 5132302
83291 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83292 l_rec_acct_attrs.array_char_value(1) := p_source_40;
83293 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
83294 l_rec_acct_attrs.array_num_value(2) := p_source_61;
83295 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
83296 l_rec_acct_attrs.array_num_value(3) := p_source_42;
83297 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83298 l_rec_acct_attrs.array_char_value(4) := p_source_62;
83299 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
83300 l_rec_acct_attrs.array_char_value(5) := p_source_63;
83301 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
83302 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
83303 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83304 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
83305 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
83306 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
83307 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
83308 l_rec_acct_attrs.array_char_value(9) := p_source_48;
83309 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
83310 l_rec_acct_attrs.array_num_value(10) := p_source_41;
83311 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
83312 l_rec_acct_attrs.array_char_value(11) := p_source_49;
83313 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
83314 l_rec_acct_attrs.array_date_value(12) := p_source_114;
83315 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
83316 l_rec_acct_attrs.array_num_value(13) := p_source_115;
83317 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
83318 l_rec_acct_attrs.array_char_value(14) := p_source_116;
83319 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
83320 l_rec_acct_attrs.array_num_value(15) := p_source_9;
83321 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
83322 l_rec_acct_attrs.array_char_value(16) := p_source_53;
83323 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
83324 l_rec_acct_attrs.array_num_value(17) := p_source_54;
83325 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
83329 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
83326 l_rec_acct_attrs.array_num_value(18) := p_source_55;
83327 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
83328 l_rec_acct_attrs.array_char_value(19) := p_source_56;
83330 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
83331 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
83332 l_rec_acct_attrs.array_char_value(21) := p_source_48;
83333 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
83334 l_rec_acct_attrs.array_num_value(22) := p_source_58;
83335 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
83336 l_rec_acct_attrs.array_num_value(23) := p_source_66;
83337 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
83338 l_rec_acct_attrs.array_num_value(24) := p_source_59;
83339
83340 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83341 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83342
83343 ---------------------------------------------------------------------------------------------------------------
83344 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83345 ---------------------------------------------------------------------------------------------------------------
83346 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83347
83348 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83349 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83350
83351 IF xla_accounting_cache_pkg.GetValueChar
83352 (p_source_code => 'LEDGER_CATEGORY_CODE'
83353 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83354 AND l_bflow_method_code = 'PRIOR_ENTRY'
83355 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83356 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83357 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83358 )
83359 THEN
83360 xla_ae_lines_pkg.BflowUpgEntry
83361 (p_business_method_code => l_bflow_method_code
83362 ,p_business_class_code => l_bflow_class_code
83363 ,p_balance_type => l_balance_type_code);
83364 ELSE
83365 NULL;
83366 -- No business flow processing for business flow method of NONE.
83367 END IF;
83368
83369 --
83370 -- call analytical criteria
83371 --
83372
83373 --
83374 -- call description
83375 --
83376 -- No description or it is inherited.
83377 --
83378 -- call ADRs
83379 -- Bug 4922099
83380 --
83381 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83382 (NVL(l_actual_upg_option, 'N') = 'O') OR
83383 (NVL(l_enc_upg_option, 'N') = 'O')
83384 )
83385 THEN
83386 NULL;
83387 --
83388 --
83389
83390 l_ccid := AcctDerRule_30(
83391 p_application_id => p_application_id
83392 , p_ae_header_id => l_ae_header_id
83393 , p_source_17 => p_source_17
83394 , p_source_18 => p_source_18
83395 , p_source_18_meaning => p_source_18_meaning
83396 , p_source_19 => p_source_19
83397 , p_source_20 => p_source_20
83398 , p_source_20_meaning => p_source_20_meaning
83399 , p_source_28 => p_source_28
83400 , x_transaction_coa_id => l_adr_transaction_coa_id
83401 , x_accounting_coa_id => l_adr_accounting_coa_id
83402 , x_value_type_code => l_adr_value_type_code
83403 , p_side => 'NA'
83404 );
83405
83406 xla_ae_lines_pkg.set_ccid(
83407 p_code_combination_id => l_ccid
83408 , p_value_type_code => l_adr_value_type_code
83409 , p_transaction_coa_id => l_adr_transaction_coa_id
83410 , p_accounting_coa_id => l_adr_accounting_coa_id
83411 , p_adr_code => 'AP_PREPAY_INVOICE_DIST'
83412 , p_adr_type_code => 'S'
83413 , p_component_type => l_component_type
83414 , p_component_code => l_component_code
83415 , p_component_type_code => l_component_type_code
83416 , p_component_appl_id => l_component_appl_id
83417 , p_amb_context_code => l_amb_context_code
83418 , p_side => 'NA'
83419 );
83420
83421
83422 l_segment := AcctDerRule_9(
83423 p_application_id => p_application_id
83424 , p_ae_header_id => l_ae_header_id
83425 , p_source_17 => p_source_17
83426 , p_source_18 => p_source_18
83427 , p_source_18_meaning => p_source_18_meaning
83428 , p_source_19 => p_source_19
83429 , p_source_20 => p_source_20
83430 , p_source_20_meaning => p_source_20_meaning
83431 , x_transaction_coa_id => l_adr_transaction_coa_id
83432 , x_accounting_coa_id => l_adr_accounting_coa_id
83433 , x_flexfield_segment_code => l_adr_flexfield_segment_code
83434 , x_flex_value_set_id => l_adr_flex_value_set_id
83435 , x_value_type_code => l_adr_value_type_code
83436 , x_value_combination_id => l_adr_value_combination_id
83437 , x_value_segment_code => l_adr_value_segment_code
83438 , p_side => 'NA'
83442 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
83439 , p_override_seg_flag => 'Y'
83440 );
83441
83443
83444 xla_ae_lines_pkg.set_segment(
83445 p_to_segment_code => 'GL_ACCOUNT'
83446 , p_segment_value => l_segment
83447 , p_from_segment_code => l_adr_value_segment_code
83448 , p_from_combination_id => l_adr_value_combination_id
83449 , p_value_type_code => l_adr_value_type_code
83450 , p_transaction_coa_id => l_adr_transaction_coa_id
83451 , p_accounting_coa_id => l_adr_accounting_coa_id
83452 , p_flexfield_segment_code => l_adr_flexfield_segment_code
83453 , p_flex_value_set_id => l_adr_flex_value_set_id
83454 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
83455 , p_adr_type_code => 'S'
83456 , p_component_type => l_component_type
83457 , p_component_code => l_component_code
83458 , p_component_type_code => l_component_type_code
83459 , p_component_appl_id => l_component_appl_id
83460 , p_amb_context_code => l_amb_context_code
83461 , p_entity_code => 'AP_PAYMENTS'
83462 , p_event_class_code => 'PAYMENTS'
83463 , p_side => 'NA'
83464 );
83465
83466 END IF;
83467
83468 --
83469 --
83470 END IF;
83471 --
83472 -- Bug 4922099
83473 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83474 (NVL(l_enc_upg_option, 'N') = 'O')
83475 ) AND
83476 (l_bflow_method_code = 'PRIOR_ENTRY')
83477 )
83478 THEN
83479 IF
83480 --
83481 1 = 2
83482 --
83483 THEN
83484 xla_accounting_err_pkg.build_message
83485 (p_appli_s_name => 'XLA'
83486 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83487 ,p_token_1 => 'LINE_NUMBER'
83488 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
83489 ,p_token_2 => 'LINE_TYPE_NAME'
83490 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
83491 l_component_type
83492 ,l_component_code
83493 ,l_component_type_code
83494 ,l_component_appl_id
83495 ,l_amb_context_code
83496 ,l_entity_code
83497 ,l_event_class_code
83498 )
83499 ,p_token_3 => 'OWNER'
83500 ,p_value_3 => xla_lookups_pkg.get_meaning(
83501 p_lookup_type => 'XLA_OWNER_TYPE'
83502 ,p_lookup_code => l_component_type_code
83503 )
83504 ,p_token_4 => 'PRODUCT_NAME'
83505 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83506 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83507 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83508 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83509 ,p_ae_header_id => NULL
83510 );
83511
83512 IF (C_LEVEL_ERROR>= g_log_level) THEN
83513 trace
83514 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83515 ,p_level => C_LEVEL_ERROR
83516 ,p_module => l_log_module);
83517 END IF;
83518 END IF;
83519 END IF;
83520 --
83521 --
83522 ------------------------------------------------------------------------------------------------
83523 -- 4219869 Business Flow
83524 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83525 -- Prior Entry. Currently, the following code is always generated.
83526 ------------------------------------------------------------------------------------------------
83527 XLA_AE_LINES_PKG.ValidateCurrentLine;
83528
83529 ------------------------------------------------------------------------------------
83530 -- 4219869 Business Flow
83531 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83532 ------------------------------------------------------------------------------------
83533 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83534
83538 ----------------------------------------------------------------------------------
83535 ----------------------------------------------------------------------------------
83536 -- 4219869 Business Flow
83537 -- Update journal entry status -- Need to generate this within IF <condition>
83539 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83540 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83541 ,p_balance_type_code => l_balance_type_code
83542 );
83543
83544 -------------------------------------------------------------------------------------------
83545 -- 4262811 - Generate the Accrual Reversal lines
83546 -------------------------------------------------------------------------------------------
83547 BEGIN
83548 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83549 (g_array_event(p_event_id).array_value_num('header_index'));
83550 IF l_acc_rev_flag IS NULL THEN
83551 l_acc_rev_flag := 'N';
83552 END IF;
83553 EXCEPTION
83554 WHEN OTHERS THEN
83555 l_acc_rev_flag := 'N';
83556 END;
83557 --
83558 IF (l_acc_rev_flag = 'Y') THEN
83559
83560 -- 4645092 ------------------------------------------------------------------------------
83561 -- To allow MPA report to determine if it should generate report process
83562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83563 ------------------------------------------------------------------------------------------
83564
83565 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83566 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83567 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
83568 -- call ADRs
83569 -- Bug 4922099
83570 --
83571 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83572 (NVL(l_actual_upg_option, 'N') = 'O') OR
83573 (NVL(l_enc_upg_option, 'N') = 'O')
83574 )
83575 THEN
83576 NULL;
83577 --
83578 --
83579
83580 l_ccid := AcctDerRule_30(
83581 p_application_id => p_application_id
83582 , p_ae_header_id => l_ae_header_id
83583 , p_source_17 => p_source_17
83584 , p_source_18 => p_source_18
83585 , p_source_18_meaning => p_source_18_meaning
83586 , p_source_19 => p_source_19
83587 , p_source_20 => p_source_20
83588 , p_source_20_meaning => p_source_20_meaning
83589 , p_source_28 => p_source_28
83590 , x_transaction_coa_id => l_adr_transaction_coa_id
83591 , x_accounting_coa_id => l_adr_accounting_coa_id
83592 , x_value_type_code => l_adr_value_type_code
83593 , p_side => 'NA'
83594 );
83595
83596 xla_ae_lines_pkg.set_ccid(
83597 p_code_combination_id => l_ccid
83598 , p_value_type_code => l_adr_value_type_code
83599 , p_transaction_coa_id => l_adr_transaction_coa_id
83600 , p_accounting_coa_id => l_adr_accounting_coa_id
83601 , p_adr_code => 'AP_PREPAY_INVOICE_DIST'
83602 , p_adr_type_code => 'S'
83603 , p_component_type => l_component_type
83604 , p_component_code => l_component_code
83605 , p_component_type_code => l_component_type_code
83606 , p_component_appl_id => l_component_appl_id
83607 , p_amb_context_code => l_amb_context_code
83608 , p_side => 'NA'
83609 );
83610
83611
83612 l_segment := AcctDerRule_9(
83613 p_application_id => p_application_id
83614 , p_ae_header_id => l_ae_header_id
83615 , p_source_17 => p_source_17
83616 , p_source_18 => p_source_18
83617 , p_source_18_meaning => p_source_18_meaning
83618 , p_source_19 => p_source_19
83619 , p_source_20 => p_source_20
83620 , p_source_20_meaning => p_source_20_meaning
83621 , x_transaction_coa_id => l_adr_transaction_coa_id
83622 , x_accounting_coa_id => l_adr_accounting_coa_id
83623 , x_flexfield_segment_code => l_adr_flexfield_segment_code
83624 , x_flex_value_set_id => l_adr_flex_value_set_id
83625 , x_value_type_code => l_adr_value_type_code
83626 , x_value_combination_id => l_adr_value_combination_id
83627 , x_value_segment_code => l_adr_value_segment_code
83628 , p_side => 'NA'
83629 , p_override_seg_flag => 'Y'
83630 );
83631
83632 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
83633
83634 xla_ae_lines_pkg.set_segment(
83635 p_to_segment_code => 'GL_ACCOUNT'
83636 , p_segment_value => l_segment
83637 , p_from_segment_code => l_adr_value_segment_code
83638 , p_from_combination_id => l_adr_value_combination_id
83639 , p_value_type_code => l_adr_value_type_code
83640 , p_transaction_coa_id => l_adr_transaction_coa_id
83641 , p_accounting_coa_id => l_adr_accounting_coa_id
83642 , p_flexfield_segment_code => l_adr_flexfield_segment_code
83643 , p_flex_value_set_id => l_adr_flex_value_set_id
83644 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
83645 , p_adr_type_code => 'S'
83646 , p_component_type => l_component_type
83650 , p_amb_context_code => l_amb_context_code
83647 , p_component_code => l_component_code
83648 , p_component_type_code => l_component_type_code
83649 , p_component_appl_id => l_component_appl_id
83651 , p_entity_code => 'AP_PAYMENTS'
83652 , p_event_class_code => 'PAYMENTS'
83653 , p_side => 'NA'
83654 );
83655
83656 END IF;
83657
83658 --
83659 --
83660 END IF;
83661
83662 --
83663 -- Update the line information that should be overwritten
83664 --
83665 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83666 p_header_num => 1);
83667 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
83668
83669 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83670
83671 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
83672 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83673 END IF;
83674
83675 --
83676 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83677 --
83678 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83679 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
83680 ELSE
83681 ---------------------------------------------------------------------------------------------------
83682 -- 4262811a Switch Sign
83683 ---------------------------------------------------------------------------------------------------
83684 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
83685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83686 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83687 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83688 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83689 -- 5132302
83690 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83691 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83692
83693 END IF;
83694
83695 -- 4955764
83696 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83697 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83698
83699
83700 XLA_AE_LINES_PKG.ValidateCurrentLine;
83701 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83702
83703 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83704 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83705 ,p_balance_type_code => l_balance_type_code);
83706
83707 END IF;
83708
83709 -----------------------------------------------------------------------------------------
83710 -- 4262811 Multiperiod Accounting
83711 -----------------------------------------------------------------------------------------
83712 -- No MPA option is assigned.
83713
83714
83715 END IF;
83716 END IF;
83717 --
83718
83719 --
83720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83721 trace
83722 (p_msg => 'END of AcctLineType_151'
83723 ,p_level => C_LEVEL_PROCEDURE
83724 ,p_module => l_log_module);
83725 END IF;
83726 --
83727 EXCEPTION
83728 WHEN xla_exceptions_pkg.application_exception THEN
83729 RAISE;
83730 WHEN OTHERS THEN
83731 xla_exceptions_pkg.raise_message
83732 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_151');
83733 END AcctLineType_151;
83734 --
83735
83736 ---------------------------------------
83737 --
83738 -- PRIVATE FUNCTION
83739 -- AcctLineType_152
83740 --
83741 ---------------------------------------
83742 PROCEDURE AcctLineType_152 (
83743 p_application_id IN NUMBER
83744 ,p_event_id IN NUMBER
83745 ,p_calculate_acctd_flag IN VARCHAR2
83746 ,p_calculate_g_l_flag IN VARCHAR2
83747 ,p_actual_flag IN OUT VARCHAR2
83748 ,p_balance_type_code OUT VARCHAR2
83749 ,p_gain_or_loss_ref OUT VARCHAR2
83750
83751 --Payment Distribution (Cleared Rate) Ledger Amount
83752 , p_source_10 IN NUMBER
83753 --Invoice Distribution Account
83754 , p_source_17 IN NUMBER
83755 --Invoice Distribution Type
83756 , p_source_20 IN VARCHAR2
83757 , p_source_20_meaning IN VARCHAR2
83758 --When to Account for Payment Option
83759 , p_source_38 IN VARCHAR2
83760 --Payment Distribution Type
83761 , p_source_39 IN VARCHAR2
83762 , p_source_39_meaning IN VARCHAR2
83763 --Accounting Reversal Indicator
83764 , p_source_40 IN VARCHAR2
83765 --Payment Distribution Amount
83766 , p_source_41 IN NUMBER
83767 --Business Flow Accounts Payable Application Identifier
83768 , p_source_42 IN NUMBER
83769 --Business Flow Payment Distribution Type
83770 , p_source_43 IN VARCHAR2
83774 , p_source_45 IN NUMBER
83771 --Business Flow Payment Entity Code
83772 , p_source_44 IN VARCHAR2
83773 --Business Flow Payment Distribution Identifier
83775 --Business Flow Payment Identifier
83776 , p_source_46 IN NUMBER
83777 --Payment Distribution Identifier
83778 , p_source_47 IN NUMBER
83779 --Distribution Link Type
83780 , p_source_48 IN VARCHAR2
83781 --Payment Currency Code
83782 , p_source_49 IN VARCHAR2
83783 --Override Accounted Amount Indicator
83784 , p_source_53 IN VARCHAR2
83785 , p_source_53_meaning IN VARCHAR2
83786 --Payment Supplier Identifier
83787 , p_source_54 IN NUMBER
83788 --Payment Supplier Site Identifier
83789 , p_source_55 IN NUMBER
83790 --Third Party Type
83791 , p_source_56 IN VARCHAR2
83792 --Payment Distribution Reversed Identifier
83793 , p_source_57 IN NUMBER
83794 --Invoice Distribution Tax Line Identifier
83795 , p_source_58 IN NUMBER
83796 --Invoice Distribution Summary Tax Line Identifier
83797 , p_source_59 IN NUMBER
83798 --Payment Type
83799 , p_source_60 IN VARCHAR2
83800 , p_source_60_meaning IN VARCHAR2
83801 --Invoice Type Paid
83802 , p_source_101 IN VARCHAR2
83803 , p_source_101_meaning IN VARCHAR2
83804 --Cleared Exchange Date
83805 , p_source_107 IN DATE
83806 --Cleared Exchange Rate
83807 , p_source_108 IN NUMBER
83808 --Cleared Exchange Rate Type
83809 , p_source_109 IN VARCHAR2
83810 )
83811 IS
83812
83813 l_component_type VARCHAR2(80);
83814 l_component_code VARCHAR2(30);
83815 l_component_type_code VARCHAR2(1);
83816 l_component_appl_id INTEGER;
83817 l_amb_context_code VARCHAR2(30);
83818 l_entity_code VARCHAR2(30);
83819 l_event_class_code VARCHAR2(30);
83820 l_ae_header_id NUMBER;
83821 l_event_type_code VARCHAR2(30);
83822 l_line_definition_code VARCHAR2(30);
83823 l_line_definition_owner_code VARCHAR2(1);
83824 --
83825 -- adr variables
83826 l_segment VARCHAR2(30);
83827 l_ccid NUMBER;
83828 l_adr_transaction_coa_id NUMBER;
83829 l_adr_accounting_coa_id NUMBER;
83830 l_adr_flexfield_segment_code VARCHAR2(30);
83831 l_adr_flex_value_set_id NUMBER;
83832 l_adr_value_type_code VARCHAR2(30);
83833 l_adr_value_combination_id NUMBER;
83834 l_adr_value_segment_code VARCHAR2(30);
83835
83836 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
83837 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
83838 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
83839 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
83840
83841 -- 4262811 Variables ------------------------------------------------------------------------------------------
83842 l_entered_amt_idx NUMBER;
83843 l_accted_amt_idx NUMBER;
83844 l_acc_rev_flag VARCHAR2(1);
83845 l_accrual_line_num NUMBER;
83846 l_tmp_amt NUMBER;
83847 l_acc_rev_natural_side_code VARCHAR2(1);
83848
83849 l_num_entries NUMBER;
83850 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
83851 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
83852 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
83853 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
83854 l_recog_line_1 NUMBER;
83855 l_recog_line_2 NUMBER;
83856
83857 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
83858 l_bflow_applied_to_amt NUMBER; -- 5132302
83859 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
83860
83861 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83862
83863 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
83864 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
83865
83866 ---------------------------------------------------------------------------------------------------------------
83867
83868
83869 --
83870 -- bulk performance
83871 --
83872 l_balance_type_code VARCHAR2(1);
83873 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83874 l_log_module VARCHAR2(240);
83875
83876 --
83877 -- Upgrade strategy
83878 --
83879 l_actual_upg_option VARCHAR2(1);
83880 l_enc_upg_option VARCHAR2(1);
83881
83882 --
83883 BEGIN
83884 --
83885 IF g_log_enabled THEN
83886 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
83887 END IF;
83888 --
83889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83890
83891 trace
83892 (p_msg => 'BEGIN of AcctLineType_152'
83893 ,p_level => C_LEVEL_PROCEDURE
83894 ,p_module => l_log_module);
83895
83896 END IF;
83897 --
83898 l_component_type := 'AMB_JLT';
83899 l_component_code := 'AP_PREPAID_EXPENSE_CLEAR';
83900 l_component_type_code := 'S';
83901 l_component_appl_id := 200;
83902 l_amb_context_code := 'DEFAULT';
83903 l_entity_code := 'AP_PAYMENTS';
83907 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
83904 l_event_class_code := 'RECONCILED PAYMENTS';
83905 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
83906 l_line_definition_owner_code := 'S';
83908 --
83909 l_balance_type_code := 'A';
83910 l_segment := NULL;
83911 l_ccid := NULL;
83912 l_adr_transaction_coa_id := NULL;
83913 l_adr_accounting_coa_id := NULL;
83914 l_adr_flexfield_segment_code := NULL;
83915 l_adr_flex_value_set_id := NULL;
83916 l_adr_value_type_code := NULL;
83917 l_adr_value_combination_id := NULL;
83918 l_adr_value_segment_code := NULL;
83919
83920 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
83921 l_bflow_class_code := ''; -- 4219869 Business Flow
83922 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
83923 l_budgetary_control_flag := 'N';
83924
83925 l_bflow_applied_to_amt_idx := NULL; -- 5132302
83926 l_bflow_applied_to_amt := NULL; -- 5132302
83927 l_entered_amt_idx := NULL; -- 4262811
83928 l_accted_amt_idx := NULL; -- 4262811
83929 l_acc_rev_flag := NULL; -- 4262811
83930 l_accrual_line_num := NULL; -- 4262811
83931 l_tmp_amt := NULL; -- 4262811
83932 --
83933
83934 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83935 l_balance_type_code <> 'B' THEN
83936 IF NVL(p_source_38,'
83937 ') = 'CLEAR_CLEAR' AND
83938 (NVL(p_source_20,'
83939 ') = 'ITEM' OR
83940 NVL(p_source_20,'
83941 ') = 'RETROEXPENSE') AND
83942 NVL(p_source_101,'
83943 ') = 'PREPAYMENT' AND
83944 (NVL(p_source_39,'
83945 ') = 'CASH' OR
83946 NVL(p_source_39,'
83947 ') = 'DISCOUNT') AND
83948 NVL(p_source_60,'
83949 ') <> 'R'
83950 THEN
83951
83952 --
83953 XLA_AE_LINES_PKG.SetNewLine;
83954
83955 p_balance_type_code := l_balance_type_code;
83956 -- set the flag so later we will know whether the gain loss line needs to be created
83957
83958 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83959 p_actual_flag :='A';
83960 END IF;
83961
83962 --
83963 -- bulk performance
83964 --
83965 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83966 p_header_num => 0); -- 4262811
83967 --
83968 -- set accounting line options
83969 --
83970 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83971 p_natural_side_code => 'D'
83972 , p_gain_or_loss_flag => 'N'
83973 , p_gl_transfer_mode_code => 'S'
83974 , p_acct_entry_type_code => 'A'
83975 , p_switch_side_flag => 'Y'
83976 , p_merge_duplicate_code => 'A'
83977 );
83978 --
83979 l_acc_rev_natural_side_code := 'C'; -- 4262811
83980 --
83981 --
83982 -- set accounting line type info
83983 --
83984 xla_ae_lines_pkg.SetAcctLineType
83985 (p_component_type => l_component_type
83986 ,p_event_type_code => l_event_type_code
83987 ,p_line_definition_owner_code => l_line_definition_owner_code
83988 ,p_line_definition_code => l_line_definition_code
83989 ,p_accounting_line_code => l_component_code
83990 ,p_accounting_line_type_code => l_component_type_code
83991 ,p_accounting_line_appl_id => l_component_appl_id
83992 ,p_amb_context_code => l_amb_context_code
83993 ,p_entity_code => l_entity_code
83994 ,p_event_class_code => l_event_class_code);
83995 --
83996 -- set accounting class
83997 --
83998 xla_ae_lines_pkg.SetAcctClass(
83999 p_accounting_class_code => 'PREPAID_EXPENSE'
84000 , p_ae_header_id => l_ae_header_id
84001 );
84002
84003 --
84004 -- set rounding class
84005 --
84006 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84007 'PREPAID_EXPENSE';
84008
84009 --
84010 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84011 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84012 --
84013 -- bulk performance
84014 --
84015 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84016
84017 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84018 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84019
84020 -- 4955764
84021 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84022 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84023
84024 -- 4458381 Public Sector Enh
84025
84026 --
84027 -- set accounting attributes for the line type
84028 --
84029 l_entered_amt_idx := 10;
84030 l_accted_amt_idx := 15;
84031 l_bflow_applied_to_amt_idx := 2; -- 5132302
84032 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84033 l_rec_acct_attrs.array_char_value(1) := p_source_40;
84037 l_rec_acct_attrs.array_num_value(3) := p_source_42;
84034 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
84035 l_rec_acct_attrs.array_num_value(2) := p_source_41;
84036 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
84038 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84039 l_rec_acct_attrs.array_char_value(4) := p_source_43;
84040 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
84041 l_rec_acct_attrs.array_char_value(5) := p_source_44;
84042 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
84043 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
84044 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84045 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
84046 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
84047 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
84048 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
84049 l_rec_acct_attrs.array_char_value(9) := p_source_48;
84050 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
84051 l_rec_acct_attrs.array_num_value(10) := p_source_41;
84052 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
84053 l_rec_acct_attrs.array_char_value(11) := p_source_49;
84054 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
84055 l_rec_acct_attrs.array_date_value(12) := p_source_107;
84056 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
84057 l_rec_acct_attrs.array_num_value(13) := p_source_108;
84058 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
84059 l_rec_acct_attrs.array_char_value(14) := p_source_109;
84060 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
84061 l_rec_acct_attrs.array_num_value(15) := p_source_10;
84062 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
84063 l_rec_acct_attrs.array_char_value(16) := p_source_53;
84064 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
84065 l_rec_acct_attrs.array_num_value(17) := p_source_54;
84066 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
84067 l_rec_acct_attrs.array_num_value(18) := p_source_55;
84068 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
84069 l_rec_acct_attrs.array_char_value(19) := p_source_56;
84070 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
84071 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
84072 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
84073 l_rec_acct_attrs.array_char_value(21) := p_source_48;
84074 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
84075 l_rec_acct_attrs.array_num_value(22) := p_source_58;
84076 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
84077 l_rec_acct_attrs.array_num_value(23) := p_source_58;
84078 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
84079 l_rec_acct_attrs.array_num_value(24) := p_source_59;
84080
84081 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84082 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84083
84084 ---------------------------------------------------------------------------------------------------------------
84085 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84086 ---------------------------------------------------------------------------------------------------------------
84087 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84088
84089 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84090 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84091
84092 IF xla_accounting_cache_pkg.GetValueChar
84093 (p_source_code => 'LEDGER_CATEGORY_CODE'
84094 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84095 AND l_bflow_method_code = 'PRIOR_ENTRY'
84096 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84097 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84098 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84099 )
84100 THEN
84101 xla_ae_lines_pkg.BflowUpgEntry
84102 (p_business_method_code => l_bflow_method_code
84103 ,p_business_class_code => l_bflow_class_code
84104 ,p_balance_type => l_balance_type_code);
84105 ELSE
84106 NULL;
84107 -- No business flow processing for business flow method of NONE.
84108 END IF;
84109
84110 --
84111 -- call analytical criteria
84112 --
84113
84114 --
84115 -- call description
84116 --
84117 -- No description or it is inherited.
84118 --
84119 -- call ADRs
84120 -- Bug 4922099
84121 --
84122 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84123 (NVL(l_actual_upg_option, 'N') = 'O') OR
84124 (NVL(l_enc_upg_option, 'N') = 'O')
84125 )
84126 THEN
84127 NULL;
84128 --
84129 --
84130
84131 l_ccid := AcctDerRule_26(
84132 p_application_id => p_application_id
84133 , p_ae_header_id => l_ae_header_id
84137 , x_value_type_code => l_adr_value_type_code
84134 , p_source_17 => p_source_17
84135 , x_transaction_coa_id => l_adr_transaction_coa_id
84136 , x_accounting_coa_id => l_adr_accounting_coa_id
84138 , p_side => 'NA'
84139 );
84140
84141 xla_ae_lines_pkg.set_ccid(
84142 p_code_combination_id => l_ccid
84143 , p_value_type_code => l_adr_value_type_code
84144 , p_transaction_coa_id => l_adr_transaction_coa_id
84145 , p_accounting_coa_id => l_adr_accounting_coa_id
84146 , p_adr_code => 'AP_INVOICE_DIST'
84147 , p_adr_type_code => 'S'
84148 , p_component_type => l_component_type
84149 , p_component_code => l_component_code
84150 , p_component_type_code => l_component_type_code
84151 , p_component_appl_id => l_component_appl_id
84152 , p_amb_context_code => l_amb_context_code
84153 , p_side => 'NA'
84154 );
84155
84156
84157 --
84158 --
84159 END IF;
84160 --
84161 -- Bug 4922099
84162 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84163 (NVL(l_enc_upg_option, 'N') = 'O')
84164 ) AND
84165 (l_bflow_method_code = 'PRIOR_ENTRY')
84166 )
84167 THEN
84168 IF
84169 --
84170 1 = 2
84171 --
84172 THEN
84173 xla_accounting_err_pkg.build_message
84174 (p_appli_s_name => 'XLA'
84175 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84176 ,p_token_1 => 'LINE_NUMBER'
84177 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
84178 ,p_token_2 => 'LINE_TYPE_NAME'
84179 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
84180 l_component_type
84181 ,l_component_code
84182 ,l_component_type_code
84183 ,l_component_appl_id
84184 ,l_amb_context_code
84185 ,l_entity_code
84186 ,l_event_class_code
84187 )
84188 ,p_token_3 => 'OWNER'
84189 ,p_value_3 => xla_lookups_pkg.get_meaning(
84190 p_lookup_type => 'XLA_OWNER_TYPE'
84191 ,p_lookup_code => l_component_type_code
84192 )
84193 ,p_token_4 => 'PRODUCT_NAME'
84194 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84195 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84196 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84197 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84198 ,p_ae_header_id => NULL
84199 );
84200
84201 IF (C_LEVEL_ERROR>= g_log_level) THEN
84202 trace
84203 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84204 ,p_level => C_LEVEL_ERROR
84205 ,p_module => l_log_module);
84206 END IF;
84207 END IF;
84208 END IF;
84209 --
84210 --
84211 ------------------------------------------------------------------------------------------------
84212 -- 4219869 Business Flow
84213 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84214 -- Prior Entry. Currently, the following code is always generated.
84215 ------------------------------------------------------------------------------------------------
84216 XLA_AE_LINES_PKG.ValidateCurrentLine;
84217
84218 ------------------------------------------------------------------------------------
84219 -- 4219869 Business Flow
84220 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84221 ------------------------------------------------------------------------------------
84222 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84223
84224 ----------------------------------------------------------------------------------
84225 -- 4219869 Business Flow
84226 -- Update journal entry status -- Need to generate this within IF <condition>
84227 ----------------------------------------------------------------------------------
84228 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84229 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84233 -------------------------------------------------------------------------------------------
84230 ,p_balance_type_code => l_balance_type_code
84231 );
84232
84234 -- 4262811 - Generate the Accrual Reversal lines
84235 -------------------------------------------------------------------------------------------
84236 BEGIN
84237 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84238 (g_array_event(p_event_id).array_value_num('header_index'));
84239 IF l_acc_rev_flag IS NULL THEN
84240 l_acc_rev_flag := 'N';
84241 END IF;
84242 EXCEPTION
84243 WHEN OTHERS THEN
84244 l_acc_rev_flag := 'N';
84245 END;
84246 --
84247 IF (l_acc_rev_flag = 'Y') THEN
84248
84249 -- 4645092 ------------------------------------------------------------------------------
84250 -- To allow MPA report to determine if it should generate report process
84251 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84252 ------------------------------------------------------------------------------------------
84253
84254 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84255 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84256 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
84257 -- call ADRs
84258 -- Bug 4922099
84259 --
84260 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84261 (NVL(l_actual_upg_option, 'N') = 'O') OR
84262 (NVL(l_enc_upg_option, 'N') = 'O')
84263 )
84264 THEN
84265 NULL;
84266 --
84267 --
84268
84269 l_ccid := AcctDerRule_26(
84270 p_application_id => p_application_id
84271 , p_ae_header_id => l_ae_header_id
84272 , p_source_17 => p_source_17
84273 , x_transaction_coa_id => l_adr_transaction_coa_id
84274 , x_accounting_coa_id => l_adr_accounting_coa_id
84275 , x_value_type_code => l_adr_value_type_code
84276 , p_side => 'NA'
84277 );
84278
84279 xla_ae_lines_pkg.set_ccid(
84280 p_code_combination_id => l_ccid
84281 , p_value_type_code => l_adr_value_type_code
84282 , p_transaction_coa_id => l_adr_transaction_coa_id
84283 , p_accounting_coa_id => l_adr_accounting_coa_id
84284 , p_adr_code => 'AP_INVOICE_DIST'
84285 , p_adr_type_code => 'S'
84286 , p_component_type => l_component_type
84287 , p_component_code => l_component_code
84288 , p_component_type_code => l_component_type_code
84289 , p_component_appl_id => l_component_appl_id
84290 , p_amb_context_code => l_amb_context_code
84291 , p_side => 'NA'
84292 );
84293
84294
84295 --
84296 --
84297 END IF;
84298
84299 --
84300 -- Update the line information that should be overwritten
84301 --
84302 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84303 p_header_num => 1);
84304 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
84305
84306 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84307
84308 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
84309 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84310 END IF;
84311
84312 --
84313 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84314 --
84315 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84316 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
84317 ELSE
84318 ---------------------------------------------------------------------------------------------------
84319 -- 4262811a Switch Sign
84320 ---------------------------------------------------------------------------------------------------
84321 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
84322 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84323 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84324 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84325 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84326 -- 5132302
84327 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84328 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84329
84330 END IF;
84331
84332 -- 4955764
84333 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84334 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84335
84336
84337 XLA_AE_LINES_PKG.ValidateCurrentLine;
84338 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84339
84340 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84344 END IF;
84341 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84342 ,p_balance_type_code => l_balance_type_code);
84343
84345
84346 -----------------------------------------------------------------------------------------
84347 -- 4262811 Multiperiod Accounting
84348 -----------------------------------------------------------------------------------------
84349 -- No MPA option is assigned.
84350
84351
84352 END IF;
84353 END IF;
84354 --
84355
84356 --
84357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84358 trace
84359 (p_msg => 'END of AcctLineType_152'
84360 ,p_level => C_LEVEL_PROCEDURE
84361 ,p_module => l_log_module);
84362 END IF;
84363 --
84364 EXCEPTION
84365 WHEN xla_exceptions_pkg.application_exception THEN
84366 RAISE;
84367 WHEN OTHERS THEN
84368 xla_exceptions_pkg.raise_message
84369 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_152');
84370 END AcctLineType_152;
84371 --
84372
84373 ---------------------------------------
84374 --
84375 -- PRIVATE FUNCTION
84376 -- AcctLineType_153
84377 --
84378 ---------------------------------------
84379 PROCEDURE AcctLineType_153 (
84380 p_application_id IN NUMBER
84381 ,p_event_id IN NUMBER
84382 ,p_calculate_acctd_flag IN VARCHAR2
84383 ,p_calculate_g_l_flag IN VARCHAR2
84384 ,p_actual_flag IN OUT VARCHAR2
84385 ,p_balance_type_code OUT VARCHAR2
84386 ,p_gain_or_loss_ref OUT VARCHAR2
84387
84388 --When to Account for Payment Option
84389 , p_source_38 IN VARCHAR2
84390 --Accounting Reversal Indicator
84391 , p_source_40 IN VARCHAR2
84392 --Business Flow Accounts Payable Application Identifier
84393 , p_source_42 IN NUMBER
84394 --Distribution Link Type
84395 , p_source_48 IN VARCHAR2
84396 --Override Accounted Amount Indicator
84397 , p_source_53 IN VARCHAR2
84398 , p_source_53_meaning IN VARCHAR2
84399 --Third Party Type
84400 , p_source_56 IN VARCHAR2
84401 --Invoice Distribution Tax Line Identifier
84402 , p_source_58 IN NUMBER
84403 --Invoice Distribution Summary Tax Line Identifier
84404 , p_source_59 IN NUMBER
84405 --Invoice Distribution Tax Distribution Identifier from Tax
84406 , p_source_66 IN NUMBER
84407 --Prepayment Distribution Type
84408 , p_source_67 IN VARCHAR2
84409 --Prepayment Application Distribution Identifier
84410 , p_source_71 IN NUMBER
84411 --Invoice Identifier
84412 , p_source_72 IN NUMBER
84413 --Upgrade Encumbrance Credit Account Class
84414 , p_source_77 IN VARCHAR2
84415 --Payables Encumbrance Upgrade Credit Account
84416 , p_source_78 IN NUMBER
84417 --Payables Encumbrance Upgrade Credit Amount
84418 , p_source_79 IN NUMBER
84419 --Invoice Currency Code
84420 , p_source_80 IN VARCHAR2
84421 --Payables Encumbrance Upgrade Credit Base Amount
84422 , p_source_81 IN NUMBER
84423 --Upgrade Encumbrance Debit Account Class
84424 , p_source_82 IN VARCHAR2
84425 --Payables Encumbrance Upgrade Debit Account
84426 , p_source_83 IN NUMBER
84427 --Payables Encumbrance Upgrade Debit Amount
84428 , p_source_84 IN NUMBER
84429 --Payables Encumbrance Upgrade Debit Base Amount
84430 , p_source_85 IN NUMBER
84431 --Payables Encumbrance Upgrade Option
84432 , p_source_86 IN VARCHAR2
84433 --Prepayment Distribution Amount
84434 , p_source_87 IN NUMBER
84435 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
84436 , p_source_89 IN NUMBER
84437 --Deferred Accounting End Date
84438 , p_source_90 IN DATE
84439 --Deferred Accounting Option
84440 , p_source_91 IN VARCHAR2
84441 --Deferred Accounting Start Date
84442 , p_source_92 IN DATE
84443 --Identifier of the Prepayment Application Reversed
84444 , p_source_95 IN NUMBER
84445 --Payables Upgrade Credit Encumbrance Type Identifier
84446 , p_source_96 IN NUMBER
84447 --Payables Upgrade Debit Encumbrance Type Identifier
84448 , p_source_97 IN NUMBER
84449 --Business Flow Prepayment Clearing Distribution Type
84450 , p_source_134 IN VARCHAR2
84451 --Business Flow Cash Basis Clearing Only Prepayment Entity Code
84452 , p_source_135 IN VARCHAR2
84453 --Business Flow Prepay Payment Clearing Distribution Id
84454 , p_source_136 IN NUMBER
84455 --Business Flow Prepay Payment Id
84456 , p_source_137 IN NUMBER
84457 )
84458 IS
84459
84460 l_component_type VARCHAR2(80);
84461 l_component_code VARCHAR2(30);
84462 l_component_type_code VARCHAR2(1);
84463 l_component_appl_id INTEGER;
84464 l_amb_context_code VARCHAR2(30);
84465 l_entity_code VARCHAR2(30);
84466 l_event_class_code VARCHAR2(30);
84467 l_ae_header_id NUMBER;
84468 l_event_type_code VARCHAR2(30);
84469 l_line_definition_code VARCHAR2(30);
84470 l_line_definition_owner_code VARCHAR2(1);
84471 --
84472 -- adr variables
84473 l_segment VARCHAR2(30);
84474 l_ccid NUMBER;
84475 l_adr_transaction_coa_id NUMBER;
84476 l_adr_accounting_coa_id NUMBER;
84480 l_adr_value_combination_id NUMBER;
84477 l_adr_flexfield_segment_code VARCHAR2(30);
84478 l_adr_flex_value_set_id NUMBER;
84479 l_adr_value_type_code VARCHAR2(30);
84481 l_adr_value_segment_code VARCHAR2(30);
84482
84483 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
84484 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
84485 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
84486 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
84487
84488 -- 4262811 Variables ------------------------------------------------------------------------------------------
84489 l_entered_amt_idx NUMBER;
84490 l_accted_amt_idx NUMBER;
84491 l_acc_rev_flag VARCHAR2(1);
84492 l_accrual_line_num NUMBER;
84493 l_tmp_amt NUMBER;
84494 l_acc_rev_natural_side_code VARCHAR2(1);
84495
84496 l_num_entries NUMBER;
84497 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
84498 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
84499 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
84500 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
84501 l_recog_line_1 NUMBER;
84502 l_recog_line_2 NUMBER;
84503
84504 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
84505 l_bflow_applied_to_amt NUMBER; -- 5132302
84506 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
84507
84508 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84509
84510 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
84511 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
84512
84513 ---------------------------------------------------------------------------------------------------------------
84514
84515
84516 --
84517 -- bulk performance
84518 --
84519 l_balance_type_code VARCHAR2(1);
84520 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
84521 l_log_module VARCHAR2(240);
84522
84523 --
84524 -- Upgrade strategy
84525 --
84526 l_actual_upg_option VARCHAR2(1);
84527 l_enc_upg_option VARCHAR2(1);
84528
84529 --
84530 BEGIN
84531 --
84532 IF g_log_enabled THEN
84533 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
84534 END IF;
84535 --
84536 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84537
84538 trace
84539 (p_msg => 'BEGIN of AcctLineType_153'
84540 ,p_level => C_LEVEL_PROCEDURE
84541 ,p_module => l_log_module);
84542
84543 END IF;
84544 --
84545 l_component_type := 'AMB_JLT';
84546 l_component_code := 'AP_PREPAID_EXP_CASH_CLR_XRATE';
84547 l_component_type_code := 'S';
84548 l_component_appl_id := 200;
84549 l_amb_context_code := 'DEFAULT';
84550 l_entity_code := 'AP_INVOICES';
84551 l_event_class_code := 'PREPAYMENT APPLICATIONS';
84552 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
84553 l_line_definition_owner_code := 'S';
84554 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
84555 --
84556 l_balance_type_code := 'A';
84557 l_segment := NULL;
84558 l_ccid := NULL;
84559 l_adr_transaction_coa_id := NULL;
84560 l_adr_accounting_coa_id := NULL;
84561 l_adr_flexfield_segment_code := NULL;
84562 l_adr_flex_value_set_id := NULL;
84563 l_adr_value_type_code := NULL;
84564 l_adr_value_combination_id := NULL;
84565 l_adr_value_segment_code := NULL;
84566
84567 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
84568 l_bflow_class_code := 'AP_PREPAY'; -- 4219869 Business Flow
84569 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
84570 l_budgetary_control_flag := 'N';
84571
84572 l_bflow_applied_to_amt_idx := NULL; -- 5132302
84573 l_bflow_applied_to_amt := NULL; -- 5132302
84574 l_entered_amt_idx := NULL; -- 4262811
84575 l_accted_amt_idx := NULL; -- 4262811
84576 l_acc_rev_flag := NULL; -- 4262811
84577 l_accrual_line_num := NULL; -- 4262811
84578 l_tmp_amt := NULL; -- 4262811
84579 --
84580
84581 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84582 l_balance_type_code <> 'B' THEN
84583 IF NVL(p_source_38,'
84584 ') = 'CLEAR_CLEAR' AND
84585 (NVL(p_source_67,'
84586 ') = 'PREPAY APPL' OR
84587 NVL(p_source_67,'
84588 ') = 'PREPAY APPL NONREC TAX' OR
84589 NVL(p_source_67,'
84590 ') = 'PREPAY APPL REC TAX' OR
84591 NVL(p_source_67,'
84592 ') = 'TAX DIFF' OR
84593 NVL(p_source_67,'
84594 ') = 'FINAL APPLICATION ROUNDING')
84595 THEN
84596
84597 --
84598 XLA_AE_LINES_PKG.SetNewLine;
84599
84600 p_balance_type_code := l_balance_type_code;
84601 -- set the flag so later we will know whether the gain loss line needs to be created
84602
84603 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84604 p_actual_flag :='A';
84605 END IF;
84606
84610 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84607 --
84608 -- bulk performance
84609 --
84611 p_header_num => 0); -- 4262811
84612 --
84613 -- set accounting line options
84614 --
84615 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84616 p_natural_side_code => 'D'
84617 , p_gain_or_loss_flag => 'N'
84618 , p_gl_transfer_mode_code => 'S'
84619 , p_acct_entry_type_code => 'A'
84620 , p_switch_side_flag => 'Y'
84621 , p_merge_duplicate_code => 'A'
84622 );
84623 --
84624 l_acc_rev_natural_side_code := 'C'; -- 4262811
84625 --
84626 --
84627 -- set accounting line type info
84628 --
84629 xla_ae_lines_pkg.SetAcctLineType
84630 (p_component_type => l_component_type
84631 ,p_event_type_code => l_event_type_code
84632 ,p_line_definition_owner_code => l_line_definition_owner_code
84633 ,p_line_definition_code => l_line_definition_code
84634 ,p_accounting_line_code => l_component_code
84635 ,p_accounting_line_type_code => l_component_type_code
84636 ,p_accounting_line_appl_id => l_component_appl_id
84637 ,p_amb_context_code => l_amb_context_code
84638 ,p_entity_code => l_entity_code
84639 ,p_event_class_code => l_event_class_code);
84640 --
84641 -- set accounting class
84642 --
84643 xla_ae_lines_pkg.SetAcctClass(
84644 p_accounting_class_code => 'PREPAID_EXPENSE'
84645 , p_ae_header_id => l_ae_header_id
84646 );
84647
84648 --
84649 -- set rounding class
84650 --
84651 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84652 'PREPAID_EXPENSE';
84653
84654 --
84655 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84656 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84657 --
84658 -- bulk performance
84659 --
84660 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84661
84662 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84663 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84664
84665 -- 4955764
84666 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84667 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84668
84669 -- 4458381 Public Sector Enh
84670
84671 --
84672 -- set accounting attributes for the line type
84673 --
84674 l_entered_amt_idx := 25;
84675 l_accted_amt_idx := 27;
84676 l_bflow_applied_to_amt_idx := NULL; -- 5132302
84677 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84678 l_rec_acct_attrs.array_char_value(1) := p_source_40;
84679 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84680 l_rec_acct_attrs.array_num_value(2) :=
84681 xla_ae_sources_pkg.GetSystemSourceNum(
84682 p_source_code => 'XLA_EVENT_APPL_ID'
84683 , p_source_type_code => 'Y'
84684 , p_source_application_id => 602
84685 );
84686 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84687 l_rec_acct_attrs.array_char_value(3) := p_source_48;
84688 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84689 l_rec_acct_attrs.array_char_value(4) :=
84690 xla_ae_sources_pkg.GetSystemSourceChar(
84691 p_source_code => 'XLA_ENTITY_CODE'
84692 , p_source_type_code => 'Y'
84693 , p_source_application_id => 602
84694 );
84695 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84696 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
84697 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84698 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
84699 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84700 l_rec_acct_attrs.array_num_value(7) := p_source_42;
84701 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84702 l_rec_acct_attrs.array_char_value(8) := p_source_134;
84703 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84704 l_rec_acct_attrs.array_char_value(9) := p_source_135;
84705 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84706 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_136);
84707 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84708 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_137);
84709 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84710 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
84711 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84712 l_rec_acct_attrs.array_char_value(13) := p_source_48;
84713 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
84714 l_rec_acct_attrs.array_char_value(14) := p_source_77;
84715 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
84716 l_rec_acct_attrs.array_num_value(15) := p_source_78;
84720 l_rec_acct_attrs.array_char_value(17) := p_source_80;
84717 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
84718 l_rec_acct_attrs.array_num_value(16) := p_source_79;
84719 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
84721 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
84722 l_rec_acct_attrs.array_num_value(18) := p_source_81;
84723 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
84724 l_rec_acct_attrs.array_char_value(19) := p_source_82;
84725 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
84726 l_rec_acct_attrs.array_num_value(20) := p_source_83;
84727 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
84728 l_rec_acct_attrs.array_num_value(21) := p_source_84;
84729 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
84730 l_rec_acct_attrs.array_char_value(22) := p_source_80;
84731 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
84732 l_rec_acct_attrs.array_num_value(23) := p_source_85;
84733 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
84734 l_rec_acct_attrs.array_char_value(24) := p_source_86;
84735 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
84736 l_rec_acct_attrs.array_num_value(25) := p_source_87;
84737 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
84738 l_rec_acct_attrs.array_char_value(26) := p_source_80;
84739 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
84740 l_rec_acct_attrs.array_num_value(27) := p_source_89;
84741 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
84742 l_rec_acct_attrs.array_date_value(28) := p_source_90;
84743 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
84744 l_rec_acct_attrs.array_char_value(29) := p_source_91;
84745 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
84746 l_rec_acct_attrs.array_date_value(30) := p_source_92;
84747 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
84748 l_rec_acct_attrs.array_char_value(31) := p_source_53;
84749 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
84750 l_rec_acct_attrs.array_char_value(32) := p_source_56;
84751 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
84752 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_95);
84753 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
84754 l_rec_acct_attrs.array_char_value(34) := p_source_48;
84755 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
84756 l_rec_acct_attrs.array_num_value(35) := p_source_58;
84757 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
84758 l_rec_acct_attrs.array_num_value(36) := p_source_66;
84759 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
84760 l_rec_acct_attrs.array_num_value(37) := p_source_59;
84761 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
84762 l_rec_acct_attrs.array_num_value(38) := p_source_96;
84763 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
84764 l_rec_acct_attrs.array_num_value(39) := p_source_97;
84765
84766 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84767 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84768
84769 ---------------------------------------------------------------------------------------------------------------
84770 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84771 ---------------------------------------------------------------------------------------------------------------
84772 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84773
84774 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84775 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84776
84777 IF xla_accounting_cache_pkg.GetValueChar
84778 (p_source_code => 'LEDGER_CATEGORY_CODE'
84779 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84780 AND l_bflow_method_code = 'PRIOR_ENTRY'
84781 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84782 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84783 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84784 )
84785 THEN
84786 xla_ae_lines_pkg.BflowUpgEntry
84787 (p_business_method_code => l_bflow_method_code
84788 ,p_business_class_code => l_bflow_class_code
84789 ,p_balance_type => l_balance_type_code);
84790 ELSE
84791 NULL;
84792 XLA_AE_LINES_PKG.business_flow_validation(
84793 p_business_method_code => l_bflow_method_code
84794 ,p_business_class_code => l_bflow_class_code
84795 ,p_inherit_description_flag => l_inherit_desc_flag);
84796 END IF;
84797
84798 --
84799 -- call analytical criteria
84800 --
84801 -- Inherited Analytical Criteria for business flow method of Prior Entry.
84802 --
84803 -- call description
84804 --
84805 -- No description or it is inherited.
84806 --
84807 -- call ADRs
84808 -- Bug 4922099
84809 --
84810 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84814 THEN
84811 (NVL(l_actual_upg_option, 'N') = 'O') OR
84812 (NVL(l_enc_upg_option, 'N') = 'O')
84813 )
84815 NULL;
84816 --
84817 --
84818
84819 --
84820 --
84821 END IF;
84822 --
84823 -- Bug 4922099
84824 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84825 (NVL(l_enc_upg_option, 'N') = 'O')
84826 ) AND
84827 (l_bflow_method_code = 'PRIOR_ENTRY')
84828 )
84829 THEN
84830 IF
84831 --
84832 1 = 1
84833 --
84834 THEN
84835 xla_accounting_err_pkg.build_message
84836 (p_appli_s_name => 'XLA'
84837 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84838 ,p_token_1 => 'LINE_NUMBER'
84839 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
84840 ,p_token_2 => 'LINE_TYPE_NAME'
84841 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
84842 l_component_type
84843 ,l_component_code
84844 ,l_component_type_code
84845 ,l_component_appl_id
84846 ,l_amb_context_code
84847 ,l_entity_code
84848 ,l_event_class_code
84849 )
84850 ,p_token_3 => 'OWNER'
84851 ,p_value_3 => xla_lookups_pkg.get_meaning(
84852 p_lookup_type => 'XLA_OWNER_TYPE'
84853 ,p_lookup_code => l_component_type_code
84854 )
84855 ,p_token_4 => 'PRODUCT_NAME'
84856 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84857 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84858 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84859 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84860 ,p_ae_header_id => NULL
84861 );
84862
84863 IF (C_LEVEL_ERROR>= g_log_level) THEN
84864 trace
84865 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84866 ,p_level => C_LEVEL_ERROR
84867 ,p_module => l_log_module);
84868 END IF;
84869 END IF;
84870 END IF;
84871 --
84872 --
84873 ------------------------------------------------------------------------------------------------
84874 -- 4219869 Business Flow
84875 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84876 -- Prior Entry. Currently, the following code is always generated.
84877 ------------------------------------------------------------------------------------------------
84878 -- No ValidateCurrentLine for business flow method of Prior Entry
84879
84880 ------------------------------------------------------------------------------------
84881 -- 4219869 Business Flow
84882 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84883 ------------------------------------------------------------------------------------
84884 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84885
84886 ----------------------------------------------------------------------------------
84887 -- 4219869 Business Flow
84888 -- Update journal entry status -- Need to generate this within IF <condition>
84889 ----------------------------------------------------------------------------------
84890 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84891 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84892 ,p_balance_type_code => l_balance_type_code
84893 );
84894
84895 -------------------------------------------------------------------------------------------
84896 -- 4262811 - Generate the Accrual Reversal lines
84897 -------------------------------------------------------------------------------------------
84898 BEGIN
84899 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84900 (g_array_event(p_event_id).array_value_num('header_index'));
84901 IF l_acc_rev_flag IS NULL THEN
84902 l_acc_rev_flag := 'N';
84903 END IF;
84904 EXCEPTION
84905 WHEN OTHERS THEN
84906 l_acc_rev_flag := 'N';
84907 END;
84908 --
84909 IF (l_acc_rev_flag = 'Y') THEN
84910
84914 ------------------------------------------------------------------------------------------
84911 -- 4645092 ------------------------------------------------------------------------------
84912 -- To allow MPA report to determine if it should generate report process
84913 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84915
84916 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84917 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84918 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
84919 -- call ADRs
84920 -- Bug 4922099
84921 --
84922 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84923 (NVL(l_actual_upg_option, 'N') = 'O') OR
84924 (NVL(l_enc_upg_option, 'N') = 'O')
84925 )
84926 THEN
84927 NULL;
84928 --
84929 --
84930
84931 --
84932 --
84933 END IF;
84934
84935 --
84936 -- Update the line information that should be overwritten
84937 --
84938 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84939 p_header_num => 1);
84940 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
84941
84942 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84943
84944 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
84945 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84946 END IF;
84947
84948 --
84949 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84950 --
84951 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84952 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
84953 ELSE
84954 ---------------------------------------------------------------------------------------------------
84955 -- 4262811a Switch Sign
84956 ---------------------------------------------------------------------------------------------------
84957 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
84958 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84959 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84960 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84961 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84962 -- 5132302
84963 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84964 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84965
84966 END IF;
84967
84968 -- 4955764
84969 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84970 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84971
84972
84973 XLA_AE_LINES_PKG.ValidateCurrentLine;
84974 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84975
84976 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84977 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84978 ,p_balance_type_code => l_balance_type_code);
84979
84980 END IF;
84981
84982 -----------------------------------------------------------------------------------------
84983 -- 4262811 Multiperiod Accounting
84984 -----------------------------------------------------------------------------------------
84985 -- No MPA option is assigned.
84986
84987
84988 END IF;
84989 END IF;
84990 --
84991
84992 --
84993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84994 trace
84995 (p_msg => 'END of AcctLineType_153'
84996 ,p_level => C_LEVEL_PROCEDURE
84997 ,p_module => l_log_module);
84998 END IF;
84999 --
85000 EXCEPTION
85001 WHEN xla_exceptions_pkg.application_exception THEN
85002 RAISE;
85003 WHEN OTHERS THEN
85004 xla_exceptions_pkg.raise_message
85005 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_153');
85006 END AcctLineType_153;
85007 --
85008
85009 ---------------------------------------
85010 --
85011 -- PRIVATE FUNCTION
85012 -- AcctLineType_154
85013 --
85014 ---------------------------------------
85015 PROCEDURE AcctLineType_154 (
85016 p_application_id IN NUMBER
85017 ,p_event_id IN NUMBER
85018 ,p_calculate_acctd_flag IN VARCHAR2
85019 ,p_calculate_g_l_flag IN VARCHAR2
85020 ,p_actual_flag IN OUT VARCHAR2
85021 ,p_balance_type_code OUT VARCHAR2
85022 ,p_gain_or_loss_ref OUT VARCHAR2
85023
85024 --When to Account for Payment Option
85025 , p_source_38 IN VARCHAR2
85026 --Accounting Reversal Indicator
85027 , p_source_40 IN VARCHAR2
85028 --Business Flow Accounts Payable Application Identifier
85029 , p_source_42 IN NUMBER
85030 --Distribution Link Type
85031 , p_source_48 IN VARCHAR2
85032 --Override Accounted Amount Indicator
85033 , p_source_53 IN VARCHAR2
85034 , p_source_53_meaning IN VARCHAR2
85038 , p_source_58 IN NUMBER
85035 --Third Party Type
85036 , p_source_56 IN VARCHAR2
85037 --Invoice Distribution Tax Line Identifier
85039 --Invoice Distribution Summary Tax Line Identifier
85040 , p_source_59 IN NUMBER
85041 --Invoice Distribution Tax Distribution Identifier from Tax
85042 , p_source_66 IN NUMBER
85043 --Prepayment Distribution Type
85044 , p_source_67 IN VARCHAR2
85045 --Prepayment Application Distribution Identifier
85046 , p_source_71 IN NUMBER
85047 --Invoice Identifier
85048 , p_source_72 IN NUMBER
85049 --Upgrade Encumbrance Credit Account Class
85050 , p_source_77 IN VARCHAR2
85051 --Payables Encumbrance Upgrade Credit Account
85052 , p_source_78 IN NUMBER
85053 --Payables Encumbrance Upgrade Credit Amount
85054 , p_source_79 IN NUMBER
85055 --Invoice Currency Code
85056 , p_source_80 IN VARCHAR2
85057 --Payables Encumbrance Upgrade Credit Base Amount
85058 , p_source_81 IN NUMBER
85059 --Upgrade Encumbrance Debit Account Class
85060 , p_source_82 IN VARCHAR2
85061 --Payables Encumbrance Upgrade Debit Account
85062 , p_source_83 IN NUMBER
85063 --Payables Encumbrance Upgrade Debit Amount
85064 , p_source_84 IN NUMBER
85065 --Payables Encumbrance Upgrade Debit Base Amount
85066 , p_source_85 IN NUMBER
85067 --Payables Encumbrance Upgrade Option
85068 , p_source_86 IN VARCHAR2
85069 --Prepayment Distribution Amount
85070 , p_source_87 IN NUMBER
85071 --Deferred Accounting End Date
85072 , p_source_90 IN DATE
85073 --Deferred Accounting Option
85074 , p_source_91 IN VARCHAR2
85075 --Deferred Accounting Start Date
85076 , p_source_92 IN DATE
85077 --Identifier of the Prepayment Application Reversed
85078 , p_source_95 IN NUMBER
85079 --Payables Upgrade Credit Encumbrance Type Identifier
85080 , p_source_96 IN NUMBER
85081 --Payables Upgrade Debit Encumbrance Type Identifier
85082 , p_source_97 IN NUMBER
85083 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
85084 , p_source_99 IN NUMBER
85085 --Business Flow Prepay Payment Id
85086 , p_source_137 IN NUMBER
85087 --Business Flow Prepayment Payment Distribution Type
85088 , p_source_138 IN VARCHAR2
85089 --Business Flow Cash Basis Prepayment Entity Code
85090 , p_source_139 IN VARCHAR2
85091 --Business Flow Prepay Payment Distribution Id
85092 , p_source_140 IN NUMBER
85093 )
85094 IS
85095
85096 l_component_type VARCHAR2(80);
85097 l_component_code VARCHAR2(30);
85098 l_component_type_code VARCHAR2(1);
85099 l_component_appl_id INTEGER;
85100 l_amb_context_code VARCHAR2(30);
85101 l_entity_code VARCHAR2(30);
85102 l_event_class_code VARCHAR2(30);
85103 l_ae_header_id NUMBER;
85104 l_event_type_code VARCHAR2(30);
85105 l_line_definition_code VARCHAR2(30);
85106 l_line_definition_owner_code VARCHAR2(1);
85107 --
85108 -- adr variables
85109 l_segment VARCHAR2(30);
85110 l_ccid NUMBER;
85111 l_adr_transaction_coa_id NUMBER;
85112 l_adr_accounting_coa_id NUMBER;
85113 l_adr_flexfield_segment_code VARCHAR2(30);
85114 l_adr_flex_value_set_id NUMBER;
85115 l_adr_value_type_code VARCHAR2(30);
85116 l_adr_value_combination_id NUMBER;
85117 l_adr_value_segment_code VARCHAR2(30);
85118
85119 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
85120 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
85121 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
85122 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
85123
85124 -- 4262811 Variables ------------------------------------------------------------------------------------------
85125 l_entered_amt_idx NUMBER;
85126 l_accted_amt_idx NUMBER;
85127 l_acc_rev_flag VARCHAR2(1);
85128 l_accrual_line_num NUMBER;
85129 l_tmp_amt NUMBER;
85130 l_acc_rev_natural_side_code VARCHAR2(1);
85131
85132 l_num_entries NUMBER;
85133 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
85134 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
85135 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
85136 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
85137 l_recog_line_1 NUMBER;
85138 l_recog_line_2 NUMBER;
85139
85140 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
85141 l_bflow_applied_to_amt NUMBER; -- 5132302
85142 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
85143
85144 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85145
85146 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
85147 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
85148
85149 ---------------------------------------------------------------------------------------------------------------
85150
85151
85152 --
85153 -- bulk performance
85154 --
85158
85155 l_balance_type_code VARCHAR2(1);
85156 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
85157 l_log_module VARCHAR2(240);
85159 --
85160 -- Upgrade strategy
85161 --
85162 l_actual_upg_option VARCHAR2(1);
85163 l_enc_upg_option VARCHAR2(1);
85164
85165 --
85166 BEGIN
85167 --
85168 IF g_log_enabled THEN
85169 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
85170 END IF;
85171 --
85172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85173
85174 trace
85175 (p_msg => 'BEGIN of AcctLineType_154'
85176 ,p_level => C_LEVEL_PROCEDURE
85177 ,p_module => l_log_module);
85178
85179 END IF;
85180 --
85181 l_component_type := 'AMB_JLT';
85182 l_component_code := 'AP_PREPAID_EXP_CASH_PAY_XRATE';
85183 l_component_type_code := 'S';
85184 l_component_appl_id := 200;
85185 l_amb_context_code := 'DEFAULT';
85186 l_entity_code := 'AP_INVOICES';
85187 l_event_class_code := 'PREPAYMENT APPLICATIONS';
85188 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
85189 l_line_definition_owner_code := 'S';
85190 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
85191 --
85192 l_balance_type_code := 'A';
85193 l_segment := NULL;
85194 l_ccid := NULL;
85195 l_adr_transaction_coa_id := NULL;
85196 l_adr_accounting_coa_id := NULL;
85197 l_adr_flexfield_segment_code := NULL;
85198 l_adr_flex_value_set_id := NULL;
85199 l_adr_value_type_code := NULL;
85200 l_adr_value_combination_id := NULL;
85201 l_adr_value_segment_code := NULL;
85202
85203 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
85204 l_bflow_class_code := 'AP_PREPAY'; -- 4219869 Business Flow
85205 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
85206 l_budgetary_control_flag := 'N';
85207
85208 l_bflow_applied_to_amt_idx := NULL; -- 5132302
85209 l_bflow_applied_to_amt := NULL; -- 5132302
85210 l_entered_amt_idx := NULL; -- 4262811
85211 l_accted_amt_idx := NULL; -- 4262811
85212 l_acc_rev_flag := NULL; -- 4262811
85213 l_accrual_line_num := NULL; -- 4262811
85214 l_tmp_amt := NULL; -- 4262811
85215 --
85216
85217 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85218 l_balance_type_code <> 'B' THEN
85219 IF NVL(p_source_38,'
85220 ') <> 'CLEAR_CLEAR' AND
85221 (NVL(p_source_67,'
85222 ') = 'PREPAY APPL' OR
85223 NVL(p_source_67,'
85224 ') = 'PREPAY APPL NONREC TAX' OR
85225 NVL(p_source_67,'
85226 ') = 'PREPAY APPL REC TAX' OR
85227 NVL(p_source_67,'
85228 ') = 'TAX DIFF' OR
85229 NVL(p_source_67,'
85230 ') = 'FINAL APPLICATION ROUNDING')
85231 THEN
85232
85233 --
85234 XLA_AE_LINES_PKG.SetNewLine;
85235
85236 p_balance_type_code := l_balance_type_code;
85237 -- set the flag so later we will know whether the gain loss line needs to be created
85238
85239 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85240 p_actual_flag :='A';
85241 END IF;
85242
85243 --
85244 -- bulk performance
85245 --
85246 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85247 p_header_num => 0); -- 4262811
85248 --
85249 -- set accounting line options
85250 --
85251 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85252 p_natural_side_code => 'D'
85253 , p_gain_or_loss_flag => 'N'
85254 , p_gl_transfer_mode_code => 'S'
85255 , p_acct_entry_type_code => 'A'
85256 , p_switch_side_flag => 'Y'
85257 , p_merge_duplicate_code => 'A'
85258 );
85259 --
85260 l_acc_rev_natural_side_code := 'C'; -- 4262811
85261 --
85262 --
85263 -- set accounting line type info
85264 --
85265 xla_ae_lines_pkg.SetAcctLineType
85266 (p_component_type => l_component_type
85267 ,p_event_type_code => l_event_type_code
85268 ,p_line_definition_owner_code => l_line_definition_owner_code
85269 ,p_line_definition_code => l_line_definition_code
85270 ,p_accounting_line_code => l_component_code
85271 ,p_accounting_line_type_code => l_component_type_code
85272 ,p_accounting_line_appl_id => l_component_appl_id
85273 ,p_amb_context_code => l_amb_context_code
85274 ,p_entity_code => l_entity_code
85275 ,p_event_class_code => l_event_class_code);
85276 --
85277 -- set accounting class
85278 --
85279 xla_ae_lines_pkg.SetAcctClass(
85280 p_accounting_class_code => 'PREPAID_EXPENSE'
85281 , p_ae_header_id => l_ae_header_id
85282 );
85283
85284 --
85285 -- set rounding class
85286 --
85287 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85288 'PREPAID_EXPENSE';
85289
85290 --
85291 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85295 --
85292 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85293 --
85294 -- bulk performance
85296 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85297
85298 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85299 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85300
85301 -- 4955764
85302 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85303 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85304
85305 -- 4458381 Public Sector Enh
85306
85307 --
85308 -- set accounting attributes for the line type
85309 --
85310 l_entered_amt_idx := 25;
85311 l_accted_amt_idx := 27;
85312 l_bflow_applied_to_amt_idx := NULL; -- 5132302
85313 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85314 l_rec_acct_attrs.array_char_value(1) := p_source_40;
85315 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85316 l_rec_acct_attrs.array_num_value(2) :=
85317 xla_ae_sources_pkg.GetSystemSourceNum(
85318 p_source_code => 'XLA_EVENT_APPL_ID'
85319 , p_source_type_code => 'Y'
85320 , p_source_application_id => 602
85321 );
85322 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85323 l_rec_acct_attrs.array_char_value(3) := p_source_48;
85324 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85325 l_rec_acct_attrs.array_char_value(4) :=
85326 xla_ae_sources_pkg.GetSystemSourceChar(
85327 p_source_code => 'XLA_ENTITY_CODE'
85328 , p_source_type_code => 'Y'
85329 , p_source_application_id => 602
85330 );
85331 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85332 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
85333 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85334 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
85335 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85336 l_rec_acct_attrs.array_num_value(7) := p_source_42;
85337 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85338 l_rec_acct_attrs.array_char_value(8) := p_source_138;
85339 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85340 l_rec_acct_attrs.array_char_value(9) := p_source_139;
85341 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85342 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_140);
85343 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85344 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_137);
85345 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
85346 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
85347 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
85348 l_rec_acct_attrs.array_char_value(13) := p_source_48;
85349 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
85350 l_rec_acct_attrs.array_char_value(14) := p_source_77;
85351 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
85352 l_rec_acct_attrs.array_num_value(15) := p_source_78;
85353 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
85354 l_rec_acct_attrs.array_num_value(16) := p_source_79;
85355 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
85356 l_rec_acct_attrs.array_char_value(17) := p_source_80;
85357 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
85358 l_rec_acct_attrs.array_num_value(18) := p_source_81;
85359 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
85360 l_rec_acct_attrs.array_char_value(19) := p_source_82;
85361 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
85362 l_rec_acct_attrs.array_num_value(20) := p_source_83;
85363 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
85364 l_rec_acct_attrs.array_num_value(21) := p_source_84;
85365 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
85366 l_rec_acct_attrs.array_char_value(22) := p_source_80;
85367 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
85368 l_rec_acct_attrs.array_num_value(23) := p_source_85;
85369 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
85370 l_rec_acct_attrs.array_char_value(24) := p_source_86;
85371 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
85372 l_rec_acct_attrs.array_num_value(25) := p_source_87;
85373 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
85374 l_rec_acct_attrs.array_char_value(26) := p_source_80;
85375 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
85376 l_rec_acct_attrs.array_num_value(27) := p_source_99;
85377 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
85378 l_rec_acct_attrs.array_date_value(28) := p_source_90;
85379 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
85380 l_rec_acct_attrs.array_char_value(29) := p_source_91;
85381 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
85382 l_rec_acct_attrs.array_date_value(30) := p_source_92;
85383 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
85384 l_rec_acct_attrs.array_char_value(31) := p_source_53;
85388 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_95);
85385 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
85386 l_rec_acct_attrs.array_char_value(32) := p_source_56;
85387 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
85389 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
85390 l_rec_acct_attrs.array_char_value(34) := p_source_48;
85391 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
85392 l_rec_acct_attrs.array_num_value(35) := p_source_58;
85393 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
85394 l_rec_acct_attrs.array_num_value(36) := p_source_66;
85395 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
85396 l_rec_acct_attrs.array_num_value(37) := p_source_59;
85397 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
85398 l_rec_acct_attrs.array_num_value(38) := p_source_96;
85399 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
85400 l_rec_acct_attrs.array_num_value(39) := p_source_97;
85401
85402 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85403 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85404
85405 ---------------------------------------------------------------------------------------------------------------
85406 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85407 ---------------------------------------------------------------------------------------------------------------
85408 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85409
85410 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85411 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85412
85413 IF xla_accounting_cache_pkg.GetValueChar
85414 (p_source_code => 'LEDGER_CATEGORY_CODE'
85415 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85416 AND l_bflow_method_code = 'PRIOR_ENTRY'
85417 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85418 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85419 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85420 )
85421 THEN
85422 xla_ae_lines_pkg.BflowUpgEntry
85423 (p_business_method_code => l_bflow_method_code
85424 ,p_business_class_code => l_bflow_class_code
85425 ,p_balance_type => l_balance_type_code);
85426 ELSE
85427 NULL;
85428 XLA_AE_LINES_PKG.business_flow_validation(
85429 p_business_method_code => l_bflow_method_code
85430 ,p_business_class_code => l_bflow_class_code
85431 ,p_inherit_description_flag => l_inherit_desc_flag);
85432 END IF;
85433
85434 --
85435 -- call analytical criteria
85436 --
85437 -- Inherited Analytical Criteria for business flow method of Prior Entry.
85438 --
85439 -- call description
85440 --
85441 -- No description or it is inherited.
85442 --
85443 -- call ADRs
85444 -- Bug 4922099
85445 --
85446 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85447 (NVL(l_actual_upg_option, 'N') = 'O') OR
85448 (NVL(l_enc_upg_option, 'N') = 'O')
85449 )
85450 THEN
85451 NULL;
85452 --
85453 --
85454
85455 --
85456 --
85457 END IF;
85458 --
85459 -- Bug 4922099
85460 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85461 (NVL(l_enc_upg_option, 'N') = 'O')
85462 ) AND
85463 (l_bflow_method_code = 'PRIOR_ENTRY')
85464 )
85465 THEN
85466 IF
85467 --
85468 1 = 1
85469 --
85470 THEN
85471 xla_accounting_err_pkg.build_message
85472 (p_appli_s_name => 'XLA'
85473 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85474 ,p_token_1 => 'LINE_NUMBER'
85475 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
85476 ,p_token_2 => 'LINE_TYPE_NAME'
85477 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
85478 l_component_type
85479 ,l_component_code
85480 ,l_component_type_code
85481 ,l_component_appl_id
85482 ,l_amb_context_code
85483 ,l_entity_code
85484 ,l_event_class_code
85485 )
85486 ,p_token_3 => 'OWNER'
85490 )
85487 ,p_value_3 => xla_lookups_pkg.get_meaning(
85488 p_lookup_type => 'XLA_OWNER_TYPE'
85489 ,p_lookup_code => l_component_type_code
85491 ,p_token_4 => 'PRODUCT_NAME'
85492 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85493 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85494 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85495 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85496 ,p_ae_header_id => NULL
85497 );
85498
85499 IF (C_LEVEL_ERROR>= g_log_level) THEN
85500 trace
85501 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85502 ,p_level => C_LEVEL_ERROR
85503 ,p_module => l_log_module);
85504 END IF;
85505 END IF;
85506 END IF;
85507 --
85508 --
85509 ------------------------------------------------------------------------------------------------
85510 -- 4219869 Business Flow
85511 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85512 -- Prior Entry. Currently, the following code is always generated.
85513 ------------------------------------------------------------------------------------------------
85514 -- No ValidateCurrentLine for business flow method of Prior Entry
85515
85516 ------------------------------------------------------------------------------------
85517 -- 4219869 Business Flow
85518 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85519 ------------------------------------------------------------------------------------
85520 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85521
85522 ----------------------------------------------------------------------------------
85523 -- 4219869 Business Flow
85524 -- Update journal entry status -- Need to generate this within IF <condition>
85525 ----------------------------------------------------------------------------------
85526 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85527 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85528 ,p_balance_type_code => l_balance_type_code
85529 );
85530
85531 -------------------------------------------------------------------------------------------
85532 -- 4262811 - Generate the Accrual Reversal lines
85533 -------------------------------------------------------------------------------------------
85534 BEGIN
85535 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85536 (g_array_event(p_event_id).array_value_num('header_index'));
85537 IF l_acc_rev_flag IS NULL THEN
85538 l_acc_rev_flag := 'N';
85539 END IF;
85540 EXCEPTION
85541 WHEN OTHERS THEN
85542 l_acc_rev_flag := 'N';
85543 END;
85544 --
85545 IF (l_acc_rev_flag = 'Y') THEN
85546
85547 -- 4645092 ------------------------------------------------------------------------------
85548 -- To allow MPA report to determine if it should generate report process
85549 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85550 ------------------------------------------------------------------------------------------
85551
85552 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85553 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85554 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
85555 -- call ADRs
85556 -- Bug 4922099
85557 --
85558 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85559 (NVL(l_actual_upg_option, 'N') = 'O') OR
85560 (NVL(l_enc_upg_option, 'N') = 'O')
85561 )
85562 THEN
85563 NULL;
85564 --
85565 --
85566
85567 --
85568 --
85569 END IF;
85570
85571 --
85572 -- Update the line information that should be overwritten
85573 --
85574 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85575 p_header_num => 1);
85576 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
85577
85578 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85579
85580 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
85581 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85582 END IF;
85583
85584 --
85585 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85586 --
85587 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85588 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
85589 ELSE
85593 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
85590 ---------------------------------------------------------------------------------------------------
85591 -- 4262811a Switch Sign
85592 ---------------------------------------------------------------------------------------------------
85594 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85595 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85596 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85597 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85598 -- 5132302
85599 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85600 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85601
85602 END IF;
85603
85604 -- 4955764
85605 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85606 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85607
85608
85609 XLA_AE_LINES_PKG.ValidateCurrentLine;
85610 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85611
85612 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85613 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85614 ,p_balance_type_code => l_balance_type_code);
85615
85616 END IF;
85617
85618 -----------------------------------------------------------------------------------------
85619 -- 4262811 Multiperiod Accounting
85620 -----------------------------------------------------------------------------------------
85621 -- No MPA option is assigned.
85622
85623
85624 END IF;
85625 END IF;
85626 --
85627
85628 --
85629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85630 trace
85631 (p_msg => 'END of AcctLineType_154'
85632 ,p_level => C_LEVEL_PROCEDURE
85633 ,p_module => l_log_module);
85634 END IF;
85635 --
85636 EXCEPTION
85637 WHEN xla_exceptions_pkg.application_exception THEN
85638 RAISE;
85639 WHEN OTHERS THEN
85640 xla_exceptions_pkg.raise_message
85641 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_154');
85642 END AcctLineType_154;
85643 --
85644
85645 ---------------------------------------
85646 --
85647 -- PRIVATE FUNCTION
85648 -- AcctLineType_155
85649 --
85650 ---------------------------------------
85651 PROCEDURE AcctLineType_155 (
85652 p_application_id IN NUMBER
85653 ,p_event_id IN NUMBER
85654 ,p_calculate_acctd_flag IN VARCHAR2
85655 ,p_calculate_g_l_flag IN VARCHAR2
85656 ,p_actual_flag IN OUT VARCHAR2
85657 ,p_balance_type_code OUT VARCHAR2
85658 ,p_gain_or_loss_ref OUT VARCHAR2
85659
85660 --Invoice Distribution Account
85661 , p_source_17 IN NUMBER
85662 --Accounting Reversal Indicator
85663 , p_source_40 IN VARCHAR2
85664 --Business Flow Accounts Payable Application Identifier
85665 , p_source_42 IN NUMBER
85666 --Distribution Link Type
85667 , p_source_48 IN VARCHAR2
85668 --Override Accounted Amount Indicator
85669 , p_source_53 IN VARCHAR2
85670 , p_source_53_meaning IN VARCHAR2
85671 --Third Party Type
85672 , p_source_56 IN VARCHAR2
85673 --Invoice Distribution Tax Line Identifier
85674 , p_source_58 IN NUMBER
85675 --Invoice Distribution Summary Tax Line Identifier
85676 , p_source_59 IN NUMBER
85677 --Invoice Distribution Tax Distribution Identifier from Tax
85678 , p_source_66 IN NUMBER
85679 --Prepayment Distribution Type
85680 , p_source_67 IN VARCHAR2
85681 --Prepayment Application Distribution Identifier
85682 , p_source_71 IN NUMBER
85683 --Invoice Identifier
85684 , p_source_72 IN NUMBER
85685 --Business Flow Prepayment Invoice Distribution Type
85686 , p_source_73 IN VARCHAR2
85687 --Business Flow Prepayment Invoice Entity Code
85688 , p_source_74 IN VARCHAR2
85689 --Business Flow Prepayment Invoice Distribution Identifier
85690 , p_source_75 IN NUMBER
85691 --Business Flow Prepayment Invoice Identifier
85692 , p_source_76 IN NUMBER
85693 --Upgrade Encumbrance Credit Account Class
85694 , p_source_77 IN VARCHAR2
85695 --Payables Encumbrance Upgrade Credit Account
85696 , p_source_78 IN NUMBER
85697 --Payables Encumbrance Upgrade Credit Amount
85698 , p_source_79 IN NUMBER
85699 --Invoice Currency Code
85700 , p_source_80 IN VARCHAR2
85701 --Payables Encumbrance Upgrade Credit Base Amount
85702 , p_source_81 IN NUMBER
85703 --Upgrade Encumbrance Debit Account Class
85704 , p_source_82 IN VARCHAR2
85705 --Payables Encumbrance Upgrade Debit Account
85706 , p_source_83 IN NUMBER
85707 --Payables Encumbrance Upgrade Debit Amount
85708 , p_source_84 IN NUMBER
85709 --Payables Encumbrance Upgrade Debit Base Amount
85710 , p_source_85 IN NUMBER
85711 --Payables Encumbrance Upgrade Option
85712 , p_source_86 IN VARCHAR2
85713 --Prepayment Distribution Amount
85717 --Deferred Accounting Option
85714 , p_source_87 IN NUMBER
85715 --Deferred Accounting End Date
85716 , p_source_90 IN DATE
85718 , p_source_91 IN VARCHAR2
85719 --Deferred Accounting Start Date
85720 , p_source_92 IN DATE
85721 --Invoice Supplier Identifier
85722 , p_source_93 IN NUMBER
85723 --Invoice Supplier Site Identifier
85724 , p_source_94 IN NUMBER
85725 --Identifier of the Prepayment Application Reversed
85726 , p_source_95 IN NUMBER
85727 --Payables Upgrade Credit Encumbrance Type Identifier
85728 , p_source_96 IN NUMBER
85729 --Payables Upgrade Debit Encumbrance Type Identifier
85730 , p_source_97 IN NUMBER
85731 --Purchasing Encumbrance Option
85732 , p_source_102 IN VARCHAR2
85733 , p_source_102_meaning IN VARCHAR2
85734 --Invoice Encumbered Option
85735 , p_source_104 IN VARCHAR2
85736 , p_source_104_meaning IN VARCHAR2
85737 --Invoice Exchange Date
85738 , p_source_124 IN DATE
85739 --Invoice Exchange Rate
85740 , p_source_125 IN NUMBER
85741 --Invoice Exchange Rate Type
85742 , p_source_126 IN VARCHAR2
85743 --Prepayment Distribution (Invoice Rate) Ledger Amount
85744 , p_source_141 IN NUMBER
85745 )
85746 IS
85747
85748 l_component_type VARCHAR2(80);
85749 l_component_code VARCHAR2(30);
85750 l_component_type_code VARCHAR2(1);
85751 l_component_appl_id INTEGER;
85752 l_amb_context_code VARCHAR2(30);
85753 l_entity_code VARCHAR2(30);
85754 l_event_class_code VARCHAR2(30);
85755 l_ae_header_id NUMBER;
85756 l_event_type_code VARCHAR2(30);
85757 l_line_definition_code VARCHAR2(30);
85758 l_line_definition_owner_code VARCHAR2(1);
85759 --
85760 -- adr variables
85761 l_segment VARCHAR2(30);
85762 l_ccid NUMBER;
85763 l_adr_transaction_coa_id NUMBER;
85764 l_adr_accounting_coa_id NUMBER;
85765 l_adr_flexfield_segment_code VARCHAR2(30);
85766 l_adr_flex_value_set_id NUMBER;
85767 l_adr_value_type_code VARCHAR2(30);
85768 l_adr_value_combination_id NUMBER;
85769 l_adr_value_segment_code VARCHAR2(30);
85770
85771 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
85772 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
85773 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
85774 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
85775
85776 -- 4262811 Variables ------------------------------------------------------------------------------------------
85777 l_entered_amt_idx NUMBER;
85778 l_accted_amt_idx NUMBER;
85779 l_acc_rev_flag VARCHAR2(1);
85780 l_accrual_line_num NUMBER;
85781 l_tmp_amt NUMBER;
85782 l_acc_rev_natural_side_code VARCHAR2(1);
85783
85784 l_num_entries NUMBER;
85785 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
85786 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
85787 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
85788 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
85789 l_recog_line_1 NUMBER;
85790 l_recog_line_2 NUMBER;
85791
85792 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
85793 l_bflow_applied_to_amt NUMBER; -- 5132302
85794 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
85795
85796 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85797
85798 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
85799 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
85800
85801 ---------------------------------------------------------------------------------------------------------------
85802
85803
85804 --
85805 -- bulk performance
85806 --
85807 l_balance_type_code VARCHAR2(1);
85808 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
85809 l_log_module VARCHAR2(240);
85810
85811 --
85812 -- Upgrade strategy
85813 --
85814 l_actual_upg_option VARCHAR2(1);
85815 l_enc_upg_option VARCHAR2(1);
85816
85817 --
85818 BEGIN
85819 --
85820 IF g_log_enabled THEN
85821 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
85822 END IF;
85823 --
85824 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85825
85826 trace
85827 (p_msg => 'BEGIN of AcctLineType_155'
85828 ,p_level => C_LEVEL_PROCEDURE
85829 ,p_module => l_log_module);
85830
85831 END IF;
85832 --
85833 l_component_type := 'AMB_JLT';
85834 l_component_code := 'AP_PREPAID_EXP_PREPAY_APP_ENC';
85835 l_component_type_code := 'S';
85836 l_component_appl_id := 200;
85837 l_amb_context_code := 'DEFAULT';
85838 l_entity_code := 'AP_INVOICES';
85839 l_event_class_code := 'PREPAYMENT APPLICATIONS';
85840 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
85841 l_line_definition_owner_code := 'S';
85842 l_line_definition_code := 'AP_ENC_REV_PREPAY_APPL_ALL';
85843 --
85844 l_balance_type_code := 'E';
85848 l_adr_accounting_coa_id := NULL;
85845 l_segment := NULL;
85846 l_ccid := NULL;
85847 l_adr_transaction_coa_id := NULL;
85849 l_adr_flexfield_segment_code := NULL;
85850 l_adr_flex_value_set_id := NULL;
85851 l_adr_value_type_code := NULL;
85852 l_adr_value_combination_id := NULL;
85853 l_adr_value_segment_code := NULL;
85854
85855 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
85856 l_bflow_class_code := ''; -- 4219869 Business Flow
85857 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
85858 l_budgetary_control_flag := 'N';
85859
85860 l_bflow_applied_to_amt_idx := NULL; -- 5132302
85861 l_bflow_applied_to_amt := NULL; -- 5132302
85862 l_entered_amt_idx := NULL; -- 4262811
85863 l_accted_amt_idx := NULL; -- 4262811
85864 l_acc_rev_flag := NULL; -- 4262811
85865 l_accrual_line_num := NULL; -- 4262811
85866 l_tmp_amt := NULL; -- 4262811
85867 --
85868
85869 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85870 l_balance_type_code <> 'B' THEN
85871 IF (NVL(p_source_67,'
85872 ') = 'PREPAY APPL' OR
85873 NVL(p_source_67,'
85874 ') = 'PREPAY APPL NONREC TAX' OR
85875 NVL(p_source_67,'
85876 ') = 'PREPAY APPL REC TAX' OR
85877 NVL(p_source_67,'
85878 ') = 'TAX DIFF' OR
85879 NVL(p_source_67,'
85880 ') = 'FINAL APPLICATION ROUNDING') AND
85881 NVL(p_source_102,'
85882 ') = 'Y' AND
85883 NVL(p_source_104,'
85884 ') = 'Y'
85885 THEN
85886
85887 --
85888 XLA_AE_LINES_PKG.SetNewLine;
85889
85890 p_balance_type_code := l_balance_type_code;
85891 -- set the flag so later we will know whether the gain loss line needs to be created
85892
85893 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85894 p_actual_flag :='A';
85895 END IF;
85896
85897 --
85898 -- bulk performance
85899 --
85900 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85901 p_header_num => 0); -- 4262811
85902 --
85903 -- set accounting line options
85904 --
85905 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85906 p_natural_side_code => 'C'
85907 , p_gain_or_loss_flag => 'N'
85908 , p_gl_transfer_mode_code => 'S'
85909 , p_acct_entry_type_code => 'E'
85910 , p_switch_side_flag => 'Y'
85911 , p_merge_duplicate_code => 'A'
85912 );
85913 --
85914 l_acc_rev_natural_side_code := 'D'; -- 4262811
85915 --
85916 --
85917 -- set accounting line type info
85918 --
85919 xla_ae_lines_pkg.SetAcctLineType
85920 (p_component_type => l_component_type
85921 ,p_event_type_code => l_event_type_code
85922 ,p_line_definition_owner_code => l_line_definition_owner_code
85923 ,p_line_definition_code => l_line_definition_code
85924 ,p_accounting_line_code => l_component_code
85925 ,p_accounting_line_type_code => l_component_type_code
85926 ,p_accounting_line_appl_id => l_component_appl_id
85927 ,p_amb_context_code => l_amb_context_code
85928 ,p_entity_code => l_entity_code
85929 ,p_event_class_code => l_event_class_code);
85930 --
85931 -- set accounting class
85932 --
85933 xla_ae_lines_pkg.SetAcctClass(
85934 p_accounting_class_code => 'PREPAID_EXPENSE'
85935 , p_ae_header_id => l_ae_header_id
85936 );
85937
85938 --
85939 -- set rounding class
85940 --
85941 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85942 'PREPAID_EXPENSE';
85943
85944 --
85945 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85946 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85947 --
85948 -- bulk performance
85949 --
85950 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85951
85952 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85953 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85954
85955 -- 4955764
85956 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85957 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85958
85959 -- 4458381 Public Sector Enh
85960 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
85961 --
85962 -- set accounting attributes for the line type
85963 --
85964 l_entered_amt_idx := 25;
85965 l_accted_amt_idx := 30;
85966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
85967 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85968 l_rec_acct_attrs.array_char_value(1) := p_source_40;
85969 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85970 l_rec_acct_attrs.array_num_value(2) :=
85974 , p_source_application_id => 602
85971 xla_ae_sources_pkg.GetSystemSourceNum(
85972 p_source_code => 'XLA_EVENT_APPL_ID'
85973 , p_source_type_code => 'Y'
85975 );
85976 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85977 l_rec_acct_attrs.array_char_value(3) := p_source_48;
85978 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85979 l_rec_acct_attrs.array_char_value(4) :=
85980 xla_ae_sources_pkg.GetSystemSourceChar(
85981 p_source_code => 'XLA_ENTITY_CODE'
85982 , p_source_type_code => 'Y'
85983 , p_source_application_id => 602
85984 );
85985 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85986 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
85987 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85988 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
85989 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85990 l_rec_acct_attrs.array_num_value(7) := p_source_42;
85991 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85992 l_rec_acct_attrs.array_char_value(8) := p_source_73;
85993 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85994 l_rec_acct_attrs.array_char_value(9) := p_source_74;
85995 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85996 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
85997 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85998 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
85999 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
86000 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
86001 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
86002 l_rec_acct_attrs.array_char_value(13) := p_source_48;
86003 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
86004 l_rec_acct_attrs.array_char_value(14) := p_source_77;
86005 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
86006 l_rec_acct_attrs.array_num_value(15) := p_source_78;
86007 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
86008 l_rec_acct_attrs.array_num_value(16) := p_source_79;
86009 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
86010 l_rec_acct_attrs.array_char_value(17) := p_source_80;
86011 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
86012 l_rec_acct_attrs.array_num_value(18) := p_source_81;
86013 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
86014 l_rec_acct_attrs.array_char_value(19) := p_source_82;
86015 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
86016 l_rec_acct_attrs.array_num_value(20) := p_source_83;
86017 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
86018 l_rec_acct_attrs.array_num_value(21) := p_source_84;
86019 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
86020 l_rec_acct_attrs.array_char_value(22) := p_source_80;
86021 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
86022 l_rec_acct_attrs.array_num_value(23) := p_source_85;
86023 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
86024 l_rec_acct_attrs.array_char_value(24) := p_source_86;
86025 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
86026 l_rec_acct_attrs.array_num_value(25) := p_source_87;
86027 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
86028 l_rec_acct_attrs.array_char_value(26) := p_source_80;
86029 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
86030 l_rec_acct_attrs.array_date_value(27) := p_source_124;
86031 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
86032 l_rec_acct_attrs.array_num_value(28) := p_source_125;
86033 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
86034 l_rec_acct_attrs.array_char_value(29) := p_source_126;
86035 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
86036 l_rec_acct_attrs.array_num_value(30) := p_source_141;
86037 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
86038 l_rec_acct_attrs.array_date_value(31) := p_source_90;
86039 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
86040 l_rec_acct_attrs.array_char_value(32) := p_source_91;
86041 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
86042 l_rec_acct_attrs.array_date_value(33) := p_source_92;
86043 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
86044 l_rec_acct_attrs.array_char_value(34) := p_source_53;
86045 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
86046 l_rec_acct_attrs.array_num_value(35) := p_source_93;
86047 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
86048 l_rec_acct_attrs.array_num_value(36) := p_source_94;
86049 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
86050 l_rec_acct_attrs.array_char_value(37) := p_source_56;
86051 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
86052 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
86053 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
86054 l_rec_acct_attrs.array_char_value(39) := p_source_48;
86055 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
86056 l_rec_acct_attrs.array_num_value(40) := p_source_58;
86060 l_rec_acct_attrs.array_num_value(42) := p_source_59;
86057 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
86058 l_rec_acct_attrs.array_num_value(41) := p_source_66;
86059 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
86061 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
86062 l_rec_acct_attrs.array_num_value(43) := p_source_96;
86063 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
86064 l_rec_acct_attrs.array_num_value(44) := p_source_97;
86065
86066 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86067 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86068
86069 ---------------------------------------------------------------------------------------------------------------
86070 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86071 ---------------------------------------------------------------------------------------------------------------
86072 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86073
86074 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86075 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86076
86077 IF xla_accounting_cache_pkg.GetValueChar
86078 (p_source_code => 'LEDGER_CATEGORY_CODE'
86079 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86080 AND l_bflow_method_code = 'PRIOR_ENTRY'
86081 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86082 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86083 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86084 )
86085 THEN
86086 xla_ae_lines_pkg.BflowUpgEntry
86087 (p_business_method_code => l_bflow_method_code
86088 ,p_business_class_code => l_bflow_class_code
86089 ,p_balance_type => l_balance_type_code);
86090 ELSE
86091 NULL;
86092 -- No business flow processing for business flow method of NONE.
86093 END IF;
86094
86095 --
86096 -- call analytical criteria
86097 --
86098
86099 --
86100 -- call description
86101 --
86102 -- No description or it is inherited.
86103 --
86104 -- call ADRs
86105 -- Bug 4922099
86106 --
86107 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86108 (NVL(l_actual_upg_option, 'N') = 'O') OR
86109 (NVL(l_enc_upg_option, 'N') = 'O')
86110 )
86111 THEN
86112 NULL;
86113 --
86114 --
86115
86116 l_ccid := AcctDerRule_37(
86117 p_application_id => p_application_id
86118 , p_ae_header_id => l_ae_header_id
86119 , p_source_17 => p_source_17
86120 , x_transaction_coa_id => l_adr_transaction_coa_id
86121 , x_accounting_coa_id => l_adr_accounting_coa_id
86122 , x_value_type_code => l_adr_value_type_code
86123 , p_side => 'NA'
86124 );
86125
86126 xla_ae_lines_pkg.set_ccid(
86127 p_code_combination_id => l_ccid
86128 , p_value_type_code => l_adr_value_type_code
86129 , p_transaction_coa_id => l_adr_transaction_coa_id
86130 , p_accounting_coa_id => l_adr_accounting_coa_id
86131 , p_adr_code => 'FV_AP_INV_DISTRBUTION_CCID'
86132 , p_adr_type_code => 'S'
86133 , p_component_type => l_component_type
86134 , p_component_code => l_component_code
86135 , p_component_type_code => l_component_type_code
86136 , p_component_appl_id => l_component_appl_id
86137 , p_amb_context_code => l_amb_context_code
86138 , p_side => 'NA'
86139 );
86140
86141
86142 --
86143 --
86144 END IF;
86145 --
86146 -- Bug 4922099
86147 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86148 (NVL(l_enc_upg_option, 'N') = 'O')
86149 ) AND
86150 (l_bflow_method_code = 'PRIOR_ENTRY')
86151 )
86152 THEN
86153 IF
86154 --
86155 1 = 2
86156 --
86157 THEN
86158 xla_accounting_err_pkg.build_message
86159 (p_appli_s_name => 'XLA'
86160 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86161 ,p_token_1 => 'LINE_NUMBER'
86162 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
86163 ,p_token_2 => 'LINE_TYPE_NAME'
86164 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
86165 l_component_type
86166 ,l_component_code
86167 ,l_component_type_code
86168 ,l_component_appl_id
86169 ,l_amb_context_code
86173 ,p_token_3 => 'OWNER'
86170 ,l_entity_code
86171 ,l_event_class_code
86172 )
86174 ,p_value_3 => xla_lookups_pkg.get_meaning(
86175 p_lookup_type => 'XLA_OWNER_TYPE'
86176 ,p_lookup_code => l_component_type_code
86177 )
86178 ,p_token_4 => 'PRODUCT_NAME'
86179 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86180 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86181 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86182 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86183 ,p_ae_header_id => NULL
86184 );
86185
86186 IF (C_LEVEL_ERROR>= g_log_level) THEN
86187 trace
86188 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86189 ,p_level => C_LEVEL_ERROR
86190 ,p_module => l_log_module);
86191 END IF;
86192 END IF;
86193 END IF;
86194 --
86195 --
86196 ------------------------------------------------------------------------------------------------
86197 -- 4219869 Business Flow
86198 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86199 -- Prior Entry. Currently, the following code is always generated.
86200 ------------------------------------------------------------------------------------------------
86201 XLA_AE_LINES_PKG.ValidateCurrentLine;
86202
86203 ------------------------------------------------------------------------------------
86204 -- 4219869 Business Flow
86205 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86206 ------------------------------------------------------------------------------------
86207 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86208
86209 ----------------------------------------------------------------------------------
86210 -- 4219869 Business Flow
86211 -- Update journal entry status -- Need to generate this within IF <condition>
86212 ----------------------------------------------------------------------------------
86213 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86214 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86215 ,p_balance_type_code => l_balance_type_code
86216 );
86217
86218 -------------------------------------------------------------------------------------------
86219 -- 4262811 - Generate the Accrual Reversal lines
86220 -------------------------------------------------------------------------------------------
86221 BEGIN
86222 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86223 (g_array_event(p_event_id).array_value_num('header_index'));
86224 IF l_acc_rev_flag IS NULL THEN
86225 l_acc_rev_flag := 'N';
86226 END IF;
86227 EXCEPTION
86228 WHEN OTHERS THEN
86229 l_acc_rev_flag := 'N';
86230 END;
86231 --
86232 IF (l_acc_rev_flag = 'Y') THEN
86233
86234 -- 4645092 ------------------------------------------------------------------------------
86235 -- To allow MPA report to determine if it should generate report process
86236 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86237 ------------------------------------------------------------------------------------------
86238
86239 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86240 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86241 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
86242 -- call ADRs
86243 -- Bug 4922099
86244 --
86245 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86246 (NVL(l_actual_upg_option, 'N') = 'O') OR
86247 (NVL(l_enc_upg_option, 'N') = 'O')
86248 )
86249 THEN
86250 NULL;
86251 --
86252 --
86253
86254 l_ccid := AcctDerRule_37(
86255 p_application_id => p_application_id
86256 , p_ae_header_id => l_ae_header_id
86257 , p_source_17 => p_source_17
86258 , x_transaction_coa_id => l_adr_transaction_coa_id
86259 , x_accounting_coa_id => l_adr_accounting_coa_id
86260 , x_value_type_code => l_adr_value_type_code
86261 , p_side => 'NA'
86262 );
86263
86264 xla_ae_lines_pkg.set_ccid(
86265 p_code_combination_id => l_ccid
86266 , p_value_type_code => l_adr_value_type_code
86267 , p_transaction_coa_id => l_adr_transaction_coa_id
86268 , p_accounting_coa_id => l_adr_accounting_coa_id
86269 , p_adr_code => 'FV_AP_INV_DISTRBUTION_CCID'
86270 , p_adr_type_code => 'S'
86274 , p_component_appl_id => l_component_appl_id
86271 , p_component_type => l_component_type
86272 , p_component_code => l_component_code
86273 , p_component_type_code => l_component_type_code
86275 , p_amb_context_code => l_amb_context_code
86276 , p_side => 'NA'
86277 );
86278
86279
86280 --
86281 --
86282 END IF;
86283
86284 --
86285 -- Update the line information that should be overwritten
86286 --
86287 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86288 p_header_num => 1);
86289 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
86290
86291 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86292
86293 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
86294 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86295 END IF;
86296
86297 --
86298 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86299 --
86300 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86301 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
86302 ELSE
86303 ---------------------------------------------------------------------------------------------------
86304 -- 4262811a Switch Sign
86305 ---------------------------------------------------------------------------------------------------
86306 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
86307 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86308 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86309 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86310 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86311 -- 5132302
86312 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86313 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86314
86315 END IF;
86316
86317 -- 4955764
86318 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86319 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86320
86321
86322 XLA_AE_LINES_PKG.ValidateCurrentLine;
86323 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86324
86325 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86326 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86327 ,p_balance_type_code => l_balance_type_code);
86328
86329 END IF;
86330
86331 -----------------------------------------------------------------------------------------
86332 -- 4262811 Multiperiod Accounting
86333 -----------------------------------------------------------------------------------------
86334 -- No MPA option is assigned.
86335
86336
86337 END IF;
86338 END IF;
86339 --
86340
86341 --
86342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86343 trace
86344 (p_msg => 'END of AcctLineType_155'
86345 ,p_level => C_LEVEL_PROCEDURE
86346 ,p_module => l_log_module);
86347 END IF;
86348 --
86349 EXCEPTION
86350 WHEN xla_exceptions_pkg.application_exception THEN
86351 RAISE;
86352 WHEN OTHERS THEN
86353 xla_exceptions_pkg.raise_message
86354 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_155');
86355 END AcctLineType_155;
86356 --
86357
86358 ---------------------------------------
86359 --
86360 -- PRIVATE FUNCTION
86361 -- AcctLineType_156
86362 --
86363 ---------------------------------------
86364 PROCEDURE AcctLineType_156 (
86365 p_application_id IN NUMBER
86366 ,p_event_id IN NUMBER
86367 ,p_calculate_acctd_flag IN VARCHAR2
86368 ,p_calculate_g_l_flag IN VARCHAR2
86369 ,p_actual_flag IN OUT VARCHAR2
86370 ,p_balance_type_code OUT VARCHAR2
86371 ,p_gain_or_loss_ref OUT VARCHAR2
86372
86373 --When to Account for Payment Option
86374 , p_source_38 IN VARCHAR2
86375 --Payment Distribution Type
86376 , p_source_39 IN VARCHAR2
86377 , p_source_39_meaning IN VARCHAR2
86378 --Accounting Reversal Indicator
86379 , p_source_40 IN VARCHAR2
86380 --Payment Distribution Amount
86381 , p_source_41 IN NUMBER
86382 --Business Flow Accounts Payable Application Identifier
86383 , p_source_42 IN NUMBER
86384 --Payment Distribution Identifier
86385 , p_source_47 IN NUMBER
86386 --Distribution Link Type
86387 , p_source_48 IN VARCHAR2
86388 --Payment Currency Code
86389 , p_source_49 IN VARCHAR2
86390 --Override Accounted Amount Indicator
86391 , p_source_53 IN VARCHAR2
86392 , p_source_53_meaning IN VARCHAR2
86393 --Third Party Type
86394 , p_source_56 IN VARCHAR2
86395 --Payment Distribution Reversed Identifier
86399 --Invoice Distribution Summary Tax Line Identifier
86396 , p_source_57 IN NUMBER
86397 --Invoice Distribution Tax Line Identifier
86398 , p_source_58 IN NUMBER
86400 , p_source_59 IN NUMBER
86401 --Business Flow Invoice Distribution Type
86402 , p_source_62 IN VARCHAR2
86403 --Business Flow Invoice Entity Code
86404 , p_source_63 IN VARCHAR2
86405 --Business Flow Invoice Distribution Identifier
86406 , p_source_64 IN NUMBER
86407 --Business Flow Invoice Identifier
86408 , p_source_65 IN NUMBER
86409 --Accrue on Receipt Option
86410 , p_source_100 IN VARCHAR2
86411 , p_source_100_meaning IN VARCHAR2
86412 --Purchasing Encumbrance Option
86413 , p_source_102 IN VARCHAR2
86414 , p_source_102_meaning IN VARCHAR2
86415 --Invoice Encumbered Option
86416 , p_source_104 IN VARCHAR2
86417 , p_source_104_meaning IN VARCHAR2
86418 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
86419 , p_source_142 IN NUMBER
86420 --Prorated Amount of Quantity Variance for Cash Basis
86421 , p_source_143 IN NUMBER
86422 )
86423 IS
86424
86425 l_component_type VARCHAR2(80);
86426 l_component_code VARCHAR2(30);
86427 l_component_type_code VARCHAR2(1);
86428 l_component_appl_id INTEGER;
86429 l_amb_context_code VARCHAR2(30);
86430 l_entity_code VARCHAR2(30);
86431 l_event_class_code VARCHAR2(30);
86432 l_ae_header_id NUMBER;
86433 l_event_type_code VARCHAR2(30);
86434 l_line_definition_code VARCHAR2(30);
86435 l_line_definition_owner_code VARCHAR2(1);
86436 --
86437 -- adr variables
86438 l_segment VARCHAR2(30);
86439 l_ccid NUMBER;
86440 l_adr_transaction_coa_id NUMBER;
86441 l_adr_accounting_coa_id NUMBER;
86442 l_adr_flexfield_segment_code VARCHAR2(30);
86443 l_adr_flex_value_set_id NUMBER;
86444 l_adr_value_type_code VARCHAR2(30);
86445 l_adr_value_combination_id NUMBER;
86446 l_adr_value_segment_code VARCHAR2(30);
86447
86448 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
86449 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
86450 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
86451 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
86452
86453 -- 4262811 Variables ------------------------------------------------------------------------------------------
86454 l_entered_amt_idx NUMBER;
86455 l_accted_amt_idx NUMBER;
86456 l_acc_rev_flag VARCHAR2(1);
86457 l_accrual_line_num NUMBER;
86458 l_tmp_amt NUMBER;
86459 l_acc_rev_natural_side_code VARCHAR2(1);
86460
86461 l_num_entries NUMBER;
86462 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
86463 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
86464 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
86465 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
86466 l_recog_line_1 NUMBER;
86467 l_recog_line_2 NUMBER;
86468
86469 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
86470 l_bflow_applied_to_amt NUMBER; -- 5132302
86471 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
86472
86473 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86474
86475 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
86476 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
86477
86478 ---------------------------------------------------------------------------------------------------------------
86479
86480
86481 --
86482 -- bulk performance
86483 --
86484 l_balance_type_code VARCHAR2(1);
86485 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
86486 l_log_module VARCHAR2(240);
86487
86488 --
86489 -- Upgrade strategy
86490 --
86491 l_actual_upg_option VARCHAR2(1);
86492 l_enc_upg_option VARCHAR2(1);
86493
86494 --
86495 BEGIN
86496 --
86497 IF g_log_enabled THEN
86498 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
86499 END IF;
86500 --
86501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86502
86503 trace
86504 (p_msg => 'BEGIN of AcctLineType_156'
86505 ,p_level => C_LEVEL_PROCEDURE
86506 ,p_module => l_log_module);
86507
86508 END IF;
86509 --
86510 l_component_type := 'AMB_JLT';
86511 l_component_code := 'AP_QUANTITY_VARIANCE_CLR_ENC';
86512 l_component_type_code := 'S';
86513 l_component_appl_id := 200;
86514 l_amb_context_code := 'DEFAULT';
86515 l_entity_code := 'AP_PAYMENTS';
86516 l_event_class_code := 'RECONCILED PAYMENTS';
86517 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
86518 l_line_definition_owner_code := 'S';
86519 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
86520 --
86521 l_balance_type_code := 'E';
86522 l_segment := NULL;
86526 l_adr_flexfield_segment_code := NULL;
86523 l_ccid := NULL;
86524 l_adr_transaction_coa_id := NULL;
86525 l_adr_accounting_coa_id := NULL;
86527 l_adr_flex_value_set_id := NULL;
86528 l_adr_value_type_code := NULL;
86529 l_adr_value_combination_id := NULL;
86530 l_adr_value_segment_code := NULL;
86531
86532 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
86533 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
86534 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
86535 l_budgetary_control_flag := 'N';
86536
86537 l_bflow_applied_to_amt_idx := NULL; -- 5132302
86538 l_bflow_applied_to_amt := NULL; -- 5132302
86539 l_entered_amt_idx := NULL; -- 4262811
86540 l_accted_amt_idx := NULL; -- 4262811
86541 l_acc_rev_flag := NULL; -- 4262811
86542 l_accrual_line_num := NULL; -- 4262811
86543 l_tmp_amt := NULL; -- 4262811
86544 --
86545
86546 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86547 l_balance_type_code <> 'B' THEN
86548 IF NVL(p_source_38,'
86549 ') = 'CLEAR_CLEAR' AND
86550 NVL(p_source_100,'
86551 ') <> 'Y' AND
86552 (NVL(p_source_39,'
86553 ') = 'CASH' OR
86554 NVL(p_source_39,'
86555 ') = 'DISCOUNT') AND
86556 NVL(p_source_102,'
86557 ') = 'Y' AND
86558 p_source_142 IS NOT NULL AND
86559 NVL(p_source_104,'
86560 ') = 'Y'
86561 THEN
86562
86563 --
86564 XLA_AE_LINES_PKG.SetNewLine;
86565
86566 p_balance_type_code := l_balance_type_code;
86567 -- set the flag so later we will know whether the gain loss line needs to be created
86568
86569 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86570 p_actual_flag :='A';
86571 END IF;
86572
86573 --
86574 -- bulk performance
86575 --
86576 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86577 p_header_num => 0); -- 4262811
86578 --
86579 -- set accounting line options
86580 --
86581 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86582 p_natural_side_code => 'C'
86583 , p_gain_or_loss_flag => 'N'
86584 , p_gl_transfer_mode_code => 'S'
86585 , p_acct_entry_type_code => 'E'
86586 , p_switch_side_flag => 'Y'
86587 , p_merge_duplicate_code => 'A'
86588 );
86589 --
86590 l_acc_rev_natural_side_code := 'D'; -- 4262811
86591 --
86592 --
86593 -- set accounting line type info
86594 --
86595 xla_ae_lines_pkg.SetAcctLineType
86596 (p_component_type => l_component_type
86597 ,p_event_type_code => l_event_type_code
86598 ,p_line_definition_owner_code => l_line_definition_owner_code
86599 ,p_line_definition_code => l_line_definition_code
86600 ,p_accounting_line_code => l_component_code
86601 ,p_accounting_line_type_code => l_component_type_code
86602 ,p_accounting_line_appl_id => l_component_appl_id
86603 ,p_amb_context_code => l_amb_context_code
86604 ,p_entity_code => l_entity_code
86605 ,p_event_class_code => l_event_class_code);
86606 --
86607 -- set accounting class
86608 --
86609 xla_ae_lines_pkg.SetAcctClass(
86610 p_accounting_class_code => 'QV'
86611 , p_ae_header_id => l_ae_header_id
86612 );
86613
86614 --
86615 -- set rounding class
86616 --
86617 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86618 'QV';
86619
86620 --
86621 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86622 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86623 --
86624 -- bulk performance
86625 --
86626 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86627
86628 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86629 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86630
86631 -- 4955764
86632 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86633 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86634
86635 -- 4458381 Public Sector Enh
86636
86637 --
86638 -- set accounting attributes for the line type
86639 --
86640 l_entered_amt_idx := 10;
86641 l_accted_amt_idx := 12;
86642 l_bflow_applied_to_amt_idx := 2; -- 5132302
86643 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86644 l_rec_acct_attrs.array_char_value(1) := p_source_40;
86645 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
86646 l_rec_acct_attrs.array_num_value(2) := p_source_41;
86647 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
86648 l_rec_acct_attrs.array_num_value(3) := p_source_42;
86649 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86653 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
86650 l_rec_acct_attrs.array_char_value(4) := p_source_62;
86651 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
86652 l_rec_acct_attrs.array_char_value(5) := p_source_63;
86654 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
86655 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86656 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
86657 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
86658 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
86659 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
86660 l_rec_acct_attrs.array_char_value(9) := p_source_48;
86661 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
86662 l_rec_acct_attrs.array_num_value(10) := p_source_143;
86663 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
86664 l_rec_acct_attrs.array_char_value(11) := p_source_49;
86665 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
86666 l_rec_acct_attrs.array_num_value(12) := p_source_142;
86667 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
86668 l_rec_acct_attrs.array_char_value(13) := p_source_53;
86669 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
86670 l_rec_acct_attrs.array_char_value(14) := p_source_56;
86671 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
86672 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
86673 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
86674 l_rec_acct_attrs.array_char_value(16) := p_source_48;
86675 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
86676 l_rec_acct_attrs.array_num_value(17) := p_source_58;
86677 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
86678 l_rec_acct_attrs.array_num_value(18) := p_source_58;
86679 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
86680 l_rec_acct_attrs.array_num_value(19) := p_source_59;
86681
86682 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86683 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86684
86685 ---------------------------------------------------------------------------------------------------------------
86686 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86687 ---------------------------------------------------------------------------------------------------------------
86688 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86689
86690 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86691 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86692
86693 IF xla_accounting_cache_pkg.GetValueChar
86694 (p_source_code => 'LEDGER_CATEGORY_CODE'
86695 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86696 AND l_bflow_method_code = 'PRIOR_ENTRY'
86697 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86698 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86699 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86700 )
86701 THEN
86702 xla_ae_lines_pkg.BflowUpgEntry
86703 (p_business_method_code => l_bflow_method_code
86704 ,p_business_class_code => l_bflow_class_code
86705 ,p_balance_type => l_balance_type_code);
86706 ELSE
86707 NULL;
86708 XLA_AE_LINES_PKG.business_flow_validation(
86709 p_business_method_code => l_bflow_method_code
86710 ,p_business_class_code => l_bflow_class_code
86711 ,p_inherit_description_flag => l_inherit_desc_flag);
86712 END IF;
86713
86714 --
86715 -- call analytical criteria
86716 --
86717 -- Inherited Analytical Criteria for business flow method of Prior Entry.
86718 --
86719 -- call description
86720 --
86721 -- No description or it is inherited.
86722 --
86723 -- call ADRs
86724 -- Bug 4922099
86725 --
86726 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86727 (NVL(l_actual_upg_option, 'N') = 'O') OR
86728 (NVL(l_enc_upg_option, 'N') = 'O')
86729 )
86730 THEN
86731 NULL;
86732 --
86733 --
86734
86735 --
86736 --
86737 END IF;
86738 --
86739 -- Bug 4922099
86740 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86741 (NVL(l_enc_upg_option, 'N') = 'O')
86742 ) AND
86743 (l_bflow_method_code = 'PRIOR_ENTRY')
86744 )
86745 THEN
86746 IF
86747 --
86748 1 = 1
86749 --
86750 THEN
86751 xla_accounting_err_pkg.build_message
86752 (p_appli_s_name => 'XLA'
86753 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86754 ,p_token_1 => 'LINE_NUMBER'
86755 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
86759 ,l_component_code
86756 ,p_token_2 => 'LINE_TYPE_NAME'
86757 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
86758 l_component_type
86760 ,l_component_type_code
86761 ,l_component_appl_id
86762 ,l_amb_context_code
86763 ,l_entity_code
86764 ,l_event_class_code
86765 )
86766 ,p_token_3 => 'OWNER'
86767 ,p_value_3 => xla_lookups_pkg.get_meaning(
86768 p_lookup_type => 'XLA_OWNER_TYPE'
86769 ,p_lookup_code => l_component_type_code
86770 )
86771 ,p_token_4 => 'PRODUCT_NAME'
86772 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86773 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86774 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86775 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86776 ,p_ae_header_id => NULL
86777 );
86778
86779 IF (C_LEVEL_ERROR>= g_log_level) THEN
86780 trace
86781 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86782 ,p_level => C_LEVEL_ERROR
86783 ,p_module => l_log_module);
86784 END IF;
86785 END IF;
86786 END IF;
86787 --
86788 --
86789 ------------------------------------------------------------------------------------------------
86790 -- 4219869 Business Flow
86791 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86792 -- Prior Entry. Currently, the following code is always generated.
86793 ------------------------------------------------------------------------------------------------
86794 -- No ValidateCurrentLine for business flow method of Prior Entry
86795
86796 ------------------------------------------------------------------------------------
86797 -- 4219869 Business Flow
86798 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86799 ------------------------------------------------------------------------------------
86800 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86801
86802 ----------------------------------------------------------------------------------
86803 -- 4219869 Business Flow
86804 -- Update journal entry status -- Need to generate this within IF <condition>
86805 ----------------------------------------------------------------------------------
86806 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86807 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86808 ,p_balance_type_code => l_balance_type_code
86809 );
86810
86811 -------------------------------------------------------------------------------------------
86812 -- 4262811 - Generate the Accrual Reversal lines
86813 -------------------------------------------------------------------------------------------
86814 BEGIN
86815 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86816 (g_array_event(p_event_id).array_value_num('header_index'));
86817 IF l_acc_rev_flag IS NULL THEN
86818 l_acc_rev_flag := 'N';
86819 END IF;
86820 EXCEPTION
86821 WHEN OTHERS THEN
86822 l_acc_rev_flag := 'N';
86823 END;
86824 --
86825 IF (l_acc_rev_flag = 'Y') THEN
86826
86827 -- 4645092 ------------------------------------------------------------------------------
86828 -- To allow MPA report to determine if it should generate report process
86829 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86830 ------------------------------------------------------------------------------------------
86831
86832 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86833 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86834 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
86835 -- call ADRs
86836 -- Bug 4922099
86837 --
86838 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86839 (NVL(l_actual_upg_option, 'N') = 'O') OR
86840 (NVL(l_enc_upg_option, 'N') = 'O')
86841 )
86842 THEN
86843 NULL;
86844 --
86845 --
86846
86847 --
86848 --
86849 END IF;
86850
86851 --
86852 -- Update the line information that should be overwritten
86853 --
86854 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86858 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86855 p_header_num => 1);
86856 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
86857
86859
86860 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
86861 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86862 END IF;
86863
86864 --
86865 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86866 --
86867 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86868 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
86869 ELSE
86870 ---------------------------------------------------------------------------------------------------
86871 -- 4262811a Switch Sign
86872 ---------------------------------------------------------------------------------------------------
86873 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
86874 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86875 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86876 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86877 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86878 -- 5132302
86879 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86880 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86881
86882 END IF;
86883
86884 -- 4955764
86885 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86886 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86887
86888
86889 XLA_AE_LINES_PKG.ValidateCurrentLine;
86890 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86891
86892 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86893 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86894 ,p_balance_type_code => l_balance_type_code);
86895
86896 END IF;
86897
86898 -----------------------------------------------------------------------------------------
86899 -- 4262811 Multiperiod Accounting
86900 -----------------------------------------------------------------------------------------
86901 -- No MPA option is assigned.
86902
86903
86904 END IF;
86905 END IF;
86906 --
86907
86908 --
86909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86910 trace
86911 (p_msg => 'END of AcctLineType_156'
86912 ,p_level => C_LEVEL_PROCEDURE
86913 ,p_module => l_log_module);
86914 END IF;
86915 --
86916 EXCEPTION
86917 WHEN xla_exceptions_pkg.application_exception THEN
86918 RAISE;
86919 WHEN OTHERS THEN
86920 xla_exceptions_pkg.raise_message
86921 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_156');
86922 END AcctLineType_156;
86923 --
86924
86925 ---------------------------------------
86926 --
86927 -- PRIVATE FUNCTION
86928 -- AcctLineType_157
86929 --
86930 ---------------------------------------
86931 PROCEDURE AcctLineType_157 (
86932 p_application_id IN NUMBER
86933 ,p_event_id IN NUMBER
86934 ,p_calculate_acctd_flag IN VARCHAR2
86935 ,p_calculate_g_l_flag IN VARCHAR2
86936 ,p_actual_flag IN OUT VARCHAR2
86937 ,p_balance_type_code OUT VARCHAR2
86938 ,p_gain_or_loss_ref OUT VARCHAR2
86939
86940 --When to Account for Payment Option
86941 , p_source_38 IN VARCHAR2
86942 --Payment Distribution Type
86943 , p_source_39 IN VARCHAR2
86944 , p_source_39_meaning IN VARCHAR2
86945 --Accounting Reversal Indicator
86946 , p_source_40 IN VARCHAR2
86947 --Business Flow Accounts Payable Application Identifier
86948 , p_source_42 IN NUMBER
86949 --Payment Distribution Identifier
86950 , p_source_47 IN NUMBER
86951 --Distribution Link Type
86952 , p_source_48 IN VARCHAR2
86953 --Payment Currency Code
86954 , p_source_49 IN VARCHAR2
86955 --Override Accounted Amount Indicator
86956 , p_source_53 IN VARCHAR2
86957 , p_source_53_meaning IN VARCHAR2
86958 --Third Party Type
86959 , p_source_56 IN VARCHAR2
86960 --Payment Distribution Reversed Identifier
86961 , p_source_57 IN NUMBER
86962 --Invoice Distribution Tax Line Identifier
86963 , p_source_58 IN NUMBER
86964 --Invoice Distribution Summary Tax Line Identifier
86965 , p_source_59 IN NUMBER
86966 --Payment Type
86967 , p_source_60 IN VARCHAR2
86968 , p_source_60_meaning IN VARCHAR2
86969 --Invoice Distribution Amount of the Payment Distribution
86970 , p_source_61 IN NUMBER
86971 --Business Flow Invoice Distribution Type
86972 , p_source_62 IN VARCHAR2
86973 --Business Flow Invoice Entity Code
86974 , p_source_63 IN VARCHAR2
86975 --Business Flow Invoice Distribution Identifier
86979 --Invoice Distribution Tax Distribution Identifier from Tax
86976 , p_source_64 IN NUMBER
86977 --Business Flow Invoice Identifier
86978 , p_source_65 IN NUMBER
86980 , p_source_66 IN NUMBER
86981 --Accrue on Receipt Option
86982 , p_source_100 IN VARCHAR2
86983 , p_source_100_meaning IN VARCHAR2
86984 --Purchasing Encumbrance Option
86985 , p_source_102 IN VARCHAR2
86986 , p_source_102_meaning IN VARCHAR2
86987 --Invoice Encumbered Option
86988 , p_source_104 IN VARCHAR2
86989 , p_source_104_meaning IN VARCHAR2
86990 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
86991 , p_source_142 IN NUMBER
86992 --Prorated Amount of Quantity Variance for Cash Basis
86993 , p_source_143 IN NUMBER
86994 )
86995 IS
86996
86997 l_component_type VARCHAR2(80);
86998 l_component_code VARCHAR2(30);
86999 l_component_type_code VARCHAR2(1);
87000 l_component_appl_id INTEGER;
87001 l_amb_context_code VARCHAR2(30);
87002 l_entity_code VARCHAR2(30);
87003 l_event_class_code VARCHAR2(30);
87004 l_ae_header_id NUMBER;
87005 l_event_type_code VARCHAR2(30);
87006 l_line_definition_code VARCHAR2(30);
87007 l_line_definition_owner_code VARCHAR2(1);
87008 --
87009 -- adr variables
87010 l_segment VARCHAR2(30);
87011 l_ccid NUMBER;
87012 l_adr_transaction_coa_id NUMBER;
87013 l_adr_accounting_coa_id NUMBER;
87014 l_adr_flexfield_segment_code VARCHAR2(30);
87015 l_adr_flex_value_set_id NUMBER;
87016 l_adr_value_type_code VARCHAR2(30);
87017 l_adr_value_combination_id NUMBER;
87018 l_adr_value_segment_code VARCHAR2(30);
87019
87020 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
87021 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
87022 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
87023 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
87024
87025 -- 4262811 Variables ------------------------------------------------------------------------------------------
87026 l_entered_amt_idx NUMBER;
87027 l_accted_amt_idx NUMBER;
87028 l_acc_rev_flag VARCHAR2(1);
87029 l_accrual_line_num NUMBER;
87030 l_tmp_amt NUMBER;
87031 l_acc_rev_natural_side_code VARCHAR2(1);
87032
87033 l_num_entries NUMBER;
87034 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
87035 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
87036 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
87037 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
87038 l_recog_line_1 NUMBER;
87039 l_recog_line_2 NUMBER;
87040
87041 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
87042 l_bflow_applied_to_amt NUMBER; -- 5132302
87043 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
87044
87045 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87046
87047 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
87048 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
87049
87050 ---------------------------------------------------------------------------------------------------------------
87051
87052
87053 --
87054 -- bulk performance
87055 --
87056 l_balance_type_code VARCHAR2(1);
87057 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87058 l_log_module VARCHAR2(240);
87059
87060 --
87061 -- Upgrade strategy
87062 --
87063 l_actual_upg_option VARCHAR2(1);
87064 l_enc_upg_option VARCHAR2(1);
87065
87066 --
87067 BEGIN
87068 --
87069 IF g_log_enabled THEN
87070 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
87071 END IF;
87072 --
87073 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87074
87075 trace
87076 (p_msg => 'BEGIN of AcctLineType_157'
87077 ,p_level => C_LEVEL_PROCEDURE
87078 ,p_module => l_log_module);
87079
87080 END IF;
87081 --
87082 l_component_type := 'AMB_JLT';
87083 l_component_code := 'AP_QUANTITY_VARIANCE_PMT_ENC';
87084 l_component_type_code := 'S';
87085 l_component_appl_id := 200;
87086 l_amb_context_code := 'DEFAULT';
87087 l_entity_code := 'AP_PAYMENTS';
87088 l_event_class_code := 'PAYMENTS';
87089 l_event_type_code := 'PAYMENTS_ALL';
87090 l_line_definition_owner_code := 'S';
87091 l_line_definition_code := 'ENC_PAYMENTS_ALL';
87092 --
87093 l_balance_type_code := 'E';
87094 l_segment := NULL;
87095 l_ccid := NULL;
87096 l_adr_transaction_coa_id := NULL;
87097 l_adr_accounting_coa_id := NULL;
87098 l_adr_flexfield_segment_code := NULL;
87099 l_adr_flex_value_set_id := NULL;
87100 l_adr_value_type_code := NULL;
87101 l_adr_value_combination_id := NULL;
87102 l_adr_value_segment_code := NULL;
87103
87107 l_budgetary_control_flag := 'N';
87104 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
87105 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
87106 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
87108
87109 l_bflow_applied_to_amt_idx := NULL; -- 5132302
87110 l_bflow_applied_to_amt := NULL; -- 5132302
87111 l_entered_amt_idx := NULL; -- 4262811
87112 l_accted_amt_idx := NULL; -- 4262811
87113 l_acc_rev_flag := NULL; -- 4262811
87114 l_accrual_line_num := NULL; -- 4262811
87115 l_tmp_amt := NULL; -- 4262811
87116 --
87117
87118 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87119 l_balance_type_code <> 'B' THEN
87120 IF NVL(p_source_38,'
87121 ') <> 'CLEAR_CLEAR' AND
87122 NVL(p_source_100,'
87123 ') <> 'Y' AND
87124 (NVL(p_source_39,'
87125 ') = 'CASH' OR
87126 NVL(p_source_39,'
87127 ') = 'DISCOUNT') AND
87128 NVL(p_source_60,'
87129 ') <> 'R' AND
87130 NVL(p_source_102,'
87131 ') = 'Y' AND
87132 p_source_142 IS NOT NULL AND
87133 NVL(p_source_104,'
87134 ') = 'Y'
87135 THEN
87136
87137 --
87138 XLA_AE_LINES_PKG.SetNewLine;
87139
87140 p_balance_type_code := l_balance_type_code;
87141 -- set the flag so later we will know whether the gain loss line needs to be created
87142
87143 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87144 p_actual_flag :='A';
87145 END IF;
87146
87147 --
87148 -- bulk performance
87149 --
87150 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87151 p_header_num => 0); -- 4262811
87152 --
87153 -- set accounting line options
87154 --
87155 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87156 p_natural_side_code => 'C'
87157 , p_gain_or_loss_flag => 'N'
87158 , p_gl_transfer_mode_code => 'S'
87159 , p_acct_entry_type_code => 'E'
87160 , p_switch_side_flag => 'Y'
87161 , p_merge_duplicate_code => 'A'
87162 );
87163 --
87164 l_acc_rev_natural_side_code := 'D'; -- 4262811
87165 --
87166 --
87167 -- set accounting line type info
87168 --
87169 xla_ae_lines_pkg.SetAcctLineType
87170 (p_component_type => l_component_type
87171 ,p_event_type_code => l_event_type_code
87172 ,p_line_definition_owner_code => l_line_definition_owner_code
87173 ,p_line_definition_code => l_line_definition_code
87174 ,p_accounting_line_code => l_component_code
87175 ,p_accounting_line_type_code => l_component_type_code
87176 ,p_accounting_line_appl_id => l_component_appl_id
87177 ,p_amb_context_code => l_amb_context_code
87178 ,p_entity_code => l_entity_code
87179 ,p_event_class_code => l_event_class_code);
87180 --
87181 -- set accounting class
87182 --
87183 xla_ae_lines_pkg.SetAcctClass(
87184 p_accounting_class_code => 'QV'
87185 , p_ae_header_id => l_ae_header_id
87186 );
87187
87188 --
87189 -- set rounding class
87190 --
87191 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87192 'QV';
87193
87194 --
87195 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87196 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87197 --
87198 -- bulk performance
87199 --
87200 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87201
87202 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87203 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87204
87205 -- 4955764
87206 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87207 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87208
87209 -- 4458381 Public Sector Enh
87210
87211 --
87212 -- set accounting attributes for the line type
87213 --
87214 l_entered_amt_idx := 10;
87215 l_accted_amt_idx := 12;
87216 l_bflow_applied_to_amt_idx := 2; -- 5132302
87217 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87218 l_rec_acct_attrs.array_char_value(1) := p_source_40;
87219 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
87220 l_rec_acct_attrs.array_num_value(2) := p_source_61;
87221 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
87222 l_rec_acct_attrs.array_num_value(3) := p_source_42;
87223 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87224 l_rec_acct_attrs.array_char_value(4) := p_source_62;
87225 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
87226 l_rec_acct_attrs.array_char_value(5) := p_source_63;
87227 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
87228 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
87232 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
87229 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87230 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
87231 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
87233 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
87234 l_rec_acct_attrs.array_char_value(9) := p_source_48;
87235 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
87236 l_rec_acct_attrs.array_num_value(10) := p_source_143;
87237 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
87238 l_rec_acct_attrs.array_char_value(11) := p_source_49;
87239 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
87240 l_rec_acct_attrs.array_num_value(12) := p_source_142;
87241 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
87242 l_rec_acct_attrs.array_char_value(13) := p_source_53;
87243 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
87244 l_rec_acct_attrs.array_char_value(14) := p_source_56;
87245 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
87246 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
87247 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
87248 l_rec_acct_attrs.array_char_value(16) := p_source_48;
87249 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
87250 l_rec_acct_attrs.array_num_value(17) := p_source_58;
87251 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
87252 l_rec_acct_attrs.array_num_value(18) := p_source_66;
87253 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
87254 l_rec_acct_attrs.array_num_value(19) := p_source_59;
87255
87256 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87257 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87258
87259 ---------------------------------------------------------------------------------------------------------------
87260 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87261 ---------------------------------------------------------------------------------------------------------------
87262 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87263
87264 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87265 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87266
87267 IF xla_accounting_cache_pkg.GetValueChar
87268 (p_source_code => 'LEDGER_CATEGORY_CODE'
87269 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87270 AND l_bflow_method_code = 'PRIOR_ENTRY'
87271 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87272 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87273 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87274 )
87275 THEN
87276 xla_ae_lines_pkg.BflowUpgEntry
87277 (p_business_method_code => l_bflow_method_code
87278 ,p_business_class_code => l_bflow_class_code
87279 ,p_balance_type => l_balance_type_code);
87280 ELSE
87281 NULL;
87282 XLA_AE_LINES_PKG.business_flow_validation(
87283 p_business_method_code => l_bflow_method_code
87284 ,p_business_class_code => l_bflow_class_code
87285 ,p_inherit_description_flag => l_inherit_desc_flag);
87286 END IF;
87287
87288 --
87289 -- call analytical criteria
87290 --
87291 -- Inherited Analytical Criteria for business flow method of Prior Entry.
87292 --
87293 -- call description
87294 --
87295 -- No description or it is inherited.
87296 --
87297 -- call ADRs
87298 -- Bug 4922099
87299 --
87300 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87301 (NVL(l_actual_upg_option, 'N') = 'O') OR
87302 (NVL(l_enc_upg_option, 'N') = 'O')
87303 )
87304 THEN
87305 NULL;
87306 --
87307 --
87308
87309 --
87310 --
87311 END IF;
87312 --
87313 -- Bug 4922099
87314 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87315 (NVL(l_enc_upg_option, 'N') = 'O')
87316 ) AND
87317 (l_bflow_method_code = 'PRIOR_ENTRY')
87318 )
87319 THEN
87320 IF
87321 --
87322 1 = 1
87323 --
87324 THEN
87325 xla_accounting_err_pkg.build_message
87326 (p_appli_s_name => 'XLA'
87327 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87328 ,p_token_1 => 'LINE_NUMBER'
87329 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
87330 ,p_token_2 => 'LINE_TYPE_NAME'
87331 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
87332 l_component_type
87333 ,l_component_code
87337 ,l_entity_code
87334 ,l_component_type_code
87335 ,l_component_appl_id
87336 ,l_amb_context_code
87338 ,l_event_class_code
87339 )
87340 ,p_token_3 => 'OWNER'
87341 ,p_value_3 => xla_lookups_pkg.get_meaning(
87342 p_lookup_type => 'XLA_OWNER_TYPE'
87343 ,p_lookup_code => l_component_type_code
87344 )
87345 ,p_token_4 => 'PRODUCT_NAME'
87346 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87347 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87348 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87349 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87350 ,p_ae_header_id => NULL
87351 );
87352
87353 IF (C_LEVEL_ERROR>= g_log_level) THEN
87354 trace
87355 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87356 ,p_level => C_LEVEL_ERROR
87357 ,p_module => l_log_module);
87358 END IF;
87359 END IF;
87360 END IF;
87361 --
87362 --
87363 ------------------------------------------------------------------------------------------------
87364 -- 4219869 Business Flow
87365 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87366 -- Prior Entry. Currently, the following code is always generated.
87367 ------------------------------------------------------------------------------------------------
87368 -- No ValidateCurrentLine for business flow method of Prior Entry
87369
87370 ------------------------------------------------------------------------------------
87371 -- 4219869 Business Flow
87372 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87373 ------------------------------------------------------------------------------------
87374 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87375
87376 ----------------------------------------------------------------------------------
87377 -- 4219869 Business Flow
87378 -- Update journal entry status -- Need to generate this within IF <condition>
87379 ----------------------------------------------------------------------------------
87380 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87381 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87382 ,p_balance_type_code => l_balance_type_code
87383 );
87384
87385 -------------------------------------------------------------------------------------------
87386 -- 4262811 - Generate the Accrual Reversal lines
87387 -------------------------------------------------------------------------------------------
87388 BEGIN
87389 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87390 (g_array_event(p_event_id).array_value_num('header_index'));
87391 IF l_acc_rev_flag IS NULL THEN
87392 l_acc_rev_flag := 'N';
87393 END IF;
87394 EXCEPTION
87395 WHEN OTHERS THEN
87396 l_acc_rev_flag := 'N';
87397 END;
87398 --
87399 IF (l_acc_rev_flag = 'Y') THEN
87400
87401 -- 4645092 ------------------------------------------------------------------------------
87402 -- To allow MPA report to determine if it should generate report process
87403 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87404 ------------------------------------------------------------------------------------------
87405
87406 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87407 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87408 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
87409 -- call ADRs
87410 -- Bug 4922099
87411 --
87412 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87413 (NVL(l_actual_upg_option, 'N') = 'O') OR
87414 (NVL(l_enc_upg_option, 'N') = 'O')
87415 )
87416 THEN
87417 NULL;
87418 --
87419 --
87420
87421 --
87422 --
87423 END IF;
87424
87425 --
87426 -- Update the line information that should be overwritten
87427 --
87428 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87429 p_header_num => 1);
87430 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
87431
87432 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87433
87434 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
87438 --
87435 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87436 END IF;
87437
87439 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87440 --
87441 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87442 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
87443 ELSE
87444 ---------------------------------------------------------------------------------------------------
87445 -- 4262811a Switch Sign
87446 ---------------------------------------------------------------------------------------------------
87447 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
87448 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87449 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87450 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87451 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87452 -- 5132302
87453 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87454 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87455
87456 END IF;
87457
87458 -- 4955764
87459 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87460 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87461
87462
87463 XLA_AE_LINES_PKG.ValidateCurrentLine;
87464 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87465
87466 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87467 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87468 ,p_balance_type_code => l_balance_type_code);
87469
87470 END IF;
87471
87472 -----------------------------------------------------------------------------------------
87473 -- 4262811 Multiperiod Accounting
87474 -----------------------------------------------------------------------------------------
87475 -- No MPA option is assigned.
87476
87477
87478 END IF;
87479 END IF;
87480 --
87481
87482 --
87483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87484 trace
87485 (p_msg => 'END of AcctLineType_157'
87486 ,p_level => C_LEVEL_PROCEDURE
87487 ,p_module => l_log_module);
87488 END IF;
87489 --
87490 EXCEPTION
87491 WHEN xla_exceptions_pkg.application_exception THEN
87492 RAISE;
87493 WHEN OTHERS THEN
87494 xla_exceptions_pkg.raise_message
87495 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_157');
87496 END AcctLineType_157;
87497 --
87498
87499 ---------------------------------------
87500 --
87501 -- PRIVATE FUNCTION
87502 -- AcctLineType_158
87503 --
87504 ---------------------------------------
87505 PROCEDURE AcctLineType_158 (
87506 p_application_id IN NUMBER
87507 ,p_event_id IN NUMBER
87508 ,p_calculate_acctd_flag IN VARCHAR2
87509 ,p_calculate_g_l_flag IN VARCHAR2
87510 ,p_actual_flag IN OUT VARCHAR2
87511 ,p_balance_type_code OUT VARCHAR2
87512 ,p_gain_or_loss_ref OUT VARCHAR2
87513
87514 --Payment Distribution (Payment Rate) Ledger Amount
87515 , p_source_9 IN NUMBER
87516 --Invoice Distribution Type
87517 , p_source_20 IN VARCHAR2
87518 , p_source_20_meaning IN VARCHAR2
87519 --When to Account for Payment Option
87520 , p_source_38 IN VARCHAR2
87521 --Payment Distribution Type
87522 , p_source_39 IN VARCHAR2
87523 , p_source_39_meaning IN VARCHAR2
87524 --Accounting Reversal Indicator
87525 , p_source_40 IN VARCHAR2
87526 --Payment Distribution Amount
87527 , p_source_41 IN NUMBER
87528 --Business Flow Accounts Payable Application Identifier
87529 , p_source_42 IN NUMBER
87530 --Payment Distribution Identifier
87531 , p_source_47 IN NUMBER
87532 --Distribution Link Type
87533 , p_source_48 IN VARCHAR2
87534 --Payment Currency Code
87535 , p_source_49 IN VARCHAR2
87536 --Override Accounted Amount Indicator
87537 , p_source_53 IN VARCHAR2
87538 , p_source_53_meaning IN VARCHAR2
87539 --Third Party Type
87540 , p_source_56 IN VARCHAR2
87541 --Payment Distribution Reversed Identifier
87542 , p_source_57 IN NUMBER
87543 --Invoice Distribution Tax Line Identifier
87544 , p_source_58 IN NUMBER
87545 --Invoice Distribution Summary Tax Line Identifier
87546 , p_source_59 IN NUMBER
87547 --Payment Type
87548 , p_source_60 IN VARCHAR2
87549 , p_source_60_meaning IN VARCHAR2
87550 --Business Flow Invoice Distribution Type
87551 , p_source_62 IN VARCHAR2
87552 --Business Flow Invoice Entity Code
87553 , p_source_63 IN VARCHAR2
87554 --Business Flow Invoice Distribution Identifier
87555 , p_source_64 IN NUMBER
87556 --Business Flow Invoice Identifier
87557 , p_source_65 IN NUMBER
87561 , p_source_102 IN VARCHAR2
87558 --Invoice Distribution Tax Distribution Identifier from Tax
87559 , p_source_66 IN NUMBER
87560 --Purchasing Encumbrance Option
87562 , p_source_102_meaning IN VARCHAR2
87563 --Invoice Encumbered Option
87564 , p_source_104 IN VARCHAR2
87565 , p_source_104_meaning IN VARCHAR2
87566 )
87567 IS
87568
87569 l_component_type VARCHAR2(80);
87570 l_component_code VARCHAR2(30);
87571 l_component_type_code VARCHAR2(1);
87572 l_component_appl_id INTEGER;
87573 l_amb_context_code VARCHAR2(30);
87574 l_entity_code VARCHAR2(30);
87575 l_event_class_code VARCHAR2(30);
87576 l_ae_header_id NUMBER;
87577 l_event_type_code VARCHAR2(30);
87578 l_line_definition_code VARCHAR2(30);
87579 l_line_definition_owner_code VARCHAR2(1);
87580 --
87581 -- adr variables
87582 l_segment VARCHAR2(30);
87583 l_ccid NUMBER;
87584 l_adr_transaction_coa_id NUMBER;
87585 l_adr_accounting_coa_id NUMBER;
87586 l_adr_flexfield_segment_code VARCHAR2(30);
87587 l_adr_flex_value_set_id NUMBER;
87588 l_adr_value_type_code VARCHAR2(30);
87589 l_adr_value_combination_id NUMBER;
87590 l_adr_value_segment_code VARCHAR2(30);
87591
87592 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
87593 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
87594 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
87595 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
87596
87597 -- 4262811 Variables ------------------------------------------------------------------------------------------
87598 l_entered_amt_idx NUMBER;
87599 l_accted_amt_idx NUMBER;
87600 l_acc_rev_flag VARCHAR2(1);
87601 l_accrual_line_num NUMBER;
87602 l_tmp_amt NUMBER;
87603 l_acc_rev_natural_side_code VARCHAR2(1);
87604
87605 l_num_entries NUMBER;
87606 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
87607 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
87608 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
87609 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
87610 l_recog_line_1 NUMBER;
87611 l_recog_line_2 NUMBER;
87612
87613 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
87614 l_bflow_applied_to_amt NUMBER; -- 5132302
87615 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
87616
87617 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87618
87619 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
87620 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
87621
87622 ---------------------------------------------------------------------------------------------------------------
87623
87624
87625 --
87626 -- bulk performance
87627 --
87628 l_balance_type_code VARCHAR2(1);
87629 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87630 l_log_module VARCHAR2(240);
87631
87632 --
87633 -- Upgrade strategy
87634 --
87635 l_actual_upg_option VARCHAR2(1);
87636 l_enc_upg_option VARCHAR2(1);
87637
87638 --
87639 BEGIN
87640 --
87641 IF g_log_enabled THEN
87642 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
87643 END IF;
87644 --
87645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87646
87647 trace
87648 (p_msg => 'BEGIN of AcctLineType_158'
87649 ,p_level => C_LEVEL_PROCEDURE
87650 ,p_module => l_log_module);
87651
87652 END IF;
87653 --
87654 l_component_type := 'AMB_JLT';
87655 l_component_code := 'AP_QUANTITY_VARIANCE_REF_ENC';
87656 l_component_type_code := 'S';
87657 l_component_appl_id := 200;
87658 l_amb_context_code := 'DEFAULT';
87659 l_entity_code := 'AP_PAYMENTS';
87660 l_event_class_code := 'REFUNDS';
87661 l_event_type_code := 'REFUNDS_ALL';
87662 l_line_definition_owner_code := 'S';
87663 l_line_definition_code := 'ENC_REFUNDS_ALL';
87664 --
87665 l_balance_type_code := 'E';
87666 l_segment := NULL;
87667 l_ccid := NULL;
87668 l_adr_transaction_coa_id := NULL;
87669 l_adr_accounting_coa_id := NULL;
87670 l_adr_flexfield_segment_code := NULL;
87671 l_adr_flex_value_set_id := NULL;
87672 l_adr_value_type_code := NULL;
87673 l_adr_value_combination_id := NULL;
87674 l_adr_value_segment_code := NULL;
87675
87676 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
87677 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
87678 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
87679 l_budgetary_control_flag := 'N';
87680
87681 l_bflow_applied_to_amt_idx := NULL; -- 5132302
87682 l_bflow_applied_to_amt := NULL; -- 5132302
87683 l_entered_amt_idx := NULL; -- 4262811
87684 l_accted_amt_idx := NULL; -- 4262811
87688 --
87685 l_acc_rev_flag := NULL; -- 4262811
87686 l_accrual_line_num := NULL; -- 4262811
87687 l_tmp_amt := NULL; -- 4262811
87689
87690 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87691 l_balance_type_code <> 'B' THEN
87692 IF NVL(p_source_38,'
87693 ') <> 'CLEAR_CLEAR' AND
87694 NVL(p_source_20,'
87695 ') <> 'ACCRUAL' AND
87696 (NVL(p_source_39,'
87697 ') = 'CASH' OR
87698 NVL(p_source_39,'
87699 ') = 'DISCOUNT') AND
87700 NVL(p_source_60,'
87701 ') = 'R' AND
87702 NVL(p_source_102,'
87703 ') = 'Y' AND
87704 NVL(p_source_104,'
87705 ') = 'Y'
87706 THEN
87707
87708 --
87709 XLA_AE_LINES_PKG.SetNewLine;
87710
87711 p_balance_type_code := l_balance_type_code;
87712 -- set the flag so later we will know whether the gain loss line needs to be created
87713
87714 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87715 p_actual_flag :='A';
87716 END IF;
87717
87718 --
87719 -- bulk performance
87720 --
87721 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87722 p_header_num => 0); -- 4262811
87723 --
87724 -- set accounting line options
87725 --
87726 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87727 p_natural_side_code => 'D'
87728 , p_gain_or_loss_flag => 'N'
87729 , p_gl_transfer_mode_code => 'S'
87730 , p_acct_entry_type_code => 'E'
87731 , p_switch_side_flag => 'Y'
87732 , p_merge_duplicate_code => 'A'
87733 );
87734 --
87735 l_acc_rev_natural_side_code := 'C'; -- 4262811
87736 --
87737 --
87738 -- set accounting line type info
87739 --
87740 xla_ae_lines_pkg.SetAcctLineType
87741 (p_component_type => l_component_type
87742 ,p_event_type_code => l_event_type_code
87743 ,p_line_definition_owner_code => l_line_definition_owner_code
87744 ,p_line_definition_code => l_line_definition_code
87745 ,p_accounting_line_code => l_component_code
87746 ,p_accounting_line_type_code => l_component_type_code
87747 ,p_accounting_line_appl_id => l_component_appl_id
87748 ,p_amb_context_code => l_amb_context_code
87749 ,p_entity_code => l_entity_code
87750 ,p_event_class_code => l_event_class_code);
87751 --
87752 -- set accounting class
87753 --
87754 xla_ae_lines_pkg.SetAcctClass(
87755 p_accounting_class_code => 'QV'
87756 , p_ae_header_id => l_ae_header_id
87757 );
87758
87759 --
87760 -- set rounding class
87761 --
87762 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87763 'QV';
87764
87765 --
87766 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87767 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87768 --
87769 -- bulk performance
87770 --
87771 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87772
87773 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87774 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87775
87776 -- 4955764
87777 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87778 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87779
87780 -- 4458381 Public Sector Enh
87781
87782 --
87783 -- set accounting attributes for the line type
87784 --
87785 l_entered_amt_idx := 9;
87786 l_accted_amt_idx := 11;
87787 l_bflow_applied_to_amt_idx := NULL; -- 5132302
87788 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87789 l_rec_acct_attrs.array_char_value(1) := p_source_40;
87790 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
87791 l_rec_acct_attrs.array_num_value(2) := p_source_42;
87792 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87793 l_rec_acct_attrs.array_char_value(3) := p_source_62;
87794 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
87795 l_rec_acct_attrs.array_char_value(4) := p_source_63;
87796 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
87797 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
87798 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87799 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
87800 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
87801 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
87802 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
87803 l_rec_acct_attrs.array_char_value(8) := p_source_48;
87804 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
87805 l_rec_acct_attrs.array_num_value(9) := p_source_41;
87806 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
87810 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
87807 l_rec_acct_attrs.array_char_value(10) := p_source_49;
87808 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
87809 l_rec_acct_attrs.array_num_value(11) := p_source_9;
87811 l_rec_acct_attrs.array_char_value(12) := p_source_53;
87812 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
87813 l_rec_acct_attrs.array_char_value(13) := p_source_56;
87814 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
87815 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
87816 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
87817 l_rec_acct_attrs.array_char_value(15) := p_source_48;
87818 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
87819 l_rec_acct_attrs.array_num_value(16) := p_source_58;
87820 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
87821 l_rec_acct_attrs.array_num_value(17) := p_source_66;
87822 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
87823 l_rec_acct_attrs.array_num_value(18) := p_source_59;
87824
87825 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87826 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87827
87828 ---------------------------------------------------------------------------------------------------------------
87829 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87830 ---------------------------------------------------------------------------------------------------------------
87831 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87832
87833 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87834 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87835
87836 IF xla_accounting_cache_pkg.GetValueChar
87837 (p_source_code => 'LEDGER_CATEGORY_CODE'
87838 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87839 AND l_bflow_method_code = 'PRIOR_ENTRY'
87840 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87841 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87842 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87843 )
87844 THEN
87845 xla_ae_lines_pkg.BflowUpgEntry
87846 (p_business_method_code => l_bflow_method_code
87847 ,p_business_class_code => l_bflow_class_code
87848 ,p_balance_type => l_balance_type_code);
87849 ELSE
87850 NULL;
87851 XLA_AE_LINES_PKG.business_flow_validation(
87852 p_business_method_code => l_bflow_method_code
87853 ,p_business_class_code => l_bflow_class_code
87854 ,p_inherit_description_flag => l_inherit_desc_flag);
87855 END IF;
87856
87857 --
87858 -- call analytical criteria
87859 --
87860 -- Inherited Analytical Criteria for business flow method of Prior Entry.
87861 --
87862 -- call description
87863 --
87864 -- No description or it is inherited.
87865 --
87866 -- call ADRs
87867 -- Bug 4922099
87868 --
87869 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87870 (NVL(l_actual_upg_option, 'N') = 'O') OR
87871 (NVL(l_enc_upg_option, 'N') = 'O')
87872 )
87873 THEN
87874 NULL;
87875 --
87876 --
87877
87878 --
87879 --
87880 END IF;
87881 --
87882 -- Bug 4922099
87883 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87884 (NVL(l_enc_upg_option, 'N') = 'O')
87885 ) AND
87886 (l_bflow_method_code = 'PRIOR_ENTRY')
87887 )
87888 THEN
87889 IF
87890 --
87891 1 = 1
87892 --
87893 THEN
87894 xla_accounting_err_pkg.build_message
87895 (p_appli_s_name => 'XLA'
87896 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87897 ,p_token_1 => 'LINE_NUMBER'
87898 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
87899 ,p_token_2 => 'LINE_TYPE_NAME'
87900 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
87901 l_component_type
87902 ,l_component_code
87903 ,l_component_type_code
87904 ,l_component_appl_id
87905 ,l_amb_context_code
87906 ,l_entity_code
87907 ,l_event_class_code
87908 )
87909 ,p_token_3 => 'OWNER'
87913 )
87910 ,p_value_3 => xla_lookups_pkg.get_meaning(
87911 p_lookup_type => 'XLA_OWNER_TYPE'
87912 ,p_lookup_code => l_component_type_code
87914 ,p_token_4 => 'PRODUCT_NAME'
87915 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87916 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87917 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87918 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87919 ,p_ae_header_id => NULL
87920 );
87921
87922 IF (C_LEVEL_ERROR>= g_log_level) THEN
87923 trace
87924 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87925 ,p_level => C_LEVEL_ERROR
87926 ,p_module => l_log_module);
87927 END IF;
87928 END IF;
87929 END IF;
87930 --
87931 --
87932 ------------------------------------------------------------------------------------------------
87933 -- 4219869 Business Flow
87934 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87935 -- Prior Entry. Currently, the following code is always generated.
87936 ------------------------------------------------------------------------------------------------
87937 -- No ValidateCurrentLine for business flow method of Prior Entry
87938
87939 ------------------------------------------------------------------------------------
87940 -- 4219869 Business Flow
87941 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87942 ------------------------------------------------------------------------------------
87943 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87944
87945 ----------------------------------------------------------------------------------
87946 -- 4219869 Business Flow
87947 -- Update journal entry status -- Need to generate this within IF <condition>
87948 ----------------------------------------------------------------------------------
87949 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87950 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87951 ,p_balance_type_code => l_balance_type_code
87952 );
87953
87954 -------------------------------------------------------------------------------------------
87955 -- 4262811 - Generate the Accrual Reversal lines
87956 -------------------------------------------------------------------------------------------
87957 BEGIN
87958 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87959 (g_array_event(p_event_id).array_value_num('header_index'));
87960 IF l_acc_rev_flag IS NULL THEN
87961 l_acc_rev_flag := 'N';
87962 END IF;
87963 EXCEPTION
87964 WHEN OTHERS THEN
87965 l_acc_rev_flag := 'N';
87966 END;
87967 --
87968 IF (l_acc_rev_flag = 'Y') THEN
87969
87970 -- 4645092 ------------------------------------------------------------------------------
87971 -- To allow MPA report to determine if it should generate report process
87972 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87973 ------------------------------------------------------------------------------------------
87974
87975 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87976 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87977 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
87978 -- call ADRs
87979 -- Bug 4922099
87980 --
87981 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87982 (NVL(l_actual_upg_option, 'N') = 'O') OR
87983 (NVL(l_enc_upg_option, 'N') = 'O')
87984 )
87985 THEN
87986 NULL;
87987 --
87988 --
87989
87990 --
87991 --
87992 END IF;
87993
87994 --
87995 -- Update the line information that should be overwritten
87996 --
87997 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87998 p_header_num => 1);
87999 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
88000
88001 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88002
88003 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
88004 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88005 END IF;
88006
88007 --
88008 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88009 --
88010 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88011 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
88012 ELSE
88013 ---------------------------------------------------------------------------------------------------
88014 -- 4262811a Switch Sign
88018 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88015 ---------------------------------------------------------------------------------------------------
88016 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
88017 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88019 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88020 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88021 -- 5132302
88022 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88023 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88024
88025 END IF;
88026
88027 -- 4955764
88028 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88029 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88030
88031
88032 XLA_AE_LINES_PKG.ValidateCurrentLine;
88033 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88034
88035 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88036 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88037 ,p_balance_type_code => l_balance_type_code);
88038
88039 END IF;
88040
88041 -----------------------------------------------------------------------------------------
88042 -- 4262811 Multiperiod Accounting
88043 -----------------------------------------------------------------------------------------
88044 -- No MPA option is assigned.
88045
88046
88047 END IF;
88048 END IF;
88049 --
88050
88051 --
88052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88053 trace
88054 (p_msg => 'END of AcctLineType_158'
88055 ,p_level => C_LEVEL_PROCEDURE
88056 ,p_module => l_log_module);
88057 END IF;
88058 --
88059 EXCEPTION
88060 WHEN xla_exceptions_pkg.application_exception THEN
88061 RAISE;
88062 WHEN OTHERS THEN
88063 xla_exceptions_pkg.raise_message
88064 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_158');
88065 END AcctLineType_158;
88066 --
88067
88068 ---------------------------------------
88069 --
88070 -- PRIVATE FUNCTION
88071 -- AcctLineType_159
88072 --
88073 ---------------------------------------
88074 PROCEDURE AcctLineType_159 (
88075 p_application_id IN NUMBER
88076 ,p_event_id IN NUMBER
88077 ,p_calculate_acctd_flag IN VARCHAR2
88078 ,p_calculate_g_l_flag IN VARCHAR2
88079 ,p_actual_flag IN OUT VARCHAR2
88080 ,p_balance_type_code OUT VARCHAR2
88081 ,p_gain_or_loss_ref OUT VARCHAR2
88082
88083 --Recipient Invoice Distribution Account
88084 , p_source_36 IN NUMBER
88085 --When to Account for Payment Option
88086 , p_source_38 IN VARCHAR2
88087 --Accounting Reversal Indicator
88088 , p_source_40 IN VARCHAR2
88089 --Business Flow Accounts Payable Application Identifier
88090 , p_source_42 IN NUMBER
88091 --Distribution Link Type
88092 , p_source_48 IN VARCHAR2
88093 --Override Accounted Amount Indicator
88094 , p_source_53 IN VARCHAR2
88095 , p_source_53_meaning IN VARCHAR2
88096 --Third Party Type
88097 , p_source_56 IN VARCHAR2
88098 --Invoice Distribution Tax Line Identifier
88099 , p_source_58 IN NUMBER
88100 --Invoice Distribution Summary Tax Line Identifier
88101 , p_source_59 IN NUMBER
88102 --Invoice Distribution Tax Distribution Identifier from Tax
88103 , p_source_66 IN NUMBER
88104 --Prepayment Distribution Type
88105 , p_source_67 IN VARCHAR2
88106 --Recipient Invoice Distribution Type
88107 , p_source_68 IN VARCHAR2
88108 , p_source_68_meaning IN VARCHAR2
88109 --Prepayment Application Distribution Identifier
88110 , p_source_71 IN NUMBER
88111 --Invoice Identifier
88112 , p_source_72 IN NUMBER
88113 --Business Flow Prepayment Invoice Distribution Type
88114 , p_source_73 IN VARCHAR2
88115 --Business Flow Prepayment Invoice Entity Code
88116 , p_source_74 IN VARCHAR2
88117 --Business Flow Prepayment Invoice Distribution Identifier
88118 , p_source_75 IN NUMBER
88119 --Business Flow Prepayment Invoice Identifier
88120 , p_source_76 IN NUMBER
88121 --Upgrade Encumbrance Credit Account Class
88122 , p_source_77 IN VARCHAR2
88123 --Payables Encumbrance Upgrade Credit Account
88124 , p_source_78 IN NUMBER
88125 --Payables Encumbrance Upgrade Credit Amount
88126 , p_source_79 IN NUMBER
88127 --Invoice Currency Code
88128 , p_source_80 IN VARCHAR2
88129 --Payables Encumbrance Upgrade Credit Base Amount
88130 , p_source_81 IN NUMBER
88131 --Upgrade Encumbrance Debit Account Class
88132 , p_source_82 IN VARCHAR2
88133 --Payables Encumbrance Upgrade Debit Account
88134 , p_source_83 IN NUMBER
88135 --Payables Encumbrance Upgrade Debit Amount
88136 , p_source_84 IN NUMBER
88137 --Payables Encumbrance Upgrade Debit Base Amount
88138 , p_source_85 IN NUMBER
88139 --Payables Encumbrance Upgrade Option
88140 , p_source_86 IN VARCHAR2
88144 , p_source_88 IN VARCHAR2
88141 --Prepayment Distribution Amount
88142 , p_source_87 IN NUMBER
88143 --Prepayment Clearing Currency Code
88145 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
88146 , p_source_89 IN NUMBER
88147 --Deferred Accounting End Date
88148 , p_source_90 IN DATE
88149 --Deferred Accounting Option
88150 , p_source_91 IN VARCHAR2
88151 --Deferred Accounting Start Date
88152 , p_source_92 IN DATE
88153 --Invoice Supplier Identifier
88154 , p_source_93 IN NUMBER
88155 --Invoice Supplier Site Identifier
88156 , p_source_94 IN NUMBER
88157 --Identifier of the Prepayment Application Reversed
88158 , p_source_95 IN NUMBER
88159 --Payables Upgrade Credit Encumbrance Type Identifier
88160 , p_source_96 IN NUMBER
88161 --Payables Upgrade Debit Encumbrance Type Identifier
88162 , p_source_97 IN NUMBER
88163 --Prepayment Clearing Exchange Date
88164 , p_source_118 IN DATE
88165 --Prepayment Clearing Exchange Rate
88166 , p_source_119 IN NUMBER
88167 --Prepayment Clearing Exchange Rate Type
88168 , p_source_120 IN VARCHAR2
88169 )
88170 IS
88171
88172 l_component_type VARCHAR2(80);
88173 l_component_code VARCHAR2(30);
88174 l_component_type_code VARCHAR2(1);
88175 l_component_appl_id INTEGER;
88176 l_amb_context_code VARCHAR2(30);
88177 l_entity_code VARCHAR2(30);
88178 l_event_class_code VARCHAR2(30);
88179 l_ae_header_id NUMBER;
88180 l_event_type_code VARCHAR2(30);
88181 l_line_definition_code VARCHAR2(30);
88182 l_line_definition_owner_code VARCHAR2(1);
88183 --
88184 -- adr variables
88185 l_segment VARCHAR2(30);
88186 l_ccid NUMBER;
88187 l_adr_transaction_coa_id NUMBER;
88188 l_adr_accounting_coa_id NUMBER;
88189 l_adr_flexfield_segment_code VARCHAR2(30);
88190 l_adr_flex_value_set_id NUMBER;
88191 l_adr_value_type_code VARCHAR2(30);
88192 l_adr_value_combination_id NUMBER;
88193 l_adr_value_segment_code VARCHAR2(30);
88194
88195 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
88196 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
88197 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
88198 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
88199
88200 -- 4262811 Variables ------------------------------------------------------------------------------------------
88201 l_entered_amt_idx NUMBER;
88202 l_accted_amt_idx NUMBER;
88203 l_acc_rev_flag VARCHAR2(1);
88204 l_accrual_line_num NUMBER;
88205 l_tmp_amt NUMBER;
88206 l_acc_rev_natural_side_code VARCHAR2(1);
88207
88208 l_num_entries NUMBER;
88209 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
88210 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
88211 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
88212 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
88213 l_recog_line_1 NUMBER;
88214 l_recog_line_2 NUMBER;
88215
88216 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
88217 l_bflow_applied_to_amt NUMBER; -- 5132302
88218 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
88219
88220 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88221
88222 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
88223 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
88224
88225 ---------------------------------------------------------------------------------------------------------------
88226
88227
88228 --
88229 -- bulk performance
88230 --
88231 l_balance_type_code VARCHAR2(1);
88232 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
88233 l_log_module VARCHAR2(240);
88234
88235 --
88236 -- Upgrade strategy
88237 --
88238 l_actual_upg_option VARCHAR2(1);
88239 l_enc_upg_option VARCHAR2(1);
88240
88241 --
88242 BEGIN
88243 --
88244 IF g_log_enabled THEN
88245 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
88246 END IF;
88247 --
88248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88249
88250 trace
88251 (p_msg => 'BEGIN of AcctLineType_159'
88252 ,p_level => C_LEVEL_PROCEDURE
88253 ,p_module => l_log_module);
88254
88255 END IF;
88256 --
88257 l_component_type := 'AMB_JLT';
88258 l_component_code := 'AP_RECOV_PREPAY_CLR_RATE_APP';
88259 l_component_type_code := 'S';
88260 l_component_appl_id := 200;
88261 l_amb_context_code := 'DEFAULT';
88262 l_entity_code := 'AP_INVOICES';
88263 l_event_class_code := 'PREPAYMENT APPLICATIONS';
88264 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
88265 l_line_definition_owner_code := 'S';
88266 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
88267 --
88268 l_balance_type_code := 'A';
88272 l_adr_accounting_coa_id := NULL;
88269 l_segment := NULL;
88270 l_ccid := NULL;
88271 l_adr_transaction_coa_id := NULL;
88273 l_adr_flexfield_segment_code := NULL;
88274 l_adr_flex_value_set_id := NULL;
88275 l_adr_value_type_code := NULL;
88276 l_adr_value_combination_id := NULL;
88277 l_adr_value_segment_code := NULL;
88278
88279 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
88280 l_bflow_class_code := ''; -- 4219869 Business Flow
88281 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
88282 l_budgetary_control_flag := 'N';
88283
88284 l_bflow_applied_to_amt_idx := NULL; -- 5132302
88285 l_bflow_applied_to_amt := NULL; -- 5132302
88286 l_entered_amt_idx := NULL; -- 4262811
88287 l_accted_amt_idx := NULL; -- 4262811
88288 l_acc_rev_flag := NULL; -- 4262811
88289 l_accrual_line_num := NULL; -- 4262811
88290 l_tmp_amt := NULL; -- 4262811
88291 --
88292
88293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88294 l_balance_type_code <> 'B' THEN
88295 IF NVL(p_source_38,'
88296 ') = 'CLEAR_CLEAR' AND
88297 (NVL(p_source_67,'
88298 ') = 'PREPAY APPL' OR
88299 NVL(p_source_67,'
88300 ') = 'PREPAY APPL NONREC TAX' OR
88301 NVL(p_source_67,'
88302 ') = 'PREPAY APPL REC TAX') AND
88303 NVL(p_source_68,'
88304 ') = 'REC_TAX'
88305 THEN
88306
88307 --
88308 XLA_AE_LINES_PKG.SetNewLine;
88309
88310 p_balance_type_code := l_balance_type_code;
88311 -- set the flag so later we will know whether the gain loss line needs to be created
88312
88313 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88314 p_actual_flag :='A';
88315 END IF;
88316
88317 --
88318 -- bulk performance
88319 --
88320 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88321 p_header_num => 0); -- 4262811
88322 --
88323 -- set accounting line options
88324 --
88325 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88326 p_natural_side_code => 'C'
88327 , p_gain_or_loss_flag => 'N'
88328 , p_gl_transfer_mode_code => 'S'
88329 , p_acct_entry_type_code => 'A'
88330 , p_switch_side_flag => 'Y'
88331 , p_merge_duplicate_code => 'A'
88332 );
88333 --
88334 l_acc_rev_natural_side_code := 'D'; -- 4262811
88335 --
88336 --
88337 -- set accounting line type info
88338 --
88339 xla_ae_lines_pkg.SetAcctLineType
88340 (p_component_type => l_component_type
88341 ,p_event_type_code => l_event_type_code
88342 ,p_line_definition_owner_code => l_line_definition_owner_code
88343 ,p_line_definition_code => l_line_definition_code
88344 ,p_accounting_line_code => l_component_code
88345 ,p_accounting_line_type_code => l_component_type_code
88346 ,p_accounting_line_appl_id => l_component_appl_id
88347 ,p_amb_context_code => l_amb_context_code
88348 ,p_entity_code => l_entity_code
88349 ,p_event_class_code => l_event_class_code);
88350 --
88351 -- set accounting class
88352 --
88353 xla_ae_lines_pkg.SetAcctClass(
88354 p_accounting_class_code => 'RTAX'
88355 , p_ae_header_id => l_ae_header_id
88356 );
88357
88358 --
88359 -- set rounding class
88360 --
88361 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88362 'RTAX';
88363
88364 --
88365 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88366 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88367 --
88368 -- bulk performance
88369 --
88370 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88371
88372 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88373 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88374
88375 -- 4955764
88376 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88377 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88378
88379 -- 4458381 Public Sector Enh
88380
88381 --
88382 -- set accounting attributes for the line type
88383 --
88384 l_entered_amt_idx := 25;
88385 l_accted_amt_idx := 30;
88386 l_bflow_applied_to_amt_idx := NULL; -- 5132302
88387 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88388 l_rec_acct_attrs.array_char_value(1) := p_source_40;
88389 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88390 l_rec_acct_attrs.array_num_value(2) :=
88391 xla_ae_sources_pkg.GetSystemSourceNum(
88392 p_source_code => 'XLA_EVENT_APPL_ID'
88393 , p_source_type_code => 'Y'
88394 , p_source_application_id => 602
88395 );
88399 l_rec_acct_attrs.array_char_value(4) :=
88396 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88397 l_rec_acct_attrs.array_char_value(3) := p_source_48;
88398 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88400 xla_ae_sources_pkg.GetSystemSourceChar(
88401 p_source_code => 'XLA_ENTITY_CODE'
88402 , p_source_type_code => 'Y'
88403 , p_source_application_id => 602
88404 );
88405 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88406 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
88407 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88408 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
88409 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
88410 l_rec_acct_attrs.array_num_value(7) := p_source_42;
88411 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88412 l_rec_acct_attrs.array_char_value(8) := p_source_73;
88413 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
88414 l_rec_acct_attrs.array_char_value(9) := p_source_74;
88415 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
88416 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
88417 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88418 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
88419 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
88420 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
88421 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
88422 l_rec_acct_attrs.array_char_value(13) := p_source_48;
88423 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
88424 l_rec_acct_attrs.array_char_value(14) := p_source_77;
88425 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
88426 l_rec_acct_attrs.array_num_value(15) := p_source_78;
88427 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
88428 l_rec_acct_attrs.array_num_value(16) := p_source_79;
88429 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
88430 l_rec_acct_attrs.array_char_value(17) := p_source_80;
88431 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
88432 l_rec_acct_attrs.array_num_value(18) := p_source_81;
88433 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
88434 l_rec_acct_attrs.array_char_value(19) := p_source_82;
88435 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
88436 l_rec_acct_attrs.array_num_value(20) := p_source_83;
88437 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
88438 l_rec_acct_attrs.array_num_value(21) := p_source_84;
88439 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
88440 l_rec_acct_attrs.array_char_value(22) := p_source_80;
88441 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
88442 l_rec_acct_attrs.array_num_value(23) := p_source_85;
88443 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
88444 l_rec_acct_attrs.array_char_value(24) := p_source_86;
88445 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
88446 l_rec_acct_attrs.array_num_value(25) := p_source_87;
88447 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
88448 l_rec_acct_attrs.array_char_value(26) := p_source_88;
88449 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
88450 l_rec_acct_attrs.array_date_value(27) := p_source_118;
88451 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
88452 l_rec_acct_attrs.array_num_value(28) := p_source_119;
88453 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
88454 l_rec_acct_attrs.array_char_value(29) := p_source_120;
88455 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
88456 l_rec_acct_attrs.array_num_value(30) := p_source_89;
88457 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
88458 l_rec_acct_attrs.array_date_value(31) := p_source_90;
88459 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
88460 l_rec_acct_attrs.array_char_value(32) := p_source_91;
88461 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
88462 l_rec_acct_attrs.array_date_value(33) := p_source_92;
88463 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
88464 l_rec_acct_attrs.array_char_value(34) := p_source_53;
88465 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
88466 l_rec_acct_attrs.array_num_value(35) := p_source_93;
88467 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
88468 l_rec_acct_attrs.array_num_value(36) := p_source_94;
88469 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
88470 l_rec_acct_attrs.array_char_value(37) := p_source_56;
88471 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
88472 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
88473 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
88474 l_rec_acct_attrs.array_char_value(39) := p_source_48;
88475 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
88476 l_rec_acct_attrs.array_num_value(40) := p_source_58;
88477 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
88478 l_rec_acct_attrs.array_num_value(41) := p_source_66;
88479 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
88480 l_rec_acct_attrs.array_num_value(42) := p_source_59;
88484 l_rec_acct_attrs.array_num_value(44) := p_source_97;
88481 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
88482 l_rec_acct_attrs.array_num_value(43) := p_source_96;
88483 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
88485
88486 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88487 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88488
88489 ---------------------------------------------------------------------------------------------------------------
88490 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88491 ---------------------------------------------------------------------------------------------------------------
88492 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88493
88494 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88495 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88496
88497 IF xla_accounting_cache_pkg.GetValueChar
88498 (p_source_code => 'LEDGER_CATEGORY_CODE'
88499 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88500 AND l_bflow_method_code = 'PRIOR_ENTRY'
88501 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88502 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88503 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88504 )
88505 THEN
88506 xla_ae_lines_pkg.BflowUpgEntry
88507 (p_business_method_code => l_bflow_method_code
88508 ,p_business_class_code => l_bflow_class_code
88509 ,p_balance_type => l_balance_type_code);
88510 ELSE
88511 NULL;
88512 -- No business flow processing for business flow method of NONE.
88513 END IF;
88514
88515 --
88516 -- call analytical criteria
88517 --
88518
88519 --
88520 -- call description
88521 --
88522 -- No description or it is inherited.
88523 --
88524 -- call ADRs
88525 -- Bug 4922099
88526 --
88527 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88528 (NVL(l_actual_upg_option, 'N') = 'O') OR
88529 (NVL(l_enc_upg_option, 'N') = 'O')
88530 )
88531 THEN
88532 NULL;
88533 --
88534 --
88535
88536 l_ccid := AcctDerRule_33(
88537 p_application_id => p_application_id
88538 , p_ae_header_id => l_ae_header_id
88539 , p_source_36 => p_source_36
88540 , x_transaction_coa_id => l_adr_transaction_coa_id
88541 , x_accounting_coa_id => l_adr_accounting_coa_id
88542 , x_value_type_code => l_adr_value_type_code
88543 , p_side => 'NA'
88544 );
88545
88546 xla_ae_lines_pkg.set_ccid(
88547 p_code_combination_id => l_ccid
88548 , p_value_type_code => l_adr_value_type_code
88549 , p_transaction_coa_id => l_adr_transaction_coa_id
88550 , p_accounting_coa_id => l_adr_accounting_coa_id
88551 , p_adr_code => 'AP_RECP_INV_DIST'
88552 , p_adr_type_code => 'S'
88553 , p_component_type => l_component_type
88554 , p_component_code => l_component_code
88555 , p_component_type_code => l_component_type_code
88556 , p_component_appl_id => l_component_appl_id
88557 , p_amb_context_code => l_amb_context_code
88558 , p_side => 'NA'
88559 );
88560
88561
88562 --
88563 --
88564 END IF;
88565 --
88566 -- Bug 4922099
88567 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88568 (NVL(l_enc_upg_option, 'N') = 'O')
88569 ) AND
88570 (l_bflow_method_code = 'PRIOR_ENTRY')
88571 )
88572 THEN
88573 IF
88574 --
88575 1 = 2
88576 --
88577 THEN
88578 xla_accounting_err_pkg.build_message
88579 (p_appli_s_name => 'XLA'
88580 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88581 ,p_token_1 => 'LINE_NUMBER'
88582 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
88583 ,p_token_2 => 'LINE_TYPE_NAME'
88584 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
88585 l_component_type
88586 ,l_component_code
88587 ,l_component_type_code
88588 ,l_component_appl_id
88589 ,l_amb_context_code
88590 ,l_entity_code
88591 ,l_event_class_code
88592 )
88593 ,p_token_3 => 'OWNER'
88597 )
88594 ,p_value_3 => xla_lookups_pkg.get_meaning(
88595 p_lookup_type => 'XLA_OWNER_TYPE'
88596 ,p_lookup_code => l_component_type_code
88598 ,p_token_4 => 'PRODUCT_NAME'
88599 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88600 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88601 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88602 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88603 ,p_ae_header_id => NULL
88604 );
88605
88606 IF (C_LEVEL_ERROR>= g_log_level) THEN
88607 trace
88608 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88609 ,p_level => C_LEVEL_ERROR
88610 ,p_module => l_log_module);
88611 END IF;
88612 END IF;
88613 END IF;
88614 --
88615 --
88616 ------------------------------------------------------------------------------------------------
88617 -- 4219869 Business Flow
88618 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88619 -- Prior Entry. Currently, the following code is always generated.
88620 ------------------------------------------------------------------------------------------------
88621 XLA_AE_LINES_PKG.ValidateCurrentLine;
88622
88623 ------------------------------------------------------------------------------------
88624 -- 4219869 Business Flow
88625 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88626 ------------------------------------------------------------------------------------
88627 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88628
88629 ----------------------------------------------------------------------------------
88630 -- 4219869 Business Flow
88631 -- Update journal entry status -- Need to generate this within IF <condition>
88632 ----------------------------------------------------------------------------------
88633 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88634 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88635 ,p_balance_type_code => l_balance_type_code
88636 );
88637
88638 -------------------------------------------------------------------------------------------
88639 -- 4262811 - Generate the Accrual Reversal lines
88640 -------------------------------------------------------------------------------------------
88641 BEGIN
88642 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88643 (g_array_event(p_event_id).array_value_num('header_index'));
88644 IF l_acc_rev_flag IS NULL THEN
88645 l_acc_rev_flag := 'N';
88646 END IF;
88647 EXCEPTION
88648 WHEN OTHERS THEN
88649 l_acc_rev_flag := 'N';
88650 END;
88651 --
88652 IF (l_acc_rev_flag = 'Y') THEN
88653
88654 -- 4645092 ------------------------------------------------------------------------------
88655 -- To allow MPA report to determine if it should generate report process
88656 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88657 ------------------------------------------------------------------------------------------
88658
88659 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88660 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88661 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
88662 -- call ADRs
88663 -- Bug 4922099
88664 --
88665 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88666 (NVL(l_actual_upg_option, 'N') = 'O') OR
88667 (NVL(l_enc_upg_option, 'N') = 'O')
88668 )
88669 THEN
88670 NULL;
88671 --
88672 --
88673
88674 l_ccid := AcctDerRule_33(
88675 p_application_id => p_application_id
88676 , p_ae_header_id => l_ae_header_id
88677 , p_source_36 => p_source_36
88678 , x_transaction_coa_id => l_adr_transaction_coa_id
88679 , x_accounting_coa_id => l_adr_accounting_coa_id
88680 , x_value_type_code => l_adr_value_type_code
88681 , p_side => 'NA'
88682 );
88683
88684 xla_ae_lines_pkg.set_ccid(
88685 p_code_combination_id => l_ccid
88686 , p_value_type_code => l_adr_value_type_code
88687 , p_transaction_coa_id => l_adr_transaction_coa_id
88688 , p_accounting_coa_id => l_adr_accounting_coa_id
88689 , p_adr_code => 'AP_RECP_INV_DIST'
88690 , p_adr_type_code => 'S'
88691 , p_component_type => l_component_type
88692 , p_component_code => l_component_code
88693 , p_component_type_code => l_component_type_code
88694 , p_component_appl_id => l_component_appl_id
88695 , p_amb_context_code => l_amb_context_code
88696 , p_side => 'NA'
88700 --
88697 );
88698
88699
88701 --
88702 END IF;
88703
88704 --
88705 -- Update the line information that should be overwritten
88706 --
88707 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88708 p_header_num => 1);
88709 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
88710
88711 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88712
88713 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
88714 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88715 END IF;
88716
88717 --
88718 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88719 --
88720 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88721 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
88722 ELSE
88723 ---------------------------------------------------------------------------------------------------
88724 -- 4262811a Switch Sign
88725 ---------------------------------------------------------------------------------------------------
88726 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
88727 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88728 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88729 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88730 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88731 -- 5132302
88732 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88733 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88734
88735 END IF;
88736
88737 -- 4955764
88738 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88739 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88740
88741
88742 XLA_AE_LINES_PKG.ValidateCurrentLine;
88743 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88744
88745 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88746 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88747 ,p_balance_type_code => l_balance_type_code);
88748
88749 END IF;
88750
88751 -----------------------------------------------------------------------------------------
88752 -- 4262811 Multiperiod Accounting
88753 -----------------------------------------------------------------------------------------
88754 -- No MPA option is assigned.
88755
88756
88757 END IF;
88758 END IF;
88759 --
88760
88761 --
88762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88763 trace
88764 (p_msg => 'END of AcctLineType_159'
88765 ,p_level => C_LEVEL_PROCEDURE
88766 ,p_module => l_log_module);
88767 END IF;
88768 --
88769 EXCEPTION
88770 WHEN xla_exceptions_pkg.application_exception THEN
88771 RAISE;
88772 WHEN OTHERS THEN
88773 xla_exceptions_pkg.raise_message
88774 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_159');
88775 END AcctLineType_159;
88776 --
88777
88778 ---------------------------------------
88779 --
88780 -- PRIVATE FUNCTION
88781 -- AcctLineType_160
88782 --
88783 ---------------------------------------
88784 PROCEDURE AcctLineType_160 (
88785 p_application_id IN NUMBER
88786 ,p_event_id IN NUMBER
88787 ,p_calculate_acctd_flag IN VARCHAR2
88788 ,p_calculate_g_l_flag IN VARCHAR2
88789 ,p_actual_flag IN OUT VARCHAR2
88790 ,p_balance_type_code OUT VARCHAR2
88791 ,p_gain_or_loss_ref OUT VARCHAR2
88792
88793 --Recipient Invoice Distribution Account
88794 , p_source_36 IN NUMBER
88795 --When to Account for Payment Option
88796 , p_source_38 IN VARCHAR2
88797 --Accounting Reversal Indicator
88798 , p_source_40 IN VARCHAR2
88799 --Business Flow Accounts Payable Application Identifier
88800 , p_source_42 IN NUMBER
88801 --Distribution Link Type
88802 , p_source_48 IN VARCHAR2
88803 --Override Accounted Amount Indicator
88804 , p_source_53 IN VARCHAR2
88805 , p_source_53_meaning IN VARCHAR2
88806 --Third Party Type
88807 , p_source_56 IN VARCHAR2
88808 --Invoice Distribution Tax Line Identifier
88809 , p_source_58 IN NUMBER
88810 --Invoice Distribution Summary Tax Line Identifier
88811 , p_source_59 IN NUMBER
88812 --Invoice Distribution Tax Distribution Identifier from Tax
88813 , p_source_66 IN NUMBER
88814 --Prepayment Distribution Type
88815 , p_source_67 IN VARCHAR2
88816 --Recipient Invoice Distribution Type
88817 , p_source_68 IN VARCHAR2
88818 , p_source_68_meaning IN VARCHAR2
88819 --Prepayment Application Distribution Identifier
88820 , p_source_71 IN NUMBER
88821 --Invoice Identifier
88822 , p_source_72 IN NUMBER
88826 , p_source_74 IN VARCHAR2
88823 --Business Flow Prepayment Invoice Distribution Type
88824 , p_source_73 IN VARCHAR2
88825 --Business Flow Prepayment Invoice Entity Code
88827 --Business Flow Prepayment Invoice Distribution Identifier
88828 , p_source_75 IN NUMBER
88829 --Business Flow Prepayment Invoice Identifier
88830 , p_source_76 IN NUMBER
88831 --Upgrade Encumbrance Credit Account Class
88832 , p_source_77 IN VARCHAR2
88833 --Payables Encumbrance Upgrade Credit Account
88834 , p_source_78 IN NUMBER
88835 --Payables Encumbrance Upgrade Credit Amount
88836 , p_source_79 IN NUMBER
88837 --Invoice Currency Code
88838 , p_source_80 IN VARCHAR2
88839 --Payables Encumbrance Upgrade Credit Base Amount
88840 , p_source_81 IN NUMBER
88841 --Upgrade Encumbrance Debit Account Class
88842 , p_source_82 IN VARCHAR2
88843 --Payables Encumbrance Upgrade Debit Account
88844 , p_source_83 IN NUMBER
88845 --Payables Encumbrance Upgrade Debit Amount
88846 , p_source_84 IN NUMBER
88847 --Payables Encumbrance Upgrade Debit Base Amount
88848 , p_source_85 IN NUMBER
88849 --Payables Encumbrance Upgrade Option
88850 , p_source_86 IN VARCHAR2
88851 --Prepayment Distribution Amount
88852 , p_source_87 IN NUMBER
88853 --Deferred Accounting End Date
88854 , p_source_90 IN DATE
88855 --Deferred Accounting Option
88856 , p_source_91 IN VARCHAR2
88857 --Deferred Accounting Start Date
88858 , p_source_92 IN DATE
88859 --Invoice Supplier Identifier
88860 , p_source_93 IN NUMBER
88861 --Invoice Supplier Site Identifier
88862 , p_source_94 IN NUMBER
88863 --Identifier of the Prepayment Application Reversed
88864 , p_source_95 IN NUMBER
88865 --Payables Upgrade Credit Encumbrance Type Identifier
88866 , p_source_96 IN NUMBER
88867 --Payables Upgrade Debit Encumbrance Type Identifier
88868 , p_source_97 IN NUMBER
88869 --Prepayment Payment Currency Code
88870 , p_source_98 IN VARCHAR2
88871 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
88872 , p_source_99 IN NUMBER
88873 --Prepayment Payment Exchange Date
88874 , p_source_121 IN DATE
88875 --Prepayment Payment Exchange Rate
88876 , p_source_122 IN NUMBER
88877 --Prepayment Payment Exchange Rate Type
88878 , p_source_123 IN VARCHAR2
88879 )
88880 IS
88881
88882 l_component_type VARCHAR2(80);
88883 l_component_code VARCHAR2(30);
88884 l_component_type_code VARCHAR2(1);
88885 l_component_appl_id INTEGER;
88886 l_amb_context_code VARCHAR2(30);
88887 l_entity_code VARCHAR2(30);
88888 l_event_class_code VARCHAR2(30);
88889 l_ae_header_id NUMBER;
88890 l_event_type_code VARCHAR2(30);
88891 l_line_definition_code VARCHAR2(30);
88892 l_line_definition_owner_code VARCHAR2(1);
88893 --
88894 -- adr variables
88895 l_segment VARCHAR2(30);
88896 l_ccid NUMBER;
88897 l_adr_transaction_coa_id NUMBER;
88898 l_adr_accounting_coa_id NUMBER;
88899 l_adr_flexfield_segment_code VARCHAR2(30);
88900 l_adr_flex_value_set_id NUMBER;
88901 l_adr_value_type_code VARCHAR2(30);
88902 l_adr_value_combination_id NUMBER;
88903 l_adr_value_segment_code VARCHAR2(30);
88904
88905 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
88906 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
88907 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
88908 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
88909
88910 -- 4262811 Variables ------------------------------------------------------------------------------------------
88911 l_entered_amt_idx NUMBER;
88912 l_accted_amt_idx NUMBER;
88913 l_acc_rev_flag VARCHAR2(1);
88914 l_accrual_line_num NUMBER;
88915 l_tmp_amt NUMBER;
88916 l_acc_rev_natural_side_code VARCHAR2(1);
88917
88918 l_num_entries NUMBER;
88919 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
88920 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
88921 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
88922 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
88923 l_recog_line_1 NUMBER;
88924 l_recog_line_2 NUMBER;
88925
88926 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
88927 l_bflow_applied_to_amt NUMBER; -- 5132302
88928 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
88929
88930 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88931
88932 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
88933 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
88934
88935 ---------------------------------------------------------------------------------------------------------------
88936
88937
88938 --
88939 -- bulk performance
88940 --
88944
88941 l_balance_type_code VARCHAR2(1);
88942 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
88943 l_log_module VARCHAR2(240);
88945 --
88946 -- Upgrade strategy
88947 --
88948 l_actual_upg_option VARCHAR2(1);
88949 l_enc_upg_option VARCHAR2(1);
88950
88951 --
88952 BEGIN
88953 --
88954 IF g_log_enabled THEN
88955 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
88956 END IF;
88957 --
88958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88959
88960 trace
88961 (p_msg => 'BEGIN of AcctLineType_160'
88962 ,p_level => C_LEVEL_PROCEDURE
88963 ,p_module => l_log_module);
88964
88965 END IF;
88966 --
88967 l_component_type := 'AMB_JLT';
88968 l_component_code := 'AP_RECOV_PREPAY_PAY_RATE_APP';
88969 l_component_type_code := 'S';
88970 l_component_appl_id := 200;
88971 l_amb_context_code := 'DEFAULT';
88972 l_entity_code := 'AP_INVOICES';
88973 l_event_class_code := 'PREPAYMENT APPLICATIONS';
88974 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
88975 l_line_definition_owner_code := 'S';
88976 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
88977 --
88978 l_balance_type_code := 'A';
88979 l_segment := NULL;
88980 l_ccid := NULL;
88981 l_adr_transaction_coa_id := NULL;
88982 l_adr_accounting_coa_id := NULL;
88983 l_adr_flexfield_segment_code := NULL;
88984 l_adr_flex_value_set_id := NULL;
88985 l_adr_value_type_code := NULL;
88986 l_adr_value_combination_id := NULL;
88987 l_adr_value_segment_code := NULL;
88988
88989 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
88990 l_bflow_class_code := ''; -- 4219869 Business Flow
88991 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
88992 l_budgetary_control_flag := 'N';
88993
88994 l_bflow_applied_to_amt_idx := NULL; -- 5132302
88995 l_bflow_applied_to_amt := NULL; -- 5132302
88996 l_entered_amt_idx := NULL; -- 4262811
88997 l_accted_amt_idx := NULL; -- 4262811
88998 l_acc_rev_flag := NULL; -- 4262811
88999 l_accrual_line_num := NULL; -- 4262811
89000 l_tmp_amt := NULL; -- 4262811
89001 --
89002
89003 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89004 l_balance_type_code <> 'B' THEN
89005 IF NVL(p_source_38,'
89006 ') <> 'CLEAR_CLEAR' AND
89007 (NVL(p_source_67,'
89008 ') = 'PREPAY APPL' OR
89009 NVL(p_source_67,'
89010 ') = 'PREPAY APPL NONREC TAX' OR
89011 NVL(p_source_67,'
89012 ') = 'PREPAY APPL REC TAX') AND
89013 NVL(p_source_68,'
89014 ') = 'REC_TAX'
89015 THEN
89016
89017 --
89018 XLA_AE_LINES_PKG.SetNewLine;
89019
89020 p_balance_type_code := l_balance_type_code;
89021 -- set the flag so later we will know whether the gain loss line needs to be created
89022
89023 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89024 p_actual_flag :='A';
89025 END IF;
89026
89027 --
89028 -- bulk performance
89029 --
89030 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89031 p_header_num => 0); -- 4262811
89032 --
89033 -- set accounting line options
89034 --
89035 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89036 p_natural_side_code => 'C'
89037 , p_gain_or_loss_flag => 'N'
89038 , p_gl_transfer_mode_code => 'S'
89039 , p_acct_entry_type_code => 'A'
89040 , p_switch_side_flag => 'Y'
89041 , p_merge_duplicate_code => 'A'
89042 );
89043 --
89044 l_acc_rev_natural_side_code := 'D'; -- 4262811
89045 --
89046 --
89047 -- set accounting line type info
89048 --
89049 xla_ae_lines_pkg.SetAcctLineType
89050 (p_component_type => l_component_type
89051 ,p_event_type_code => l_event_type_code
89052 ,p_line_definition_owner_code => l_line_definition_owner_code
89053 ,p_line_definition_code => l_line_definition_code
89054 ,p_accounting_line_code => l_component_code
89055 ,p_accounting_line_type_code => l_component_type_code
89056 ,p_accounting_line_appl_id => l_component_appl_id
89057 ,p_amb_context_code => l_amb_context_code
89058 ,p_entity_code => l_entity_code
89059 ,p_event_class_code => l_event_class_code);
89060 --
89061 -- set accounting class
89062 --
89063 xla_ae_lines_pkg.SetAcctClass(
89064 p_accounting_class_code => 'RTAX'
89065 , p_ae_header_id => l_ae_header_id
89066 );
89067
89068 --
89069 -- set rounding class
89070 --
89071 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89072 'RTAX';
89073
89074 --
89075 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89079 --
89076 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89077 --
89078 -- bulk performance
89080 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89081
89082 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89083 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89084
89085 -- 4955764
89086 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89087 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89088
89089 -- 4458381 Public Sector Enh
89090
89091 --
89092 -- set accounting attributes for the line type
89093 --
89094 l_entered_amt_idx := 25;
89095 l_accted_amt_idx := 30;
89096 l_bflow_applied_to_amt_idx := NULL; -- 5132302
89097 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89098 l_rec_acct_attrs.array_char_value(1) := p_source_40;
89099 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
89100 l_rec_acct_attrs.array_num_value(2) :=
89101 xla_ae_sources_pkg.GetSystemSourceNum(
89102 p_source_code => 'XLA_EVENT_APPL_ID'
89103 , p_source_type_code => 'Y'
89104 , p_source_application_id => 602
89105 );
89106 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
89107 l_rec_acct_attrs.array_char_value(3) := p_source_48;
89108 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
89109 l_rec_acct_attrs.array_char_value(4) :=
89110 xla_ae_sources_pkg.GetSystemSourceChar(
89111 p_source_code => 'XLA_ENTITY_CODE'
89112 , p_source_type_code => 'Y'
89113 , p_source_application_id => 602
89114 );
89115 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
89116 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
89117 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
89118 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
89119 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
89120 l_rec_acct_attrs.array_num_value(7) := p_source_42;
89121 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89122 l_rec_acct_attrs.array_char_value(8) := p_source_73;
89123 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
89124 l_rec_acct_attrs.array_char_value(9) := p_source_74;
89125 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
89126 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
89127 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89128 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
89129 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
89130 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
89131 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
89132 l_rec_acct_attrs.array_char_value(13) := p_source_48;
89133 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
89134 l_rec_acct_attrs.array_char_value(14) := p_source_77;
89135 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
89136 l_rec_acct_attrs.array_num_value(15) := p_source_78;
89137 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
89138 l_rec_acct_attrs.array_num_value(16) := p_source_79;
89139 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
89140 l_rec_acct_attrs.array_char_value(17) := p_source_80;
89141 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
89142 l_rec_acct_attrs.array_num_value(18) := p_source_81;
89143 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
89144 l_rec_acct_attrs.array_char_value(19) := p_source_82;
89145 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
89146 l_rec_acct_attrs.array_num_value(20) := p_source_83;
89147 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
89148 l_rec_acct_attrs.array_num_value(21) := p_source_84;
89149 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
89150 l_rec_acct_attrs.array_char_value(22) := p_source_80;
89151 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
89152 l_rec_acct_attrs.array_num_value(23) := p_source_85;
89153 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
89154 l_rec_acct_attrs.array_char_value(24) := p_source_86;
89155 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
89156 l_rec_acct_attrs.array_num_value(25) := p_source_87;
89157 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
89158 l_rec_acct_attrs.array_char_value(26) := p_source_98;
89159 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
89160 l_rec_acct_attrs.array_date_value(27) := p_source_121;
89161 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
89162 l_rec_acct_attrs.array_num_value(28) := p_source_122;
89163 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
89164 l_rec_acct_attrs.array_char_value(29) := p_source_123;
89165 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
89166 l_rec_acct_attrs.array_num_value(30) := p_source_99;
89167 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
89168 l_rec_acct_attrs.array_date_value(31) := p_source_90;
89169 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
89173 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
89170 l_rec_acct_attrs.array_char_value(32) := p_source_91;
89171 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
89172 l_rec_acct_attrs.array_date_value(33) := p_source_92;
89174 l_rec_acct_attrs.array_char_value(34) := p_source_53;
89175 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
89176 l_rec_acct_attrs.array_num_value(35) := p_source_93;
89177 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
89178 l_rec_acct_attrs.array_num_value(36) := p_source_94;
89179 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
89180 l_rec_acct_attrs.array_char_value(37) := p_source_56;
89181 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
89182 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
89183 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
89184 l_rec_acct_attrs.array_char_value(39) := p_source_48;
89185 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
89186 l_rec_acct_attrs.array_num_value(40) := p_source_58;
89187 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
89188 l_rec_acct_attrs.array_num_value(41) := p_source_66;
89189 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
89190 l_rec_acct_attrs.array_num_value(42) := p_source_59;
89191 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
89192 l_rec_acct_attrs.array_num_value(43) := p_source_96;
89193 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
89194 l_rec_acct_attrs.array_num_value(44) := p_source_97;
89195
89196 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89197 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89198
89199 ---------------------------------------------------------------------------------------------------------------
89200 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89201 ---------------------------------------------------------------------------------------------------------------
89202 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89203
89204 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89205 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89206
89207 IF xla_accounting_cache_pkg.GetValueChar
89208 (p_source_code => 'LEDGER_CATEGORY_CODE'
89209 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89210 AND l_bflow_method_code = 'PRIOR_ENTRY'
89211 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89212 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89213 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89214 )
89215 THEN
89216 xla_ae_lines_pkg.BflowUpgEntry
89217 (p_business_method_code => l_bflow_method_code
89218 ,p_business_class_code => l_bflow_class_code
89219 ,p_balance_type => l_balance_type_code);
89220 ELSE
89221 NULL;
89222 -- No business flow processing for business flow method of NONE.
89223 END IF;
89224
89225 --
89226 -- call analytical criteria
89227 --
89228
89229 --
89230 -- call description
89231 --
89232 -- No description or it is inherited.
89233 --
89234 -- call ADRs
89235 -- Bug 4922099
89236 --
89237 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89238 (NVL(l_actual_upg_option, 'N') = 'O') OR
89239 (NVL(l_enc_upg_option, 'N') = 'O')
89240 )
89241 THEN
89242 NULL;
89243 --
89244 --
89245
89246 l_ccid := AcctDerRule_33(
89247 p_application_id => p_application_id
89248 , p_ae_header_id => l_ae_header_id
89249 , p_source_36 => p_source_36
89250 , x_transaction_coa_id => l_adr_transaction_coa_id
89251 , x_accounting_coa_id => l_adr_accounting_coa_id
89252 , x_value_type_code => l_adr_value_type_code
89253 , p_side => 'NA'
89254 );
89255
89256 xla_ae_lines_pkg.set_ccid(
89257 p_code_combination_id => l_ccid
89258 , p_value_type_code => l_adr_value_type_code
89259 , p_transaction_coa_id => l_adr_transaction_coa_id
89260 , p_accounting_coa_id => l_adr_accounting_coa_id
89261 , p_adr_code => 'AP_RECP_INV_DIST'
89262 , p_adr_type_code => 'S'
89263 , p_component_type => l_component_type
89264 , p_component_code => l_component_code
89265 , p_component_type_code => l_component_type_code
89266 , p_component_appl_id => l_component_appl_id
89267 , p_amb_context_code => l_amb_context_code
89268 , p_side => 'NA'
89269 );
89270
89271
89272 --
89273 --
89274 END IF;
89275 --
89276 -- Bug 4922099
89277 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89278 (NVL(l_enc_upg_option, 'N') = 'O')
89279 ) AND
89280 (l_bflow_method_code = 'PRIOR_ENTRY')
89281 )
89282 THEN
89283 IF
89284 --
89285 1 = 2
89286 --
89287 THEN
89291 ,p_token_1 => 'LINE_NUMBER'
89288 xla_accounting_err_pkg.build_message
89289 (p_appli_s_name => 'XLA'
89290 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89292 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
89293 ,p_token_2 => 'LINE_TYPE_NAME'
89294 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
89295 l_component_type
89296 ,l_component_code
89297 ,l_component_type_code
89298 ,l_component_appl_id
89299 ,l_amb_context_code
89300 ,l_entity_code
89301 ,l_event_class_code
89302 )
89303 ,p_token_3 => 'OWNER'
89304 ,p_value_3 => xla_lookups_pkg.get_meaning(
89305 p_lookup_type => 'XLA_OWNER_TYPE'
89306 ,p_lookup_code => l_component_type_code
89307 )
89308 ,p_token_4 => 'PRODUCT_NAME'
89309 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89310 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89311 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89312 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89313 ,p_ae_header_id => NULL
89314 );
89315
89316 IF (C_LEVEL_ERROR>= g_log_level) THEN
89317 trace
89318 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89319 ,p_level => C_LEVEL_ERROR
89320 ,p_module => l_log_module);
89321 END IF;
89322 END IF;
89323 END IF;
89324 --
89325 --
89326 ------------------------------------------------------------------------------------------------
89327 -- 4219869 Business Flow
89328 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89329 -- Prior Entry. Currently, the following code is always generated.
89330 ------------------------------------------------------------------------------------------------
89331 XLA_AE_LINES_PKG.ValidateCurrentLine;
89332
89333 ------------------------------------------------------------------------------------
89334 -- 4219869 Business Flow
89335 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89336 ------------------------------------------------------------------------------------
89337 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89338
89339 ----------------------------------------------------------------------------------
89340 -- 4219869 Business Flow
89341 -- Update journal entry status -- Need to generate this within IF <condition>
89342 ----------------------------------------------------------------------------------
89343 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89344 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89345 ,p_balance_type_code => l_balance_type_code
89346 );
89347
89348 -------------------------------------------------------------------------------------------
89349 -- 4262811 - Generate the Accrual Reversal lines
89350 -------------------------------------------------------------------------------------------
89351 BEGIN
89352 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89353 (g_array_event(p_event_id).array_value_num('header_index'));
89354 IF l_acc_rev_flag IS NULL THEN
89355 l_acc_rev_flag := 'N';
89356 END IF;
89357 EXCEPTION
89358 WHEN OTHERS THEN
89359 l_acc_rev_flag := 'N';
89360 END;
89361 --
89362 IF (l_acc_rev_flag = 'Y') THEN
89363
89364 -- 4645092 ------------------------------------------------------------------------------
89365 -- To allow MPA report to determine if it should generate report process
89366 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89367 ------------------------------------------------------------------------------------------
89368
89369 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89370 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89371 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
89372 -- call ADRs
89373 -- Bug 4922099
89374 --
89375 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89376 (NVL(l_actual_upg_option, 'N') = 'O') OR
89377 (NVL(l_enc_upg_option, 'N') = 'O')
89378 )
89382 --
89379 THEN
89380 NULL;
89381 --
89383
89384 l_ccid := AcctDerRule_33(
89385 p_application_id => p_application_id
89386 , p_ae_header_id => l_ae_header_id
89387 , p_source_36 => p_source_36
89388 , x_transaction_coa_id => l_adr_transaction_coa_id
89389 , x_accounting_coa_id => l_adr_accounting_coa_id
89390 , x_value_type_code => l_adr_value_type_code
89391 , p_side => 'NA'
89392 );
89393
89394 xla_ae_lines_pkg.set_ccid(
89395 p_code_combination_id => l_ccid
89396 , p_value_type_code => l_adr_value_type_code
89397 , p_transaction_coa_id => l_adr_transaction_coa_id
89398 , p_accounting_coa_id => l_adr_accounting_coa_id
89399 , p_adr_code => 'AP_RECP_INV_DIST'
89400 , p_adr_type_code => 'S'
89401 , p_component_type => l_component_type
89402 , p_component_code => l_component_code
89403 , p_component_type_code => l_component_type_code
89404 , p_component_appl_id => l_component_appl_id
89405 , p_amb_context_code => l_amb_context_code
89406 , p_side => 'NA'
89407 );
89408
89409
89410 --
89411 --
89412 END IF;
89413
89414 --
89415 -- Update the line information that should be overwritten
89416 --
89417 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89418 p_header_num => 1);
89419 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
89420
89421 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89422
89423 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
89424 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89425 END IF;
89426
89427 --
89428 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89429 --
89430 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89431 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
89432 ELSE
89433 ---------------------------------------------------------------------------------------------------
89434 -- 4262811a Switch Sign
89435 ---------------------------------------------------------------------------------------------------
89436 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
89437 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89438 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89439 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89440 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89441 -- 5132302
89442 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89443 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89444
89445 END IF;
89446
89447 -- 4955764
89448 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89449 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89450
89451
89452 XLA_AE_LINES_PKG.ValidateCurrentLine;
89453 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89454
89455 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89456 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89457 ,p_balance_type_code => l_balance_type_code);
89458
89459 END IF;
89460
89461 -----------------------------------------------------------------------------------------
89462 -- 4262811 Multiperiod Accounting
89463 -----------------------------------------------------------------------------------------
89464 -- No MPA option is assigned.
89465
89466
89467 END IF;
89468 END IF;
89469 --
89470
89471 --
89472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89473 trace
89474 (p_msg => 'END of AcctLineType_160'
89475 ,p_level => C_LEVEL_PROCEDURE
89476 ,p_module => l_log_module);
89477 END IF;
89478 --
89479 EXCEPTION
89480 WHEN xla_exceptions_pkg.application_exception THEN
89481 RAISE;
89482 WHEN OTHERS THEN
89483 xla_exceptions_pkg.raise_message
89484 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_160');
89485 END AcctLineType_160;
89486 --
89487
89488 ---------------------------------------
89489 --
89490 -- PRIVATE FUNCTION
89491 -- AcctLineType_161
89492 --
89493 ---------------------------------------
89494 PROCEDURE AcctLineType_161 (
89495 p_application_id IN NUMBER
89496 ,p_event_id IN NUMBER
89497 ,p_calculate_acctd_flag IN VARCHAR2
89498 ,p_calculate_g_l_flag IN VARCHAR2
89499 ,p_actual_flag IN OUT VARCHAR2
89500 ,p_balance_type_code OUT VARCHAR2
89501 ,p_gain_or_loss_ref OUT VARCHAR2
89502
89506 , p_source_17 IN NUMBER
89503 --Payment Distribution (Cleared Rate) Ledger Amount
89504 , p_source_10 IN NUMBER
89505 --Invoice Distribution Account
89507 --Invoice Distribution Type
89508 , p_source_20 IN VARCHAR2
89509 , p_source_20_meaning IN VARCHAR2
89510 --When to Account for Payment Option
89511 , p_source_38 IN VARCHAR2
89512 --Payment Distribution Type
89513 , p_source_39 IN VARCHAR2
89514 , p_source_39_meaning IN VARCHAR2
89515 --Accounting Reversal Indicator
89516 , p_source_40 IN VARCHAR2
89517 --Payment Distribution Amount
89518 , p_source_41 IN NUMBER
89519 --Business Flow Accounts Payable Application Identifier
89520 , p_source_42 IN NUMBER
89521 --Business Flow Payment Distribution Type
89522 , p_source_43 IN VARCHAR2
89523 --Business Flow Payment Entity Code
89524 , p_source_44 IN VARCHAR2
89525 --Business Flow Payment Distribution Identifier
89526 , p_source_45 IN NUMBER
89527 --Business Flow Payment Identifier
89528 , p_source_46 IN NUMBER
89529 --Payment Distribution Identifier
89530 , p_source_47 IN NUMBER
89531 --Distribution Link Type
89532 , p_source_48 IN VARCHAR2
89533 --Payment Currency Code
89534 , p_source_49 IN VARCHAR2
89535 --Override Accounted Amount Indicator
89536 , p_source_53 IN VARCHAR2
89537 , p_source_53_meaning IN VARCHAR2
89538 --Payment Supplier Identifier
89539 , p_source_54 IN NUMBER
89540 --Payment Supplier Site Identifier
89541 , p_source_55 IN NUMBER
89542 --Third Party Type
89543 , p_source_56 IN VARCHAR2
89544 --Payment Distribution Reversed Identifier
89545 , p_source_57 IN NUMBER
89546 --Invoice Distribution Tax Line Identifier
89547 , p_source_58 IN NUMBER
89548 --Invoice Distribution Summary Tax Line Identifier
89549 , p_source_59 IN NUMBER
89550 --Cleared Exchange Date
89551 , p_source_107 IN DATE
89552 --Cleared Exchange Rate
89553 , p_source_108 IN NUMBER
89554 --Cleared Exchange Rate Type
89555 , p_source_109 IN VARCHAR2
89556 )
89557 IS
89558
89559 l_component_type VARCHAR2(80);
89560 l_component_code VARCHAR2(30);
89561 l_component_type_code VARCHAR2(1);
89562 l_component_appl_id INTEGER;
89563 l_amb_context_code VARCHAR2(30);
89564 l_entity_code VARCHAR2(30);
89565 l_event_class_code VARCHAR2(30);
89566 l_ae_header_id NUMBER;
89567 l_event_type_code VARCHAR2(30);
89568 l_line_definition_code VARCHAR2(30);
89569 l_line_definition_owner_code VARCHAR2(1);
89570 --
89571 -- adr variables
89572 l_segment VARCHAR2(30);
89573 l_ccid NUMBER;
89574 l_adr_transaction_coa_id NUMBER;
89575 l_adr_accounting_coa_id NUMBER;
89576 l_adr_flexfield_segment_code VARCHAR2(30);
89577 l_adr_flex_value_set_id NUMBER;
89578 l_adr_value_type_code VARCHAR2(30);
89579 l_adr_value_combination_id NUMBER;
89580 l_adr_value_segment_code VARCHAR2(30);
89581
89582 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
89583 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
89584 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
89585 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
89586
89587 -- 4262811 Variables ------------------------------------------------------------------------------------------
89588 l_entered_amt_idx NUMBER;
89589 l_accted_amt_idx NUMBER;
89590 l_acc_rev_flag VARCHAR2(1);
89591 l_accrual_line_num NUMBER;
89592 l_tmp_amt NUMBER;
89593 l_acc_rev_natural_side_code VARCHAR2(1);
89594
89595 l_num_entries NUMBER;
89596 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
89597 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
89598 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
89599 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
89600 l_recog_line_1 NUMBER;
89601 l_recog_line_2 NUMBER;
89602
89603 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
89604 l_bflow_applied_to_amt NUMBER; -- 5132302
89605 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
89606
89607 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89608
89609 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
89610 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
89611
89612 ---------------------------------------------------------------------------------------------------------------
89613
89614
89615 --
89616 -- bulk performance
89617 --
89618 l_balance_type_code VARCHAR2(1);
89619 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
89620 l_log_module VARCHAR2(240);
89621
89622 --
89623 -- Upgrade strategy
89624 --
89625 l_actual_upg_option VARCHAR2(1);
89626 l_enc_upg_option VARCHAR2(1);
89627
89628 --
89632 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
89629 BEGIN
89630 --
89631 IF g_log_enabled THEN
89633 END IF;
89634 --
89635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89636
89637 trace
89638 (p_msg => 'BEGIN of AcctLineType_161'
89639 ,p_level => C_LEVEL_PROCEDURE
89640 ,p_module => l_log_module);
89641
89642 END IF;
89643 --
89644 l_component_type := 'AMB_JLT';
89645 l_component_code := 'AP_RECOV_TAX_CLEAR';
89646 l_component_type_code := 'S';
89647 l_component_appl_id := 200;
89648 l_amb_context_code := 'DEFAULT';
89649 l_entity_code := 'AP_PAYMENTS';
89650 l_event_class_code := 'RECONCILED PAYMENTS';
89651 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
89652 l_line_definition_owner_code := 'S';
89653 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
89654 --
89655 l_balance_type_code := 'A';
89656 l_segment := NULL;
89657 l_ccid := NULL;
89658 l_adr_transaction_coa_id := NULL;
89659 l_adr_accounting_coa_id := NULL;
89660 l_adr_flexfield_segment_code := NULL;
89661 l_adr_flex_value_set_id := NULL;
89662 l_adr_value_type_code := NULL;
89663 l_adr_value_combination_id := NULL;
89664 l_adr_value_segment_code := NULL;
89665
89666 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
89667 l_bflow_class_code := ''; -- 4219869 Business Flow
89668 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
89669 l_budgetary_control_flag := 'N';
89670
89671 l_bflow_applied_to_amt_idx := NULL; -- 5132302
89672 l_bflow_applied_to_amt := NULL; -- 5132302
89673 l_entered_amt_idx := NULL; -- 4262811
89674 l_accted_amt_idx := NULL; -- 4262811
89675 l_acc_rev_flag := NULL; -- 4262811
89676 l_accrual_line_num := NULL; -- 4262811
89677 l_tmp_amt := NULL; -- 4262811
89678 --
89679
89680 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89681 l_balance_type_code <> 'B' THEN
89682 IF NVL(p_source_38,'
89683 ') = 'CLEAR_CLEAR' AND
89684 NVL(p_source_20,'
89685 ') = 'REC_TAX' AND
89686 (NVL(p_source_39,'
89687 ') = 'CASH' OR
89688 NVL(p_source_39,'
89689 ') = 'AWT' OR
89690 NVL(p_source_39,'
89691 ') = 'DISCOUNT')
89692 THEN
89693
89694 --
89695 XLA_AE_LINES_PKG.SetNewLine;
89696
89697 p_balance_type_code := l_balance_type_code;
89698 -- set the flag so later we will know whether the gain loss line needs to be created
89699
89700 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89701 p_actual_flag :='A';
89702 END IF;
89703
89704 --
89705 -- bulk performance
89706 --
89707 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89708 p_header_num => 0); -- 4262811
89709 --
89710 -- set accounting line options
89711 --
89712 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89713 p_natural_side_code => 'D'
89714 , p_gain_or_loss_flag => 'N'
89715 , p_gl_transfer_mode_code => 'S'
89716 , p_acct_entry_type_code => 'A'
89717 , p_switch_side_flag => 'Y'
89718 , p_merge_duplicate_code => 'A'
89719 );
89720 --
89721 l_acc_rev_natural_side_code := 'C'; -- 4262811
89722 --
89723 --
89724 -- set accounting line type info
89725 --
89726 xla_ae_lines_pkg.SetAcctLineType
89727 (p_component_type => l_component_type
89728 ,p_event_type_code => l_event_type_code
89729 ,p_line_definition_owner_code => l_line_definition_owner_code
89730 ,p_line_definition_code => l_line_definition_code
89731 ,p_accounting_line_code => l_component_code
89732 ,p_accounting_line_type_code => l_component_type_code
89733 ,p_accounting_line_appl_id => l_component_appl_id
89734 ,p_amb_context_code => l_amb_context_code
89735 ,p_entity_code => l_entity_code
89736 ,p_event_class_code => l_event_class_code);
89737 --
89738 -- set accounting class
89739 --
89740 xla_ae_lines_pkg.SetAcctClass(
89741 p_accounting_class_code => 'RTAX'
89742 , p_ae_header_id => l_ae_header_id
89743 );
89744
89745 --
89746 -- set rounding class
89747 --
89748 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89749 'RTAX';
89750
89751 --
89752 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89753 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89754 --
89755 -- bulk performance
89756 --
89757 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89758
89759 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89760 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89761
89762 -- 4955764
89766 -- 4458381 Public Sector Enh
89763 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89764 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89765
89767
89768 --
89769 -- set accounting attributes for the line type
89770 --
89771 l_entered_amt_idx := 10;
89772 l_accted_amt_idx := 15;
89773 l_bflow_applied_to_amt_idx := 2; -- 5132302
89774 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89775 l_rec_acct_attrs.array_char_value(1) := p_source_40;
89776 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
89777 l_rec_acct_attrs.array_num_value(2) := p_source_41;
89778 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
89779 l_rec_acct_attrs.array_num_value(3) := p_source_42;
89780 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89781 l_rec_acct_attrs.array_char_value(4) := p_source_43;
89782 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
89783 l_rec_acct_attrs.array_char_value(5) := p_source_44;
89784 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
89785 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
89786 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89787 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
89788 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
89789 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
89790 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
89791 l_rec_acct_attrs.array_char_value(9) := p_source_48;
89792 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
89793 l_rec_acct_attrs.array_num_value(10) := p_source_41;
89794 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
89795 l_rec_acct_attrs.array_char_value(11) := p_source_49;
89796 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
89797 l_rec_acct_attrs.array_date_value(12) := p_source_107;
89798 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
89799 l_rec_acct_attrs.array_num_value(13) := p_source_108;
89800 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
89801 l_rec_acct_attrs.array_char_value(14) := p_source_109;
89802 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
89803 l_rec_acct_attrs.array_num_value(15) := p_source_10;
89804 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
89805 l_rec_acct_attrs.array_char_value(16) := p_source_53;
89806 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
89807 l_rec_acct_attrs.array_num_value(17) := p_source_54;
89808 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
89809 l_rec_acct_attrs.array_num_value(18) := p_source_55;
89810 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
89811 l_rec_acct_attrs.array_char_value(19) := p_source_56;
89812 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
89813 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
89814 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
89815 l_rec_acct_attrs.array_char_value(21) := p_source_48;
89816 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
89817 l_rec_acct_attrs.array_num_value(22) := p_source_58;
89818 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
89819 l_rec_acct_attrs.array_num_value(23) := p_source_58;
89820 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
89821 l_rec_acct_attrs.array_num_value(24) := p_source_59;
89822
89823 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89824 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89825
89826 ---------------------------------------------------------------------------------------------------------------
89827 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89828 ---------------------------------------------------------------------------------------------------------------
89829 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89830
89831 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89832 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89833
89834 IF xla_accounting_cache_pkg.GetValueChar
89835 (p_source_code => 'LEDGER_CATEGORY_CODE'
89836 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89837 AND l_bflow_method_code = 'PRIOR_ENTRY'
89838 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89839 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89840 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89841 )
89842 THEN
89843 xla_ae_lines_pkg.BflowUpgEntry
89844 (p_business_method_code => l_bflow_method_code
89845 ,p_business_class_code => l_bflow_class_code
89846 ,p_balance_type => l_balance_type_code);
89847 ELSE
89848 NULL;
89849 -- No business flow processing for business flow method of NONE.
89850 END IF;
89851
89852 --
89853 -- call analytical criteria
89854 --
89855
89856 --
89857 -- call description
89858 --
89859 -- No description or it is inherited.
89863 --
89860 --
89861 -- call ADRs
89862 -- Bug 4922099
89864 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89865 (NVL(l_actual_upg_option, 'N') = 'O') OR
89866 (NVL(l_enc_upg_option, 'N') = 'O')
89867 )
89868 THEN
89869 NULL;
89870 --
89871 --
89872
89873 l_ccid := AcctDerRule_26(
89874 p_application_id => p_application_id
89875 , p_ae_header_id => l_ae_header_id
89876 , p_source_17 => p_source_17
89877 , x_transaction_coa_id => l_adr_transaction_coa_id
89878 , x_accounting_coa_id => l_adr_accounting_coa_id
89879 , x_value_type_code => l_adr_value_type_code
89880 , p_side => 'NA'
89881 );
89882
89883 xla_ae_lines_pkg.set_ccid(
89884 p_code_combination_id => l_ccid
89885 , p_value_type_code => l_adr_value_type_code
89886 , p_transaction_coa_id => l_adr_transaction_coa_id
89887 , p_accounting_coa_id => l_adr_accounting_coa_id
89888 , p_adr_code => 'AP_INVOICE_DIST'
89889 , p_adr_type_code => 'S'
89890 , p_component_type => l_component_type
89891 , p_component_code => l_component_code
89892 , p_component_type_code => l_component_type_code
89893 , p_component_appl_id => l_component_appl_id
89894 , p_amb_context_code => l_amb_context_code
89895 , p_side => 'NA'
89896 );
89897
89898
89899 --
89900 --
89901 END IF;
89902 --
89903 -- Bug 4922099
89904 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89905 (NVL(l_enc_upg_option, 'N') = 'O')
89906 ) AND
89907 (l_bflow_method_code = 'PRIOR_ENTRY')
89908 )
89909 THEN
89910 IF
89911 --
89912 1 = 2
89913 --
89914 THEN
89915 xla_accounting_err_pkg.build_message
89916 (p_appli_s_name => 'XLA'
89917 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89918 ,p_token_1 => 'LINE_NUMBER'
89919 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
89920 ,p_token_2 => 'LINE_TYPE_NAME'
89921 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
89922 l_component_type
89923 ,l_component_code
89924 ,l_component_type_code
89925 ,l_component_appl_id
89926 ,l_amb_context_code
89927 ,l_entity_code
89928 ,l_event_class_code
89929 )
89930 ,p_token_3 => 'OWNER'
89931 ,p_value_3 => xla_lookups_pkg.get_meaning(
89932 p_lookup_type => 'XLA_OWNER_TYPE'
89933 ,p_lookup_code => l_component_type_code
89934 )
89935 ,p_token_4 => 'PRODUCT_NAME'
89936 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89937 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89938 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89939 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89940 ,p_ae_header_id => NULL
89941 );
89942
89943 IF (C_LEVEL_ERROR>= g_log_level) THEN
89944 trace
89945 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89946 ,p_level => C_LEVEL_ERROR
89947 ,p_module => l_log_module);
89948 END IF;
89949 END IF;
89950 END IF;
89951 --
89952 --
89953 ------------------------------------------------------------------------------------------------
89954 -- 4219869 Business Flow
89955 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89956 -- Prior Entry. Currently, the following code is always generated.
89957 ------------------------------------------------------------------------------------------------
89958 XLA_AE_LINES_PKG.ValidateCurrentLine;
89959
89960 ------------------------------------------------------------------------------------
89961 -- 4219869 Business Flow
89962 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89963 ------------------------------------------------------------------------------------
89967 -- 4219869 Business Flow
89964 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89965
89966 ----------------------------------------------------------------------------------
89968 -- Update journal entry status -- Need to generate this within IF <condition>
89969 ----------------------------------------------------------------------------------
89970 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89971 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89972 ,p_balance_type_code => l_balance_type_code
89973 );
89974
89975 -------------------------------------------------------------------------------------------
89976 -- 4262811 - Generate the Accrual Reversal lines
89977 -------------------------------------------------------------------------------------------
89978 BEGIN
89979 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89980 (g_array_event(p_event_id).array_value_num('header_index'));
89981 IF l_acc_rev_flag IS NULL THEN
89982 l_acc_rev_flag := 'N';
89983 END IF;
89984 EXCEPTION
89985 WHEN OTHERS THEN
89986 l_acc_rev_flag := 'N';
89987 END;
89988 --
89989 IF (l_acc_rev_flag = 'Y') THEN
89990
89991 -- 4645092 ------------------------------------------------------------------------------
89992 -- To allow MPA report to determine if it should generate report process
89993 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89994 ------------------------------------------------------------------------------------------
89995
89996 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89997 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89998 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
89999 -- call ADRs
90000 -- Bug 4922099
90001 --
90002 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90003 (NVL(l_actual_upg_option, 'N') = 'O') OR
90004 (NVL(l_enc_upg_option, 'N') = 'O')
90005 )
90006 THEN
90007 NULL;
90008 --
90009 --
90010
90011 l_ccid := AcctDerRule_26(
90012 p_application_id => p_application_id
90013 , p_ae_header_id => l_ae_header_id
90014 , p_source_17 => p_source_17
90015 , x_transaction_coa_id => l_adr_transaction_coa_id
90016 , x_accounting_coa_id => l_adr_accounting_coa_id
90017 , x_value_type_code => l_adr_value_type_code
90018 , p_side => 'NA'
90019 );
90020
90021 xla_ae_lines_pkg.set_ccid(
90022 p_code_combination_id => l_ccid
90023 , p_value_type_code => l_adr_value_type_code
90024 , p_transaction_coa_id => l_adr_transaction_coa_id
90025 , p_accounting_coa_id => l_adr_accounting_coa_id
90026 , p_adr_code => 'AP_INVOICE_DIST'
90027 , p_adr_type_code => 'S'
90028 , p_component_type => l_component_type
90029 , p_component_code => l_component_code
90030 , p_component_type_code => l_component_type_code
90031 , p_component_appl_id => l_component_appl_id
90032 , p_amb_context_code => l_amb_context_code
90033 , p_side => 'NA'
90034 );
90035
90036
90037 --
90038 --
90039 END IF;
90040
90041 --
90042 -- Update the line information that should be overwritten
90043 --
90044 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90045 p_header_num => 1);
90046 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
90047
90048 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90049
90050 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
90051 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90052 END IF;
90053
90054 --
90055 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90056 --
90057 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90058 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
90059 ELSE
90060 ---------------------------------------------------------------------------------------------------
90061 -- 4262811a Switch Sign
90062 ---------------------------------------------------------------------------------------------------
90063 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
90064 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90065 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90066 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90067 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90068 -- 5132302
90069 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90070 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90071
90072 END IF;
90073
90074 -- 4955764
90078
90075 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90076 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90077
90079 XLA_AE_LINES_PKG.ValidateCurrentLine;
90080 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90081
90082 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90083 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90084 ,p_balance_type_code => l_balance_type_code);
90085
90086 END IF;
90087
90088 -----------------------------------------------------------------------------------------
90089 -- 4262811 Multiperiod Accounting
90090 -----------------------------------------------------------------------------------------
90091 -- No MPA option is assigned.
90092
90093
90094 END IF;
90095 END IF;
90096 --
90097
90098 --
90099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90100 trace
90101 (p_msg => 'END of AcctLineType_161'
90102 ,p_level => C_LEVEL_PROCEDURE
90103 ,p_module => l_log_module);
90104 END IF;
90105 --
90106 EXCEPTION
90107 WHEN xla_exceptions_pkg.application_exception THEN
90108 RAISE;
90109 WHEN OTHERS THEN
90110 xla_exceptions_pkg.raise_message
90111 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_161');
90112 END AcctLineType_161;
90113 --
90114
90115 ---------------------------------------
90116 --
90117 -- PRIVATE FUNCTION
90118 -- AcctLineType_162
90119 --
90120 ---------------------------------------
90121 PROCEDURE AcctLineType_162 (
90122 p_application_id IN NUMBER
90123 ,p_event_id IN NUMBER
90124 ,p_calculate_acctd_flag IN VARCHAR2
90125 ,p_calculate_g_l_flag IN VARCHAR2
90126 ,p_actual_flag IN OUT VARCHAR2
90127 ,p_balance_type_code OUT VARCHAR2
90128 ,p_gain_or_loss_ref OUT VARCHAR2
90129
90130 --Payment Distribution (Payment Rate) Ledger Amount
90131 , p_source_9 IN NUMBER
90132 --Invoice Distribution Account
90133 , p_source_17 IN NUMBER
90134 --Invoice Distribution Type
90135 , p_source_20 IN VARCHAR2
90136 , p_source_20_meaning IN VARCHAR2
90137 --When to Account for Payment Option
90138 , p_source_38 IN VARCHAR2
90139 --Payment Distribution Type
90140 , p_source_39 IN VARCHAR2
90141 , p_source_39_meaning IN VARCHAR2
90142 --Accounting Reversal Indicator
90143 , p_source_40 IN VARCHAR2
90144 --Payment Distribution Amount
90145 , p_source_41 IN NUMBER
90146 --Business Flow Accounts Payable Application Identifier
90147 , p_source_42 IN NUMBER
90148 --Payment Distribution Identifier
90149 , p_source_47 IN NUMBER
90150 --Distribution Link Type
90151 , p_source_48 IN VARCHAR2
90152 --Payment Currency Code
90153 , p_source_49 IN VARCHAR2
90154 --Override Accounted Amount Indicator
90155 , p_source_53 IN VARCHAR2
90156 , p_source_53_meaning IN VARCHAR2
90157 --Payment Supplier Identifier
90158 , p_source_54 IN NUMBER
90159 --Payment Supplier Site Identifier
90160 , p_source_55 IN NUMBER
90161 --Third Party Type
90162 , p_source_56 IN VARCHAR2
90163 --Payment Distribution Reversed Identifier
90164 , p_source_57 IN NUMBER
90165 --Invoice Distribution Tax Line Identifier
90166 , p_source_58 IN NUMBER
90167 --Invoice Distribution Summary Tax Line Identifier
90168 , p_source_59 IN NUMBER
90169 --Payment Type
90170 , p_source_60 IN VARCHAR2
90171 , p_source_60_meaning IN VARCHAR2
90172 --Invoice Distribution Amount of the Payment Distribution
90173 , p_source_61 IN NUMBER
90174 --Business Flow Invoice Distribution Type
90175 , p_source_62 IN VARCHAR2
90176 --Business Flow Invoice Entity Code
90177 , p_source_63 IN VARCHAR2
90178 --Business Flow Invoice Distribution Identifier
90179 , p_source_64 IN NUMBER
90180 --Business Flow Invoice Identifier
90181 , p_source_65 IN NUMBER
90182 --Invoice Distribution Tax Distribution Identifier from Tax
90183 , p_source_66 IN NUMBER
90184 --Payment Exchange Date
90185 , p_source_114 IN DATE
90186 --Payment Exchange Rate
90187 , p_source_115 IN NUMBER
90188 --Payment Exchange Rate Type
90189 , p_source_116 IN VARCHAR2
90190 )
90191 IS
90192
90193 l_component_type VARCHAR2(80);
90194 l_component_code VARCHAR2(30);
90195 l_component_type_code VARCHAR2(1);
90196 l_component_appl_id INTEGER;
90197 l_amb_context_code VARCHAR2(30);
90198 l_entity_code VARCHAR2(30);
90199 l_event_class_code VARCHAR2(30);
90200 l_ae_header_id NUMBER;
90201 l_event_type_code VARCHAR2(30);
90202 l_line_definition_code VARCHAR2(30);
90203 l_line_definition_owner_code VARCHAR2(1);
90204 --
90205 -- adr variables
90206 l_segment VARCHAR2(30);
90207 l_ccid NUMBER;
90208 l_adr_transaction_coa_id NUMBER;
90209 l_adr_accounting_coa_id NUMBER;
90210 l_adr_flexfield_segment_code VARCHAR2(30);
90211 l_adr_flex_value_set_id NUMBER;
90215
90212 l_adr_value_type_code VARCHAR2(30);
90213 l_adr_value_combination_id NUMBER;
90214 l_adr_value_segment_code VARCHAR2(30);
90216 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
90217 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
90218 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
90219 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
90220
90221 -- 4262811 Variables ------------------------------------------------------------------------------------------
90222 l_entered_amt_idx NUMBER;
90223 l_accted_amt_idx NUMBER;
90224 l_acc_rev_flag VARCHAR2(1);
90225 l_accrual_line_num NUMBER;
90226 l_tmp_amt NUMBER;
90227 l_acc_rev_natural_side_code VARCHAR2(1);
90228
90229 l_num_entries NUMBER;
90230 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
90231 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
90232 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
90233 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
90234 l_recog_line_1 NUMBER;
90235 l_recog_line_2 NUMBER;
90236
90237 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
90238 l_bflow_applied_to_amt NUMBER; -- 5132302
90239 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
90240
90241 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90242
90243 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
90244 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
90245
90246 ---------------------------------------------------------------------------------------------------------------
90247
90248
90249 --
90250 -- bulk performance
90251 --
90252 l_balance_type_code VARCHAR2(1);
90253 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
90254 l_log_module VARCHAR2(240);
90255
90256 --
90257 -- Upgrade strategy
90258 --
90259 l_actual_upg_option VARCHAR2(1);
90260 l_enc_upg_option VARCHAR2(1);
90261
90262 --
90263 BEGIN
90264 --
90265 IF g_log_enabled THEN
90266 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
90267 END IF;
90268 --
90269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90270
90271 trace
90272 (p_msg => 'BEGIN of AcctLineType_162'
90273 ,p_level => C_LEVEL_PROCEDURE
90274 ,p_module => l_log_module);
90275
90276 END IF;
90277 --
90278 l_component_type := 'AMB_JLT';
90279 l_component_code := 'AP_RECOV_TAX_PMT';
90280 l_component_type_code := 'S';
90281 l_component_appl_id := 200;
90282 l_amb_context_code := 'DEFAULT';
90283 l_entity_code := 'AP_PAYMENTS';
90284 l_event_class_code := 'PAYMENTS';
90285 l_event_type_code := 'PAYMENTS_ALL';
90286 l_line_definition_owner_code := 'S';
90287 l_line_definition_code := 'CASH_PAYMENTS_ALL';
90288 --
90289 l_balance_type_code := 'A';
90290 l_segment := NULL;
90291 l_ccid := NULL;
90292 l_adr_transaction_coa_id := NULL;
90293 l_adr_accounting_coa_id := NULL;
90294 l_adr_flexfield_segment_code := NULL;
90295 l_adr_flex_value_set_id := NULL;
90296 l_adr_value_type_code := NULL;
90297 l_adr_value_combination_id := NULL;
90298 l_adr_value_segment_code := NULL;
90299
90300 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
90301 l_bflow_class_code := ''; -- 4219869 Business Flow
90302 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
90303 l_budgetary_control_flag := 'N';
90304
90305 l_bflow_applied_to_amt_idx := NULL; -- 5132302
90306 l_bflow_applied_to_amt := NULL; -- 5132302
90307 l_entered_amt_idx := NULL; -- 4262811
90308 l_accted_amt_idx := NULL; -- 4262811
90309 l_acc_rev_flag := NULL; -- 4262811
90310 l_accrual_line_num := NULL; -- 4262811
90311 l_tmp_amt := NULL; -- 4262811
90312 --
90313
90314 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90315 l_balance_type_code <> 'B' THEN
90316 IF NVL(p_source_38,'
90317 ') <> 'CLEAR_CLEAR' AND
90318 NVL(p_source_20,'
90319 ') = 'REC_TAX' AND
90320 (NVL(p_source_39,'
90321 ') = 'CASH' OR
90322 NVL(p_source_39,'
90323 ') = 'AWT' OR
90324 NVL(p_source_39,'
90325 ') = 'DISCOUNT') AND
90326 NVL(p_source_60,'
90327 ') <> 'R'
90328 THEN
90329
90330 --
90331 XLA_AE_LINES_PKG.SetNewLine;
90332
90333 p_balance_type_code := l_balance_type_code;
90334 -- set the flag so later we will know whether the gain loss line needs to be created
90335
90336 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90337 p_actual_flag :='A';
90338 END IF;
90339
90340 --
90341 -- bulk performance
90342 --
90343 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90347 --
90344 p_header_num => 0); -- 4262811
90345 --
90346 -- set accounting line options
90348 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90349 p_natural_side_code => 'D'
90350 , p_gain_or_loss_flag => 'N'
90351 , p_gl_transfer_mode_code => 'S'
90352 , p_acct_entry_type_code => 'A'
90353 , p_switch_side_flag => 'Y'
90354 , p_merge_duplicate_code => 'A'
90355 );
90356 --
90357 l_acc_rev_natural_side_code := 'C'; -- 4262811
90358 --
90359 --
90360 -- set accounting line type info
90361 --
90362 xla_ae_lines_pkg.SetAcctLineType
90363 (p_component_type => l_component_type
90364 ,p_event_type_code => l_event_type_code
90365 ,p_line_definition_owner_code => l_line_definition_owner_code
90366 ,p_line_definition_code => l_line_definition_code
90367 ,p_accounting_line_code => l_component_code
90368 ,p_accounting_line_type_code => l_component_type_code
90369 ,p_accounting_line_appl_id => l_component_appl_id
90370 ,p_amb_context_code => l_amb_context_code
90371 ,p_entity_code => l_entity_code
90372 ,p_event_class_code => l_event_class_code);
90373 --
90374 -- set accounting class
90375 --
90376 xla_ae_lines_pkg.SetAcctClass(
90377 p_accounting_class_code => 'RTAX'
90378 , p_ae_header_id => l_ae_header_id
90379 );
90380
90381 --
90382 -- set rounding class
90383 --
90384 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90385 'RTAX';
90386
90387 --
90388 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90389 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90390 --
90391 -- bulk performance
90392 --
90393 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90394
90395 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90396 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90397
90398 -- 4955764
90399 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90400 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90401
90402 -- 4458381 Public Sector Enh
90403
90404 --
90405 -- set accounting attributes for the line type
90406 --
90407 l_entered_amt_idx := 10;
90408 l_accted_amt_idx := 15;
90409 l_bflow_applied_to_amt_idx := 2; -- 5132302
90410 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90411 l_rec_acct_attrs.array_char_value(1) := p_source_40;
90412 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
90413 l_rec_acct_attrs.array_num_value(2) := p_source_61;
90414 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
90415 l_rec_acct_attrs.array_num_value(3) := p_source_42;
90416 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90417 l_rec_acct_attrs.array_char_value(4) := p_source_62;
90418 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
90419 l_rec_acct_attrs.array_char_value(5) := p_source_63;
90420 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
90421 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
90422 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90423 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
90424 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
90425 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
90426 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
90427 l_rec_acct_attrs.array_char_value(9) := p_source_48;
90428 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
90429 l_rec_acct_attrs.array_num_value(10) := p_source_41;
90430 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
90431 l_rec_acct_attrs.array_char_value(11) := p_source_49;
90432 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
90433 l_rec_acct_attrs.array_date_value(12) := p_source_114;
90434 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
90435 l_rec_acct_attrs.array_num_value(13) := p_source_115;
90436 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
90437 l_rec_acct_attrs.array_char_value(14) := p_source_116;
90438 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
90439 l_rec_acct_attrs.array_num_value(15) := p_source_9;
90440 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
90441 l_rec_acct_attrs.array_char_value(16) := p_source_53;
90442 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
90443 l_rec_acct_attrs.array_num_value(17) := p_source_54;
90444 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
90445 l_rec_acct_attrs.array_num_value(18) := p_source_55;
90446 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
90447 l_rec_acct_attrs.array_char_value(19) := p_source_56;
90448 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
90452 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
90449 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
90450 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
90451 l_rec_acct_attrs.array_char_value(21) := p_source_48;
90453 l_rec_acct_attrs.array_num_value(22) := p_source_58;
90454 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
90455 l_rec_acct_attrs.array_num_value(23) := p_source_66;
90456 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
90457 l_rec_acct_attrs.array_num_value(24) := p_source_59;
90458
90459 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90460 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90461
90462 ---------------------------------------------------------------------------------------------------------------
90463 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90464 ---------------------------------------------------------------------------------------------------------------
90465 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90466
90467 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90468 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90469
90470 IF xla_accounting_cache_pkg.GetValueChar
90471 (p_source_code => 'LEDGER_CATEGORY_CODE'
90472 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90473 AND l_bflow_method_code = 'PRIOR_ENTRY'
90474 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90475 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90476 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90477 )
90478 THEN
90479 xla_ae_lines_pkg.BflowUpgEntry
90480 (p_business_method_code => l_bflow_method_code
90481 ,p_business_class_code => l_bflow_class_code
90482 ,p_balance_type => l_balance_type_code);
90483 ELSE
90484 NULL;
90485 -- No business flow processing for business flow method of NONE.
90486 END IF;
90487
90488 --
90489 -- call analytical criteria
90490 --
90491
90492 --
90493 -- call description
90494 --
90495 -- No description or it is inherited.
90496 --
90497 -- call ADRs
90498 -- Bug 4922099
90499 --
90500 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90501 (NVL(l_actual_upg_option, 'N') = 'O') OR
90502 (NVL(l_enc_upg_option, 'N') = 'O')
90503 )
90504 THEN
90505 NULL;
90506 --
90507 --
90508
90509 l_ccid := AcctDerRule_26(
90510 p_application_id => p_application_id
90511 , p_ae_header_id => l_ae_header_id
90512 , p_source_17 => p_source_17
90513 , x_transaction_coa_id => l_adr_transaction_coa_id
90514 , x_accounting_coa_id => l_adr_accounting_coa_id
90515 , x_value_type_code => l_adr_value_type_code
90516 , p_side => 'NA'
90517 );
90518
90519 xla_ae_lines_pkg.set_ccid(
90520 p_code_combination_id => l_ccid
90521 , p_value_type_code => l_adr_value_type_code
90522 , p_transaction_coa_id => l_adr_transaction_coa_id
90523 , p_accounting_coa_id => l_adr_accounting_coa_id
90524 , p_adr_code => 'AP_INVOICE_DIST'
90525 , p_adr_type_code => 'S'
90526 , p_component_type => l_component_type
90527 , p_component_code => l_component_code
90528 , p_component_type_code => l_component_type_code
90529 , p_component_appl_id => l_component_appl_id
90530 , p_amb_context_code => l_amb_context_code
90531 , p_side => 'NA'
90532 );
90533
90534
90535 --
90536 --
90537 END IF;
90538 --
90539 -- Bug 4922099
90540 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90541 (NVL(l_enc_upg_option, 'N') = 'O')
90542 ) AND
90543 (l_bflow_method_code = 'PRIOR_ENTRY')
90544 )
90545 THEN
90546 IF
90547 --
90548 1 = 2
90549 --
90550 THEN
90551 xla_accounting_err_pkg.build_message
90552 (p_appli_s_name => 'XLA'
90553 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90554 ,p_token_1 => 'LINE_NUMBER'
90555 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
90556 ,p_token_2 => 'LINE_TYPE_NAME'
90557 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
90558 l_component_type
90559 ,l_component_code
90560 ,l_component_type_code
90561 ,l_component_appl_id
90562 ,l_amb_context_code
90566 ,p_token_3 => 'OWNER'
90563 ,l_entity_code
90564 ,l_event_class_code
90565 )
90567 ,p_value_3 => xla_lookups_pkg.get_meaning(
90568 p_lookup_type => 'XLA_OWNER_TYPE'
90569 ,p_lookup_code => l_component_type_code
90570 )
90571 ,p_token_4 => 'PRODUCT_NAME'
90572 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90573 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90574 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90575 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90576 ,p_ae_header_id => NULL
90577 );
90578
90579 IF (C_LEVEL_ERROR>= g_log_level) THEN
90580 trace
90581 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90582 ,p_level => C_LEVEL_ERROR
90583 ,p_module => l_log_module);
90584 END IF;
90585 END IF;
90586 END IF;
90587 --
90588 --
90589 ------------------------------------------------------------------------------------------------
90590 -- 4219869 Business Flow
90591 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90592 -- Prior Entry. Currently, the following code is always generated.
90593 ------------------------------------------------------------------------------------------------
90594 XLA_AE_LINES_PKG.ValidateCurrentLine;
90595
90596 ------------------------------------------------------------------------------------
90597 -- 4219869 Business Flow
90598 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90599 ------------------------------------------------------------------------------------
90600 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90601
90602 ----------------------------------------------------------------------------------
90603 -- 4219869 Business Flow
90604 -- Update journal entry status -- Need to generate this within IF <condition>
90605 ----------------------------------------------------------------------------------
90606 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90607 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90608 ,p_balance_type_code => l_balance_type_code
90609 );
90610
90611 -------------------------------------------------------------------------------------------
90612 -- 4262811 - Generate the Accrual Reversal lines
90613 -------------------------------------------------------------------------------------------
90614 BEGIN
90615 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90616 (g_array_event(p_event_id).array_value_num('header_index'));
90617 IF l_acc_rev_flag IS NULL THEN
90618 l_acc_rev_flag := 'N';
90619 END IF;
90620 EXCEPTION
90621 WHEN OTHERS THEN
90622 l_acc_rev_flag := 'N';
90623 END;
90624 --
90625 IF (l_acc_rev_flag = 'Y') THEN
90626
90627 -- 4645092 ------------------------------------------------------------------------------
90628 -- To allow MPA report to determine if it should generate report process
90629 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90630 ------------------------------------------------------------------------------------------
90631
90632 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90633 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90634 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
90635 -- call ADRs
90636 -- Bug 4922099
90637 --
90638 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90639 (NVL(l_actual_upg_option, 'N') = 'O') OR
90640 (NVL(l_enc_upg_option, 'N') = 'O')
90641 )
90642 THEN
90643 NULL;
90644 --
90645 --
90646
90647 l_ccid := AcctDerRule_26(
90648 p_application_id => p_application_id
90649 , p_ae_header_id => l_ae_header_id
90650 , p_source_17 => p_source_17
90651 , x_transaction_coa_id => l_adr_transaction_coa_id
90652 , x_accounting_coa_id => l_adr_accounting_coa_id
90653 , x_value_type_code => l_adr_value_type_code
90654 , p_side => 'NA'
90655 );
90656
90657 xla_ae_lines_pkg.set_ccid(
90658 p_code_combination_id => l_ccid
90659 , p_value_type_code => l_adr_value_type_code
90660 , p_transaction_coa_id => l_adr_transaction_coa_id
90661 , p_accounting_coa_id => l_adr_accounting_coa_id
90662 , p_adr_code => 'AP_INVOICE_DIST'
90663 , p_adr_type_code => 'S'
90664 , p_component_type => l_component_type
90668 , p_amb_context_code => l_amb_context_code
90665 , p_component_code => l_component_code
90666 , p_component_type_code => l_component_type_code
90667 , p_component_appl_id => l_component_appl_id
90669 , p_side => 'NA'
90670 );
90671
90672
90673 --
90674 --
90675 END IF;
90676
90677 --
90678 -- Update the line information that should be overwritten
90679 --
90680 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90681 p_header_num => 1);
90682 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
90683
90684 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90685
90686 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
90687 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90688 END IF;
90689
90690 --
90691 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90692 --
90693 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90694 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
90695 ELSE
90696 ---------------------------------------------------------------------------------------------------
90697 -- 4262811a Switch Sign
90698 ---------------------------------------------------------------------------------------------------
90699 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
90700 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90701 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90702 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90703 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90704 -- 5132302
90705 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90706 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90707
90708 END IF;
90709
90710 -- 4955764
90711 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90712 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90713
90714
90715 XLA_AE_LINES_PKG.ValidateCurrentLine;
90716 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90717
90718 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90719 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90720 ,p_balance_type_code => l_balance_type_code);
90721
90722 END IF;
90723
90724 -----------------------------------------------------------------------------------------
90725 -- 4262811 Multiperiod Accounting
90726 -----------------------------------------------------------------------------------------
90727 -- No MPA option is assigned.
90728
90729
90730 END IF;
90731 END IF;
90732 --
90733
90734 --
90735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90736 trace
90737 (p_msg => 'END of AcctLineType_162'
90738 ,p_level => C_LEVEL_PROCEDURE
90739 ,p_module => l_log_module);
90740 END IF;
90741 --
90742 EXCEPTION
90743 WHEN xla_exceptions_pkg.application_exception THEN
90744 RAISE;
90745 WHEN OTHERS THEN
90746 xla_exceptions_pkg.raise_message
90747 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_162');
90748 END AcctLineType_162;
90749 --
90750
90751 ---------------------------------------
90752 --
90753 -- PRIVATE FUNCTION
90754 -- AcctLineType_163
90755 --
90756 ---------------------------------------
90757 PROCEDURE AcctLineType_163 (
90758 p_application_id IN NUMBER
90759 ,p_event_id IN NUMBER
90760 ,p_calculate_acctd_flag IN VARCHAR2
90761 ,p_calculate_g_l_flag IN VARCHAR2
90762 ,p_actual_flag IN OUT VARCHAR2
90763 ,p_balance_type_code OUT VARCHAR2
90764 ,p_gain_or_loss_ref OUT VARCHAR2
90765
90766 --Payment Distribution (Payment Rate) Ledger Amount
90767 , p_source_9 IN NUMBER
90768 --Invoice Distribution Account
90769 , p_source_17 IN NUMBER
90770 --Invoice Distribution Type
90771 , p_source_20 IN VARCHAR2
90772 , p_source_20_meaning IN VARCHAR2
90773 --When to Account for Payment Option
90774 , p_source_38 IN VARCHAR2
90775 --Payment Distribution Type
90776 , p_source_39 IN VARCHAR2
90777 , p_source_39_meaning IN VARCHAR2
90778 --Accounting Reversal Indicator
90779 , p_source_40 IN VARCHAR2
90780 --Payment Distribution Amount
90781 , p_source_41 IN NUMBER
90782 --Business Flow Accounts Payable Application Identifier
90783 , p_source_42 IN NUMBER
90784 --Payment Distribution Identifier
90785 , p_source_47 IN NUMBER
90786 --Distribution Link Type
90787 , p_source_48 IN VARCHAR2
90788 --Payment Currency Code
90792 , p_source_53_meaning IN VARCHAR2
90789 , p_source_49 IN VARCHAR2
90790 --Override Accounted Amount Indicator
90791 , p_source_53 IN VARCHAR2
90793 --Payment Supplier Identifier
90794 , p_source_54 IN NUMBER
90795 --Payment Supplier Site Identifier
90796 , p_source_55 IN NUMBER
90797 --Third Party Type
90798 , p_source_56 IN VARCHAR2
90799 --Payment Distribution Reversed Identifier
90800 , p_source_57 IN NUMBER
90801 --Invoice Distribution Tax Line Identifier
90802 , p_source_58 IN NUMBER
90803 --Invoice Distribution Summary Tax Line Identifier
90804 , p_source_59 IN NUMBER
90805 --Payment Type
90806 , p_source_60 IN VARCHAR2
90807 , p_source_60_meaning IN VARCHAR2
90808 --Business Flow Invoice Distribution Type
90809 , p_source_62 IN VARCHAR2
90810 --Business Flow Invoice Entity Code
90811 , p_source_63 IN VARCHAR2
90812 --Business Flow Invoice Distribution Identifier
90813 , p_source_64 IN NUMBER
90814 --Business Flow Invoice Identifier
90815 , p_source_65 IN NUMBER
90816 --Invoice Distribution Tax Distribution Identifier from Tax
90817 , p_source_66 IN NUMBER
90818 --Payment Exchange Date
90819 , p_source_114 IN DATE
90820 --Payment Exchange Rate
90821 , p_source_115 IN NUMBER
90822 --Payment Exchange Rate Type
90823 , p_source_116 IN VARCHAR2
90824 )
90825 IS
90826
90827 l_component_type VARCHAR2(80);
90828 l_component_code VARCHAR2(30);
90829 l_component_type_code VARCHAR2(1);
90830 l_component_appl_id INTEGER;
90831 l_amb_context_code VARCHAR2(30);
90832 l_entity_code VARCHAR2(30);
90833 l_event_class_code VARCHAR2(30);
90834 l_ae_header_id NUMBER;
90835 l_event_type_code VARCHAR2(30);
90836 l_line_definition_code VARCHAR2(30);
90837 l_line_definition_owner_code VARCHAR2(1);
90838 --
90839 -- adr variables
90840 l_segment VARCHAR2(30);
90841 l_ccid NUMBER;
90842 l_adr_transaction_coa_id NUMBER;
90843 l_adr_accounting_coa_id NUMBER;
90844 l_adr_flexfield_segment_code VARCHAR2(30);
90845 l_adr_flex_value_set_id NUMBER;
90846 l_adr_value_type_code VARCHAR2(30);
90847 l_adr_value_combination_id NUMBER;
90848 l_adr_value_segment_code VARCHAR2(30);
90849
90850 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
90851 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
90852 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
90853 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
90854
90855 -- 4262811 Variables ------------------------------------------------------------------------------------------
90856 l_entered_amt_idx NUMBER;
90857 l_accted_amt_idx NUMBER;
90858 l_acc_rev_flag VARCHAR2(1);
90859 l_accrual_line_num NUMBER;
90860 l_tmp_amt NUMBER;
90861 l_acc_rev_natural_side_code VARCHAR2(1);
90862
90863 l_num_entries NUMBER;
90864 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
90865 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
90866 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
90867 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
90868 l_recog_line_1 NUMBER;
90869 l_recog_line_2 NUMBER;
90870
90871 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
90872 l_bflow_applied_to_amt NUMBER; -- 5132302
90873 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
90874
90875 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90876
90877 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
90878 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
90879
90880 ---------------------------------------------------------------------------------------------------------------
90881
90882
90883 --
90884 -- bulk performance
90885 --
90886 l_balance_type_code VARCHAR2(1);
90887 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
90888 l_log_module VARCHAR2(240);
90889
90890 --
90891 -- Upgrade strategy
90892 --
90893 l_actual_upg_option VARCHAR2(1);
90894 l_enc_upg_option VARCHAR2(1);
90895
90896 --
90897 BEGIN
90898 --
90899 IF g_log_enabled THEN
90900 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
90901 END IF;
90902 --
90903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90904
90905 trace
90906 (p_msg => 'BEGIN of AcctLineType_163'
90907 ,p_level => C_LEVEL_PROCEDURE
90908 ,p_module => l_log_module);
90909
90910 END IF;
90911 --
90912 l_component_type := 'AMB_JLT';
90913 l_component_code := 'AP_RECOV_TAX_REF';
90914 l_component_type_code := 'S';
90915 l_component_appl_id := 200;
90916 l_amb_context_code := 'DEFAULT';
90917 l_entity_code := 'AP_PAYMENTS';
90921 l_line_definition_code := 'CASH_REFUNDS_ALL';
90918 l_event_class_code := 'REFUNDS';
90919 l_event_type_code := 'REFUNDS_ALL';
90920 l_line_definition_owner_code := 'S';
90922 --
90923 l_balance_type_code := 'A';
90924 l_segment := NULL;
90925 l_ccid := NULL;
90926 l_adr_transaction_coa_id := NULL;
90927 l_adr_accounting_coa_id := NULL;
90928 l_adr_flexfield_segment_code := NULL;
90929 l_adr_flex_value_set_id := NULL;
90930 l_adr_value_type_code := NULL;
90931 l_adr_value_combination_id := NULL;
90932 l_adr_value_segment_code := NULL;
90933
90934 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
90935 l_bflow_class_code := ''; -- 4219869 Business Flow
90936 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
90937 l_budgetary_control_flag := 'N';
90938
90939 l_bflow_applied_to_amt_idx := NULL; -- 5132302
90940 l_bflow_applied_to_amt := NULL; -- 5132302
90941 l_entered_amt_idx := NULL; -- 4262811
90942 l_accted_amt_idx := NULL; -- 4262811
90943 l_acc_rev_flag := NULL; -- 4262811
90944 l_accrual_line_num := NULL; -- 4262811
90945 l_tmp_amt := NULL; -- 4262811
90946 --
90947
90948 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90949 l_balance_type_code <> 'B' THEN
90950 IF NVL(p_source_38,'
90951 ') <> 'CLEAR_CLEAR' AND
90952 NVL(p_source_20,'
90953 ') = 'REC_TAX' AND
90954 (NVL(p_source_39,'
90955 ') = 'CASH' OR
90956 NVL(p_source_39,'
90957 ') = 'DISCOUNT') AND
90958 NVL(p_source_60,'
90959 ') = 'R'
90960 THEN
90961
90962 --
90963 XLA_AE_LINES_PKG.SetNewLine;
90964
90965 p_balance_type_code := l_balance_type_code;
90966 -- set the flag so later we will know whether the gain loss line needs to be created
90967
90968 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90969 p_actual_flag :='A';
90970 END IF;
90971
90972 --
90973 -- bulk performance
90974 --
90975 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90976 p_header_num => 0); -- 4262811
90977 --
90978 -- set accounting line options
90979 --
90980 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90981 p_natural_side_code => 'D'
90982 , p_gain_or_loss_flag => 'N'
90983 , p_gl_transfer_mode_code => 'S'
90984 , p_acct_entry_type_code => 'A'
90985 , p_switch_side_flag => 'Y'
90986 , p_merge_duplicate_code => 'A'
90987 );
90988 --
90989 l_acc_rev_natural_side_code := 'C'; -- 4262811
90990 --
90991 --
90992 -- set accounting line type info
90993 --
90994 xla_ae_lines_pkg.SetAcctLineType
90995 (p_component_type => l_component_type
90996 ,p_event_type_code => l_event_type_code
90997 ,p_line_definition_owner_code => l_line_definition_owner_code
90998 ,p_line_definition_code => l_line_definition_code
90999 ,p_accounting_line_code => l_component_code
91000 ,p_accounting_line_type_code => l_component_type_code
91001 ,p_accounting_line_appl_id => l_component_appl_id
91002 ,p_amb_context_code => l_amb_context_code
91003 ,p_entity_code => l_entity_code
91004 ,p_event_class_code => l_event_class_code);
91005 --
91006 -- set accounting class
91007 --
91008 xla_ae_lines_pkg.SetAcctClass(
91009 p_accounting_class_code => 'RTAX'
91010 , p_ae_header_id => l_ae_header_id
91011 );
91012
91013 --
91014 -- set rounding class
91015 --
91016 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91017 'RTAX';
91018
91019 --
91020 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91021 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91022 --
91023 -- bulk performance
91024 --
91025 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91026
91027 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91028 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91029
91030 -- 4955764
91031 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91032 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91033
91034 -- 4458381 Public Sector Enh
91035
91036 --
91037 -- set accounting attributes for the line type
91038 --
91039 l_entered_amt_idx := 9;
91040 l_accted_amt_idx := 14;
91041 l_bflow_applied_to_amt_idx := NULL; -- 5132302
91042 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91043 l_rec_acct_attrs.array_char_value(1) := p_source_40;
91044 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
91048 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
91045 l_rec_acct_attrs.array_num_value(2) := p_source_42;
91046 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91047 l_rec_acct_attrs.array_char_value(3) := p_source_62;
91049 l_rec_acct_attrs.array_char_value(4) := p_source_63;
91050 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
91051 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
91052 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91053 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
91054 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
91055 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
91056 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
91057 l_rec_acct_attrs.array_char_value(8) := p_source_48;
91058 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
91059 l_rec_acct_attrs.array_num_value(9) := p_source_41;
91060 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
91061 l_rec_acct_attrs.array_char_value(10) := p_source_49;
91062 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
91063 l_rec_acct_attrs.array_date_value(11) := p_source_114;
91064 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
91065 l_rec_acct_attrs.array_num_value(12) := p_source_115;
91066 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
91067 l_rec_acct_attrs.array_char_value(13) := p_source_116;
91068 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
91069 l_rec_acct_attrs.array_num_value(14) := p_source_9;
91070 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
91071 l_rec_acct_attrs.array_char_value(15) := p_source_53;
91072 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
91073 l_rec_acct_attrs.array_num_value(16) := p_source_54;
91074 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
91075 l_rec_acct_attrs.array_num_value(17) := p_source_55;
91076 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
91077 l_rec_acct_attrs.array_char_value(18) := p_source_56;
91078 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
91079 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
91080 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
91081 l_rec_acct_attrs.array_char_value(20) := p_source_48;
91082 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
91083 l_rec_acct_attrs.array_num_value(21) := p_source_58;
91084 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
91085 l_rec_acct_attrs.array_num_value(22) := p_source_66;
91086 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
91087 l_rec_acct_attrs.array_num_value(23) := p_source_59;
91088
91089 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91090 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91091
91092 ---------------------------------------------------------------------------------------------------------------
91093 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91094 ---------------------------------------------------------------------------------------------------------------
91095 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91096
91097 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91098 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91099
91100 IF xla_accounting_cache_pkg.GetValueChar
91101 (p_source_code => 'LEDGER_CATEGORY_CODE'
91102 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91103 AND l_bflow_method_code = 'PRIOR_ENTRY'
91104 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91105 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91106 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91107 )
91108 THEN
91109 xla_ae_lines_pkg.BflowUpgEntry
91110 (p_business_method_code => l_bflow_method_code
91111 ,p_business_class_code => l_bflow_class_code
91112 ,p_balance_type => l_balance_type_code);
91113 ELSE
91114 NULL;
91115 -- No business flow processing for business flow method of NONE.
91116 END IF;
91117
91118 --
91119 -- call analytical criteria
91120 --
91121
91122 --
91123 -- call description
91124 --
91125 -- No description or it is inherited.
91126 --
91127 -- call ADRs
91128 -- Bug 4922099
91129 --
91130 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91131 (NVL(l_actual_upg_option, 'N') = 'O') OR
91132 (NVL(l_enc_upg_option, 'N') = 'O')
91133 )
91134 THEN
91135 NULL;
91136 --
91137 --
91138
91139 l_ccid := AcctDerRule_26(
91140 p_application_id => p_application_id
91141 , p_ae_header_id => l_ae_header_id
91142 , p_source_17 => p_source_17
91143 , x_transaction_coa_id => l_adr_transaction_coa_id
91144 , x_accounting_coa_id => l_adr_accounting_coa_id
91145 , x_value_type_code => l_adr_value_type_code
91146 , p_side => 'NA'
91147 );
91148
91149 xla_ae_lines_pkg.set_ccid(
91153 , p_accounting_coa_id => l_adr_accounting_coa_id
91150 p_code_combination_id => l_ccid
91151 , p_value_type_code => l_adr_value_type_code
91152 , p_transaction_coa_id => l_adr_transaction_coa_id
91154 , p_adr_code => 'AP_INVOICE_DIST'
91155 , p_adr_type_code => 'S'
91156 , p_component_type => l_component_type
91157 , p_component_code => l_component_code
91158 , p_component_type_code => l_component_type_code
91159 , p_component_appl_id => l_component_appl_id
91160 , p_amb_context_code => l_amb_context_code
91161 , p_side => 'NA'
91162 );
91163
91164
91165 --
91166 --
91167 END IF;
91168 --
91169 -- Bug 4922099
91170 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91171 (NVL(l_enc_upg_option, 'N') = 'O')
91172 ) AND
91173 (l_bflow_method_code = 'PRIOR_ENTRY')
91174 )
91175 THEN
91176 IF
91177 --
91178 1 = 2
91179 --
91180 THEN
91181 xla_accounting_err_pkg.build_message
91182 (p_appli_s_name => 'XLA'
91183 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91184 ,p_token_1 => 'LINE_NUMBER'
91185 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
91186 ,p_token_2 => 'LINE_TYPE_NAME'
91187 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
91188 l_component_type
91189 ,l_component_code
91190 ,l_component_type_code
91191 ,l_component_appl_id
91192 ,l_amb_context_code
91193 ,l_entity_code
91194 ,l_event_class_code
91195 )
91196 ,p_token_3 => 'OWNER'
91197 ,p_value_3 => xla_lookups_pkg.get_meaning(
91198 p_lookup_type => 'XLA_OWNER_TYPE'
91199 ,p_lookup_code => l_component_type_code
91200 )
91201 ,p_token_4 => 'PRODUCT_NAME'
91202 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91203 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91204 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91205 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91206 ,p_ae_header_id => NULL
91207 );
91208
91209 IF (C_LEVEL_ERROR>= g_log_level) THEN
91210 trace
91211 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91212 ,p_level => C_LEVEL_ERROR
91213 ,p_module => l_log_module);
91214 END IF;
91215 END IF;
91216 END IF;
91217 --
91218 --
91219 ------------------------------------------------------------------------------------------------
91220 -- 4219869 Business Flow
91221 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91222 -- Prior Entry. Currently, the following code is always generated.
91223 ------------------------------------------------------------------------------------------------
91224 XLA_AE_LINES_PKG.ValidateCurrentLine;
91225
91226 ------------------------------------------------------------------------------------
91227 -- 4219869 Business Flow
91228 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91229 ------------------------------------------------------------------------------------
91230 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91231
91232 ----------------------------------------------------------------------------------
91233 -- 4219869 Business Flow
91234 -- Update journal entry status -- Need to generate this within IF <condition>
91235 ----------------------------------------------------------------------------------
91236 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91237 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91238 ,p_balance_type_code => l_balance_type_code
91239 );
91240
91241 -------------------------------------------------------------------------------------------
91242 -- 4262811 - Generate the Accrual Reversal lines
91243 -------------------------------------------------------------------------------------------
91244 BEGIN
91248 l_acc_rev_flag := 'N';
91245 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91246 (g_array_event(p_event_id).array_value_num('header_index'));
91247 IF l_acc_rev_flag IS NULL THEN
91249 END IF;
91250 EXCEPTION
91251 WHEN OTHERS THEN
91252 l_acc_rev_flag := 'N';
91253 END;
91254 --
91255 IF (l_acc_rev_flag = 'Y') THEN
91256
91257 -- 4645092 ------------------------------------------------------------------------------
91258 -- To allow MPA report to determine if it should generate report process
91259 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91260 ------------------------------------------------------------------------------------------
91261
91262 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91263 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91264 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
91265 -- call ADRs
91266 -- Bug 4922099
91267 --
91268 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91269 (NVL(l_actual_upg_option, 'N') = 'O') OR
91270 (NVL(l_enc_upg_option, 'N') = 'O')
91271 )
91272 THEN
91273 NULL;
91274 --
91275 --
91276
91277 l_ccid := AcctDerRule_26(
91278 p_application_id => p_application_id
91279 , p_ae_header_id => l_ae_header_id
91280 , p_source_17 => p_source_17
91281 , x_transaction_coa_id => l_adr_transaction_coa_id
91282 , x_accounting_coa_id => l_adr_accounting_coa_id
91283 , x_value_type_code => l_adr_value_type_code
91284 , p_side => 'NA'
91285 );
91286
91287 xla_ae_lines_pkg.set_ccid(
91288 p_code_combination_id => l_ccid
91289 , p_value_type_code => l_adr_value_type_code
91290 , p_transaction_coa_id => l_adr_transaction_coa_id
91291 , p_accounting_coa_id => l_adr_accounting_coa_id
91292 , p_adr_code => 'AP_INVOICE_DIST'
91293 , p_adr_type_code => 'S'
91294 , p_component_type => l_component_type
91295 , p_component_code => l_component_code
91296 , p_component_type_code => l_component_type_code
91297 , p_component_appl_id => l_component_appl_id
91298 , p_amb_context_code => l_amb_context_code
91299 , p_side => 'NA'
91300 );
91301
91302
91303 --
91304 --
91305 END IF;
91306
91307 --
91308 -- Update the line information that should be overwritten
91309 --
91310 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91311 p_header_num => 1);
91312 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
91313
91314 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91315
91316 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
91317 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91318 END IF;
91319
91320 --
91321 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91322 --
91323 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91324 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
91325 ELSE
91326 ---------------------------------------------------------------------------------------------------
91327 -- 4262811a Switch Sign
91328 ---------------------------------------------------------------------------------------------------
91329 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
91330 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91331 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91332 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91333 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91334 -- 5132302
91335 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91336 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91337
91338 END IF;
91339
91340 -- 4955764
91341 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91342 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91343
91344
91345 XLA_AE_LINES_PKG.ValidateCurrentLine;
91346 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91347
91348 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91349 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91350 ,p_balance_type_code => l_balance_type_code);
91351
91352 END IF;
91353
91354 -----------------------------------------------------------------------------------------
91355 -- 4262811 Multiperiod Accounting
91356 -----------------------------------------------------------------------------------------
91360 END IF;
91357 -- No MPA option is assigned.
91358
91359
91361 END IF;
91362 --
91363
91364 --
91365 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91366 trace
91367 (p_msg => 'END of AcctLineType_163'
91368 ,p_level => C_LEVEL_PROCEDURE
91369 ,p_module => l_log_module);
91370 END IF;
91371 --
91372 EXCEPTION
91373 WHEN xla_exceptions_pkg.application_exception THEN
91374 RAISE;
91375 WHEN OTHERS THEN
91376 xla_exceptions_pkg.raise_message
91377 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_163');
91378 END AcctLineType_163;
91379 --
91380
91381 ---------------------------------------
91382 --
91383 -- PRIVATE FUNCTION
91384 -- AcctLineType_164
91385 --
91386 ---------------------------------------
91387 PROCEDURE AcctLineType_164 (
91388 p_application_id IN NUMBER
91389 ,p_event_id IN NUMBER
91390 ,p_calculate_acctd_flag IN VARCHAR2
91391 ,p_calculate_g_l_flag IN VARCHAR2
91392 ,p_actual_flag IN OUT VARCHAR2
91393 ,p_balance_type_code OUT VARCHAR2
91394 ,p_gain_or_loss_ref OUT VARCHAR2
91395
91396 --Automatic Offsets Value
91397 , p_source_4 IN VARCHAR2
91398 , p_source_4_meaning IN VARCHAR2
91399 --Payment Distribution (Cleared Rate) Ledger Amount
91400 , p_source_10 IN NUMBER
91401 --Invoice Distribution Account
91402 , p_source_17 IN NUMBER
91403 --Invoice Distribution Type
91404 , p_source_20 IN VARCHAR2
91405 , p_source_20_meaning IN VARCHAR2
91406 --Retainage Account
91407 , p_source_22 IN NUMBER
91408 --Retainage Related Item Distribution Account
91409 , p_source_23 IN NUMBER
91410 --When to Account for Payment Option
91411 , p_source_38 IN VARCHAR2
91412 --Accounting Reversal Indicator
91413 , p_source_40 IN VARCHAR2
91414 --Payment Distribution Amount
91415 , p_source_41 IN NUMBER
91416 --Business Flow Accounts Payable Application Identifier
91417 , p_source_42 IN NUMBER
91418 --Business Flow Payment Distribution Type
91419 , p_source_43 IN VARCHAR2
91420 --Business Flow Payment Entity Code
91421 , p_source_44 IN VARCHAR2
91422 --Business Flow Payment Distribution Identifier
91423 , p_source_45 IN NUMBER
91424 --Business Flow Payment Identifier
91425 , p_source_46 IN NUMBER
91426 --Payment Distribution Identifier
91427 , p_source_47 IN NUMBER
91428 --Distribution Link Type
91429 , p_source_48 IN VARCHAR2
91430 --Payment Currency Code
91431 , p_source_49 IN VARCHAR2
91432 --Override Accounted Amount Indicator
91433 , p_source_53 IN VARCHAR2
91434 , p_source_53_meaning IN VARCHAR2
91435 --Payment Supplier Identifier
91436 , p_source_54 IN NUMBER
91437 --Payment Supplier Site Identifier
91438 , p_source_55 IN NUMBER
91439 --Third Party Type
91440 , p_source_56 IN VARCHAR2
91441 --Payment Distribution Reversed Identifier
91442 , p_source_57 IN NUMBER
91443 --Invoice Distribution Tax Line Identifier
91444 , p_source_58 IN NUMBER
91445 --Invoice Distribution Summary Tax Line Identifier
91446 , p_source_59 IN NUMBER
91447 --Invoice Type Paid
91448 , p_source_101 IN VARCHAR2
91449 , p_source_101_meaning IN VARCHAR2
91450 --Cleared Exchange Date
91451 , p_source_107 IN DATE
91452 --Cleared Exchange Rate
91453 , p_source_108 IN NUMBER
91454 --Cleared Exchange Rate Type
91455 , p_source_109 IN VARCHAR2
91456 )
91457 IS
91458
91459 l_component_type VARCHAR2(80);
91460 l_component_code VARCHAR2(30);
91461 l_component_type_code VARCHAR2(1);
91462 l_component_appl_id INTEGER;
91463 l_amb_context_code VARCHAR2(30);
91464 l_entity_code VARCHAR2(30);
91465 l_event_class_code VARCHAR2(30);
91466 l_ae_header_id NUMBER;
91467 l_event_type_code VARCHAR2(30);
91468 l_line_definition_code VARCHAR2(30);
91469 l_line_definition_owner_code VARCHAR2(1);
91470 --
91471 -- adr variables
91472 l_segment VARCHAR2(30);
91473 l_ccid NUMBER;
91474 l_adr_transaction_coa_id NUMBER;
91475 l_adr_accounting_coa_id NUMBER;
91476 l_adr_flexfield_segment_code VARCHAR2(30);
91477 l_adr_flex_value_set_id NUMBER;
91478 l_adr_value_type_code VARCHAR2(30);
91479 l_adr_value_combination_id NUMBER;
91480 l_adr_value_segment_code VARCHAR2(30);
91481
91482 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
91483 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
91484 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
91485 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
91486
91487 -- 4262811 Variables ------------------------------------------------------------------------------------------
91488 l_entered_amt_idx NUMBER;
91489 l_accted_amt_idx NUMBER;
91490 l_acc_rev_flag VARCHAR2(1);
91491 l_accrual_line_num NUMBER;
91492 l_tmp_amt NUMBER;
91493 l_acc_rev_natural_side_code VARCHAR2(1);
91494
91498 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
91495 l_num_entries NUMBER;
91496 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
91497 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
91499 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
91500 l_recog_line_1 NUMBER;
91501 l_recog_line_2 NUMBER;
91502
91503 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
91504 l_bflow_applied_to_amt NUMBER; -- 5132302
91505 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
91506
91507 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91508
91509 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
91510 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
91511
91512 ---------------------------------------------------------------------------------------------------------------
91513
91514
91515 --
91516 -- bulk performance
91517 --
91518 l_balance_type_code VARCHAR2(1);
91519 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
91520 l_log_module VARCHAR2(240);
91521
91522 --
91523 -- Upgrade strategy
91524 --
91525 l_actual_upg_option VARCHAR2(1);
91526 l_enc_upg_option VARCHAR2(1);
91527
91528 --
91529 BEGIN
91530 --
91531 IF g_log_enabled THEN
91532 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
91533 END IF;
91534 --
91535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91536
91537 trace
91538 (p_msg => 'BEGIN of AcctLineType_164'
91539 ,p_level => C_LEVEL_PROCEDURE
91540 ,p_module => l_log_module);
91541
91542 END IF;
91543 --
91544 l_component_type := 'AMB_JLT';
91545 l_component_code := 'AP_RETAINAGE_CLR_CASH';
91546 l_component_type_code := 'S';
91547 l_component_appl_id := 200;
91548 l_amb_context_code := 'DEFAULT';
91549 l_entity_code := 'AP_PAYMENTS';
91550 l_event_class_code := 'RECONCILED PAYMENTS';
91551 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
91552 l_line_definition_owner_code := 'S';
91553 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
91554 --
91555 l_balance_type_code := 'A';
91556 l_segment := NULL;
91557 l_ccid := NULL;
91558 l_adr_transaction_coa_id := NULL;
91559 l_adr_accounting_coa_id := NULL;
91560 l_adr_flexfield_segment_code := NULL;
91561 l_adr_flex_value_set_id := NULL;
91562 l_adr_value_type_code := NULL;
91563 l_adr_value_combination_id := NULL;
91564 l_adr_value_segment_code := NULL;
91565
91566 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
91567 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
91568 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
91569 l_budgetary_control_flag := 'N';
91570
91571 l_bflow_applied_to_amt_idx := NULL; -- 5132302
91572 l_bflow_applied_to_amt := NULL; -- 5132302
91573 l_entered_amt_idx := NULL; -- 4262811
91574 l_accted_amt_idx := NULL; -- 4262811
91575 l_acc_rev_flag := NULL; -- 4262811
91576 l_accrual_line_num := NULL; -- 4262811
91577 l_tmp_amt := NULL; -- 4262811
91578 --
91579
91580 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91581 l_balance_type_code <> 'B' THEN
91582 IF NVL(p_source_38,'
91583 ') = 'CLEAR_CLEAR' AND
91584 NVL(p_source_101,'
91585 ') <> 'STANDARD' AND
91586 NVL(p_source_20,'
91587 ') = 'RETAINAGE'
91588 THEN
91589
91590 --
91591 XLA_AE_LINES_PKG.SetNewLine;
91592
91593 p_balance_type_code := l_balance_type_code;
91594 -- set the flag so later we will know whether the gain loss line needs to be created
91595
91596 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
91597 p_actual_flag :='A';
91598 END IF;
91599
91600 --
91601 -- bulk performance
91602 --
91603 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91604 p_header_num => 0); -- 4262811
91605 --
91606 -- set accounting line options
91607 --
91608 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91609 p_natural_side_code => 'D'
91610 , p_gain_or_loss_flag => 'N'
91611 , p_gl_transfer_mode_code => 'S'
91612 , p_acct_entry_type_code => 'A'
91613 , p_switch_side_flag => 'Y'
91614 , p_merge_duplicate_code => 'A'
91615 );
91616 --
91617 l_acc_rev_natural_side_code := 'C'; -- 4262811
91618 --
91619 --
91620 -- set accounting line type info
91621 --
91622 xla_ae_lines_pkg.SetAcctLineType
91623 (p_component_type => l_component_type
91624 ,p_event_type_code => l_event_type_code
91625 ,p_line_definition_owner_code => l_line_definition_owner_code
91629 ,p_accounting_line_appl_id => l_component_appl_id
91626 ,p_line_definition_code => l_line_definition_code
91627 ,p_accounting_line_code => l_component_code
91628 ,p_accounting_line_type_code => l_component_type_code
91630 ,p_amb_context_code => l_amb_context_code
91631 ,p_entity_code => l_entity_code
91632 ,p_event_class_code => l_event_class_code);
91633 --
91634 -- set accounting class
91635 --
91636 xla_ae_lines_pkg.SetAcctClass(
91637 p_accounting_class_code => 'RETAINAGE'
91638 , p_ae_header_id => l_ae_header_id
91639 );
91640
91641 --
91642 -- set rounding class
91643 --
91644 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91645 'RETAINAGE';
91646
91647 --
91648 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91649 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91650 --
91651 -- bulk performance
91652 --
91653 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91654
91655 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91656 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91657
91658 -- 4955764
91659 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91660 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91661
91662 -- 4458381 Public Sector Enh
91663
91664 --
91665 -- set accounting attributes for the line type
91666 --
91667 l_entered_amt_idx := 10;
91668 l_accted_amt_idx := 15;
91669 l_bflow_applied_to_amt_idx := 2; -- 5132302
91670 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91671 l_rec_acct_attrs.array_char_value(1) := p_source_40;
91672 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
91673 l_rec_acct_attrs.array_num_value(2) := p_source_41;
91674 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
91675 l_rec_acct_attrs.array_num_value(3) := p_source_42;
91676 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91677 l_rec_acct_attrs.array_char_value(4) := p_source_43;
91678 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
91679 l_rec_acct_attrs.array_char_value(5) := p_source_44;
91680 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
91681 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
91682 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91683 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
91684 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
91685 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
91686 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
91687 l_rec_acct_attrs.array_char_value(9) := p_source_48;
91688 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
91689 l_rec_acct_attrs.array_num_value(10) := p_source_41;
91690 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
91691 l_rec_acct_attrs.array_char_value(11) := p_source_49;
91692 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
91693 l_rec_acct_attrs.array_date_value(12) := p_source_107;
91694 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
91695 l_rec_acct_attrs.array_num_value(13) := p_source_108;
91696 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
91697 l_rec_acct_attrs.array_char_value(14) := p_source_109;
91698 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
91699 l_rec_acct_attrs.array_num_value(15) := p_source_10;
91700 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
91701 l_rec_acct_attrs.array_char_value(16) := p_source_53;
91702 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
91703 l_rec_acct_attrs.array_num_value(17) := p_source_54;
91704 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
91705 l_rec_acct_attrs.array_num_value(18) := p_source_55;
91706 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
91707 l_rec_acct_attrs.array_char_value(19) := p_source_56;
91708 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
91709 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
91710 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
91711 l_rec_acct_attrs.array_char_value(21) := p_source_48;
91712 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
91713 l_rec_acct_attrs.array_num_value(22) := p_source_58;
91714 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
91715 l_rec_acct_attrs.array_num_value(23) := p_source_58;
91716 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
91717 l_rec_acct_attrs.array_num_value(24) := p_source_59;
91718
91719 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91720 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91721
91722 ---------------------------------------------------------------------------------------------------------------
91723 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91727 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91724 ---------------------------------------------------------------------------------------------------------------
91725 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91726
91728 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91729
91730 IF xla_accounting_cache_pkg.GetValueChar
91731 (p_source_code => 'LEDGER_CATEGORY_CODE'
91732 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91733 AND l_bflow_method_code = 'PRIOR_ENTRY'
91734 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91735 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91736 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91737 )
91738 THEN
91739 xla_ae_lines_pkg.BflowUpgEntry
91740 (p_business_method_code => l_bflow_method_code
91741 ,p_business_class_code => l_bflow_class_code
91742 ,p_balance_type => l_balance_type_code);
91743 ELSE
91744 NULL;
91745 -- No business flow processing for business flow method of NONE.
91746 END IF;
91747
91748 --
91749 -- call analytical criteria
91750 --
91751
91752 --
91753 -- call description
91754 --
91755 -- No description or it is inherited.
91756 --
91757 -- call ADRs
91758 -- Bug 4922099
91759 --
91760 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91761 (NVL(l_actual_upg_option, 'N') = 'O') OR
91762 (NVL(l_enc_upg_option, 'N') = 'O')
91763 )
91764 THEN
91765 NULL;
91766 --
91767 --
91768
91769 l_ccid := AcctDerRule_34(
91770 p_application_id => p_application_id
91771 , p_ae_header_id => l_ae_header_id
91772 , p_source_4 => p_source_4
91773 , p_source_4_meaning => p_source_4_meaning
91774 , p_source_17 => p_source_17
91775 , p_source_23 => p_source_23
91776 , x_transaction_coa_id => l_adr_transaction_coa_id
91777 , x_accounting_coa_id => l_adr_accounting_coa_id
91778 , x_value_type_code => l_adr_value_type_code
91779 , p_side => 'NA'
91780 );
91781
91782 xla_ae_lines_pkg.set_ccid(
91783 p_code_combination_id => l_ccid
91784 , p_value_type_code => l_adr_value_type_code
91785 , p_transaction_coa_id => l_adr_transaction_coa_id
91786 , p_accounting_coa_id => l_adr_accounting_coa_id
91787 , p_adr_code => 'AP_RETAINAGE'
91788 , p_adr_type_code => 'S'
91789 , p_component_type => l_component_type
91790 , p_component_code => l_component_code
91791 , p_component_type_code => l_component_type_code
91792 , p_component_appl_id => l_component_appl_id
91793 , p_amb_context_code => l_amb_context_code
91794 , p_side => 'NA'
91795 );
91796
91797
91798 l_segment := AcctDerRule_12(
91799 p_application_id => p_application_id
91800 , p_ae_header_id => l_ae_header_id
91801 , p_source_22 => p_source_22
91802 , x_transaction_coa_id => l_adr_transaction_coa_id
91803 , x_accounting_coa_id => l_adr_accounting_coa_id
91804 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91805 , x_flex_value_set_id => l_adr_flex_value_set_id
91806 , x_value_type_code => l_adr_value_type_code
91807 , x_value_combination_id => l_adr_value_combination_id
91808 , x_value_segment_code => l_adr_value_segment_code
91809 , p_side => 'NA'
91810 , p_override_seg_flag => 'Y'
91811 );
91812
91813 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91814
91815 xla_ae_lines_pkg.set_segment(
91816 p_to_segment_code => 'GL_ACCOUNT'
91817 , p_segment_value => l_segment
91818 , p_from_segment_code => l_adr_value_segment_code
91819 , p_from_combination_id => l_adr_value_combination_id
91820 , p_value_type_code => l_adr_value_type_code
91821 , p_transaction_coa_id => l_adr_transaction_coa_id
91822 , p_accounting_coa_id => l_adr_accounting_coa_id
91823 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91824 , p_flex_value_set_id => l_adr_flex_value_set_id
91825 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
91826 , p_adr_type_code => 'S'
91827 , p_component_type => l_component_type
91828 , p_component_code => l_component_code
91829 , p_component_type_code => l_component_type_code
91830 , p_component_appl_id => l_component_appl_id
91831 , p_amb_context_code => l_amb_context_code
91832 , p_entity_code => 'AP_PAYMENTS'
91833 , p_event_class_code => 'RECONCILED PAYMENTS'
91834 , p_side => 'NA'
91835 );
91836
91837 END IF;
91838
91839 l_segment := AcctDerRule_16(
91840 p_application_id => p_application_id
91841 , p_ae_header_id => l_ae_header_id
91842 , p_source_4 => p_source_4
91846 , x_accounting_coa_id => l_adr_accounting_coa_id
91843 , p_source_4_meaning => p_source_4_meaning
91844 , p_source_23 => p_source_23
91845 , x_transaction_coa_id => l_adr_transaction_coa_id
91847 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91848 , x_flex_value_set_id => l_adr_flex_value_set_id
91849 , x_value_type_code => l_adr_value_type_code
91850 , x_value_combination_id => l_adr_value_combination_id
91851 , x_value_segment_code => l_adr_value_segment_code
91852 , p_side => 'NA'
91853 , p_override_seg_flag => 'Y'
91854 );
91855
91856 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91857
91858 xla_ae_lines_pkg.set_segment(
91859 p_to_segment_code => 'GL_BALANCING'
91860 , p_segment_value => l_segment
91861 , p_from_segment_code => l_adr_value_segment_code
91862 , p_from_combination_id => l_adr_value_combination_id
91863 , p_value_type_code => l_adr_value_type_code
91864 , p_transaction_coa_id => l_adr_transaction_coa_id
91865 , p_accounting_coa_id => l_adr_accounting_coa_id
91866 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91867 , p_flex_value_set_id => l_adr_flex_value_set_id
91868 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
91869 , p_adr_type_code => 'S'
91870 , p_component_type => l_component_type
91871 , p_component_code => l_component_code
91872 , p_component_type_code => l_component_type_code
91873 , p_component_appl_id => l_component_appl_id
91874 , p_amb_context_code => l_amb_context_code
91875 , p_entity_code => 'AP_PAYMENTS'
91876 , p_event_class_code => 'RECONCILED PAYMENTS'
91877 , p_side => 'NA'
91878 );
91879
91880 END IF;
91881
91882 --
91883 --
91884 END IF;
91885 --
91886 -- Bug 4922099
91887 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91888 (NVL(l_enc_upg_option, 'N') = 'O')
91889 ) AND
91890 (l_bflow_method_code = 'PRIOR_ENTRY')
91891 )
91892 THEN
91893 IF
91894 --
91895 1 = 2
91896 --
91897 THEN
91898 xla_accounting_err_pkg.build_message
91899 (p_appli_s_name => 'XLA'
91900 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91901 ,p_token_1 => 'LINE_NUMBER'
91902 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
91903 ,p_token_2 => 'LINE_TYPE_NAME'
91904 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
91905 l_component_type
91906 ,l_component_code
91907 ,l_component_type_code
91908 ,l_component_appl_id
91909 ,l_amb_context_code
91910 ,l_entity_code
91911 ,l_event_class_code
91912 )
91913 ,p_token_3 => 'OWNER'
91914 ,p_value_3 => xla_lookups_pkg.get_meaning(
91915 p_lookup_type => 'XLA_OWNER_TYPE'
91916 ,p_lookup_code => l_component_type_code
91917 )
91918 ,p_token_4 => 'PRODUCT_NAME'
91919 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91920 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91921 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91922 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91923 ,p_ae_header_id => NULL
91924 );
91925
91926 IF (C_LEVEL_ERROR>= g_log_level) THEN
91927 trace
91928 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91929 ,p_level => C_LEVEL_ERROR
91930 ,p_module => l_log_module);
91931 END IF;
91932 END IF;
91933 END IF;
91934 --
91935 --
91936 ------------------------------------------------------------------------------------------------
91937 -- 4219869 Business Flow
91938 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91942
91939 -- Prior Entry. Currently, the following code is always generated.
91940 ------------------------------------------------------------------------------------------------
91941 XLA_AE_LINES_PKG.ValidateCurrentLine;
91943 ------------------------------------------------------------------------------------
91944 -- 4219869 Business Flow
91945 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91946 ------------------------------------------------------------------------------------
91947 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91948
91949 ----------------------------------------------------------------------------------
91950 -- 4219869 Business Flow
91951 -- Update journal entry status -- Need to generate this within IF <condition>
91952 ----------------------------------------------------------------------------------
91953 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91954 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91955 ,p_balance_type_code => l_balance_type_code
91956 );
91957
91958 -------------------------------------------------------------------------------------------
91959 -- 4262811 - Generate the Accrual Reversal lines
91960 -------------------------------------------------------------------------------------------
91961 BEGIN
91962 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91963 (g_array_event(p_event_id).array_value_num('header_index'));
91964 IF l_acc_rev_flag IS NULL THEN
91965 l_acc_rev_flag := 'N';
91966 END IF;
91967 EXCEPTION
91968 WHEN OTHERS THEN
91969 l_acc_rev_flag := 'N';
91970 END;
91971 --
91972 IF (l_acc_rev_flag = 'Y') THEN
91973
91974 -- 4645092 ------------------------------------------------------------------------------
91975 -- To allow MPA report to determine if it should generate report process
91976 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91977 ------------------------------------------------------------------------------------------
91978
91979 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91980 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91981 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
91982 -- call ADRs
91983 -- Bug 4922099
91984 --
91985 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91986 (NVL(l_actual_upg_option, 'N') = 'O') OR
91987 (NVL(l_enc_upg_option, 'N') = 'O')
91988 )
91989 THEN
91990 NULL;
91991 --
91992 --
91993
91994 l_ccid := AcctDerRule_34(
91995 p_application_id => p_application_id
91996 , p_ae_header_id => l_ae_header_id
91997 , p_source_4 => p_source_4
91998 , p_source_4_meaning => p_source_4_meaning
91999 , p_source_17 => p_source_17
92000 , p_source_23 => p_source_23
92001 , x_transaction_coa_id => l_adr_transaction_coa_id
92002 , x_accounting_coa_id => l_adr_accounting_coa_id
92003 , x_value_type_code => l_adr_value_type_code
92004 , p_side => 'NA'
92005 );
92006
92007 xla_ae_lines_pkg.set_ccid(
92008 p_code_combination_id => l_ccid
92009 , p_value_type_code => l_adr_value_type_code
92010 , p_transaction_coa_id => l_adr_transaction_coa_id
92011 , p_accounting_coa_id => l_adr_accounting_coa_id
92012 , p_adr_code => 'AP_RETAINAGE'
92013 , p_adr_type_code => 'S'
92014 , p_component_type => l_component_type
92015 , p_component_code => l_component_code
92016 , p_component_type_code => l_component_type_code
92017 , p_component_appl_id => l_component_appl_id
92018 , p_amb_context_code => l_amb_context_code
92019 , p_side => 'NA'
92020 );
92021
92022
92023 l_segment := AcctDerRule_12(
92024 p_application_id => p_application_id
92025 , p_ae_header_id => l_ae_header_id
92026 , p_source_22 => p_source_22
92027 , x_transaction_coa_id => l_adr_transaction_coa_id
92028 , x_accounting_coa_id => l_adr_accounting_coa_id
92029 , x_flexfield_segment_code => l_adr_flexfield_segment_code
92030 , x_flex_value_set_id => l_adr_flex_value_set_id
92031 , x_value_type_code => l_adr_value_type_code
92032 , x_value_combination_id => l_adr_value_combination_id
92033 , x_value_segment_code => l_adr_value_segment_code
92034 , p_side => 'NA'
92035 , p_override_seg_flag => 'Y'
92036 );
92037
92038 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
92039
92040 xla_ae_lines_pkg.set_segment(
92041 p_to_segment_code => 'GL_ACCOUNT'
92042 , p_segment_value => l_segment
92043 , p_from_segment_code => l_adr_value_segment_code
92044 , p_from_combination_id => l_adr_value_combination_id
92045 , p_value_type_code => l_adr_value_type_code
92046 , p_transaction_coa_id => l_adr_transaction_coa_id
92047 , p_accounting_coa_id => l_adr_accounting_coa_id
92048 , p_flexfield_segment_code => l_adr_flexfield_segment_code
92052 , p_component_type => l_component_type
92049 , p_flex_value_set_id => l_adr_flex_value_set_id
92050 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
92051 , p_adr_type_code => 'S'
92053 , p_component_code => l_component_code
92054 , p_component_type_code => l_component_type_code
92055 , p_component_appl_id => l_component_appl_id
92056 , p_amb_context_code => l_amb_context_code
92057 , p_entity_code => 'AP_PAYMENTS'
92058 , p_event_class_code => 'RECONCILED PAYMENTS'
92059 , p_side => 'NA'
92060 );
92061
92062 END IF;
92063
92064 l_segment := AcctDerRule_16(
92065 p_application_id => p_application_id
92066 , p_ae_header_id => l_ae_header_id
92067 , p_source_4 => p_source_4
92068 , p_source_4_meaning => p_source_4_meaning
92069 , p_source_23 => p_source_23
92070 , x_transaction_coa_id => l_adr_transaction_coa_id
92071 , x_accounting_coa_id => l_adr_accounting_coa_id
92072 , x_flexfield_segment_code => l_adr_flexfield_segment_code
92073 , x_flex_value_set_id => l_adr_flex_value_set_id
92074 , x_value_type_code => l_adr_value_type_code
92075 , x_value_combination_id => l_adr_value_combination_id
92076 , x_value_segment_code => l_adr_value_segment_code
92077 , p_side => 'NA'
92078 , p_override_seg_flag => 'Y'
92079 );
92080
92081 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
92082
92083 xla_ae_lines_pkg.set_segment(
92084 p_to_segment_code => 'GL_BALANCING'
92085 , p_segment_value => l_segment
92086 , p_from_segment_code => l_adr_value_segment_code
92087 , p_from_combination_id => l_adr_value_combination_id
92088 , p_value_type_code => l_adr_value_type_code
92089 , p_transaction_coa_id => l_adr_transaction_coa_id
92090 , p_accounting_coa_id => l_adr_accounting_coa_id
92091 , p_flexfield_segment_code => l_adr_flexfield_segment_code
92092 , p_flex_value_set_id => l_adr_flex_value_set_id
92093 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
92094 , p_adr_type_code => 'S'
92095 , p_component_type => l_component_type
92096 , p_component_code => l_component_code
92097 , p_component_type_code => l_component_type_code
92098 , p_component_appl_id => l_component_appl_id
92099 , p_amb_context_code => l_amb_context_code
92100 , p_entity_code => 'AP_PAYMENTS'
92101 , p_event_class_code => 'RECONCILED PAYMENTS'
92102 , p_side => 'NA'
92103 );
92104
92105 END IF;
92106
92107 --
92108 --
92109 END IF;
92110
92111 --
92112 -- Update the line information that should be overwritten
92113 --
92114 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92115 p_header_num => 1);
92116 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
92117
92118 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92119
92120 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
92121 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92122 END IF;
92123
92124 --
92125 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92126 --
92127 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92128 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
92129 ELSE
92130 ---------------------------------------------------------------------------------------------------
92131 -- 4262811a Switch Sign
92132 ---------------------------------------------------------------------------------------------------
92133 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
92134 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92135 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92136 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92137 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92138 -- 5132302
92139 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92140 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92141
92142 END IF;
92143
92144 -- 4955764
92145 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92146 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92147
92148
92149 XLA_AE_LINES_PKG.ValidateCurrentLine;
92150 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92151
92152 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92156 END IF;
92153 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92154 ,p_balance_type_code => l_balance_type_code);
92155
92157
92158 -----------------------------------------------------------------------------------------
92159 -- 4262811 Multiperiod Accounting
92160 -----------------------------------------------------------------------------------------
92161 -- No MPA option is assigned.
92162
92163
92164 END IF;
92165 END IF;
92166 --
92167
92168 --
92169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92170 trace
92171 (p_msg => 'END of AcctLineType_164'
92172 ,p_level => C_LEVEL_PROCEDURE
92173 ,p_module => l_log_module);
92174 END IF;
92175 --
92176 EXCEPTION
92177 WHEN xla_exceptions_pkg.application_exception THEN
92178 RAISE;
92179 WHEN OTHERS THEN
92180 xla_exceptions_pkg.raise_message
92181 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_164');
92182 END AcctLineType_164;
92183 --
92184
92185 ---------------------------------------
92186 --
92187 -- PRIVATE FUNCTION
92188 -- AcctLineType_165
92189 --
92190 ---------------------------------------
92191 PROCEDURE AcctLineType_165 (
92192 p_application_id IN NUMBER
92193 ,p_event_id IN NUMBER
92194 ,p_calculate_acctd_flag IN VARCHAR2
92195 ,p_calculate_g_l_flag IN VARCHAR2
92196 ,p_actual_flag IN OUT VARCHAR2
92197 ,p_balance_type_code OUT VARCHAR2
92198 ,p_gain_or_loss_ref OUT VARCHAR2
92199
92200 --Automatic Offsets Value
92201 , p_source_4 IN VARCHAR2
92202 , p_source_4_meaning IN VARCHAR2
92203 --Payment Distribution (Payment Rate) Ledger Amount
92204 , p_source_9 IN NUMBER
92205 --Invoice Distribution Account
92206 , p_source_17 IN NUMBER
92207 --Invoice Distribution Type
92208 , p_source_20 IN VARCHAR2
92209 , p_source_20_meaning IN VARCHAR2
92210 --Retainage Account
92211 , p_source_22 IN NUMBER
92212 --Retainage Related Item Distribution Account
92213 , p_source_23 IN NUMBER
92214 --When to Account for Payment Option
92215 , p_source_38 IN VARCHAR2
92216 --Accounting Reversal Indicator
92217 , p_source_40 IN VARCHAR2
92218 --Payment Distribution Amount
92219 , p_source_41 IN NUMBER
92220 --Business Flow Accounts Payable Application Identifier
92221 , p_source_42 IN NUMBER
92222 --Payment Distribution Identifier
92223 , p_source_47 IN NUMBER
92224 --Distribution Link Type
92225 , p_source_48 IN VARCHAR2
92226 --Payment Currency Code
92227 , p_source_49 IN VARCHAR2
92228 --Override Accounted Amount Indicator
92229 , p_source_53 IN VARCHAR2
92230 , p_source_53_meaning IN VARCHAR2
92231 --Payment Supplier Identifier
92232 , p_source_54 IN NUMBER
92233 --Payment Supplier Site Identifier
92234 , p_source_55 IN NUMBER
92235 --Third Party Type
92236 , p_source_56 IN VARCHAR2
92237 --Payment Distribution Reversed Identifier
92238 , p_source_57 IN NUMBER
92239 --Invoice Distribution Tax Line Identifier
92240 , p_source_58 IN NUMBER
92241 --Invoice Distribution Summary Tax Line Identifier
92242 , p_source_59 IN NUMBER
92243 --Invoice Distribution Amount of the Payment Distribution
92244 , p_source_61 IN NUMBER
92245 --Business Flow Invoice Distribution Type
92246 , p_source_62 IN VARCHAR2
92247 --Business Flow Invoice Entity Code
92248 , p_source_63 IN VARCHAR2
92249 --Business Flow Invoice Distribution Identifier
92250 , p_source_64 IN NUMBER
92251 --Business Flow Invoice Identifier
92252 , p_source_65 IN NUMBER
92253 --Invoice Distribution Tax Distribution Identifier from Tax
92254 , p_source_66 IN NUMBER
92255 --Invoice Type Paid
92256 , p_source_101 IN VARCHAR2
92257 , p_source_101_meaning IN VARCHAR2
92258 --Payment Exchange Date
92259 , p_source_114 IN DATE
92260 --Payment Exchange Rate
92261 , p_source_115 IN NUMBER
92262 --Payment Exchange Rate Type
92263 , p_source_116 IN VARCHAR2
92264 )
92265 IS
92266
92267 l_component_type VARCHAR2(80);
92268 l_component_code VARCHAR2(30);
92269 l_component_type_code VARCHAR2(1);
92270 l_component_appl_id INTEGER;
92271 l_amb_context_code VARCHAR2(30);
92272 l_entity_code VARCHAR2(30);
92273 l_event_class_code VARCHAR2(30);
92274 l_ae_header_id NUMBER;
92275 l_event_type_code VARCHAR2(30);
92276 l_line_definition_code VARCHAR2(30);
92277 l_line_definition_owner_code VARCHAR2(1);
92278 --
92279 -- adr variables
92280 l_segment VARCHAR2(30);
92281 l_ccid NUMBER;
92282 l_adr_transaction_coa_id NUMBER;
92283 l_adr_accounting_coa_id NUMBER;
92284 l_adr_flexfield_segment_code VARCHAR2(30);
92285 l_adr_flex_value_set_id NUMBER;
92286 l_adr_value_type_code VARCHAR2(30);
92287 l_adr_value_combination_id NUMBER;
92288 l_adr_value_segment_code VARCHAR2(30);
92289
92290 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
92291 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
92295 -- 4262811 Variables ------------------------------------------------------------------------------------------
92292 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
92293 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
92294
92296 l_entered_amt_idx NUMBER;
92297 l_accted_amt_idx NUMBER;
92298 l_acc_rev_flag VARCHAR2(1);
92299 l_accrual_line_num NUMBER;
92300 l_tmp_amt NUMBER;
92301 l_acc_rev_natural_side_code VARCHAR2(1);
92302
92303 l_num_entries NUMBER;
92304 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
92305 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
92306 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
92307 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
92308 l_recog_line_1 NUMBER;
92309 l_recog_line_2 NUMBER;
92310
92311 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
92312 l_bflow_applied_to_amt NUMBER; -- 5132302
92313 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
92314
92315 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92316
92317 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
92318 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
92319
92320 ---------------------------------------------------------------------------------------------------------------
92321
92322
92323 --
92324 -- bulk performance
92325 --
92326 l_balance_type_code VARCHAR2(1);
92327 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
92328 l_log_module VARCHAR2(240);
92329
92330 --
92331 -- Upgrade strategy
92332 --
92333 l_actual_upg_option VARCHAR2(1);
92334 l_enc_upg_option VARCHAR2(1);
92335
92336 --
92337 BEGIN
92338 --
92339 IF g_log_enabled THEN
92340 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
92341 END IF;
92342 --
92343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92344
92345 trace
92346 (p_msg => 'BEGIN of AcctLineType_165'
92347 ,p_level => C_LEVEL_PROCEDURE
92348 ,p_module => l_log_module);
92349
92350 END IF;
92351 --
92352 l_component_type := 'AMB_JLT';
92353 l_component_code := 'AP_RETAINAGE_PMT_CASH';
92354 l_component_type_code := 'S';
92355 l_component_appl_id := 200;
92356 l_amb_context_code := 'DEFAULT';
92357 l_entity_code := 'AP_PAYMENTS';
92358 l_event_class_code := 'PAYMENTS';
92359 l_event_type_code := 'PAYMENTS_ALL';
92360 l_line_definition_owner_code := 'S';
92361 l_line_definition_code := 'CASH_PAYMENTS_ALL';
92362 --
92363 l_balance_type_code := 'A';
92364 l_segment := NULL;
92365 l_ccid := NULL;
92366 l_adr_transaction_coa_id := NULL;
92367 l_adr_accounting_coa_id := NULL;
92368 l_adr_flexfield_segment_code := NULL;
92369 l_adr_flex_value_set_id := NULL;
92370 l_adr_value_type_code := NULL;
92371 l_adr_value_combination_id := NULL;
92372 l_adr_value_segment_code := NULL;
92373
92374 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
92375 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
92376 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
92377 l_budgetary_control_flag := 'N';
92378
92379 l_bflow_applied_to_amt_idx := NULL; -- 5132302
92380 l_bflow_applied_to_amt := NULL; -- 5132302
92381 l_entered_amt_idx := NULL; -- 4262811
92382 l_accted_amt_idx := NULL; -- 4262811
92383 l_acc_rev_flag := NULL; -- 4262811
92384 l_accrual_line_num := NULL; -- 4262811
92385 l_tmp_amt := NULL; -- 4262811
92386 --
92387
92388 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92389 l_balance_type_code <> 'B' THEN
92390 IF NVL(p_source_38,'
92391 ') <> 'CLEAR_CLEAR' AND
92392 NVL(p_source_101,'
92393 ') <> 'RETAINAGE RELEASE' AND
92394 NVL(p_source_20,'
92395 ') = 'RETAINAGE'
92396 THEN
92397
92398 --
92399 XLA_AE_LINES_PKG.SetNewLine;
92400
92401 p_balance_type_code := l_balance_type_code;
92402 -- set the flag so later we will know whether the gain loss line needs to be created
92403
92404 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92405 p_actual_flag :='A';
92406 END IF;
92407
92408 --
92409 -- bulk performance
92410 --
92411 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92412 p_header_num => 0); -- 4262811
92413 --
92414 -- set accounting line options
92415 --
92416 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92417 p_natural_side_code => 'D'
92418 , p_gain_or_loss_flag => 'N'
92419 , p_gl_transfer_mode_code => 'S'
92420 , p_acct_entry_type_code => 'A'
92421 , p_switch_side_flag => 'Y'
92422 , p_merge_duplicate_code => 'A'
92426 --
92423 );
92424 --
92425 l_acc_rev_natural_side_code := 'C'; -- 4262811
92427 --
92428 -- set accounting line type info
92429 --
92430 xla_ae_lines_pkg.SetAcctLineType
92431 (p_component_type => l_component_type
92432 ,p_event_type_code => l_event_type_code
92433 ,p_line_definition_owner_code => l_line_definition_owner_code
92434 ,p_line_definition_code => l_line_definition_code
92435 ,p_accounting_line_code => l_component_code
92436 ,p_accounting_line_type_code => l_component_type_code
92437 ,p_accounting_line_appl_id => l_component_appl_id
92438 ,p_amb_context_code => l_amb_context_code
92439 ,p_entity_code => l_entity_code
92440 ,p_event_class_code => l_event_class_code);
92441 --
92442 -- set accounting class
92443 --
92444 xla_ae_lines_pkg.SetAcctClass(
92445 p_accounting_class_code => 'RETAINAGE'
92446 , p_ae_header_id => l_ae_header_id
92447 );
92448
92449 --
92450 -- set rounding class
92451 --
92452 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92453 'RETAINAGE';
92454
92455 --
92456 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92457 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92458 --
92459 -- bulk performance
92460 --
92461 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92462
92463 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92464 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92465
92466 -- 4955764
92467 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92468 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92469
92470 -- 4458381 Public Sector Enh
92471
92472 --
92473 -- set accounting attributes for the line type
92474 --
92475 l_entered_amt_idx := 10;
92476 l_accted_amt_idx := 15;
92477 l_bflow_applied_to_amt_idx := 2; -- 5132302
92478 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92479 l_rec_acct_attrs.array_char_value(1) := p_source_40;
92480 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
92481 l_rec_acct_attrs.array_num_value(2) := p_source_61;
92482 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
92483 l_rec_acct_attrs.array_num_value(3) := p_source_42;
92484 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92485 l_rec_acct_attrs.array_char_value(4) := p_source_62;
92486 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
92487 l_rec_acct_attrs.array_char_value(5) := p_source_63;
92488 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
92489 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
92490 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92491 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
92492 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
92493 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
92494 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
92495 l_rec_acct_attrs.array_char_value(9) := p_source_48;
92496 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
92497 l_rec_acct_attrs.array_num_value(10) := p_source_41;
92498 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
92499 l_rec_acct_attrs.array_char_value(11) := p_source_49;
92500 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
92501 l_rec_acct_attrs.array_date_value(12) := p_source_114;
92502 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
92503 l_rec_acct_attrs.array_num_value(13) := p_source_115;
92504 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
92505 l_rec_acct_attrs.array_char_value(14) := p_source_116;
92506 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
92507 l_rec_acct_attrs.array_num_value(15) := p_source_9;
92508 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
92509 l_rec_acct_attrs.array_char_value(16) := p_source_53;
92510 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
92511 l_rec_acct_attrs.array_num_value(17) := p_source_54;
92512 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
92513 l_rec_acct_attrs.array_num_value(18) := p_source_55;
92514 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
92515 l_rec_acct_attrs.array_char_value(19) := p_source_56;
92516 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
92517 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
92518 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
92519 l_rec_acct_attrs.array_char_value(21) := p_source_48;
92520 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
92521 l_rec_acct_attrs.array_num_value(22) := p_source_58;
92522 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
92523 l_rec_acct_attrs.array_num_value(23) := p_source_66;
92524 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
92528 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92525 l_rec_acct_attrs.array_num_value(24) := p_source_59;
92526
92527 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92529
92530 ---------------------------------------------------------------------------------------------------------------
92531 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92532 ---------------------------------------------------------------------------------------------------------------
92533 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92534
92535 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92536 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92537
92538 IF xla_accounting_cache_pkg.GetValueChar
92539 (p_source_code => 'LEDGER_CATEGORY_CODE'
92540 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92541 AND l_bflow_method_code = 'PRIOR_ENTRY'
92542 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92543 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92544 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92545 )
92546 THEN
92547 xla_ae_lines_pkg.BflowUpgEntry
92548 (p_business_method_code => l_bflow_method_code
92549 ,p_business_class_code => l_bflow_class_code
92550 ,p_balance_type => l_balance_type_code);
92551 ELSE
92552 NULL;
92553 -- No business flow processing for business flow method of NONE.
92554 END IF;
92555
92556 --
92557 -- call analytical criteria
92558 --
92559
92560 --
92561 -- call description
92562 --
92563 -- No description or it is inherited.
92564 --
92565 -- call ADRs
92566 -- Bug 4922099
92567 --
92568 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92569 (NVL(l_actual_upg_option, 'N') = 'O') OR
92570 (NVL(l_enc_upg_option, 'N') = 'O')
92571 )
92572 THEN
92573 NULL;
92574 --
92575 --
92576
92577 l_ccid := AcctDerRule_34(
92578 p_application_id => p_application_id
92579 , p_ae_header_id => l_ae_header_id
92580 , p_source_4 => p_source_4
92581 , p_source_4_meaning => p_source_4_meaning
92582 , p_source_17 => p_source_17
92583 , p_source_23 => p_source_23
92584 , x_transaction_coa_id => l_adr_transaction_coa_id
92585 , x_accounting_coa_id => l_adr_accounting_coa_id
92586 , x_value_type_code => l_adr_value_type_code
92587 , p_side => 'NA'
92588 );
92589
92590 xla_ae_lines_pkg.set_ccid(
92591 p_code_combination_id => l_ccid
92592 , p_value_type_code => l_adr_value_type_code
92593 , p_transaction_coa_id => l_adr_transaction_coa_id
92594 , p_accounting_coa_id => l_adr_accounting_coa_id
92595 , p_adr_code => 'AP_RETAINAGE'
92596 , p_adr_type_code => 'S'
92597 , p_component_type => l_component_type
92598 , p_component_code => l_component_code
92599 , p_component_type_code => l_component_type_code
92600 , p_component_appl_id => l_component_appl_id
92601 , p_amb_context_code => l_amb_context_code
92602 , p_side => 'NA'
92603 );
92604
92605
92606 l_segment := AcctDerRule_12(
92607 p_application_id => p_application_id
92608 , p_ae_header_id => l_ae_header_id
92609 , p_source_22 => p_source_22
92610 , x_transaction_coa_id => l_adr_transaction_coa_id
92611 , x_accounting_coa_id => l_adr_accounting_coa_id
92612 , x_flexfield_segment_code => l_adr_flexfield_segment_code
92613 , x_flex_value_set_id => l_adr_flex_value_set_id
92614 , x_value_type_code => l_adr_value_type_code
92615 , x_value_combination_id => l_adr_value_combination_id
92616 , x_value_segment_code => l_adr_value_segment_code
92617 , p_side => 'NA'
92618 , p_override_seg_flag => 'Y'
92619 );
92620
92621 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
92622
92623 xla_ae_lines_pkg.set_segment(
92624 p_to_segment_code => 'GL_ACCOUNT'
92625 , p_segment_value => l_segment
92626 , p_from_segment_code => l_adr_value_segment_code
92627 , p_from_combination_id => l_adr_value_combination_id
92628 , p_value_type_code => l_adr_value_type_code
92629 , p_transaction_coa_id => l_adr_transaction_coa_id
92630 , p_accounting_coa_id => l_adr_accounting_coa_id
92631 , p_flexfield_segment_code => l_adr_flexfield_segment_code
92632 , p_flex_value_set_id => l_adr_flex_value_set_id
92633 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
92634 , p_adr_type_code => 'S'
92635 , p_component_type => l_component_type
92636 , p_component_code => l_component_code
92637 , p_component_type_code => l_component_type_code
92641 , p_event_class_code => 'PAYMENTS'
92638 , p_component_appl_id => l_component_appl_id
92639 , p_amb_context_code => l_amb_context_code
92640 , p_entity_code => 'AP_PAYMENTS'
92642 , p_side => 'NA'
92643 );
92644
92645 END IF;
92646
92647 l_segment := AcctDerRule_16(
92648 p_application_id => p_application_id
92649 , p_ae_header_id => l_ae_header_id
92650 , p_source_4 => p_source_4
92651 , p_source_4_meaning => p_source_4_meaning
92652 , p_source_23 => p_source_23
92653 , x_transaction_coa_id => l_adr_transaction_coa_id
92654 , x_accounting_coa_id => l_adr_accounting_coa_id
92655 , x_flexfield_segment_code => l_adr_flexfield_segment_code
92656 , x_flex_value_set_id => l_adr_flex_value_set_id
92657 , x_value_type_code => l_adr_value_type_code
92658 , x_value_combination_id => l_adr_value_combination_id
92659 , x_value_segment_code => l_adr_value_segment_code
92660 , p_side => 'NA'
92661 , p_override_seg_flag => 'Y'
92662 );
92663
92664 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
92665
92666 xla_ae_lines_pkg.set_segment(
92667 p_to_segment_code => 'GL_BALANCING'
92668 , p_segment_value => l_segment
92669 , p_from_segment_code => l_adr_value_segment_code
92670 , p_from_combination_id => l_adr_value_combination_id
92671 , p_value_type_code => l_adr_value_type_code
92672 , p_transaction_coa_id => l_adr_transaction_coa_id
92673 , p_accounting_coa_id => l_adr_accounting_coa_id
92674 , p_flexfield_segment_code => l_adr_flexfield_segment_code
92675 , p_flex_value_set_id => l_adr_flex_value_set_id
92676 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
92677 , p_adr_type_code => 'S'
92678 , p_component_type => l_component_type
92679 , p_component_code => l_component_code
92680 , p_component_type_code => l_component_type_code
92681 , p_component_appl_id => l_component_appl_id
92682 , p_amb_context_code => l_amb_context_code
92683 , p_entity_code => 'AP_PAYMENTS'
92684 , p_event_class_code => 'PAYMENTS'
92685 , p_side => 'NA'
92686 );
92687
92688 END IF;
92689
92690 --
92691 --
92692 END IF;
92693 --
92694 -- Bug 4922099
92695 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92696 (NVL(l_enc_upg_option, 'N') = 'O')
92697 ) AND
92698 (l_bflow_method_code = 'PRIOR_ENTRY')
92699 )
92700 THEN
92701 IF
92702 --
92703 1 = 2
92704 --
92705 THEN
92706 xla_accounting_err_pkg.build_message
92707 (p_appli_s_name => 'XLA'
92708 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92709 ,p_token_1 => 'LINE_NUMBER'
92710 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
92711 ,p_token_2 => 'LINE_TYPE_NAME'
92712 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
92713 l_component_type
92714 ,l_component_code
92715 ,l_component_type_code
92716 ,l_component_appl_id
92717 ,l_amb_context_code
92718 ,l_entity_code
92719 ,l_event_class_code
92720 )
92721 ,p_token_3 => 'OWNER'
92722 ,p_value_3 => xla_lookups_pkg.get_meaning(
92723 p_lookup_type => 'XLA_OWNER_TYPE'
92724 ,p_lookup_code => l_component_type_code
92725 )
92726 ,p_token_4 => 'PRODUCT_NAME'
92727 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92728 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92729 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92730 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92731 ,p_ae_header_id => NULL
92732 );
92733
92734 IF (C_LEVEL_ERROR>= g_log_level) THEN
92735 trace
92739 END IF;
92736 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92737 ,p_level => C_LEVEL_ERROR
92738 ,p_module => l_log_module);
92740 END IF;
92741 END IF;
92742 --
92743 --
92744 ------------------------------------------------------------------------------------------------
92745 -- 4219869 Business Flow
92746 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92747 -- Prior Entry. Currently, the following code is always generated.
92748 ------------------------------------------------------------------------------------------------
92749 XLA_AE_LINES_PKG.ValidateCurrentLine;
92750
92751 ------------------------------------------------------------------------------------
92752 -- 4219869 Business Flow
92753 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92754 ------------------------------------------------------------------------------------
92755 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92756
92757 ----------------------------------------------------------------------------------
92758 -- 4219869 Business Flow
92759 -- Update journal entry status -- Need to generate this within IF <condition>
92760 ----------------------------------------------------------------------------------
92761 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92762 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92763 ,p_balance_type_code => l_balance_type_code
92764 );
92765
92766 -------------------------------------------------------------------------------------------
92767 -- 4262811 - Generate the Accrual Reversal lines
92768 -------------------------------------------------------------------------------------------
92769 BEGIN
92770 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92771 (g_array_event(p_event_id).array_value_num('header_index'));
92772 IF l_acc_rev_flag IS NULL THEN
92773 l_acc_rev_flag := 'N';
92774 END IF;
92775 EXCEPTION
92776 WHEN OTHERS THEN
92777 l_acc_rev_flag := 'N';
92778 END;
92779 --
92780 IF (l_acc_rev_flag = 'Y') THEN
92781
92782 -- 4645092 ------------------------------------------------------------------------------
92783 -- To allow MPA report to determine if it should generate report process
92784 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92785 ------------------------------------------------------------------------------------------
92786
92787 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92788 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92789 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
92790 -- call ADRs
92791 -- Bug 4922099
92792 --
92793 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92794 (NVL(l_actual_upg_option, 'N') = 'O') OR
92795 (NVL(l_enc_upg_option, 'N') = 'O')
92796 )
92797 THEN
92798 NULL;
92799 --
92800 --
92801
92802 l_ccid := AcctDerRule_34(
92803 p_application_id => p_application_id
92804 , p_ae_header_id => l_ae_header_id
92805 , p_source_4 => p_source_4
92806 , p_source_4_meaning => p_source_4_meaning
92807 , p_source_17 => p_source_17
92808 , p_source_23 => p_source_23
92809 , x_transaction_coa_id => l_adr_transaction_coa_id
92810 , x_accounting_coa_id => l_adr_accounting_coa_id
92811 , x_value_type_code => l_adr_value_type_code
92812 , p_side => 'NA'
92813 );
92814
92815 xla_ae_lines_pkg.set_ccid(
92816 p_code_combination_id => l_ccid
92817 , p_value_type_code => l_adr_value_type_code
92818 , p_transaction_coa_id => l_adr_transaction_coa_id
92819 , p_accounting_coa_id => l_adr_accounting_coa_id
92820 , p_adr_code => 'AP_RETAINAGE'
92821 , p_adr_type_code => 'S'
92822 , p_component_type => l_component_type
92823 , p_component_code => l_component_code
92824 , p_component_type_code => l_component_type_code
92825 , p_component_appl_id => l_component_appl_id
92826 , p_amb_context_code => l_amb_context_code
92827 , p_side => 'NA'
92828 );
92829
92830
92831 l_segment := AcctDerRule_12(
92832 p_application_id => p_application_id
92833 , p_ae_header_id => l_ae_header_id
92834 , p_source_22 => p_source_22
92835 , x_transaction_coa_id => l_adr_transaction_coa_id
92836 , x_accounting_coa_id => l_adr_accounting_coa_id
92837 , x_flexfield_segment_code => l_adr_flexfield_segment_code
92838 , x_flex_value_set_id => l_adr_flex_value_set_id
92839 , x_value_type_code => l_adr_value_type_code
92840 , x_value_combination_id => l_adr_value_combination_id
92841 , x_value_segment_code => l_adr_value_segment_code
92842 , p_side => 'NA'
92843 , p_override_seg_flag => 'Y'
92844 );
92845
92846 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
92847
92848 xla_ae_lines_pkg.set_segment(
92849 p_to_segment_code => 'GL_ACCOUNT'
92850 , p_segment_value => l_segment
92854 , p_transaction_coa_id => l_adr_transaction_coa_id
92851 , p_from_segment_code => l_adr_value_segment_code
92852 , p_from_combination_id => l_adr_value_combination_id
92853 , p_value_type_code => l_adr_value_type_code
92855 , p_accounting_coa_id => l_adr_accounting_coa_id
92856 , p_flexfield_segment_code => l_adr_flexfield_segment_code
92857 , p_flex_value_set_id => l_adr_flex_value_set_id
92858 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
92859 , p_adr_type_code => 'S'
92860 , p_component_type => l_component_type
92861 , p_component_code => l_component_code
92862 , p_component_type_code => l_component_type_code
92863 , p_component_appl_id => l_component_appl_id
92864 , p_amb_context_code => l_amb_context_code
92865 , p_entity_code => 'AP_PAYMENTS'
92866 , p_event_class_code => 'PAYMENTS'
92867 , p_side => 'NA'
92868 );
92869
92870 END IF;
92871
92872 l_segment := AcctDerRule_16(
92873 p_application_id => p_application_id
92874 , p_ae_header_id => l_ae_header_id
92875 , p_source_4 => p_source_4
92876 , p_source_4_meaning => p_source_4_meaning
92877 , p_source_23 => p_source_23
92878 , x_transaction_coa_id => l_adr_transaction_coa_id
92879 , x_accounting_coa_id => l_adr_accounting_coa_id
92880 , x_flexfield_segment_code => l_adr_flexfield_segment_code
92881 , x_flex_value_set_id => l_adr_flex_value_set_id
92882 , x_value_type_code => l_adr_value_type_code
92883 , x_value_combination_id => l_adr_value_combination_id
92884 , x_value_segment_code => l_adr_value_segment_code
92885 , p_side => 'NA'
92886 , p_override_seg_flag => 'Y'
92887 );
92888
92889 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
92890
92891 xla_ae_lines_pkg.set_segment(
92892 p_to_segment_code => 'GL_BALANCING'
92893 , p_segment_value => l_segment
92894 , p_from_segment_code => l_adr_value_segment_code
92895 , p_from_combination_id => l_adr_value_combination_id
92896 , p_value_type_code => l_adr_value_type_code
92897 , p_transaction_coa_id => l_adr_transaction_coa_id
92898 , p_accounting_coa_id => l_adr_accounting_coa_id
92899 , p_flexfield_segment_code => l_adr_flexfield_segment_code
92900 , p_flex_value_set_id => l_adr_flex_value_set_id
92901 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
92902 , p_adr_type_code => 'S'
92903 , p_component_type => l_component_type
92904 , p_component_code => l_component_code
92905 , p_component_type_code => l_component_type_code
92906 , p_component_appl_id => l_component_appl_id
92907 , p_amb_context_code => l_amb_context_code
92908 , p_entity_code => 'AP_PAYMENTS'
92909 , p_event_class_code => 'PAYMENTS'
92910 , p_side => 'NA'
92911 );
92912
92913 END IF;
92914
92915 --
92916 --
92917 END IF;
92918
92919 --
92920 -- Update the line information that should be overwritten
92921 --
92922 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92923 p_header_num => 1);
92924 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
92925
92926 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92927
92928 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
92929 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92930 END IF;
92931
92932 --
92933 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92934 --
92935 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92936 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
92937 ELSE
92938 ---------------------------------------------------------------------------------------------------
92939 -- 4262811a Switch Sign
92940 ---------------------------------------------------------------------------------------------------
92941 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
92942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92943 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92944 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92945 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92946 -- 5132302
92947 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92948 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92949
92950 END IF;
92951
92952 -- 4955764
92956
92953 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92954 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92955
92957 XLA_AE_LINES_PKG.ValidateCurrentLine;
92958 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92959
92960 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92961 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92962 ,p_balance_type_code => l_balance_type_code);
92963
92964 END IF;
92965
92966 -----------------------------------------------------------------------------------------
92967 -- 4262811 Multiperiod Accounting
92968 -----------------------------------------------------------------------------------------
92969 -- No MPA option is assigned.
92970
92971
92972 END IF;
92973 END IF;
92974 --
92975
92976 --
92977 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92978 trace
92979 (p_msg => 'END of AcctLineType_165'
92980 ,p_level => C_LEVEL_PROCEDURE
92981 ,p_module => l_log_module);
92982 END IF;
92983 --
92984 EXCEPTION
92985 WHEN xla_exceptions_pkg.application_exception THEN
92986 RAISE;
92987 WHEN OTHERS THEN
92988 xla_exceptions_pkg.raise_message
92989 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_165');
92990 END AcctLineType_165;
92991 --
92992
92993 ---------------------------------------
92994 --
92995 -- PRIVATE FUNCTION
92996 -- AcctLineType_166
92997 --
92998 ---------------------------------------
92999 PROCEDURE AcctLineType_166 (
93000 p_application_id IN NUMBER
93001 ,p_event_id IN NUMBER
93002 ,p_calculate_acctd_flag IN VARCHAR2
93003 ,p_calculate_g_l_flag IN VARCHAR2
93004 ,p_actual_flag IN OUT VARCHAR2
93005 ,p_balance_type_code OUT VARCHAR2
93006 ,p_gain_or_loss_ref OUT VARCHAR2
93007
93008 --Automatic Offsets Value
93009 , p_source_4 IN VARCHAR2
93010 , p_source_4_meaning IN VARCHAR2
93011 --Invoice Distribution Account
93012 , p_source_17 IN NUMBER
93013 --Retainage Account
93014 , p_source_22 IN NUMBER
93015 --Retainage Related Item Distribution Account
93016 , p_source_23 IN NUMBER
93017 --When to Account for Payment Option
93018 , p_source_38 IN VARCHAR2
93019 --Accounting Reversal Indicator
93020 , p_source_40 IN VARCHAR2
93021 --Business Flow Accounts Payable Application Identifier
93022 , p_source_42 IN NUMBER
93023 --Distribution Link Type
93024 , p_source_48 IN VARCHAR2
93025 --Override Accounted Amount Indicator
93026 , p_source_53 IN VARCHAR2
93027 , p_source_53_meaning IN VARCHAR2
93028 --Third Party Type
93029 , p_source_56 IN VARCHAR2
93030 --Invoice Distribution Tax Line Identifier
93031 , p_source_58 IN NUMBER
93032 --Invoice Distribution Summary Tax Line Identifier
93033 , p_source_59 IN NUMBER
93034 --Business Flow Invoice Distribution Type
93035 , p_source_62 IN VARCHAR2
93036 --Business Flow Invoice Entity Code
93037 , p_source_63 IN VARCHAR2
93038 --Invoice Distribution Tax Distribution Identifier from Tax
93039 , p_source_66 IN NUMBER
93040 --Prepayment Distribution Type
93041 , p_source_67 IN VARCHAR2
93042 --Recipient Invoice Distribution Type
93043 , p_source_68 IN VARCHAR2
93044 , p_source_68_meaning IN VARCHAR2
93045 --Prepayment Application Distribution Identifier
93046 , p_source_71 IN NUMBER
93047 --Invoice Identifier
93048 , p_source_72 IN NUMBER
93049 --Upgrade Encumbrance Credit Account Class
93050 , p_source_77 IN VARCHAR2
93051 --Payables Encumbrance Upgrade Credit Account
93052 , p_source_78 IN NUMBER
93053 --Payables Encumbrance Upgrade Credit Amount
93054 , p_source_79 IN NUMBER
93055 --Invoice Currency Code
93056 , p_source_80 IN VARCHAR2
93057 --Payables Encumbrance Upgrade Credit Base Amount
93058 , p_source_81 IN NUMBER
93059 --Upgrade Encumbrance Debit Account Class
93060 , p_source_82 IN VARCHAR2
93061 --Payables Encumbrance Upgrade Debit Account
93062 , p_source_83 IN NUMBER
93063 --Payables Encumbrance Upgrade Debit Amount
93064 , p_source_84 IN NUMBER
93065 --Payables Encumbrance Upgrade Debit Base Amount
93066 , p_source_85 IN NUMBER
93067 --Payables Encumbrance Upgrade Option
93068 , p_source_86 IN VARCHAR2
93069 --Prepayment Distribution Amount
93070 , p_source_87 IN NUMBER
93071 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
93072 , p_source_89 IN NUMBER
93073 --Deferred Accounting End Date
93074 , p_source_90 IN DATE
93075 --Deferred Accounting Option
93076 , p_source_91 IN VARCHAR2
93077 --Deferred Accounting Start Date
93078 , p_source_92 IN DATE
93079 --Invoice Supplier Identifier
93080 , p_source_93 IN NUMBER
93081 --Invoice Supplier Site Identifier
93082 , p_source_94 IN NUMBER
93083 --Identifier of the Prepayment Application Reversed
93084 , p_source_95 IN NUMBER
93085 --Payables Upgrade Credit Encumbrance Type Identifier
93089 --Invoice Exchange Date
93086 , p_source_96 IN NUMBER
93087 --Payables Upgrade Debit Encumbrance Type Identifier
93088 , p_source_97 IN NUMBER
93090 , p_source_124 IN DATE
93091 --Invoice Exchange Rate
93092 , p_source_125 IN NUMBER
93093 --Invoice Exchange Rate Type
93094 , p_source_126 IN VARCHAR2
93095 --Prepayment Application Recipient Invoice Type
93096 , p_source_144 IN VARCHAR2
93097 , p_source_144_meaning IN VARCHAR2
93098 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
93099 , p_source_145 IN NUMBER
93100 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
93101 , p_source_146 IN NUMBER
93102 )
93103 IS
93104
93105 l_component_type VARCHAR2(80);
93106 l_component_code VARCHAR2(30);
93107 l_component_type_code VARCHAR2(1);
93108 l_component_appl_id INTEGER;
93109 l_amb_context_code VARCHAR2(30);
93110 l_entity_code VARCHAR2(30);
93111 l_event_class_code VARCHAR2(30);
93112 l_ae_header_id NUMBER;
93113 l_event_type_code VARCHAR2(30);
93114 l_line_definition_code VARCHAR2(30);
93115 l_line_definition_owner_code VARCHAR2(1);
93116 --
93117 -- adr variables
93118 l_segment VARCHAR2(30);
93119 l_ccid NUMBER;
93120 l_adr_transaction_coa_id NUMBER;
93121 l_adr_accounting_coa_id NUMBER;
93122 l_adr_flexfield_segment_code VARCHAR2(30);
93123 l_adr_flex_value_set_id NUMBER;
93124 l_adr_value_type_code VARCHAR2(30);
93125 l_adr_value_combination_id NUMBER;
93126 l_adr_value_segment_code VARCHAR2(30);
93127
93128 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
93129 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
93130 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
93131 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
93132
93133 -- 4262811 Variables ------------------------------------------------------------------------------------------
93134 l_entered_amt_idx NUMBER;
93135 l_accted_amt_idx NUMBER;
93136 l_acc_rev_flag VARCHAR2(1);
93137 l_accrual_line_num NUMBER;
93138 l_tmp_amt NUMBER;
93139 l_acc_rev_natural_side_code VARCHAR2(1);
93140
93141 l_num_entries NUMBER;
93142 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
93143 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
93144 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
93145 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
93146 l_recog_line_1 NUMBER;
93147 l_recog_line_2 NUMBER;
93148
93149 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
93150 l_bflow_applied_to_amt NUMBER; -- 5132302
93151 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
93152
93153 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93154
93155 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
93156 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
93157
93158 ---------------------------------------------------------------------------------------------------------------
93159
93160
93161 --
93162 -- bulk performance
93163 --
93164 l_balance_type_code VARCHAR2(1);
93165 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
93166 l_log_module VARCHAR2(240);
93167
93168 --
93169 -- Upgrade strategy
93170 --
93171 l_actual_upg_option VARCHAR2(1);
93172 l_enc_upg_option VARCHAR2(1);
93173
93174 --
93175 BEGIN
93176 --
93177 IF g_log_enabled THEN
93178 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_166';
93179 END IF;
93180 --
93181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93182
93183 trace
93184 (p_msg => 'BEGIN of AcctLineType_166'
93185 ,p_level => C_LEVEL_PROCEDURE
93186 ,p_module => l_log_module);
93187
93188 END IF;
93189 --
93190 l_component_type := 'AMB_JLT';
93191 l_component_code := 'AP_RET_CASH_CLR_XRATE';
93192 l_component_type_code := 'S';
93193 l_component_appl_id := 200;
93194 l_amb_context_code := 'DEFAULT';
93195 l_entity_code := 'AP_INVOICES';
93196 l_event_class_code := 'PREPAYMENT APPLICATIONS';
93197 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
93198 l_line_definition_owner_code := 'S';
93199 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
93200 --
93201 l_balance_type_code := 'A';
93202 l_segment := NULL;
93203 l_ccid := NULL;
93204 l_adr_transaction_coa_id := NULL;
93205 l_adr_accounting_coa_id := NULL;
93206 l_adr_flexfield_segment_code := NULL;
93207 l_adr_flex_value_set_id := NULL;
93208 l_adr_value_type_code := NULL;
93209 l_adr_value_combination_id := NULL;
93210 l_adr_value_segment_code := NULL;
93211
93212 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
93216
93213 l_bflow_class_code := ''; -- 4219869 Business Flow
93214 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
93215 l_budgetary_control_flag := 'N';
93217 l_bflow_applied_to_amt_idx := NULL; -- 5132302
93218 l_bflow_applied_to_amt := NULL; -- 5132302
93219 l_entered_amt_idx := NULL; -- 4262811
93220 l_accted_amt_idx := NULL; -- 4262811
93221 l_acc_rev_flag := NULL; -- 4262811
93222 l_accrual_line_num := NULL; -- 4262811
93223 l_tmp_amt := NULL; -- 4262811
93224 --
93225
93226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93227 l_balance_type_code <> 'B' THEN
93228 IF NVL(p_source_38,'
93229 ') = 'CLEAR_CLEAR' AND
93230 NVL(p_source_68,'
93231 ') = 'RETAINAGE' AND
93232 NVL(p_source_144,'
93233 ') <> 'RETAINAGE RELEASE' AND
93234 (NVL(p_source_67,'
93235 ') = 'PREPAY APPL' OR
93236 NVL(p_source_67,'
93237 ') = 'PREPAY APPL NONREC TAX' OR
93238 NVL(p_source_67,'
93239 ') = 'PREPAY APPL REC TAX')
93240 THEN
93241
93242 --
93243 XLA_AE_LINES_PKG.SetNewLine;
93244
93245 p_balance_type_code := l_balance_type_code;
93246 -- set the flag so later we will know whether the gain loss line needs to be created
93247
93248 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93249 p_actual_flag :='A';
93250 END IF;
93251
93252 --
93253 -- bulk performance
93254 --
93255 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93256 p_header_num => 0); -- 4262811
93257 --
93258 -- set accounting line options
93259 --
93260 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93261 p_natural_side_code => 'C'
93262 , p_gain_or_loss_flag => 'N'
93263 , p_gl_transfer_mode_code => 'S'
93264 , p_acct_entry_type_code => 'A'
93265 , p_switch_side_flag => 'Y'
93266 , p_merge_duplicate_code => 'A'
93267 );
93268 --
93269 l_acc_rev_natural_side_code := 'D'; -- 4262811
93270 --
93271 --
93272 -- set accounting line type info
93273 --
93274 xla_ae_lines_pkg.SetAcctLineType
93275 (p_component_type => l_component_type
93276 ,p_event_type_code => l_event_type_code
93277 ,p_line_definition_owner_code => l_line_definition_owner_code
93278 ,p_line_definition_code => l_line_definition_code
93279 ,p_accounting_line_code => l_component_code
93280 ,p_accounting_line_type_code => l_component_type_code
93281 ,p_accounting_line_appl_id => l_component_appl_id
93282 ,p_amb_context_code => l_amb_context_code
93283 ,p_entity_code => l_entity_code
93284 ,p_event_class_code => l_event_class_code);
93285 --
93286 -- set accounting class
93287 --
93288 xla_ae_lines_pkg.SetAcctClass(
93289 p_accounting_class_code => 'RETAINAGE'
93290 , p_ae_header_id => l_ae_header_id
93291 );
93292
93293 --
93294 -- set rounding class
93295 --
93296 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93297 'RETAINAGE';
93298
93299 --
93300 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93301 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93302 --
93303 -- bulk performance
93304 --
93305 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93306
93307 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93308 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93309
93310 -- 4955764
93311 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93312 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93313
93314 -- 4458381 Public Sector Enh
93315
93316 --
93317 -- set accounting attributes for the line type
93318 --
93319 l_entered_amt_idx := 25;
93320 l_accted_amt_idx := 30;
93321 l_bflow_applied_to_amt_idx := NULL; -- 5132302
93322 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93323 l_rec_acct_attrs.array_char_value(1) := p_source_40;
93324 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93325 l_rec_acct_attrs.array_num_value(2) :=
93326 xla_ae_sources_pkg.GetSystemSourceNum(
93327 p_source_code => 'XLA_EVENT_APPL_ID'
93328 , p_source_type_code => 'Y'
93329 , p_source_application_id => 602
93330 );
93331 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93332 l_rec_acct_attrs.array_char_value(3) := p_source_48;
93333 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93334 l_rec_acct_attrs.array_char_value(4) :=
93335 xla_ae_sources_pkg.GetSystemSourceChar(
93336 p_source_code => 'XLA_ENTITY_CODE'
93337 , p_source_type_code => 'Y'
93338 , p_source_application_id => 602
93339 );
93343 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
93340 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93341 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
93342 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93344 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93345 l_rec_acct_attrs.array_num_value(7) := p_source_42;
93346 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93347 l_rec_acct_attrs.array_char_value(8) := p_source_62;
93348 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93349 l_rec_acct_attrs.array_char_value(9) := p_source_63;
93350 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93351 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_145);
93352 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93353 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_146);
93354 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93355 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
93356 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93357 l_rec_acct_attrs.array_char_value(13) := p_source_48;
93358 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93359 l_rec_acct_attrs.array_char_value(14) := p_source_77;
93360 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93361 l_rec_acct_attrs.array_num_value(15) := p_source_78;
93362 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93363 l_rec_acct_attrs.array_num_value(16) := p_source_79;
93364 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93365 l_rec_acct_attrs.array_char_value(17) := p_source_80;
93366 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93367 l_rec_acct_attrs.array_num_value(18) := p_source_81;
93368 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93369 l_rec_acct_attrs.array_char_value(19) := p_source_82;
93370 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93371 l_rec_acct_attrs.array_num_value(20) := p_source_83;
93372 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93373 l_rec_acct_attrs.array_num_value(21) := p_source_84;
93374 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93375 l_rec_acct_attrs.array_char_value(22) := p_source_80;
93376 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93377 l_rec_acct_attrs.array_num_value(23) := p_source_85;
93378 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93379 l_rec_acct_attrs.array_char_value(24) := p_source_86;
93380 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93381 l_rec_acct_attrs.array_num_value(25) := p_source_87;
93382 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93383 l_rec_acct_attrs.array_char_value(26) := p_source_80;
93384 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
93385 l_rec_acct_attrs.array_date_value(27) := p_source_124;
93386 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
93387 l_rec_acct_attrs.array_num_value(28) := p_source_125;
93388 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
93389 l_rec_acct_attrs.array_char_value(29) := p_source_126;
93390 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
93391 l_rec_acct_attrs.array_num_value(30) := p_source_89;
93392 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
93393 l_rec_acct_attrs.array_date_value(31) := p_source_90;
93394 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
93395 l_rec_acct_attrs.array_char_value(32) := p_source_91;
93396 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
93397 l_rec_acct_attrs.array_date_value(33) := p_source_92;
93398 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
93399 l_rec_acct_attrs.array_char_value(34) := p_source_53;
93400 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
93401 l_rec_acct_attrs.array_num_value(35) := p_source_93;
93402 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
93403 l_rec_acct_attrs.array_num_value(36) := p_source_94;
93404 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
93405 l_rec_acct_attrs.array_char_value(37) := p_source_56;
93406 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
93407 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
93408 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
93409 l_rec_acct_attrs.array_char_value(39) := p_source_48;
93410 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
93411 l_rec_acct_attrs.array_num_value(40) := p_source_58;
93412 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
93413 l_rec_acct_attrs.array_num_value(41) := p_source_66;
93414 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
93415 l_rec_acct_attrs.array_num_value(42) := p_source_59;
93416 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
93417 l_rec_acct_attrs.array_num_value(43) := p_source_96;
93418 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
93419 l_rec_acct_attrs.array_num_value(44) := p_source_97;
93420
93421 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93422 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93423
93427 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93424 ---------------------------------------------------------------------------------------------------------------
93425 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93426 ---------------------------------------------------------------------------------------------------------------
93428
93429 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93430 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93431
93432 IF xla_accounting_cache_pkg.GetValueChar
93433 (p_source_code => 'LEDGER_CATEGORY_CODE'
93434 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93435 AND l_bflow_method_code = 'PRIOR_ENTRY'
93436 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93437 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93438 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93439 )
93440 THEN
93441 xla_ae_lines_pkg.BflowUpgEntry
93442 (p_business_method_code => l_bflow_method_code
93443 ,p_business_class_code => l_bflow_class_code
93444 ,p_balance_type => l_balance_type_code);
93445 ELSE
93446 NULL;
93447 -- No business flow processing for business flow method of NONE.
93448 END IF;
93449
93450 --
93451 -- call analytical criteria
93452 --
93453
93454 --
93455 -- call description
93456 --
93457 -- No description or it is inherited.
93458 --
93459 -- call ADRs
93460 -- Bug 4922099
93461 --
93462 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93463 (NVL(l_actual_upg_option, 'N') = 'O') OR
93464 (NVL(l_enc_upg_option, 'N') = 'O')
93465 )
93466 THEN
93467 NULL;
93468 --
93469 --
93470
93471 l_ccid := AcctDerRule_34(
93472 p_application_id => p_application_id
93473 , p_ae_header_id => l_ae_header_id
93474 , p_source_4 => p_source_4
93475 , p_source_4_meaning => p_source_4_meaning
93476 , p_source_17 => p_source_17
93477 , p_source_23 => p_source_23
93478 , x_transaction_coa_id => l_adr_transaction_coa_id
93479 , x_accounting_coa_id => l_adr_accounting_coa_id
93480 , x_value_type_code => l_adr_value_type_code
93481 , p_side => 'NA'
93482 );
93483
93484 xla_ae_lines_pkg.set_ccid(
93485 p_code_combination_id => l_ccid
93486 , p_value_type_code => l_adr_value_type_code
93487 , p_transaction_coa_id => l_adr_transaction_coa_id
93488 , p_accounting_coa_id => l_adr_accounting_coa_id
93489 , p_adr_code => 'AP_RETAINAGE'
93490 , p_adr_type_code => 'S'
93491 , p_component_type => l_component_type
93492 , p_component_code => l_component_code
93493 , p_component_type_code => l_component_type_code
93494 , p_component_appl_id => l_component_appl_id
93495 , p_amb_context_code => l_amb_context_code
93496 , p_side => 'NA'
93497 );
93498
93499
93500 l_segment := AcctDerRule_12(
93501 p_application_id => p_application_id
93502 , p_ae_header_id => l_ae_header_id
93503 , p_source_22 => p_source_22
93504 , x_transaction_coa_id => l_adr_transaction_coa_id
93505 , x_accounting_coa_id => l_adr_accounting_coa_id
93506 , x_flexfield_segment_code => l_adr_flexfield_segment_code
93507 , x_flex_value_set_id => l_adr_flex_value_set_id
93508 , x_value_type_code => l_adr_value_type_code
93509 , x_value_combination_id => l_adr_value_combination_id
93510 , x_value_segment_code => l_adr_value_segment_code
93511 , p_side => 'NA'
93512 , p_override_seg_flag => 'Y'
93513 );
93514
93515 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
93516
93517 xla_ae_lines_pkg.set_segment(
93518 p_to_segment_code => 'GL_ACCOUNT'
93519 , p_segment_value => l_segment
93520 , p_from_segment_code => l_adr_value_segment_code
93521 , p_from_combination_id => l_adr_value_combination_id
93522 , p_value_type_code => l_adr_value_type_code
93523 , p_transaction_coa_id => l_adr_transaction_coa_id
93524 , p_accounting_coa_id => l_adr_accounting_coa_id
93525 , p_flexfield_segment_code => l_adr_flexfield_segment_code
93526 , p_flex_value_set_id => l_adr_flex_value_set_id
93527 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
93528 , p_adr_type_code => 'S'
93529 , p_component_type => l_component_type
93530 , p_component_code => l_component_code
93531 , p_component_type_code => l_component_type_code
93532 , p_component_appl_id => l_component_appl_id
93533 , p_amb_context_code => l_amb_context_code
93534 , p_entity_code => 'AP_INVOICES'
93535 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
93536 , p_side => 'NA'
93540
93537 );
93538
93539 END IF;
93541 l_segment := AcctDerRule_16(
93542 p_application_id => p_application_id
93543 , p_ae_header_id => l_ae_header_id
93544 , p_source_4 => p_source_4
93545 , p_source_4_meaning => p_source_4_meaning
93546 , p_source_23 => p_source_23
93547 , x_transaction_coa_id => l_adr_transaction_coa_id
93548 , x_accounting_coa_id => l_adr_accounting_coa_id
93549 , x_flexfield_segment_code => l_adr_flexfield_segment_code
93550 , x_flex_value_set_id => l_adr_flex_value_set_id
93551 , x_value_type_code => l_adr_value_type_code
93552 , x_value_combination_id => l_adr_value_combination_id
93553 , x_value_segment_code => l_adr_value_segment_code
93554 , p_side => 'NA'
93555 , p_override_seg_flag => 'Y'
93556 );
93557
93558 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
93559
93560 xla_ae_lines_pkg.set_segment(
93561 p_to_segment_code => 'GL_BALANCING'
93562 , p_segment_value => l_segment
93563 , p_from_segment_code => l_adr_value_segment_code
93564 , p_from_combination_id => l_adr_value_combination_id
93565 , p_value_type_code => l_adr_value_type_code
93566 , p_transaction_coa_id => l_adr_transaction_coa_id
93567 , p_accounting_coa_id => l_adr_accounting_coa_id
93568 , p_flexfield_segment_code => l_adr_flexfield_segment_code
93569 , p_flex_value_set_id => l_adr_flex_value_set_id
93570 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
93571 , p_adr_type_code => 'S'
93572 , p_component_type => l_component_type
93573 , p_component_code => l_component_code
93574 , p_component_type_code => l_component_type_code
93575 , p_component_appl_id => l_component_appl_id
93576 , p_amb_context_code => l_amb_context_code
93577 , p_entity_code => 'AP_INVOICES'
93578 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
93579 , p_side => 'NA'
93580 );
93581
93582 END IF;
93583
93584 --
93585 --
93586 END IF;
93587 --
93588 -- Bug 4922099
93589 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93590 (NVL(l_enc_upg_option, 'N') = 'O')
93591 ) AND
93592 (l_bflow_method_code = 'PRIOR_ENTRY')
93593 )
93594 THEN
93595 IF
93596 --
93597 1 = 2
93598 --
93599 THEN
93600 xla_accounting_err_pkg.build_message
93601 (p_appli_s_name => 'XLA'
93602 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93603 ,p_token_1 => 'LINE_NUMBER'
93604 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
93605 ,p_token_2 => 'LINE_TYPE_NAME'
93606 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
93607 l_component_type
93608 ,l_component_code
93609 ,l_component_type_code
93610 ,l_component_appl_id
93611 ,l_amb_context_code
93612 ,l_entity_code
93613 ,l_event_class_code
93614 )
93615 ,p_token_3 => 'OWNER'
93616 ,p_value_3 => xla_lookups_pkg.get_meaning(
93617 p_lookup_type => 'XLA_OWNER_TYPE'
93618 ,p_lookup_code => l_component_type_code
93619 )
93620 ,p_token_4 => 'PRODUCT_NAME'
93621 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93622 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93623 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93624 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93625 ,p_ae_header_id => NULL
93626 );
93627
93628 IF (C_LEVEL_ERROR>= g_log_level) THEN
93629 trace
93630 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93631 ,p_level => C_LEVEL_ERROR
93632 ,p_module => l_log_module);
93633 END IF;
93634 END IF;
93635 END IF;
93636 --
93637 --
93641 -- Prior Entry. Currently, the following code is always generated.
93638 ------------------------------------------------------------------------------------------------
93639 -- 4219869 Business Flow
93640 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93642 ------------------------------------------------------------------------------------------------
93643 XLA_AE_LINES_PKG.ValidateCurrentLine;
93644
93645 ------------------------------------------------------------------------------------
93646 -- 4219869 Business Flow
93647 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93648 ------------------------------------------------------------------------------------
93649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93650
93651 ----------------------------------------------------------------------------------
93652 -- 4219869 Business Flow
93653 -- Update journal entry status -- Need to generate this within IF <condition>
93654 ----------------------------------------------------------------------------------
93655 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93656 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93657 ,p_balance_type_code => l_balance_type_code
93658 );
93659
93660 -------------------------------------------------------------------------------------------
93661 -- 4262811 - Generate the Accrual Reversal lines
93662 -------------------------------------------------------------------------------------------
93663 BEGIN
93664 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93665 (g_array_event(p_event_id).array_value_num('header_index'));
93666 IF l_acc_rev_flag IS NULL THEN
93667 l_acc_rev_flag := 'N';
93668 END IF;
93669 EXCEPTION
93670 WHEN OTHERS THEN
93671 l_acc_rev_flag := 'N';
93672 END;
93673 --
93674 IF (l_acc_rev_flag = 'Y') THEN
93675
93676 -- 4645092 ------------------------------------------------------------------------------
93677 -- To allow MPA report to determine if it should generate report process
93678 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93679 ------------------------------------------------------------------------------------------
93680
93681 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93682 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93683 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
93684 -- call ADRs
93685 -- Bug 4922099
93686 --
93687 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93688 (NVL(l_actual_upg_option, 'N') = 'O') OR
93689 (NVL(l_enc_upg_option, 'N') = 'O')
93690 )
93691 THEN
93692 NULL;
93693 --
93694 --
93695
93696 l_ccid := AcctDerRule_34(
93697 p_application_id => p_application_id
93698 , p_ae_header_id => l_ae_header_id
93699 , p_source_4 => p_source_4
93700 , p_source_4_meaning => p_source_4_meaning
93701 , p_source_17 => p_source_17
93702 , p_source_23 => p_source_23
93703 , x_transaction_coa_id => l_adr_transaction_coa_id
93704 , x_accounting_coa_id => l_adr_accounting_coa_id
93705 , x_value_type_code => l_adr_value_type_code
93706 , p_side => 'NA'
93707 );
93708
93709 xla_ae_lines_pkg.set_ccid(
93710 p_code_combination_id => l_ccid
93711 , p_value_type_code => l_adr_value_type_code
93712 , p_transaction_coa_id => l_adr_transaction_coa_id
93713 , p_accounting_coa_id => l_adr_accounting_coa_id
93714 , p_adr_code => 'AP_RETAINAGE'
93715 , p_adr_type_code => 'S'
93716 , p_component_type => l_component_type
93717 , p_component_code => l_component_code
93718 , p_component_type_code => l_component_type_code
93719 , p_component_appl_id => l_component_appl_id
93720 , p_amb_context_code => l_amb_context_code
93721 , p_side => 'NA'
93722 );
93723
93724
93725 l_segment := AcctDerRule_12(
93726 p_application_id => p_application_id
93727 , p_ae_header_id => l_ae_header_id
93728 , p_source_22 => p_source_22
93729 , x_transaction_coa_id => l_adr_transaction_coa_id
93730 , x_accounting_coa_id => l_adr_accounting_coa_id
93731 , x_flexfield_segment_code => l_adr_flexfield_segment_code
93732 , x_flex_value_set_id => l_adr_flex_value_set_id
93733 , x_value_type_code => l_adr_value_type_code
93734 , x_value_combination_id => l_adr_value_combination_id
93735 , x_value_segment_code => l_adr_value_segment_code
93736 , p_side => 'NA'
93737 , p_override_seg_flag => 'Y'
93738 );
93739
93740 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
93741
93742 xla_ae_lines_pkg.set_segment(
93743 p_to_segment_code => 'GL_ACCOUNT'
93744 , p_segment_value => l_segment
93745 , p_from_segment_code => l_adr_value_segment_code
93746 , p_from_combination_id => l_adr_value_combination_id
93747 , p_value_type_code => l_adr_value_type_code
93751 , p_flex_value_set_id => l_adr_flex_value_set_id
93748 , p_transaction_coa_id => l_adr_transaction_coa_id
93749 , p_accounting_coa_id => l_adr_accounting_coa_id
93750 , p_flexfield_segment_code => l_adr_flexfield_segment_code
93752 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
93753 , p_adr_type_code => 'S'
93754 , p_component_type => l_component_type
93755 , p_component_code => l_component_code
93756 , p_component_type_code => l_component_type_code
93757 , p_component_appl_id => l_component_appl_id
93758 , p_amb_context_code => l_amb_context_code
93759 , p_entity_code => 'AP_INVOICES'
93760 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
93761 , p_side => 'NA'
93762 );
93763
93764 END IF;
93765
93766 l_segment := AcctDerRule_16(
93767 p_application_id => p_application_id
93768 , p_ae_header_id => l_ae_header_id
93769 , p_source_4 => p_source_4
93770 , p_source_4_meaning => p_source_4_meaning
93771 , p_source_23 => p_source_23
93772 , x_transaction_coa_id => l_adr_transaction_coa_id
93773 , x_accounting_coa_id => l_adr_accounting_coa_id
93774 , x_flexfield_segment_code => l_adr_flexfield_segment_code
93775 , x_flex_value_set_id => l_adr_flex_value_set_id
93776 , x_value_type_code => l_adr_value_type_code
93777 , x_value_combination_id => l_adr_value_combination_id
93778 , x_value_segment_code => l_adr_value_segment_code
93779 , p_side => 'NA'
93780 , p_override_seg_flag => 'Y'
93781 );
93782
93783 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
93784
93785 xla_ae_lines_pkg.set_segment(
93786 p_to_segment_code => 'GL_BALANCING'
93787 , p_segment_value => l_segment
93788 , p_from_segment_code => l_adr_value_segment_code
93789 , p_from_combination_id => l_adr_value_combination_id
93790 , p_value_type_code => l_adr_value_type_code
93791 , p_transaction_coa_id => l_adr_transaction_coa_id
93792 , p_accounting_coa_id => l_adr_accounting_coa_id
93793 , p_flexfield_segment_code => l_adr_flexfield_segment_code
93794 , p_flex_value_set_id => l_adr_flex_value_set_id
93795 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
93796 , p_adr_type_code => 'S'
93797 , p_component_type => l_component_type
93798 , p_component_code => l_component_code
93799 , p_component_type_code => l_component_type_code
93800 , p_component_appl_id => l_component_appl_id
93801 , p_amb_context_code => l_amb_context_code
93802 , p_entity_code => 'AP_INVOICES'
93803 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
93804 , p_side => 'NA'
93805 );
93806
93807 END IF;
93808
93809 --
93810 --
93811 END IF;
93812
93813 --
93814 -- Update the line information that should be overwritten
93815 --
93816 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93817 p_header_num => 1);
93818 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
93819
93820 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93821
93822 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
93823 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93824 END IF;
93825
93826 --
93827 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93828 --
93829 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93830 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
93831 ELSE
93832 ---------------------------------------------------------------------------------------------------
93833 -- 4262811a Switch Sign
93834 ---------------------------------------------------------------------------------------------------
93835 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
93836 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93837 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93838 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93839 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93840 -- 5132302
93841 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93842 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93843
93844 END IF;
93845
93846 -- 4955764
93847 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93848 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93849
93853
93850
93851 XLA_AE_LINES_PKG.ValidateCurrentLine;
93852 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93854 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93855 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93856 ,p_balance_type_code => l_balance_type_code);
93857
93858 END IF;
93859
93860 -----------------------------------------------------------------------------------------
93861 -- 4262811 Multiperiod Accounting
93862 -----------------------------------------------------------------------------------------
93863 -- No MPA option is assigned.
93864
93865
93866 END IF;
93867 END IF;
93868 --
93869
93870 --
93871 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93872 trace
93873 (p_msg => 'END of AcctLineType_166'
93874 ,p_level => C_LEVEL_PROCEDURE
93875 ,p_module => l_log_module);
93876 END IF;
93877 --
93878 EXCEPTION
93879 WHEN xla_exceptions_pkg.application_exception THEN
93880 RAISE;
93881 WHEN OTHERS THEN
93882 xla_exceptions_pkg.raise_message
93883 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_166');
93884 END AcctLineType_166;
93885 --
93886
93887 ---------------------------------------
93888 --
93889 -- PRIVATE FUNCTION
93890 -- AcctLineType_167
93891 --
93892 ---------------------------------------
93893 PROCEDURE AcctLineType_167 (
93894 p_application_id IN NUMBER
93895 ,p_event_id IN NUMBER
93896 ,p_calculate_acctd_flag IN VARCHAR2
93897 ,p_calculate_g_l_flag IN VARCHAR2
93898 ,p_actual_flag IN OUT VARCHAR2
93899 ,p_balance_type_code OUT VARCHAR2
93900 ,p_gain_or_loss_ref OUT VARCHAR2
93901
93902 --Automatic Offsets Value
93903 , p_source_4 IN VARCHAR2
93904 , p_source_4_meaning IN VARCHAR2
93905 --Invoice Distribution Account
93906 , p_source_17 IN NUMBER
93907 --Retainage Account
93908 , p_source_22 IN NUMBER
93909 --Retainage Related Item Distribution Account
93910 , p_source_23 IN NUMBER
93911 --When to Account for Payment Option
93912 , p_source_38 IN VARCHAR2
93913 --Accounting Reversal Indicator
93914 , p_source_40 IN VARCHAR2
93915 --Business Flow Accounts Payable Application Identifier
93916 , p_source_42 IN NUMBER
93917 --Distribution Link Type
93918 , p_source_48 IN VARCHAR2
93919 --Override Accounted Amount Indicator
93920 , p_source_53 IN VARCHAR2
93921 , p_source_53_meaning IN VARCHAR2
93922 --Third Party Type
93923 , p_source_56 IN VARCHAR2
93924 --Invoice Distribution Tax Line Identifier
93925 , p_source_58 IN NUMBER
93926 --Invoice Distribution Summary Tax Line Identifier
93927 , p_source_59 IN NUMBER
93928 --Business Flow Invoice Distribution Type
93929 , p_source_62 IN VARCHAR2
93930 --Business Flow Invoice Entity Code
93931 , p_source_63 IN VARCHAR2
93932 --Invoice Distribution Tax Distribution Identifier from Tax
93933 , p_source_66 IN NUMBER
93934 --Prepayment Distribution Type
93935 , p_source_67 IN VARCHAR2
93936 --Recipient Invoice Distribution Type
93937 , p_source_68 IN VARCHAR2
93938 , p_source_68_meaning IN VARCHAR2
93939 --Prepayment Application Distribution Identifier
93940 , p_source_71 IN NUMBER
93941 --Invoice Identifier
93942 , p_source_72 IN NUMBER
93943 --Upgrade Encumbrance Credit Account Class
93944 , p_source_77 IN VARCHAR2
93945 --Payables Encumbrance Upgrade Credit Account
93946 , p_source_78 IN NUMBER
93947 --Payables Encumbrance Upgrade Credit Amount
93948 , p_source_79 IN NUMBER
93949 --Invoice Currency Code
93950 , p_source_80 IN VARCHAR2
93951 --Payables Encumbrance Upgrade Credit Base Amount
93952 , p_source_81 IN NUMBER
93953 --Upgrade Encumbrance Debit Account Class
93954 , p_source_82 IN VARCHAR2
93955 --Payables Encumbrance Upgrade Debit Account
93956 , p_source_83 IN NUMBER
93957 --Payables Encumbrance Upgrade Debit Amount
93958 , p_source_84 IN NUMBER
93959 --Payables Encumbrance Upgrade Debit Base Amount
93960 , p_source_85 IN NUMBER
93961 --Payables Encumbrance Upgrade Option
93962 , p_source_86 IN VARCHAR2
93963 --Prepayment Distribution Amount
93964 , p_source_87 IN NUMBER
93965 --Deferred Accounting End Date
93966 , p_source_90 IN DATE
93967 --Deferred Accounting Option
93968 , p_source_91 IN VARCHAR2
93969 --Deferred Accounting Start Date
93970 , p_source_92 IN DATE
93971 --Invoice Supplier Identifier
93972 , p_source_93 IN NUMBER
93973 --Invoice Supplier Site Identifier
93974 , p_source_94 IN NUMBER
93975 --Identifier of the Prepayment Application Reversed
93976 , p_source_95 IN NUMBER
93977 --Payables Upgrade Credit Encumbrance Type Identifier
93978 , p_source_96 IN NUMBER
93979 --Payables Upgrade Debit Encumbrance Type Identifier
93980 , p_source_97 IN NUMBER
93981 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
93982 , p_source_99 IN NUMBER
93983 --Invoice Exchange Date
93984 , p_source_124 IN DATE
93985 --Invoice Exchange Rate
93986 , p_source_125 IN NUMBER
93987 --Invoice Exchange Rate Type
93991 , p_source_144_meaning IN VARCHAR2
93988 , p_source_126 IN VARCHAR2
93989 --Prepayment Application Recipient Invoice Type
93990 , p_source_144 IN VARCHAR2
93992 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
93993 , p_source_145 IN NUMBER
93994 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
93995 , p_source_146 IN NUMBER
93996 )
93997 IS
93998
93999 l_component_type VARCHAR2(80);
94000 l_component_code VARCHAR2(30);
94001 l_component_type_code VARCHAR2(1);
94002 l_component_appl_id INTEGER;
94003 l_amb_context_code VARCHAR2(30);
94004 l_entity_code VARCHAR2(30);
94005 l_event_class_code VARCHAR2(30);
94006 l_ae_header_id NUMBER;
94007 l_event_type_code VARCHAR2(30);
94008 l_line_definition_code VARCHAR2(30);
94009 l_line_definition_owner_code VARCHAR2(1);
94010 --
94011 -- adr variables
94012 l_segment VARCHAR2(30);
94013 l_ccid NUMBER;
94014 l_adr_transaction_coa_id NUMBER;
94015 l_adr_accounting_coa_id NUMBER;
94016 l_adr_flexfield_segment_code VARCHAR2(30);
94017 l_adr_flex_value_set_id NUMBER;
94018 l_adr_value_type_code VARCHAR2(30);
94019 l_adr_value_combination_id NUMBER;
94020 l_adr_value_segment_code VARCHAR2(30);
94021
94022 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
94023 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
94024 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
94025 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
94026
94027 -- 4262811 Variables ------------------------------------------------------------------------------------------
94028 l_entered_amt_idx NUMBER;
94029 l_accted_amt_idx NUMBER;
94030 l_acc_rev_flag VARCHAR2(1);
94031 l_accrual_line_num NUMBER;
94032 l_tmp_amt NUMBER;
94033 l_acc_rev_natural_side_code VARCHAR2(1);
94034
94035 l_num_entries NUMBER;
94036 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
94037 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
94038 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
94039 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
94040 l_recog_line_1 NUMBER;
94041 l_recog_line_2 NUMBER;
94042
94043 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
94044 l_bflow_applied_to_amt NUMBER; -- 5132302
94045 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
94046
94047 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94048
94049 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
94050 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
94051
94052 ---------------------------------------------------------------------------------------------------------------
94053
94054
94055 --
94056 -- bulk performance
94057 --
94058 l_balance_type_code VARCHAR2(1);
94059 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
94060 l_log_module VARCHAR2(240);
94061
94062 --
94063 -- Upgrade strategy
94064 --
94065 l_actual_upg_option VARCHAR2(1);
94066 l_enc_upg_option VARCHAR2(1);
94067
94068 --
94069 BEGIN
94070 --
94071 IF g_log_enabled THEN
94072 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_167';
94073 END IF;
94074 --
94075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94076
94077 trace
94078 (p_msg => 'BEGIN of AcctLineType_167'
94079 ,p_level => C_LEVEL_PROCEDURE
94080 ,p_module => l_log_module);
94081
94082 END IF;
94083 --
94084 l_component_type := 'AMB_JLT';
94085 l_component_code := 'AP_RET_CASH_PAY_XRATE';
94086 l_component_type_code := 'S';
94087 l_component_appl_id := 200;
94088 l_amb_context_code := 'DEFAULT';
94089 l_entity_code := 'AP_INVOICES';
94090 l_event_class_code := 'PREPAYMENT APPLICATIONS';
94091 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
94092 l_line_definition_owner_code := 'S';
94093 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
94094 --
94095 l_balance_type_code := 'A';
94096 l_segment := NULL;
94097 l_ccid := NULL;
94098 l_adr_transaction_coa_id := NULL;
94099 l_adr_accounting_coa_id := NULL;
94100 l_adr_flexfield_segment_code := NULL;
94101 l_adr_flex_value_set_id := NULL;
94102 l_adr_value_type_code := NULL;
94103 l_adr_value_combination_id := NULL;
94104 l_adr_value_segment_code := NULL;
94105
94106 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
94107 l_bflow_class_code := ''; -- 4219869 Business Flow
94108 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
94109 l_budgetary_control_flag := 'N';
94110
94111 l_bflow_applied_to_amt_idx := NULL; -- 5132302
94112 l_bflow_applied_to_amt := NULL; -- 5132302
94116 l_accrual_line_num := NULL; -- 4262811
94113 l_entered_amt_idx := NULL; -- 4262811
94114 l_accted_amt_idx := NULL; -- 4262811
94115 l_acc_rev_flag := NULL; -- 4262811
94117 l_tmp_amt := NULL; -- 4262811
94118 --
94119
94120 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94121 l_balance_type_code <> 'B' THEN
94122 IF NVL(p_source_38,'
94123 ') <> 'CLEAR_CLEAR' AND
94124 NVL(p_source_68,'
94125 ') = 'RETAINAGE' AND
94126 NVL(p_source_144,'
94127 ') <> 'RETAINAGE RELEASE' AND
94128 (NVL(p_source_67,'
94129 ') = 'PREPAY APPL' OR
94130 NVL(p_source_67,'
94131 ') = 'PREPAY APPL NONREC TAX' OR
94132 NVL(p_source_67,'
94133 ') = 'PREPAY APPL REC TAX')
94134 THEN
94135
94136 --
94137 XLA_AE_LINES_PKG.SetNewLine;
94138
94139 p_balance_type_code := l_balance_type_code;
94140 -- set the flag so later we will know whether the gain loss line needs to be created
94141
94142 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
94143 p_actual_flag :='A';
94144 END IF;
94145
94146 --
94147 -- bulk performance
94148 --
94149 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94150 p_header_num => 0); -- 4262811
94151 --
94152 -- set accounting line options
94153 --
94154 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94155 p_natural_side_code => 'C'
94156 , p_gain_or_loss_flag => 'N'
94157 , p_gl_transfer_mode_code => 'S'
94158 , p_acct_entry_type_code => 'A'
94159 , p_switch_side_flag => 'Y'
94160 , p_merge_duplicate_code => 'A'
94161 );
94162 --
94163 l_acc_rev_natural_side_code := 'D'; -- 4262811
94164 --
94165 --
94166 -- set accounting line type info
94167 --
94168 xla_ae_lines_pkg.SetAcctLineType
94169 (p_component_type => l_component_type
94170 ,p_event_type_code => l_event_type_code
94171 ,p_line_definition_owner_code => l_line_definition_owner_code
94172 ,p_line_definition_code => l_line_definition_code
94173 ,p_accounting_line_code => l_component_code
94174 ,p_accounting_line_type_code => l_component_type_code
94175 ,p_accounting_line_appl_id => l_component_appl_id
94176 ,p_amb_context_code => l_amb_context_code
94177 ,p_entity_code => l_entity_code
94178 ,p_event_class_code => l_event_class_code);
94179 --
94180 -- set accounting class
94181 --
94182 xla_ae_lines_pkg.SetAcctClass(
94183 p_accounting_class_code => 'RETAINAGE'
94184 , p_ae_header_id => l_ae_header_id
94185 );
94186
94187 --
94188 -- set rounding class
94189 --
94190 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94191 'RETAINAGE';
94192
94193 --
94194 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94195 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94196 --
94197 -- bulk performance
94198 --
94199 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94200
94201 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94202 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94203
94204 -- 4955764
94205 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94206 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94207
94208 -- 4458381 Public Sector Enh
94209
94210 --
94211 -- set accounting attributes for the line type
94212 --
94213 l_entered_amt_idx := 25;
94214 l_accted_amt_idx := 30;
94215 l_bflow_applied_to_amt_idx := NULL; -- 5132302
94216 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94217 l_rec_acct_attrs.array_char_value(1) := p_source_40;
94218 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
94219 l_rec_acct_attrs.array_num_value(2) :=
94220 xla_ae_sources_pkg.GetSystemSourceNum(
94221 p_source_code => 'XLA_EVENT_APPL_ID'
94222 , p_source_type_code => 'Y'
94223 , p_source_application_id => 602
94224 );
94225 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
94226 l_rec_acct_attrs.array_char_value(3) := p_source_48;
94227 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
94228 l_rec_acct_attrs.array_char_value(4) :=
94229 xla_ae_sources_pkg.GetSystemSourceChar(
94230 p_source_code => 'XLA_ENTITY_CODE'
94231 , p_source_type_code => 'Y'
94232 , p_source_application_id => 602
94233 );
94234 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
94235 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
94236 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
94237 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
94238 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
94239 l_rec_acct_attrs.array_num_value(7) := p_source_42;
94243 l_rec_acct_attrs.array_char_value(9) := p_source_63;
94240 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94241 l_rec_acct_attrs.array_char_value(8) := p_source_62;
94242 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
94244 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
94245 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_145);
94246 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94247 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_146);
94248 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
94249 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
94250 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
94251 l_rec_acct_attrs.array_char_value(13) := p_source_48;
94252 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
94253 l_rec_acct_attrs.array_char_value(14) := p_source_77;
94254 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
94255 l_rec_acct_attrs.array_num_value(15) := p_source_78;
94256 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
94257 l_rec_acct_attrs.array_num_value(16) := p_source_79;
94258 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
94259 l_rec_acct_attrs.array_char_value(17) := p_source_80;
94260 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
94261 l_rec_acct_attrs.array_num_value(18) := p_source_81;
94262 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
94263 l_rec_acct_attrs.array_char_value(19) := p_source_82;
94264 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
94265 l_rec_acct_attrs.array_num_value(20) := p_source_83;
94266 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
94267 l_rec_acct_attrs.array_num_value(21) := p_source_84;
94268 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
94269 l_rec_acct_attrs.array_char_value(22) := p_source_80;
94270 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
94271 l_rec_acct_attrs.array_num_value(23) := p_source_85;
94272 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
94273 l_rec_acct_attrs.array_char_value(24) := p_source_86;
94274 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
94275 l_rec_acct_attrs.array_num_value(25) := p_source_87;
94276 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
94277 l_rec_acct_attrs.array_char_value(26) := p_source_80;
94278 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
94279 l_rec_acct_attrs.array_date_value(27) := p_source_124;
94280 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
94281 l_rec_acct_attrs.array_num_value(28) := p_source_125;
94282 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
94283 l_rec_acct_attrs.array_char_value(29) := p_source_126;
94284 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
94285 l_rec_acct_attrs.array_num_value(30) := p_source_99;
94286 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
94287 l_rec_acct_attrs.array_date_value(31) := p_source_90;
94288 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
94289 l_rec_acct_attrs.array_char_value(32) := p_source_91;
94290 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
94291 l_rec_acct_attrs.array_date_value(33) := p_source_92;
94292 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
94293 l_rec_acct_attrs.array_char_value(34) := p_source_53;
94294 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
94295 l_rec_acct_attrs.array_num_value(35) := p_source_93;
94296 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
94297 l_rec_acct_attrs.array_num_value(36) := p_source_94;
94298 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
94299 l_rec_acct_attrs.array_char_value(37) := p_source_56;
94300 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
94301 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
94302 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
94303 l_rec_acct_attrs.array_char_value(39) := p_source_48;
94304 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
94305 l_rec_acct_attrs.array_num_value(40) := p_source_58;
94306 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
94307 l_rec_acct_attrs.array_num_value(41) := p_source_66;
94308 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
94309 l_rec_acct_attrs.array_num_value(42) := p_source_59;
94310 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
94311 l_rec_acct_attrs.array_num_value(43) := p_source_96;
94312 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
94313 l_rec_acct_attrs.array_num_value(44) := p_source_97;
94314
94315 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94316 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94317
94318 ---------------------------------------------------------------------------------------------------------------
94319 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94320 ---------------------------------------------------------------------------------------------------------------
94324 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94321 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94322
94323 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94325
94326 IF xla_accounting_cache_pkg.GetValueChar
94327 (p_source_code => 'LEDGER_CATEGORY_CODE'
94328 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94329 AND l_bflow_method_code = 'PRIOR_ENTRY'
94330 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94331 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94332 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94333 )
94334 THEN
94335 xla_ae_lines_pkg.BflowUpgEntry
94336 (p_business_method_code => l_bflow_method_code
94337 ,p_business_class_code => l_bflow_class_code
94338 ,p_balance_type => l_balance_type_code);
94339 ELSE
94340 NULL;
94341 -- No business flow processing for business flow method of NONE.
94342 END IF;
94343
94344 --
94345 -- call analytical criteria
94346 --
94347
94348 --
94349 -- call description
94350 --
94351 -- No description or it is inherited.
94352 --
94353 -- call ADRs
94354 -- Bug 4922099
94355 --
94356 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94357 (NVL(l_actual_upg_option, 'N') = 'O') OR
94358 (NVL(l_enc_upg_option, 'N') = 'O')
94359 )
94360 THEN
94361 NULL;
94362 --
94363 --
94364
94365 l_ccid := AcctDerRule_34(
94366 p_application_id => p_application_id
94367 , p_ae_header_id => l_ae_header_id
94368 , p_source_4 => p_source_4
94369 , p_source_4_meaning => p_source_4_meaning
94370 , p_source_17 => p_source_17
94371 , p_source_23 => p_source_23
94372 , x_transaction_coa_id => l_adr_transaction_coa_id
94373 , x_accounting_coa_id => l_adr_accounting_coa_id
94374 , x_value_type_code => l_adr_value_type_code
94375 , p_side => 'NA'
94376 );
94377
94378 xla_ae_lines_pkg.set_ccid(
94379 p_code_combination_id => l_ccid
94380 , p_value_type_code => l_adr_value_type_code
94381 , p_transaction_coa_id => l_adr_transaction_coa_id
94382 , p_accounting_coa_id => l_adr_accounting_coa_id
94383 , p_adr_code => 'AP_RETAINAGE'
94384 , p_adr_type_code => 'S'
94385 , p_component_type => l_component_type
94386 , p_component_code => l_component_code
94387 , p_component_type_code => l_component_type_code
94388 , p_component_appl_id => l_component_appl_id
94389 , p_amb_context_code => l_amb_context_code
94390 , p_side => 'NA'
94391 );
94392
94393
94394 l_segment := AcctDerRule_12(
94395 p_application_id => p_application_id
94396 , p_ae_header_id => l_ae_header_id
94397 , p_source_22 => p_source_22
94398 , x_transaction_coa_id => l_adr_transaction_coa_id
94399 , x_accounting_coa_id => l_adr_accounting_coa_id
94400 , x_flexfield_segment_code => l_adr_flexfield_segment_code
94401 , x_flex_value_set_id => l_adr_flex_value_set_id
94402 , x_value_type_code => l_adr_value_type_code
94403 , x_value_combination_id => l_adr_value_combination_id
94404 , x_value_segment_code => l_adr_value_segment_code
94405 , p_side => 'NA'
94406 , p_override_seg_flag => 'Y'
94407 );
94408
94409 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
94410
94411 xla_ae_lines_pkg.set_segment(
94412 p_to_segment_code => 'GL_ACCOUNT'
94413 , p_segment_value => l_segment
94414 , p_from_segment_code => l_adr_value_segment_code
94415 , p_from_combination_id => l_adr_value_combination_id
94416 , p_value_type_code => l_adr_value_type_code
94417 , p_transaction_coa_id => l_adr_transaction_coa_id
94418 , p_accounting_coa_id => l_adr_accounting_coa_id
94419 , p_flexfield_segment_code => l_adr_flexfield_segment_code
94420 , p_flex_value_set_id => l_adr_flex_value_set_id
94421 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
94422 , p_adr_type_code => 'S'
94423 , p_component_type => l_component_type
94424 , p_component_code => l_component_code
94425 , p_component_type_code => l_component_type_code
94426 , p_component_appl_id => l_component_appl_id
94427 , p_amb_context_code => l_amb_context_code
94428 , p_entity_code => 'AP_INVOICES'
94429 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
94430 , p_side => 'NA'
94431 );
94432
94433 END IF;
94434
94435 l_segment := AcctDerRule_16(
94436 p_application_id => p_application_id
94437 , p_ae_header_id => l_ae_header_id
94438 , p_source_4 => p_source_4
94442 , x_accounting_coa_id => l_adr_accounting_coa_id
94439 , p_source_4_meaning => p_source_4_meaning
94440 , p_source_23 => p_source_23
94441 , x_transaction_coa_id => l_adr_transaction_coa_id
94443 , x_flexfield_segment_code => l_adr_flexfield_segment_code
94444 , x_flex_value_set_id => l_adr_flex_value_set_id
94445 , x_value_type_code => l_adr_value_type_code
94446 , x_value_combination_id => l_adr_value_combination_id
94447 , x_value_segment_code => l_adr_value_segment_code
94448 , p_side => 'NA'
94449 , p_override_seg_flag => 'Y'
94450 );
94451
94452 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
94453
94454 xla_ae_lines_pkg.set_segment(
94455 p_to_segment_code => 'GL_BALANCING'
94456 , p_segment_value => l_segment
94457 , p_from_segment_code => l_adr_value_segment_code
94458 , p_from_combination_id => l_adr_value_combination_id
94459 , p_value_type_code => l_adr_value_type_code
94460 , p_transaction_coa_id => l_adr_transaction_coa_id
94461 , p_accounting_coa_id => l_adr_accounting_coa_id
94462 , p_flexfield_segment_code => l_adr_flexfield_segment_code
94463 , p_flex_value_set_id => l_adr_flex_value_set_id
94464 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
94465 , p_adr_type_code => 'S'
94466 , p_component_type => l_component_type
94467 , p_component_code => l_component_code
94468 , p_component_type_code => l_component_type_code
94469 , p_component_appl_id => l_component_appl_id
94470 , p_amb_context_code => l_amb_context_code
94471 , p_entity_code => 'AP_INVOICES'
94472 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
94473 , p_side => 'NA'
94474 );
94475
94476 END IF;
94477
94478 --
94479 --
94480 END IF;
94481 --
94482 -- Bug 4922099
94483 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94484 (NVL(l_enc_upg_option, 'N') = 'O')
94485 ) AND
94486 (l_bflow_method_code = 'PRIOR_ENTRY')
94487 )
94488 THEN
94489 IF
94490 --
94491 1 = 2
94492 --
94493 THEN
94494 xla_accounting_err_pkg.build_message
94495 (p_appli_s_name => 'XLA'
94496 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94497 ,p_token_1 => 'LINE_NUMBER'
94498 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
94499 ,p_token_2 => 'LINE_TYPE_NAME'
94500 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
94501 l_component_type
94502 ,l_component_code
94503 ,l_component_type_code
94504 ,l_component_appl_id
94505 ,l_amb_context_code
94506 ,l_entity_code
94507 ,l_event_class_code
94508 )
94509 ,p_token_3 => 'OWNER'
94510 ,p_value_3 => xla_lookups_pkg.get_meaning(
94511 p_lookup_type => 'XLA_OWNER_TYPE'
94512 ,p_lookup_code => l_component_type_code
94513 )
94514 ,p_token_4 => 'PRODUCT_NAME'
94515 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94516 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94517 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94518 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94519 ,p_ae_header_id => NULL
94520 );
94521
94522 IF (C_LEVEL_ERROR>= g_log_level) THEN
94523 trace
94524 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94525 ,p_level => C_LEVEL_ERROR
94526 ,p_module => l_log_module);
94527 END IF;
94528 END IF;
94529 END IF;
94530 --
94531 --
94532 ------------------------------------------------------------------------------------------------
94533 -- 4219869 Business Flow
94534 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94538
94535 -- Prior Entry. Currently, the following code is always generated.
94536 ------------------------------------------------------------------------------------------------
94537 XLA_AE_LINES_PKG.ValidateCurrentLine;
94539 ------------------------------------------------------------------------------------
94540 -- 4219869 Business Flow
94541 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94542 ------------------------------------------------------------------------------------
94543 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94544
94545 ----------------------------------------------------------------------------------
94546 -- 4219869 Business Flow
94547 -- Update journal entry status -- Need to generate this within IF <condition>
94548 ----------------------------------------------------------------------------------
94549 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94550 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94551 ,p_balance_type_code => l_balance_type_code
94552 );
94553
94554 -------------------------------------------------------------------------------------------
94555 -- 4262811 - Generate the Accrual Reversal lines
94556 -------------------------------------------------------------------------------------------
94557 BEGIN
94558 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94559 (g_array_event(p_event_id).array_value_num('header_index'));
94560 IF l_acc_rev_flag IS NULL THEN
94561 l_acc_rev_flag := 'N';
94562 END IF;
94563 EXCEPTION
94564 WHEN OTHERS THEN
94565 l_acc_rev_flag := 'N';
94566 END;
94567 --
94568 IF (l_acc_rev_flag = 'Y') THEN
94569
94570 -- 4645092 ------------------------------------------------------------------------------
94571 -- To allow MPA report to determine if it should generate report process
94572 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94573 ------------------------------------------------------------------------------------------
94574
94575 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94576 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94577 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
94578 -- call ADRs
94579 -- Bug 4922099
94580 --
94581 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94582 (NVL(l_actual_upg_option, 'N') = 'O') OR
94583 (NVL(l_enc_upg_option, 'N') = 'O')
94584 )
94585 THEN
94586 NULL;
94587 --
94588 --
94589
94590 l_ccid := AcctDerRule_34(
94591 p_application_id => p_application_id
94592 , p_ae_header_id => l_ae_header_id
94593 , p_source_4 => p_source_4
94594 , p_source_4_meaning => p_source_4_meaning
94595 , p_source_17 => p_source_17
94596 , p_source_23 => p_source_23
94597 , x_transaction_coa_id => l_adr_transaction_coa_id
94598 , x_accounting_coa_id => l_adr_accounting_coa_id
94599 , x_value_type_code => l_adr_value_type_code
94600 , p_side => 'NA'
94601 );
94602
94603 xla_ae_lines_pkg.set_ccid(
94604 p_code_combination_id => l_ccid
94605 , p_value_type_code => l_adr_value_type_code
94606 , p_transaction_coa_id => l_adr_transaction_coa_id
94607 , p_accounting_coa_id => l_adr_accounting_coa_id
94608 , p_adr_code => 'AP_RETAINAGE'
94609 , p_adr_type_code => 'S'
94610 , p_component_type => l_component_type
94611 , p_component_code => l_component_code
94612 , p_component_type_code => l_component_type_code
94613 , p_component_appl_id => l_component_appl_id
94614 , p_amb_context_code => l_amb_context_code
94615 , p_side => 'NA'
94616 );
94617
94618
94619 l_segment := AcctDerRule_12(
94620 p_application_id => p_application_id
94621 , p_ae_header_id => l_ae_header_id
94622 , p_source_22 => p_source_22
94623 , x_transaction_coa_id => l_adr_transaction_coa_id
94624 , x_accounting_coa_id => l_adr_accounting_coa_id
94625 , x_flexfield_segment_code => l_adr_flexfield_segment_code
94626 , x_flex_value_set_id => l_adr_flex_value_set_id
94627 , x_value_type_code => l_adr_value_type_code
94628 , x_value_combination_id => l_adr_value_combination_id
94629 , x_value_segment_code => l_adr_value_segment_code
94630 , p_side => 'NA'
94631 , p_override_seg_flag => 'Y'
94632 );
94633
94634 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
94635
94636 xla_ae_lines_pkg.set_segment(
94637 p_to_segment_code => 'GL_ACCOUNT'
94638 , p_segment_value => l_segment
94639 , p_from_segment_code => l_adr_value_segment_code
94640 , p_from_combination_id => l_adr_value_combination_id
94641 , p_value_type_code => l_adr_value_type_code
94642 , p_transaction_coa_id => l_adr_transaction_coa_id
94643 , p_accounting_coa_id => l_adr_accounting_coa_id
94644 , p_flexfield_segment_code => l_adr_flexfield_segment_code
94645 , p_flex_value_set_id => l_adr_flex_value_set_id
94646 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
94650 , p_component_type_code => l_component_type_code
94647 , p_adr_type_code => 'S'
94648 , p_component_type => l_component_type
94649 , p_component_code => l_component_code
94651 , p_component_appl_id => l_component_appl_id
94652 , p_amb_context_code => l_amb_context_code
94653 , p_entity_code => 'AP_INVOICES'
94654 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
94655 , p_side => 'NA'
94656 );
94657
94658 END IF;
94659
94660 l_segment := AcctDerRule_16(
94661 p_application_id => p_application_id
94662 , p_ae_header_id => l_ae_header_id
94663 , p_source_4 => p_source_4
94664 , p_source_4_meaning => p_source_4_meaning
94665 , p_source_23 => p_source_23
94666 , x_transaction_coa_id => l_adr_transaction_coa_id
94667 , x_accounting_coa_id => l_adr_accounting_coa_id
94668 , x_flexfield_segment_code => l_adr_flexfield_segment_code
94669 , x_flex_value_set_id => l_adr_flex_value_set_id
94670 , x_value_type_code => l_adr_value_type_code
94671 , x_value_combination_id => l_adr_value_combination_id
94672 , x_value_segment_code => l_adr_value_segment_code
94673 , p_side => 'NA'
94674 , p_override_seg_flag => 'Y'
94675 );
94676
94677 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
94678
94679 xla_ae_lines_pkg.set_segment(
94680 p_to_segment_code => 'GL_BALANCING'
94681 , p_segment_value => l_segment
94682 , p_from_segment_code => l_adr_value_segment_code
94683 , p_from_combination_id => l_adr_value_combination_id
94684 , p_value_type_code => l_adr_value_type_code
94685 , p_transaction_coa_id => l_adr_transaction_coa_id
94686 , p_accounting_coa_id => l_adr_accounting_coa_id
94687 , p_flexfield_segment_code => l_adr_flexfield_segment_code
94688 , p_flex_value_set_id => l_adr_flex_value_set_id
94689 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
94690 , p_adr_type_code => 'S'
94691 , p_component_type => l_component_type
94692 , p_component_code => l_component_code
94693 , p_component_type_code => l_component_type_code
94694 , p_component_appl_id => l_component_appl_id
94695 , p_amb_context_code => l_amb_context_code
94696 , p_entity_code => 'AP_INVOICES'
94697 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
94698 , p_side => 'NA'
94699 );
94700
94701 END IF;
94702
94703 --
94704 --
94705 END IF;
94706
94707 --
94708 -- Update the line information that should be overwritten
94709 --
94710 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94711 p_header_num => 1);
94712 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
94713
94714 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94715
94716 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
94717 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94718 END IF;
94719
94720 --
94721 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94722 --
94723 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94724 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
94725 ELSE
94726 ---------------------------------------------------------------------------------------------------
94727 -- 4262811a Switch Sign
94728 ---------------------------------------------------------------------------------------------------
94729 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
94730 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94731 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94732 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94733 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94734 -- 5132302
94735 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94736 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94737
94738 END IF;
94739
94740 -- 4955764
94741 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94742 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94743
94744
94745 XLA_AE_LINES_PKG.ValidateCurrentLine;
94746 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94747
94748 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94749 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94750 ,p_balance_type_code => l_balance_type_code);
94751
94755 -- 4262811 Multiperiod Accounting
94752 END IF;
94753
94754 -----------------------------------------------------------------------------------------
94756 -----------------------------------------------------------------------------------------
94757 -- No MPA option is assigned.
94758
94759
94760 END IF;
94761 END IF;
94762 --
94763
94764 --
94765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94766 trace
94767 (p_msg => 'END of AcctLineType_167'
94768 ,p_level => C_LEVEL_PROCEDURE
94769 ,p_module => l_log_module);
94770 END IF;
94771 --
94772 EXCEPTION
94773 WHEN xla_exceptions_pkg.application_exception THEN
94774 RAISE;
94775 WHEN OTHERS THEN
94776 xla_exceptions_pkg.raise_message
94777 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_167');
94778 END AcctLineType_167;
94779 --
94780
94781 ---------------------------------------
94782 --
94783 -- PRIVATE FUNCTION
94784 -- AcctLineType_168
94785 --
94786 ---------------------------------------
94787 PROCEDURE AcctLineType_168 (
94788 p_application_id IN NUMBER
94789 ,p_event_id IN NUMBER
94790 ,p_calculate_acctd_flag IN VARCHAR2
94791 ,p_calculate_g_l_flag IN VARCHAR2
94792 ,p_actual_flag IN OUT VARCHAR2
94793 ,p_balance_type_code OUT VARCHAR2
94794 ,p_gain_or_loss_ref OUT VARCHAR2
94795
94796 --When to Account for Payment Option
94797 , p_source_38 IN VARCHAR2
94798 --Accounting Reversal Indicator
94799 , p_source_40 IN VARCHAR2
94800 --Business Flow Accounts Payable Application Identifier
94801 , p_source_42 IN NUMBER
94802 --Distribution Link Type
94803 , p_source_48 IN VARCHAR2
94804 --Override Accounted Amount Indicator
94805 , p_source_53 IN VARCHAR2
94806 , p_source_53_meaning IN VARCHAR2
94807 --Third Party Type
94808 , p_source_56 IN VARCHAR2
94809 --Invoice Distribution Tax Line Identifier
94810 , p_source_58 IN NUMBER
94811 --Invoice Distribution Summary Tax Line Identifier
94812 , p_source_59 IN NUMBER
94813 --Business Flow Invoice Distribution Type
94814 , p_source_62 IN VARCHAR2
94815 --Business Flow Invoice Entity Code
94816 , p_source_63 IN VARCHAR2
94817 --Invoice Distribution Tax Distribution Identifier from Tax
94818 , p_source_66 IN NUMBER
94819 --Prepayment Distribution Type
94820 , p_source_67 IN VARCHAR2
94821 --Recipient Invoice Distribution Type
94822 , p_source_68 IN VARCHAR2
94823 , p_source_68_meaning IN VARCHAR2
94824 --Prepayment Application Distribution Identifier
94825 , p_source_71 IN NUMBER
94826 --Invoice Identifier
94827 , p_source_72 IN NUMBER
94828 --Upgrade Encumbrance Credit Account Class
94829 , p_source_77 IN VARCHAR2
94830 --Payables Encumbrance Upgrade Credit Account
94831 , p_source_78 IN NUMBER
94832 --Payables Encumbrance Upgrade Credit Amount
94833 , p_source_79 IN NUMBER
94834 --Invoice Currency Code
94835 , p_source_80 IN VARCHAR2
94836 --Payables Encumbrance Upgrade Credit Base Amount
94837 , p_source_81 IN NUMBER
94838 --Upgrade Encumbrance Debit Account Class
94839 , p_source_82 IN VARCHAR2
94840 --Payables Encumbrance Upgrade Debit Account
94841 , p_source_83 IN NUMBER
94842 --Payables Encumbrance Upgrade Debit Amount
94843 , p_source_84 IN NUMBER
94844 --Payables Encumbrance Upgrade Debit Base Amount
94845 , p_source_85 IN NUMBER
94846 --Payables Encumbrance Upgrade Option
94847 , p_source_86 IN VARCHAR2
94848 --Prepayment Distribution Amount
94849 , p_source_87 IN NUMBER
94850 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
94851 , p_source_89 IN NUMBER
94852 --Deferred Accounting End Date
94853 , p_source_90 IN DATE
94854 --Deferred Accounting Option
94855 , p_source_91 IN VARCHAR2
94856 --Deferred Accounting Start Date
94857 , p_source_92 IN DATE
94858 --Identifier of the Prepayment Application Reversed
94859 , p_source_95 IN NUMBER
94860 --Payables Upgrade Credit Encumbrance Type Identifier
94861 , p_source_96 IN NUMBER
94862 --Payables Upgrade Debit Encumbrance Type Identifier
94863 , p_source_97 IN NUMBER
94864 --Prepayment Application Recipient Invoice Type
94865 , p_source_144 IN VARCHAR2
94866 , p_source_144_meaning IN VARCHAR2
94867 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
94868 , p_source_145 IN NUMBER
94869 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
94870 , p_source_146 IN NUMBER
94871 )
94872 IS
94873
94874 l_component_type VARCHAR2(80);
94875 l_component_code VARCHAR2(30);
94876 l_component_type_code VARCHAR2(1);
94877 l_component_appl_id INTEGER;
94878 l_amb_context_code VARCHAR2(30);
94879 l_entity_code VARCHAR2(30);
94880 l_event_class_code VARCHAR2(30);
94881 l_ae_header_id NUMBER;
94882 l_event_type_code VARCHAR2(30);
94883 l_line_definition_code VARCHAR2(30);
94884 l_line_definition_owner_code VARCHAR2(1);
94885 --
94886 -- adr variables
94887 l_segment VARCHAR2(30);
94891 l_adr_flexfield_segment_code VARCHAR2(30);
94888 l_ccid NUMBER;
94889 l_adr_transaction_coa_id NUMBER;
94890 l_adr_accounting_coa_id NUMBER;
94892 l_adr_flex_value_set_id NUMBER;
94893 l_adr_value_type_code VARCHAR2(30);
94894 l_adr_value_combination_id NUMBER;
94895 l_adr_value_segment_code VARCHAR2(30);
94896
94897 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
94898 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
94899 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
94900 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
94901
94902 -- 4262811 Variables ------------------------------------------------------------------------------------------
94903 l_entered_amt_idx NUMBER;
94904 l_accted_amt_idx NUMBER;
94905 l_acc_rev_flag VARCHAR2(1);
94906 l_accrual_line_num NUMBER;
94907 l_tmp_amt NUMBER;
94908 l_acc_rev_natural_side_code VARCHAR2(1);
94909
94910 l_num_entries NUMBER;
94911 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
94912 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
94913 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
94914 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
94915 l_recog_line_1 NUMBER;
94916 l_recog_line_2 NUMBER;
94917
94918 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
94919 l_bflow_applied_to_amt NUMBER; -- 5132302
94920 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
94921
94922 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94923
94924 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
94925 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
94926
94927 ---------------------------------------------------------------------------------------------------------------
94928
94929
94930 --
94931 -- bulk performance
94932 --
94933 l_balance_type_code VARCHAR2(1);
94934 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
94935 l_log_module VARCHAR2(240);
94936
94937 --
94938 -- Upgrade strategy
94939 --
94940 l_actual_upg_option VARCHAR2(1);
94941 l_enc_upg_option VARCHAR2(1);
94942
94943 --
94944 BEGIN
94945 --
94946 IF g_log_enabled THEN
94947 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_168';
94948 END IF;
94949 --
94950 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94951
94952 trace
94953 (p_msg => 'BEGIN of AcctLineType_168'
94954 ,p_level => C_LEVEL_PROCEDURE
94955 ,p_module => l_log_module);
94956
94957 END IF;
94958 --
94959 l_component_type := 'AMB_JLT';
94960 l_component_code := 'AP_RET_REL_CASH_CLR_XRATE';
94961 l_component_type_code := 'S';
94962 l_component_appl_id := 200;
94963 l_amb_context_code := 'DEFAULT';
94964 l_entity_code := 'AP_INVOICES';
94965 l_event_class_code := 'PREPAYMENT APPLICATIONS';
94966 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
94967 l_line_definition_owner_code := 'S';
94968 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
94969 --
94970 l_balance_type_code := 'A';
94971 l_segment := NULL;
94972 l_ccid := NULL;
94973 l_adr_transaction_coa_id := NULL;
94974 l_adr_accounting_coa_id := NULL;
94975 l_adr_flexfield_segment_code := NULL;
94976 l_adr_flex_value_set_id := NULL;
94977 l_adr_value_type_code := NULL;
94978 l_adr_value_combination_id := NULL;
94979 l_adr_value_segment_code := NULL;
94980
94981 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
94982 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
94983 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
94984 l_budgetary_control_flag := 'N';
94985
94986 l_bflow_applied_to_amt_idx := NULL; -- 5132302
94987 l_bflow_applied_to_amt := NULL; -- 5132302
94988 l_entered_amt_idx := NULL; -- 4262811
94989 l_accted_amt_idx := NULL; -- 4262811
94990 l_acc_rev_flag := NULL; -- 4262811
94991 l_accrual_line_num := NULL; -- 4262811
94992 l_tmp_amt := NULL; -- 4262811
94993 --
94994
94995 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94996 l_balance_type_code <> 'B' THEN
94997 IF NVL(p_source_38,'
94998 ') = 'CLEAR_CLEAR' AND
94999 NVL(p_source_68,'
95000 ') = 'RETAINAGE' AND
95001 NVL(p_source_144,'
95002 ') = 'RETAINAGE RELEASE' AND
95003 (NVL(p_source_67,'
95004 ') = 'PREPAY APPL' OR
95005 NVL(p_source_67,'
95006 ') = 'PREPAY APPL NONREC TAX' OR
95007 NVL(p_source_67,'
95008 ') = 'PREPAY APPL REC TAX')
95009 THEN
95010
95011 --
95012 XLA_AE_LINES_PKG.SetNewLine;
95013
95014 p_balance_type_code := l_balance_type_code;
95018 p_actual_flag :='A';
95015 -- set the flag so later we will know whether the gain loss line needs to be created
95016
95017 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95019 END IF;
95020
95021 --
95022 -- bulk performance
95023 --
95024 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95025 p_header_num => 0); -- 4262811
95026 --
95027 -- set accounting line options
95028 --
95029 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95030 p_natural_side_code => 'C'
95031 , p_gain_or_loss_flag => 'N'
95032 , p_gl_transfer_mode_code => 'S'
95033 , p_acct_entry_type_code => 'A'
95034 , p_switch_side_flag => 'Y'
95035 , p_merge_duplicate_code => 'A'
95036 );
95037 --
95038 l_acc_rev_natural_side_code := 'D'; -- 4262811
95039 --
95040 --
95041 -- set accounting line type info
95042 --
95043 xla_ae_lines_pkg.SetAcctLineType
95044 (p_component_type => l_component_type
95045 ,p_event_type_code => l_event_type_code
95046 ,p_line_definition_owner_code => l_line_definition_owner_code
95047 ,p_line_definition_code => l_line_definition_code
95048 ,p_accounting_line_code => l_component_code
95049 ,p_accounting_line_type_code => l_component_type_code
95050 ,p_accounting_line_appl_id => l_component_appl_id
95051 ,p_amb_context_code => l_amb_context_code
95052 ,p_entity_code => l_entity_code
95053 ,p_event_class_code => l_event_class_code);
95054 --
95055 -- set accounting class
95056 --
95057 xla_ae_lines_pkg.SetAcctClass(
95058 p_accounting_class_code => 'RETAINAGE'
95059 , p_ae_header_id => l_ae_header_id
95060 );
95061
95062 --
95063 -- set rounding class
95064 --
95065 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95066 'RETAINAGE';
95067
95068 --
95069 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95070 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95071 --
95072 -- bulk performance
95073 --
95074 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95075
95076 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95077 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95078
95079 -- 4955764
95080 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95081 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95082
95083 -- 4458381 Public Sector Enh
95084
95085 --
95086 -- set accounting attributes for the line type
95087 --
95088 l_entered_amt_idx := 25;
95089 l_accted_amt_idx := 27;
95090 l_bflow_applied_to_amt_idx := NULL; -- 5132302
95091 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95092 l_rec_acct_attrs.array_char_value(1) := p_source_40;
95093 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
95094 l_rec_acct_attrs.array_num_value(2) :=
95095 xla_ae_sources_pkg.GetSystemSourceNum(
95096 p_source_code => 'XLA_EVENT_APPL_ID'
95097 , p_source_type_code => 'Y'
95098 , p_source_application_id => 602
95099 );
95100 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
95101 l_rec_acct_attrs.array_char_value(3) := p_source_48;
95102 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
95103 l_rec_acct_attrs.array_char_value(4) :=
95104 xla_ae_sources_pkg.GetSystemSourceChar(
95105 p_source_code => 'XLA_ENTITY_CODE'
95106 , p_source_type_code => 'Y'
95107 , p_source_application_id => 602
95108 );
95109 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
95110 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
95111 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
95112 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
95113 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
95114 l_rec_acct_attrs.array_num_value(7) := p_source_42;
95115 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95116 l_rec_acct_attrs.array_char_value(8) := p_source_62;
95117 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
95118 l_rec_acct_attrs.array_char_value(9) := p_source_63;
95119 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
95120 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_145);
95121 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95122 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_146);
95123 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
95124 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
95125 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
95126 l_rec_acct_attrs.array_char_value(13) := p_source_48;
95127 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
95131 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
95128 l_rec_acct_attrs.array_char_value(14) := p_source_77;
95129 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
95130 l_rec_acct_attrs.array_num_value(15) := p_source_78;
95132 l_rec_acct_attrs.array_num_value(16) := p_source_79;
95133 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
95134 l_rec_acct_attrs.array_char_value(17) := p_source_80;
95135 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
95136 l_rec_acct_attrs.array_num_value(18) := p_source_81;
95137 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
95138 l_rec_acct_attrs.array_char_value(19) := p_source_82;
95139 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
95140 l_rec_acct_attrs.array_num_value(20) := p_source_83;
95141 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
95142 l_rec_acct_attrs.array_num_value(21) := p_source_84;
95143 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
95144 l_rec_acct_attrs.array_char_value(22) := p_source_80;
95145 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
95146 l_rec_acct_attrs.array_num_value(23) := p_source_85;
95147 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
95148 l_rec_acct_attrs.array_char_value(24) := p_source_86;
95149 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
95150 l_rec_acct_attrs.array_num_value(25) := p_source_87;
95151 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
95152 l_rec_acct_attrs.array_char_value(26) := p_source_80;
95153 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
95154 l_rec_acct_attrs.array_num_value(27) := p_source_89;
95155 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
95156 l_rec_acct_attrs.array_date_value(28) := p_source_90;
95157 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
95158 l_rec_acct_attrs.array_char_value(29) := p_source_91;
95159 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
95160 l_rec_acct_attrs.array_date_value(30) := p_source_92;
95161 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
95162 l_rec_acct_attrs.array_char_value(31) := p_source_53;
95163 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
95164 l_rec_acct_attrs.array_char_value(32) := p_source_56;
95165 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
95166 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_95);
95167 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
95168 l_rec_acct_attrs.array_char_value(34) := p_source_48;
95169 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
95170 l_rec_acct_attrs.array_num_value(35) := p_source_58;
95171 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
95172 l_rec_acct_attrs.array_num_value(36) := p_source_66;
95173 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
95174 l_rec_acct_attrs.array_num_value(37) := p_source_59;
95175 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
95176 l_rec_acct_attrs.array_num_value(38) := p_source_96;
95177 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
95178 l_rec_acct_attrs.array_num_value(39) := p_source_97;
95179
95180 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95181 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95182
95183 ---------------------------------------------------------------------------------------------------------------
95184 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95185 ---------------------------------------------------------------------------------------------------------------
95186 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95187
95188 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95189 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95190
95191 IF xla_accounting_cache_pkg.GetValueChar
95192 (p_source_code => 'LEDGER_CATEGORY_CODE'
95193 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95194 AND l_bflow_method_code = 'PRIOR_ENTRY'
95195 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95196 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95197 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95198 )
95199 THEN
95200 xla_ae_lines_pkg.BflowUpgEntry
95201 (p_business_method_code => l_bflow_method_code
95202 ,p_business_class_code => l_bflow_class_code
95203 ,p_balance_type => l_balance_type_code);
95204 ELSE
95205 NULL;
95206 XLA_AE_LINES_PKG.business_flow_validation(
95207 p_business_method_code => l_bflow_method_code
95208 ,p_business_class_code => l_bflow_class_code
95209 ,p_inherit_description_flag => l_inherit_desc_flag);
95210 END IF;
95211
95212 --
95213 -- call analytical criteria
95214 --
95215 -- Inherited Analytical Criteria for business flow method of Prior Entry.
95216 --
95217 -- call description
95218 --
95222 -- Bug 4922099
95219 -- No description or it is inherited.
95220 --
95221 -- call ADRs
95223 --
95224 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95225 (NVL(l_actual_upg_option, 'N') = 'O') OR
95226 (NVL(l_enc_upg_option, 'N') = 'O')
95227 )
95228 THEN
95229 NULL;
95230 --
95231 --
95232
95233 --
95234 --
95235 END IF;
95236 --
95237 -- Bug 4922099
95238 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95239 (NVL(l_enc_upg_option, 'N') = 'O')
95240 ) AND
95241 (l_bflow_method_code = 'PRIOR_ENTRY')
95242 )
95243 THEN
95244 IF
95245 --
95246 1 = 1
95247 --
95248 THEN
95249 xla_accounting_err_pkg.build_message
95250 (p_appli_s_name => 'XLA'
95251 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95252 ,p_token_1 => 'LINE_NUMBER'
95253 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
95254 ,p_token_2 => 'LINE_TYPE_NAME'
95255 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
95256 l_component_type
95257 ,l_component_code
95258 ,l_component_type_code
95259 ,l_component_appl_id
95260 ,l_amb_context_code
95261 ,l_entity_code
95262 ,l_event_class_code
95263 )
95264 ,p_token_3 => 'OWNER'
95265 ,p_value_3 => xla_lookups_pkg.get_meaning(
95266 p_lookup_type => 'XLA_OWNER_TYPE'
95267 ,p_lookup_code => l_component_type_code
95268 )
95269 ,p_token_4 => 'PRODUCT_NAME'
95270 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95271 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95272 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95273 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95274 ,p_ae_header_id => NULL
95275 );
95276
95277 IF (C_LEVEL_ERROR>= g_log_level) THEN
95278 trace
95279 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95280 ,p_level => C_LEVEL_ERROR
95281 ,p_module => l_log_module);
95282 END IF;
95283 END IF;
95284 END IF;
95285 --
95286 --
95287 ------------------------------------------------------------------------------------------------
95288 -- 4219869 Business Flow
95289 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95290 -- Prior Entry. Currently, the following code is always generated.
95291 ------------------------------------------------------------------------------------------------
95292 -- No ValidateCurrentLine for business flow method of Prior Entry
95293
95294 ------------------------------------------------------------------------------------
95295 -- 4219869 Business Flow
95296 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95297 ------------------------------------------------------------------------------------
95298 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95299
95300 ----------------------------------------------------------------------------------
95301 -- 4219869 Business Flow
95302 -- Update journal entry status -- Need to generate this within IF <condition>
95303 ----------------------------------------------------------------------------------
95304 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95305 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95306 ,p_balance_type_code => l_balance_type_code
95307 );
95308
95309 -------------------------------------------------------------------------------------------
95310 -- 4262811 - Generate the Accrual Reversal lines
95311 -------------------------------------------------------------------------------------------
95312 BEGIN
95313 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95314 (g_array_event(p_event_id).array_value_num('header_index'));
95315 IF l_acc_rev_flag IS NULL THEN
95316 l_acc_rev_flag := 'N';
95317 END IF;
95318 EXCEPTION
95319 WHEN OTHERS THEN
95320 l_acc_rev_flag := 'N';
95321 END;
95322 --
95326 -- To allow MPA report to determine if it should generate report process
95323 IF (l_acc_rev_flag = 'Y') THEN
95324
95325 -- 4645092 ------------------------------------------------------------------------------
95327 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95328 ------------------------------------------------------------------------------------------
95329
95330 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95331 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95332 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
95333 -- call ADRs
95334 -- Bug 4922099
95335 --
95336 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95337 (NVL(l_actual_upg_option, 'N') = 'O') OR
95338 (NVL(l_enc_upg_option, 'N') = 'O')
95339 )
95340 THEN
95341 NULL;
95342 --
95343 --
95344
95345 --
95346 --
95347 END IF;
95348
95349 --
95350 -- Update the line information that should be overwritten
95351 --
95352 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95353 p_header_num => 1);
95354 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
95355
95356 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95357
95358 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
95359 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95360 END IF;
95361
95362 --
95363 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95364 --
95365 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95366 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
95367 ELSE
95368 ---------------------------------------------------------------------------------------------------
95369 -- 4262811a Switch Sign
95370 ---------------------------------------------------------------------------------------------------
95371 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
95372 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95373 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95374 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95375 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95376 -- 5132302
95377 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95378 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95379
95380 END IF;
95381
95382 -- 4955764
95383 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95384 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95385
95386
95387 XLA_AE_LINES_PKG.ValidateCurrentLine;
95388 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95389
95390 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95391 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95392 ,p_balance_type_code => l_balance_type_code);
95393
95394 END IF;
95395
95396 -----------------------------------------------------------------------------------------
95397 -- 4262811 Multiperiod Accounting
95398 -----------------------------------------------------------------------------------------
95399 -- No MPA option is assigned.
95400
95401
95402 END IF;
95403 END IF;
95404 --
95405
95406 --
95407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95408 trace
95409 (p_msg => 'END of AcctLineType_168'
95410 ,p_level => C_LEVEL_PROCEDURE
95411 ,p_module => l_log_module);
95412 END IF;
95413 --
95414 EXCEPTION
95415 WHEN xla_exceptions_pkg.application_exception THEN
95416 RAISE;
95417 WHEN OTHERS THEN
95418 xla_exceptions_pkg.raise_message
95419 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_168');
95420 END AcctLineType_168;
95421 --
95422
95423 ---------------------------------------
95424 --
95425 -- PRIVATE FUNCTION
95426 -- AcctLineType_169
95427 --
95428 ---------------------------------------
95429 PROCEDURE AcctLineType_169 (
95430 p_application_id IN NUMBER
95431 ,p_event_id IN NUMBER
95432 ,p_calculate_acctd_flag IN VARCHAR2
95433 ,p_calculate_g_l_flag IN VARCHAR2
95434 ,p_actual_flag IN OUT VARCHAR2
95435 ,p_balance_type_code OUT VARCHAR2
95436 ,p_gain_or_loss_ref OUT VARCHAR2
95437
95438 --When to Account for Payment Option
95439 , p_source_38 IN VARCHAR2
95440 --Accounting Reversal Indicator
95441 , p_source_40 IN VARCHAR2
95442 --Business Flow Accounts Payable Application Identifier
95443 , p_source_42 IN NUMBER
95444 --Distribution Link Type
95445 , p_source_48 IN VARCHAR2
95446 --Override Accounted Amount Indicator
95447 , p_source_53 IN VARCHAR2
95451 --Invoice Distribution Tax Line Identifier
95448 , p_source_53_meaning IN VARCHAR2
95449 --Third Party Type
95450 , p_source_56 IN VARCHAR2
95452 , p_source_58 IN NUMBER
95453 --Invoice Distribution Summary Tax Line Identifier
95454 , p_source_59 IN NUMBER
95455 --Business Flow Invoice Distribution Type
95456 , p_source_62 IN VARCHAR2
95457 --Business Flow Invoice Entity Code
95458 , p_source_63 IN VARCHAR2
95459 --Invoice Distribution Tax Distribution Identifier from Tax
95460 , p_source_66 IN NUMBER
95461 --Prepayment Distribution Type
95462 , p_source_67 IN VARCHAR2
95463 --Recipient Invoice Distribution Type
95464 , p_source_68 IN VARCHAR2
95465 , p_source_68_meaning IN VARCHAR2
95466 --Prepayment Application Distribution Identifier
95467 , p_source_71 IN NUMBER
95468 --Invoice Identifier
95469 , p_source_72 IN NUMBER
95470 --Upgrade Encumbrance Credit Account Class
95471 , p_source_77 IN VARCHAR2
95472 --Payables Encumbrance Upgrade Credit Account
95473 , p_source_78 IN NUMBER
95474 --Payables Encumbrance Upgrade Credit Amount
95475 , p_source_79 IN NUMBER
95476 --Invoice Currency Code
95477 , p_source_80 IN VARCHAR2
95478 --Payables Encumbrance Upgrade Credit Base Amount
95479 , p_source_81 IN NUMBER
95480 --Upgrade Encumbrance Debit Account Class
95481 , p_source_82 IN VARCHAR2
95482 --Payables Encumbrance Upgrade Debit Account
95483 , p_source_83 IN NUMBER
95484 --Payables Encumbrance Upgrade Debit Amount
95485 , p_source_84 IN NUMBER
95486 --Payables Encumbrance Upgrade Debit Base Amount
95487 , p_source_85 IN NUMBER
95488 --Payables Encumbrance Upgrade Option
95489 , p_source_86 IN VARCHAR2
95490 --Prepayment Distribution Amount
95491 , p_source_87 IN NUMBER
95492 --Deferred Accounting End Date
95493 , p_source_90 IN DATE
95494 --Deferred Accounting Option
95495 , p_source_91 IN VARCHAR2
95496 --Deferred Accounting Start Date
95497 , p_source_92 IN DATE
95498 --Identifier of the Prepayment Application Reversed
95499 , p_source_95 IN NUMBER
95500 --Payables Upgrade Credit Encumbrance Type Identifier
95501 , p_source_96 IN NUMBER
95502 --Payables Upgrade Debit Encumbrance Type Identifier
95503 , p_source_97 IN NUMBER
95504 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
95505 , p_source_99 IN NUMBER
95506 --Prepayment Application Recipient Invoice Type
95507 , p_source_144 IN VARCHAR2
95508 , p_source_144_meaning IN VARCHAR2
95509 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
95510 , p_source_145 IN NUMBER
95511 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
95512 , p_source_146 IN NUMBER
95513 )
95514 IS
95515
95516 l_component_type VARCHAR2(80);
95517 l_component_code VARCHAR2(30);
95518 l_component_type_code VARCHAR2(1);
95519 l_component_appl_id INTEGER;
95520 l_amb_context_code VARCHAR2(30);
95521 l_entity_code VARCHAR2(30);
95522 l_event_class_code VARCHAR2(30);
95523 l_ae_header_id NUMBER;
95524 l_event_type_code VARCHAR2(30);
95525 l_line_definition_code VARCHAR2(30);
95526 l_line_definition_owner_code VARCHAR2(1);
95527 --
95528 -- adr variables
95529 l_segment VARCHAR2(30);
95530 l_ccid NUMBER;
95531 l_adr_transaction_coa_id NUMBER;
95532 l_adr_accounting_coa_id NUMBER;
95533 l_adr_flexfield_segment_code VARCHAR2(30);
95534 l_adr_flex_value_set_id NUMBER;
95535 l_adr_value_type_code VARCHAR2(30);
95536 l_adr_value_combination_id NUMBER;
95537 l_adr_value_segment_code VARCHAR2(30);
95538
95539 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
95540 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
95541 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
95542 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
95543
95544 -- 4262811 Variables ------------------------------------------------------------------------------------------
95545 l_entered_amt_idx NUMBER;
95546 l_accted_amt_idx NUMBER;
95547 l_acc_rev_flag VARCHAR2(1);
95548 l_accrual_line_num NUMBER;
95549 l_tmp_amt NUMBER;
95550 l_acc_rev_natural_side_code VARCHAR2(1);
95551
95552 l_num_entries NUMBER;
95553 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
95554 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
95555 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
95556 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
95557 l_recog_line_1 NUMBER;
95558 l_recog_line_2 NUMBER;
95559
95560 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
95561 l_bflow_applied_to_amt NUMBER; -- 5132302
95562 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
95563
95567 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
95564 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95565
95566 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
95568
95569 ---------------------------------------------------------------------------------------------------------------
95570
95571
95572 --
95573 -- bulk performance
95574 --
95575 l_balance_type_code VARCHAR2(1);
95576 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
95577 l_log_module VARCHAR2(240);
95578
95579 --
95580 -- Upgrade strategy
95581 --
95582 l_actual_upg_option VARCHAR2(1);
95583 l_enc_upg_option VARCHAR2(1);
95584
95585 --
95586 BEGIN
95587 --
95588 IF g_log_enabled THEN
95589 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_169';
95590 END IF;
95591 --
95592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95593
95594 trace
95595 (p_msg => 'BEGIN of AcctLineType_169'
95596 ,p_level => C_LEVEL_PROCEDURE
95597 ,p_module => l_log_module);
95598
95599 END IF;
95600 --
95601 l_component_type := 'AMB_JLT';
95602 l_component_code := 'AP_RET_REL_CASH_PAY_XRATE';
95603 l_component_type_code := 'S';
95604 l_component_appl_id := 200;
95605 l_amb_context_code := 'DEFAULT';
95606 l_entity_code := 'AP_INVOICES';
95607 l_event_class_code := 'PREPAYMENT APPLICATIONS';
95608 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
95609 l_line_definition_owner_code := 'S';
95610 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
95611 --
95612 l_balance_type_code := 'A';
95613 l_segment := NULL;
95614 l_ccid := NULL;
95615 l_adr_transaction_coa_id := NULL;
95616 l_adr_accounting_coa_id := NULL;
95617 l_adr_flexfield_segment_code := NULL;
95618 l_adr_flex_value_set_id := NULL;
95619 l_adr_value_type_code := NULL;
95620 l_adr_value_combination_id := NULL;
95621 l_adr_value_segment_code := NULL;
95622
95623 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
95624 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
95625 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
95626 l_budgetary_control_flag := 'N';
95627
95628 l_bflow_applied_to_amt_idx := NULL; -- 5132302
95629 l_bflow_applied_to_amt := NULL; -- 5132302
95630 l_entered_amt_idx := NULL; -- 4262811
95631 l_accted_amt_idx := NULL; -- 4262811
95632 l_acc_rev_flag := NULL; -- 4262811
95633 l_accrual_line_num := NULL; -- 4262811
95634 l_tmp_amt := NULL; -- 4262811
95635 --
95636
95637 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95638 l_balance_type_code <> 'B' THEN
95639 IF NVL(p_source_38,'
95640 ') <> 'CLEAR_CLEAR' AND
95641 NVL(p_source_68,'
95642 ') = 'RETAINAGE' AND
95643 NVL(p_source_144,'
95644 ') = 'RETAINAGE RELEASE' AND
95645 (NVL(p_source_67,'
95646 ') = 'PREPAY APPL' OR
95647 NVL(p_source_67,'
95648 ') = 'PREPAY APPL NONREC TAX' OR
95649 NVL(p_source_67,'
95650 ') = 'PREPAY APPL REC TAX')
95651 THEN
95652
95653 --
95654 XLA_AE_LINES_PKG.SetNewLine;
95655
95656 p_balance_type_code := l_balance_type_code;
95657 -- set the flag so later we will know whether the gain loss line needs to be created
95658
95659 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95660 p_actual_flag :='A';
95661 END IF;
95662
95663 --
95664 -- bulk performance
95665 --
95666 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95667 p_header_num => 0); -- 4262811
95668 --
95669 -- set accounting line options
95670 --
95671 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95672 p_natural_side_code => 'C'
95673 , p_gain_or_loss_flag => 'N'
95674 , p_gl_transfer_mode_code => 'S'
95675 , p_acct_entry_type_code => 'A'
95676 , p_switch_side_flag => 'Y'
95677 , p_merge_duplicate_code => 'A'
95678 );
95679 --
95680 l_acc_rev_natural_side_code := 'D'; -- 4262811
95681 --
95682 --
95683 -- set accounting line type info
95684 --
95685 xla_ae_lines_pkg.SetAcctLineType
95686 (p_component_type => l_component_type
95687 ,p_event_type_code => l_event_type_code
95688 ,p_line_definition_owner_code => l_line_definition_owner_code
95689 ,p_line_definition_code => l_line_definition_code
95690 ,p_accounting_line_code => l_component_code
95691 ,p_accounting_line_type_code => l_component_type_code
95692 ,p_accounting_line_appl_id => l_component_appl_id
95693 ,p_amb_context_code => l_amb_context_code
95694 ,p_entity_code => l_entity_code
95695 ,p_event_class_code => l_event_class_code);
95696 --
95697 -- set accounting class
95698 --
95702 );
95699 xla_ae_lines_pkg.SetAcctClass(
95700 p_accounting_class_code => 'RETAINAGE'
95701 , p_ae_header_id => l_ae_header_id
95703
95704 --
95705 -- set rounding class
95706 --
95707 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95708 'RETAINAGE';
95709
95710 --
95711 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95712 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95713 --
95714 -- bulk performance
95715 --
95716 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95717
95718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95719 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95720
95721 -- 4955764
95722 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95723 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95724
95725 -- 4458381 Public Sector Enh
95726
95727 --
95728 -- set accounting attributes for the line type
95729 --
95730 l_entered_amt_idx := 25;
95731 l_accted_amt_idx := 27;
95732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
95733 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95734 l_rec_acct_attrs.array_char_value(1) := p_source_40;
95735 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
95736 l_rec_acct_attrs.array_num_value(2) :=
95737 xla_ae_sources_pkg.GetSystemSourceNum(
95738 p_source_code => 'XLA_EVENT_APPL_ID'
95739 , p_source_type_code => 'Y'
95740 , p_source_application_id => 602
95741 );
95742 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
95743 l_rec_acct_attrs.array_char_value(3) := p_source_48;
95744 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
95745 l_rec_acct_attrs.array_char_value(4) :=
95746 xla_ae_sources_pkg.GetSystemSourceChar(
95747 p_source_code => 'XLA_ENTITY_CODE'
95748 , p_source_type_code => 'Y'
95749 , p_source_application_id => 602
95750 );
95751 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
95752 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
95753 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
95754 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
95755 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
95756 l_rec_acct_attrs.array_num_value(7) := p_source_42;
95757 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95758 l_rec_acct_attrs.array_char_value(8) := p_source_62;
95759 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
95760 l_rec_acct_attrs.array_char_value(9) := p_source_63;
95761 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
95762 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_145);
95763 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95764 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_146);
95765 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
95766 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
95767 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
95768 l_rec_acct_attrs.array_char_value(13) := p_source_48;
95769 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
95770 l_rec_acct_attrs.array_char_value(14) := p_source_77;
95771 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
95772 l_rec_acct_attrs.array_num_value(15) := p_source_78;
95773 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
95774 l_rec_acct_attrs.array_num_value(16) := p_source_79;
95775 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
95776 l_rec_acct_attrs.array_char_value(17) := p_source_80;
95777 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
95778 l_rec_acct_attrs.array_num_value(18) := p_source_81;
95779 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
95780 l_rec_acct_attrs.array_char_value(19) := p_source_82;
95781 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
95782 l_rec_acct_attrs.array_num_value(20) := p_source_83;
95783 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
95784 l_rec_acct_attrs.array_num_value(21) := p_source_84;
95785 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
95786 l_rec_acct_attrs.array_char_value(22) := p_source_80;
95787 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
95788 l_rec_acct_attrs.array_num_value(23) := p_source_85;
95789 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
95790 l_rec_acct_attrs.array_char_value(24) := p_source_86;
95791 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
95792 l_rec_acct_attrs.array_num_value(25) := p_source_87;
95793 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
95794 l_rec_acct_attrs.array_char_value(26) := p_source_80;
95795 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
95796 l_rec_acct_attrs.array_num_value(27) := p_source_99;
95797 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
95801 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
95798 l_rec_acct_attrs.array_date_value(28) := p_source_90;
95799 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
95800 l_rec_acct_attrs.array_char_value(29) := p_source_91;
95802 l_rec_acct_attrs.array_date_value(30) := p_source_92;
95803 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
95804 l_rec_acct_attrs.array_char_value(31) := p_source_53;
95805 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
95806 l_rec_acct_attrs.array_char_value(32) := p_source_56;
95807 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
95808 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_95);
95809 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
95810 l_rec_acct_attrs.array_char_value(34) := p_source_48;
95811 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
95812 l_rec_acct_attrs.array_num_value(35) := p_source_58;
95813 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
95814 l_rec_acct_attrs.array_num_value(36) := p_source_66;
95815 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
95816 l_rec_acct_attrs.array_num_value(37) := p_source_59;
95817 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
95818 l_rec_acct_attrs.array_num_value(38) := p_source_96;
95819 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
95820 l_rec_acct_attrs.array_num_value(39) := p_source_97;
95821
95822 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95823 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95824
95825 ---------------------------------------------------------------------------------------------------------------
95826 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95827 ---------------------------------------------------------------------------------------------------------------
95828 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95829
95830 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95831 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95832
95833 IF xla_accounting_cache_pkg.GetValueChar
95834 (p_source_code => 'LEDGER_CATEGORY_CODE'
95835 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95836 AND l_bflow_method_code = 'PRIOR_ENTRY'
95837 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95838 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95839 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95840 )
95841 THEN
95842 xla_ae_lines_pkg.BflowUpgEntry
95843 (p_business_method_code => l_bflow_method_code
95844 ,p_business_class_code => l_bflow_class_code
95845 ,p_balance_type => l_balance_type_code);
95846 ELSE
95847 NULL;
95848 XLA_AE_LINES_PKG.business_flow_validation(
95849 p_business_method_code => l_bflow_method_code
95850 ,p_business_class_code => l_bflow_class_code
95851 ,p_inherit_description_flag => l_inherit_desc_flag);
95852 END IF;
95853
95854 --
95855 -- call analytical criteria
95856 --
95857 -- Inherited Analytical Criteria for business flow method of Prior Entry.
95858 --
95859 -- call description
95860 --
95861 -- No description or it is inherited.
95862 --
95863 -- call ADRs
95864 -- Bug 4922099
95865 --
95866 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95867 (NVL(l_actual_upg_option, 'N') = 'O') OR
95868 (NVL(l_enc_upg_option, 'N') = 'O')
95869 )
95870 THEN
95871 NULL;
95872 --
95873 --
95874
95875 --
95876 --
95877 END IF;
95878 --
95879 -- Bug 4922099
95880 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95881 (NVL(l_enc_upg_option, 'N') = 'O')
95882 ) AND
95883 (l_bflow_method_code = 'PRIOR_ENTRY')
95884 )
95885 THEN
95886 IF
95887 --
95888 1 = 1
95889 --
95890 THEN
95891 xla_accounting_err_pkg.build_message
95892 (p_appli_s_name => 'XLA'
95893 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95894 ,p_token_1 => 'LINE_NUMBER'
95895 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
95896 ,p_token_2 => 'LINE_TYPE_NAME'
95897 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
95898 l_component_type
95899 ,l_component_code
95900 ,l_component_type_code
95901 ,l_component_appl_id
95902 ,l_amb_context_code
95906 ,p_token_3 => 'OWNER'
95903 ,l_entity_code
95904 ,l_event_class_code
95905 )
95907 ,p_value_3 => xla_lookups_pkg.get_meaning(
95908 p_lookup_type => 'XLA_OWNER_TYPE'
95909 ,p_lookup_code => l_component_type_code
95910 )
95911 ,p_token_4 => 'PRODUCT_NAME'
95912 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95913 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95914 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95915 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95916 ,p_ae_header_id => NULL
95917 );
95918
95919 IF (C_LEVEL_ERROR>= g_log_level) THEN
95920 trace
95921 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95922 ,p_level => C_LEVEL_ERROR
95923 ,p_module => l_log_module);
95924 END IF;
95925 END IF;
95926 END IF;
95927 --
95928 --
95929 ------------------------------------------------------------------------------------------------
95930 -- 4219869 Business Flow
95931 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95932 -- Prior Entry. Currently, the following code is always generated.
95933 ------------------------------------------------------------------------------------------------
95934 -- No ValidateCurrentLine for business flow method of Prior Entry
95935
95936 ------------------------------------------------------------------------------------
95937 -- 4219869 Business Flow
95938 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95939 ------------------------------------------------------------------------------------
95940 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95941
95942 ----------------------------------------------------------------------------------
95943 -- 4219869 Business Flow
95944 -- Update journal entry status -- Need to generate this within IF <condition>
95945 ----------------------------------------------------------------------------------
95946 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95947 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95948 ,p_balance_type_code => l_balance_type_code
95949 );
95950
95951 -------------------------------------------------------------------------------------------
95952 -- 4262811 - Generate the Accrual Reversal lines
95953 -------------------------------------------------------------------------------------------
95954 BEGIN
95955 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95956 (g_array_event(p_event_id).array_value_num('header_index'));
95957 IF l_acc_rev_flag IS NULL THEN
95958 l_acc_rev_flag := 'N';
95959 END IF;
95960 EXCEPTION
95961 WHEN OTHERS THEN
95962 l_acc_rev_flag := 'N';
95963 END;
95964 --
95965 IF (l_acc_rev_flag = 'Y') THEN
95966
95967 -- 4645092 ------------------------------------------------------------------------------
95968 -- To allow MPA report to determine if it should generate report process
95969 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95970 ------------------------------------------------------------------------------------------
95971
95972 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95973 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95974 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
95975 -- call ADRs
95976 -- Bug 4922099
95977 --
95978 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95979 (NVL(l_actual_upg_option, 'N') = 'O') OR
95980 (NVL(l_enc_upg_option, 'N') = 'O')
95981 )
95982 THEN
95983 NULL;
95984 --
95985 --
95986
95987 --
95988 --
95989 END IF;
95990
95991 --
95992 -- Update the line information that should be overwritten
95993 --
95994 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95995 p_header_num => 1);
95996 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
95997
95998 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95999
96000 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
96001 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96002 END IF;
96003
96004 --
96008 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
96005 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96006 --
96007 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96009 ELSE
96010 ---------------------------------------------------------------------------------------------------
96011 -- 4262811a Switch Sign
96012 ---------------------------------------------------------------------------------------------------
96013 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
96014 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96016 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96017 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96018 -- 5132302
96019 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96020 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96021
96022 END IF;
96023
96024 -- 4955764
96025 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96026 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96027
96028
96029 XLA_AE_LINES_PKG.ValidateCurrentLine;
96030 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96031
96032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96034 ,p_balance_type_code => l_balance_type_code);
96035
96036 END IF;
96037
96038 -----------------------------------------------------------------------------------------
96039 -- 4262811 Multiperiod Accounting
96040 -----------------------------------------------------------------------------------------
96041 -- No MPA option is assigned.
96042
96043
96044 END IF;
96045 END IF;
96046 --
96047
96048 --
96049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96050 trace
96051 (p_msg => 'END of AcctLineType_169'
96052 ,p_level => C_LEVEL_PROCEDURE
96053 ,p_module => l_log_module);
96054 END IF;
96055 --
96056 EXCEPTION
96057 WHEN xla_exceptions_pkg.application_exception THEN
96058 RAISE;
96059 WHEN OTHERS THEN
96060 xla_exceptions_pkg.raise_message
96061 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_169');
96062 END AcctLineType_169;
96063 --
96064
96065 ---------------------------------------
96066 --
96067 -- PRIVATE FUNCTION
96068 -- AcctLineType_170
96069 --
96070 ---------------------------------------
96071 PROCEDURE AcctLineType_170 (
96072 p_application_id IN NUMBER
96073 ,p_event_id IN NUMBER
96074 ,p_calculate_acctd_flag IN VARCHAR2
96075 ,p_calculate_g_l_flag IN VARCHAR2
96076 ,p_actual_flag IN OUT VARCHAR2
96077 ,p_balance_type_code OUT VARCHAR2
96078 ,p_gain_or_loss_ref OUT VARCHAR2
96079
96080 --Payment Distribution (Cleared Rate) Ledger Amount
96081 , p_source_10 IN NUMBER
96082 --Invoice Distribution Type
96083 , p_source_20 IN VARCHAR2
96084 , p_source_20_meaning IN VARCHAR2
96085 --When to Account for Payment Option
96086 , p_source_38 IN VARCHAR2
96087 --Accounting Reversal Indicator
96088 , p_source_40 IN VARCHAR2
96089 --Payment Distribution Amount
96090 , p_source_41 IN NUMBER
96091 --Business Flow Accounts Payable Application Identifier
96092 , p_source_42 IN NUMBER
96093 --Business Flow Payment Distribution Type
96094 , p_source_43 IN VARCHAR2
96095 --Business Flow Payment Entity Code
96096 , p_source_44 IN VARCHAR2
96097 --Payment Distribution Identifier
96098 , p_source_47 IN NUMBER
96099 --Distribution Link Type
96100 , p_source_48 IN VARCHAR2
96101 --Payment Currency Code
96102 , p_source_49 IN VARCHAR2
96103 --Override Accounted Amount Indicator
96104 , p_source_53 IN VARCHAR2
96105 , p_source_53_meaning IN VARCHAR2
96106 --Third Party Type
96107 , p_source_56 IN VARCHAR2
96108 --Payment Distribution Reversed Identifier
96109 , p_source_57 IN NUMBER
96110 --Invoice Distribution Tax Line Identifier
96111 , p_source_58 IN NUMBER
96112 --Invoice Distribution Summary Tax Line Identifier
96113 , p_source_59 IN NUMBER
96114 --Invoice Type Paid
96115 , p_source_101 IN VARCHAR2
96116 , p_source_101_meaning IN VARCHAR2
96117 --Business Flow Retained Invoice Distribution Associated with Payment Clearing
96118 , p_source_147 IN NUMBER
96119 --Business Flow Retained Invoice Associated with Payment Clearing
96120 , p_source_148 IN NUMBER
96121 )
96122 IS
96123
96124 l_component_type VARCHAR2(80);
96125 l_component_code VARCHAR2(30);
96126 l_component_type_code VARCHAR2(1);
96127 l_component_appl_id INTEGER;
96128 l_amb_context_code VARCHAR2(30);
96129 l_entity_code VARCHAR2(30);
96133 l_line_definition_code VARCHAR2(30);
96130 l_event_class_code VARCHAR2(30);
96131 l_ae_header_id NUMBER;
96132 l_event_type_code VARCHAR2(30);
96134 l_line_definition_owner_code VARCHAR2(1);
96135 --
96136 -- adr variables
96137 l_segment VARCHAR2(30);
96138 l_ccid NUMBER;
96139 l_adr_transaction_coa_id NUMBER;
96140 l_adr_accounting_coa_id NUMBER;
96141 l_adr_flexfield_segment_code VARCHAR2(30);
96142 l_adr_flex_value_set_id NUMBER;
96143 l_adr_value_type_code VARCHAR2(30);
96144 l_adr_value_combination_id NUMBER;
96145 l_adr_value_segment_code VARCHAR2(30);
96146
96147 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
96148 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
96149 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
96150 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
96151
96152 -- 4262811 Variables ------------------------------------------------------------------------------------------
96153 l_entered_amt_idx NUMBER;
96154 l_accted_amt_idx NUMBER;
96155 l_acc_rev_flag VARCHAR2(1);
96156 l_accrual_line_num NUMBER;
96157 l_tmp_amt NUMBER;
96158 l_acc_rev_natural_side_code VARCHAR2(1);
96159
96160 l_num_entries NUMBER;
96161 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
96162 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
96163 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
96164 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
96165 l_recog_line_1 NUMBER;
96166 l_recog_line_2 NUMBER;
96167
96168 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
96169 l_bflow_applied_to_amt NUMBER; -- 5132302
96170 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
96171
96172 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96173
96174 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
96175 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
96176
96177 ---------------------------------------------------------------------------------------------------------------
96178
96179
96180 --
96181 -- bulk performance
96182 --
96183 l_balance_type_code VARCHAR2(1);
96184 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
96185 l_log_module VARCHAR2(240);
96186
96187 --
96188 -- Upgrade strategy
96189 --
96190 l_actual_upg_option VARCHAR2(1);
96191 l_enc_upg_option VARCHAR2(1);
96192
96193 --
96194 BEGIN
96195 --
96196 IF g_log_enabled THEN
96197 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_170';
96198 END IF;
96199 --
96200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96201
96202 trace
96203 (p_msg => 'BEGIN of AcctLineType_170'
96204 ,p_level => C_LEVEL_PROCEDURE
96205 ,p_module => l_log_module);
96206
96207 END IF;
96208 --
96209 l_component_type := 'AMB_JLT';
96210 l_component_code := 'AP_RET_REL_CLR_CASH';
96211 l_component_type_code := 'S';
96212 l_component_appl_id := 200;
96213 l_amb_context_code := 'DEFAULT';
96214 l_entity_code := 'AP_PAYMENTS';
96215 l_event_class_code := 'RECONCILED PAYMENTS';
96216 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
96217 l_line_definition_owner_code := 'S';
96218 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
96219 --
96220 l_balance_type_code := 'A';
96221 l_segment := NULL;
96222 l_ccid := NULL;
96223 l_adr_transaction_coa_id := NULL;
96224 l_adr_accounting_coa_id := NULL;
96225 l_adr_flexfield_segment_code := NULL;
96226 l_adr_flex_value_set_id := NULL;
96227 l_adr_value_type_code := NULL;
96228 l_adr_value_combination_id := NULL;
96229 l_adr_value_segment_code := NULL;
96230
96231 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
96232 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
96233 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
96234 l_budgetary_control_flag := 'N';
96235
96236 l_bflow_applied_to_amt_idx := NULL; -- 5132302
96237 l_bflow_applied_to_amt := NULL; -- 5132302
96238 l_entered_amt_idx := NULL; -- 4262811
96239 l_accted_amt_idx := NULL; -- 4262811
96240 l_acc_rev_flag := NULL; -- 4262811
96241 l_accrual_line_num := NULL; -- 4262811
96242 l_tmp_amt := NULL; -- 4262811
96243 --
96244
96245 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96246 l_balance_type_code <> 'B' THEN
96247 IF NVL(p_source_38,'
96248 ') = 'CLEAR_CLEAR' AND
96249 NVL(p_source_101,'
96250 ') = 'RETAINAGE RELEASE' AND
96251 NVL(p_source_20,'
96252 ') = 'RETAINAGE'
96253 THEN
96254
96255 --
96256 XLA_AE_LINES_PKG.SetNewLine;
96257
96261 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
96258 p_balance_type_code := l_balance_type_code;
96259 -- set the flag so later we will know whether the gain loss line needs to be created
96260
96262 p_actual_flag :='A';
96263 END IF;
96264
96265 --
96266 -- bulk performance
96267 --
96268 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96269 p_header_num => 0); -- 4262811
96270 --
96271 -- set accounting line options
96272 --
96273 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96274 p_natural_side_code => 'D'
96275 , p_gain_or_loss_flag => 'N'
96276 , p_gl_transfer_mode_code => 'S'
96277 , p_acct_entry_type_code => 'A'
96278 , p_switch_side_flag => 'Y'
96279 , p_merge_duplicate_code => 'A'
96280 );
96281 --
96282 l_acc_rev_natural_side_code := 'C'; -- 4262811
96283 --
96284 --
96285 -- set accounting line type info
96286 --
96287 xla_ae_lines_pkg.SetAcctLineType
96288 (p_component_type => l_component_type
96289 ,p_event_type_code => l_event_type_code
96290 ,p_line_definition_owner_code => l_line_definition_owner_code
96291 ,p_line_definition_code => l_line_definition_code
96292 ,p_accounting_line_code => l_component_code
96293 ,p_accounting_line_type_code => l_component_type_code
96294 ,p_accounting_line_appl_id => l_component_appl_id
96295 ,p_amb_context_code => l_amb_context_code
96296 ,p_entity_code => l_entity_code
96297 ,p_event_class_code => l_event_class_code);
96298 --
96299 -- set accounting class
96300 --
96301 xla_ae_lines_pkg.SetAcctClass(
96302 p_accounting_class_code => 'RETAINAGE'
96303 , p_ae_header_id => l_ae_header_id
96304 );
96305
96306 --
96307 -- set rounding class
96308 --
96309 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96310 'RETAINAGE';
96311
96312 --
96313 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96314 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96315 --
96316 -- bulk performance
96317 --
96318 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96319
96320 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96321 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96322
96323 -- 4955764
96324 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96325 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96326
96327 -- 4458381 Public Sector Enh
96328
96329 --
96330 -- set accounting attributes for the line type
96331 --
96332 l_entered_amt_idx := 10;
96333 l_accted_amt_idx := 12;
96334 l_bflow_applied_to_amt_idx := 2; -- 5132302
96335 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96336 l_rec_acct_attrs.array_char_value(1) := p_source_40;
96337 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96338 l_rec_acct_attrs.array_num_value(2) := p_source_41;
96339 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96340 l_rec_acct_attrs.array_num_value(3) := p_source_42;
96341 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96342 l_rec_acct_attrs.array_char_value(4) := p_source_43;
96343 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96344 l_rec_acct_attrs.array_char_value(5) := p_source_44;
96345 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96346 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_147);
96347 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96348 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_148);
96349 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96350 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
96351 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96352 l_rec_acct_attrs.array_char_value(9) := p_source_48;
96353 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96354 l_rec_acct_attrs.array_num_value(10) := p_source_41;
96355 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96356 l_rec_acct_attrs.array_char_value(11) := p_source_49;
96357 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
96358 l_rec_acct_attrs.array_num_value(12) := p_source_10;
96359 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
96360 l_rec_acct_attrs.array_char_value(13) := p_source_53;
96361 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
96362 l_rec_acct_attrs.array_char_value(14) := p_source_56;
96363 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
96364 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
96365 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
96366 l_rec_acct_attrs.array_char_value(16) := p_source_48;
96370 l_rec_acct_attrs.array_num_value(18) := p_source_58;
96367 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
96368 l_rec_acct_attrs.array_num_value(17) := p_source_58;
96369 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
96371 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
96372 l_rec_acct_attrs.array_num_value(19) := p_source_59;
96373
96374 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96375 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96376
96377 ---------------------------------------------------------------------------------------------------------------
96378 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96379 ---------------------------------------------------------------------------------------------------------------
96380 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96381
96382 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96383 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96384
96385 IF xla_accounting_cache_pkg.GetValueChar
96386 (p_source_code => 'LEDGER_CATEGORY_CODE'
96387 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96388 AND l_bflow_method_code = 'PRIOR_ENTRY'
96389 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96390 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96391 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96392 )
96393 THEN
96394 xla_ae_lines_pkg.BflowUpgEntry
96395 (p_business_method_code => l_bflow_method_code
96396 ,p_business_class_code => l_bflow_class_code
96397 ,p_balance_type => l_balance_type_code);
96398 ELSE
96399 NULL;
96400 XLA_AE_LINES_PKG.business_flow_validation(
96401 p_business_method_code => l_bflow_method_code
96402 ,p_business_class_code => l_bflow_class_code
96403 ,p_inherit_description_flag => l_inherit_desc_flag);
96404 END IF;
96405
96406 --
96407 -- call analytical criteria
96408 --
96409 -- Inherited Analytical Criteria for business flow method of Prior Entry.
96410 --
96411 -- call description
96412 --
96413 -- No description or it is inherited.
96414 --
96415 -- call ADRs
96416 -- Bug 4922099
96417 --
96418 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96419 (NVL(l_actual_upg_option, 'N') = 'O') OR
96420 (NVL(l_enc_upg_option, 'N') = 'O')
96421 )
96422 THEN
96423 NULL;
96424 --
96425 --
96426
96427 --
96428 --
96429 END IF;
96430 --
96431 -- Bug 4922099
96432 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96433 (NVL(l_enc_upg_option, 'N') = 'O')
96434 ) AND
96435 (l_bflow_method_code = 'PRIOR_ENTRY')
96436 )
96437 THEN
96438 IF
96439 --
96440 1 = 1
96441 --
96442 THEN
96443 xla_accounting_err_pkg.build_message
96444 (p_appli_s_name => 'XLA'
96445 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96446 ,p_token_1 => 'LINE_NUMBER'
96447 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
96448 ,p_token_2 => 'LINE_TYPE_NAME'
96449 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
96450 l_component_type
96451 ,l_component_code
96452 ,l_component_type_code
96453 ,l_component_appl_id
96454 ,l_amb_context_code
96455 ,l_entity_code
96456 ,l_event_class_code
96457 )
96458 ,p_token_3 => 'OWNER'
96459 ,p_value_3 => xla_lookups_pkg.get_meaning(
96460 p_lookup_type => 'XLA_OWNER_TYPE'
96461 ,p_lookup_code => l_component_type_code
96462 )
96463 ,p_token_4 => 'PRODUCT_NAME'
96464 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96465 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96466 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96470
96467 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96468 ,p_ae_header_id => NULL
96469 );
96471 IF (C_LEVEL_ERROR>= g_log_level) THEN
96472 trace
96473 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96474 ,p_level => C_LEVEL_ERROR
96475 ,p_module => l_log_module);
96476 END IF;
96477 END IF;
96478 END IF;
96479 --
96480 --
96481 ------------------------------------------------------------------------------------------------
96482 -- 4219869 Business Flow
96483 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96484 -- Prior Entry. Currently, the following code is always generated.
96485 ------------------------------------------------------------------------------------------------
96486 -- No ValidateCurrentLine for business flow method of Prior Entry
96487
96488 ------------------------------------------------------------------------------------
96489 -- 4219869 Business Flow
96490 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96491 ------------------------------------------------------------------------------------
96492 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96493
96494 ----------------------------------------------------------------------------------
96495 -- 4219869 Business Flow
96496 -- Update journal entry status -- Need to generate this within IF <condition>
96497 ----------------------------------------------------------------------------------
96498 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96499 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96500 ,p_balance_type_code => l_balance_type_code
96501 );
96502
96503 -------------------------------------------------------------------------------------------
96504 -- 4262811 - Generate the Accrual Reversal lines
96505 -------------------------------------------------------------------------------------------
96506 BEGIN
96507 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96508 (g_array_event(p_event_id).array_value_num('header_index'));
96509 IF l_acc_rev_flag IS NULL THEN
96510 l_acc_rev_flag := 'N';
96511 END IF;
96512 EXCEPTION
96513 WHEN OTHERS THEN
96514 l_acc_rev_flag := 'N';
96515 END;
96516 --
96517 IF (l_acc_rev_flag = 'Y') THEN
96518
96519 -- 4645092 ------------------------------------------------------------------------------
96520 -- To allow MPA report to determine if it should generate report process
96521 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96522 ------------------------------------------------------------------------------------------
96523
96524 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96525 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96526 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
96527 -- call ADRs
96528 -- Bug 4922099
96529 --
96530 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96531 (NVL(l_actual_upg_option, 'N') = 'O') OR
96532 (NVL(l_enc_upg_option, 'N') = 'O')
96533 )
96534 THEN
96535 NULL;
96536 --
96537 --
96538
96539 --
96540 --
96541 END IF;
96542
96543 --
96544 -- Update the line information that should be overwritten
96545 --
96546 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96547 p_header_num => 1);
96548 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
96549
96550 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96551
96552 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
96553 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96554 END IF;
96555
96556 --
96557 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96558 --
96559 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96560 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
96561 ELSE
96562 ---------------------------------------------------------------------------------------------------
96563 -- 4262811a Switch Sign
96564 ---------------------------------------------------------------------------------------------------
96565 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
96566 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96567 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96568 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96569 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96570 -- 5132302
96571 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96575
96572 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96573
96574 END IF;
96576 -- 4955764
96577 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96578 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96579
96580
96581 XLA_AE_LINES_PKG.ValidateCurrentLine;
96582 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96583
96584 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96585 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96586 ,p_balance_type_code => l_balance_type_code);
96587
96588 END IF;
96589
96590 -----------------------------------------------------------------------------------------
96591 -- 4262811 Multiperiod Accounting
96592 -----------------------------------------------------------------------------------------
96593 -- No MPA option is assigned.
96594
96595
96596 END IF;
96597 END IF;
96598 --
96599
96600 --
96601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96602 trace
96603 (p_msg => 'END of AcctLineType_170'
96604 ,p_level => C_LEVEL_PROCEDURE
96605 ,p_module => l_log_module);
96606 END IF;
96607 --
96608 EXCEPTION
96609 WHEN xla_exceptions_pkg.application_exception THEN
96610 RAISE;
96611 WHEN OTHERS THEN
96612 xla_exceptions_pkg.raise_message
96613 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_170');
96614 END AcctLineType_170;
96615 --
96616
96617 ---------------------------------------
96618 --
96619 -- PRIVATE FUNCTION
96620 -- AcctLineType_171
96621 --
96622 ---------------------------------------
96623 PROCEDURE AcctLineType_171 (
96624 p_application_id IN NUMBER
96625 ,p_event_id IN NUMBER
96626 ,p_calculate_acctd_flag IN VARCHAR2
96627 ,p_calculate_g_l_flag IN VARCHAR2
96628 ,p_actual_flag IN OUT VARCHAR2
96629 ,p_balance_type_code OUT VARCHAR2
96630 ,p_gain_or_loss_ref OUT VARCHAR2
96631
96632 --Payment Distribution (Payment Rate) Ledger Amount
96633 , p_source_9 IN NUMBER
96634 --Invoice Distribution Type
96635 , p_source_20 IN VARCHAR2
96636 , p_source_20_meaning IN VARCHAR2
96637 --When to Account for Payment Option
96638 , p_source_38 IN VARCHAR2
96639 --Accounting Reversal Indicator
96640 , p_source_40 IN VARCHAR2
96641 --Payment Distribution Amount
96642 , p_source_41 IN NUMBER
96643 --Business Flow Accounts Payable Application Identifier
96644 , p_source_42 IN NUMBER
96645 --Payment Distribution Identifier
96646 , p_source_47 IN NUMBER
96647 --Distribution Link Type
96648 , p_source_48 IN VARCHAR2
96649 --Payment Currency Code
96650 , p_source_49 IN VARCHAR2
96651 --Override Accounted Amount Indicator
96652 , p_source_53 IN VARCHAR2
96653 , p_source_53_meaning IN VARCHAR2
96654 --Third Party Type
96655 , p_source_56 IN VARCHAR2
96656 --Payment Distribution Reversed Identifier
96657 , p_source_57 IN NUMBER
96658 --Invoice Distribution Tax Line Identifier
96659 , p_source_58 IN NUMBER
96660 --Invoice Distribution Summary Tax Line Identifier
96661 , p_source_59 IN NUMBER
96662 --Invoice Distribution Amount of the Payment Distribution
96663 , p_source_61 IN NUMBER
96664 --Business Flow Invoice Distribution Type
96665 , p_source_62 IN VARCHAR2
96666 --Business Flow Invoice Entity Code
96667 , p_source_63 IN VARCHAR2
96668 --Invoice Distribution Tax Distribution Identifier from Tax
96669 , p_source_66 IN NUMBER
96670 --Invoice Type Paid
96671 , p_source_101 IN VARCHAR2
96672 , p_source_101_meaning IN VARCHAR2
96673 --Business Flow Retained Invoice Distribution Associated with Payment
96674 , p_source_149 IN NUMBER
96675 --Business Flow Retained Invoice Associated with Payment
96676 , p_source_150 IN NUMBER
96677 )
96678 IS
96679
96680 l_component_type VARCHAR2(80);
96681 l_component_code VARCHAR2(30);
96682 l_component_type_code VARCHAR2(1);
96683 l_component_appl_id INTEGER;
96684 l_amb_context_code VARCHAR2(30);
96685 l_entity_code VARCHAR2(30);
96686 l_event_class_code VARCHAR2(30);
96687 l_ae_header_id NUMBER;
96688 l_event_type_code VARCHAR2(30);
96689 l_line_definition_code VARCHAR2(30);
96690 l_line_definition_owner_code VARCHAR2(1);
96691 --
96692 -- adr variables
96693 l_segment VARCHAR2(30);
96694 l_ccid NUMBER;
96695 l_adr_transaction_coa_id NUMBER;
96696 l_adr_accounting_coa_id NUMBER;
96697 l_adr_flexfield_segment_code VARCHAR2(30);
96698 l_adr_flex_value_set_id NUMBER;
96699 l_adr_value_type_code VARCHAR2(30);
96700 l_adr_value_combination_id NUMBER;
96701 l_adr_value_segment_code VARCHAR2(30);
96702
96703 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
96704 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
96705 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
96709 l_entered_amt_idx NUMBER;
96706 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
96707
96708 -- 4262811 Variables ------------------------------------------------------------------------------------------
96710 l_accted_amt_idx NUMBER;
96711 l_acc_rev_flag VARCHAR2(1);
96712 l_accrual_line_num NUMBER;
96713 l_tmp_amt NUMBER;
96714 l_acc_rev_natural_side_code VARCHAR2(1);
96715
96716 l_num_entries NUMBER;
96717 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
96718 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
96719 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
96720 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
96721 l_recog_line_1 NUMBER;
96722 l_recog_line_2 NUMBER;
96723
96724 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
96725 l_bflow_applied_to_amt NUMBER; -- 5132302
96726 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
96727
96728 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96729
96730 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
96731 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
96732
96733 ---------------------------------------------------------------------------------------------------------------
96734
96735
96736 --
96737 -- bulk performance
96738 --
96739 l_balance_type_code VARCHAR2(1);
96740 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
96741 l_log_module VARCHAR2(240);
96742
96743 --
96744 -- Upgrade strategy
96745 --
96746 l_actual_upg_option VARCHAR2(1);
96747 l_enc_upg_option VARCHAR2(1);
96748
96749 --
96750 BEGIN
96751 --
96752 IF g_log_enabled THEN
96753 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_171';
96754 END IF;
96755 --
96756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96757
96758 trace
96759 (p_msg => 'BEGIN of AcctLineType_171'
96760 ,p_level => C_LEVEL_PROCEDURE
96761 ,p_module => l_log_module);
96762
96763 END IF;
96764 --
96765 l_component_type := 'AMB_JLT';
96766 l_component_code := 'AP_RET_REL_PMT_CASH';
96767 l_component_type_code := 'S';
96768 l_component_appl_id := 200;
96769 l_amb_context_code := 'DEFAULT';
96770 l_entity_code := 'AP_PAYMENTS';
96771 l_event_class_code := 'PAYMENTS';
96772 l_event_type_code := 'PAYMENTS_ALL';
96773 l_line_definition_owner_code := 'S';
96774 l_line_definition_code := 'CASH_PAYMENTS_ALL';
96775 --
96776 l_balance_type_code := 'A';
96777 l_segment := NULL;
96778 l_ccid := NULL;
96779 l_adr_transaction_coa_id := NULL;
96780 l_adr_accounting_coa_id := NULL;
96781 l_adr_flexfield_segment_code := NULL;
96782 l_adr_flex_value_set_id := NULL;
96783 l_adr_value_type_code := NULL;
96784 l_adr_value_combination_id := NULL;
96785 l_adr_value_segment_code := NULL;
96786
96787 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
96788 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
96789 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
96790 l_budgetary_control_flag := 'N';
96791
96792 l_bflow_applied_to_amt_idx := NULL; -- 5132302
96793 l_bflow_applied_to_amt := NULL; -- 5132302
96794 l_entered_amt_idx := NULL; -- 4262811
96795 l_accted_amt_idx := NULL; -- 4262811
96796 l_acc_rev_flag := NULL; -- 4262811
96797 l_accrual_line_num := NULL; -- 4262811
96798 l_tmp_amt := NULL; -- 4262811
96799 --
96800
96801 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96802 l_balance_type_code <> 'B' THEN
96803 IF NVL(p_source_38,'
96804 ') <> 'CLEAR_CLEAR' AND
96805 NVL(p_source_101,'
96806 ') = 'RETAINAGE RELEASE' AND
96807 NVL(p_source_20,'
96808 ') = 'RETAINAGE'
96809 THEN
96810
96811 --
96812 XLA_AE_LINES_PKG.SetNewLine;
96813
96814 p_balance_type_code := l_balance_type_code;
96815 -- set the flag so later we will know whether the gain loss line needs to be created
96816
96817 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
96818 p_actual_flag :='A';
96819 END IF;
96820
96821 --
96822 -- bulk performance
96823 --
96824 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96825 p_header_num => 0); -- 4262811
96826 --
96827 -- set accounting line options
96828 --
96829 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96830 p_natural_side_code => 'D'
96831 , p_gain_or_loss_flag => 'N'
96832 , p_gl_transfer_mode_code => 'S'
96833 , p_acct_entry_type_code => 'A'
96834 , p_switch_side_flag => 'Y'
96835 , p_merge_duplicate_code => 'A'
96836 );
96837 --
96838 l_acc_rev_natural_side_code := 'C'; -- 4262811
96839 --
96843 xla_ae_lines_pkg.SetAcctLineType
96840 --
96841 -- set accounting line type info
96842 --
96844 (p_component_type => l_component_type
96845 ,p_event_type_code => l_event_type_code
96846 ,p_line_definition_owner_code => l_line_definition_owner_code
96847 ,p_line_definition_code => l_line_definition_code
96848 ,p_accounting_line_code => l_component_code
96849 ,p_accounting_line_type_code => l_component_type_code
96850 ,p_accounting_line_appl_id => l_component_appl_id
96851 ,p_amb_context_code => l_amb_context_code
96852 ,p_entity_code => l_entity_code
96853 ,p_event_class_code => l_event_class_code);
96854 --
96855 -- set accounting class
96856 --
96857 xla_ae_lines_pkg.SetAcctClass(
96858 p_accounting_class_code => 'RETAINAGE'
96859 , p_ae_header_id => l_ae_header_id
96860 );
96861
96862 --
96863 -- set rounding class
96864 --
96865 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96866 'RETAINAGE';
96867
96868 --
96869 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96870 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96871 --
96872 -- bulk performance
96873 --
96874 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96875
96876 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96877 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96878
96879 -- 4955764
96880 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96881 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96882
96883 -- 4458381 Public Sector Enh
96884
96885 --
96886 -- set accounting attributes for the line type
96887 --
96888 l_entered_amt_idx := 10;
96889 l_accted_amt_idx := 12;
96890 l_bflow_applied_to_amt_idx := 2; -- 5132302
96891 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96892 l_rec_acct_attrs.array_char_value(1) := p_source_40;
96893 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96894 l_rec_acct_attrs.array_num_value(2) := p_source_61;
96895 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96896 l_rec_acct_attrs.array_num_value(3) := p_source_42;
96897 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96898 l_rec_acct_attrs.array_char_value(4) := p_source_62;
96899 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96900 l_rec_acct_attrs.array_char_value(5) := p_source_63;
96901 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96902 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_149);
96903 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96904 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_150);
96905 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96906 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
96907 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96908 l_rec_acct_attrs.array_char_value(9) := p_source_48;
96909 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96910 l_rec_acct_attrs.array_num_value(10) := p_source_41;
96911 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96912 l_rec_acct_attrs.array_char_value(11) := p_source_49;
96913 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
96914 l_rec_acct_attrs.array_num_value(12) := p_source_9;
96915 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
96916 l_rec_acct_attrs.array_char_value(13) := p_source_53;
96917 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
96918 l_rec_acct_attrs.array_char_value(14) := p_source_56;
96919 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
96920 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
96921 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
96922 l_rec_acct_attrs.array_char_value(16) := p_source_48;
96923 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
96924 l_rec_acct_attrs.array_num_value(17) := p_source_58;
96925 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
96926 l_rec_acct_attrs.array_num_value(18) := p_source_66;
96927 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
96928 l_rec_acct_attrs.array_num_value(19) := p_source_59;
96929
96930 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96931 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96932
96933 ---------------------------------------------------------------------------------------------------------------
96934 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96935 ---------------------------------------------------------------------------------------------------------------
96936 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96937
96938 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96942 (p_source_code => 'LEDGER_CATEGORY_CODE'
96939 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96940
96941 IF xla_accounting_cache_pkg.GetValueChar
96943 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96944 AND l_bflow_method_code = 'PRIOR_ENTRY'
96945 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96946 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96947 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96948 )
96949 THEN
96950 xla_ae_lines_pkg.BflowUpgEntry
96951 (p_business_method_code => l_bflow_method_code
96952 ,p_business_class_code => l_bflow_class_code
96953 ,p_balance_type => l_balance_type_code);
96954 ELSE
96955 NULL;
96956 XLA_AE_LINES_PKG.business_flow_validation(
96957 p_business_method_code => l_bflow_method_code
96958 ,p_business_class_code => l_bflow_class_code
96959 ,p_inherit_description_flag => l_inherit_desc_flag);
96960 END IF;
96961
96962 --
96963 -- call analytical criteria
96964 --
96965 -- Inherited Analytical Criteria for business flow method of Prior Entry.
96966 --
96967 -- call description
96968 --
96969 -- No description or it is inherited.
96970 --
96971 -- call ADRs
96972 -- Bug 4922099
96973 --
96974 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96975 (NVL(l_actual_upg_option, 'N') = 'O') OR
96976 (NVL(l_enc_upg_option, 'N') = 'O')
96977 )
96978 THEN
96979 NULL;
96980 --
96981 --
96982
96983 --
96984 --
96985 END IF;
96986 --
96987 -- Bug 4922099
96988 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96989 (NVL(l_enc_upg_option, 'N') = 'O')
96990 ) AND
96991 (l_bflow_method_code = 'PRIOR_ENTRY')
96992 )
96993 THEN
96994 IF
96995 --
96996 1 = 1
96997 --
96998 THEN
96999 xla_accounting_err_pkg.build_message
97000 (p_appli_s_name => 'XLA'
97001 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97002 ,p_token_1 => 'LINE_NUMBER'
97003 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
97004 ,p_token_2 => 'LINE_TYPE_NAME'
97005 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
97006 l_component_type
97007 ,l_component_code
97008 ,l_component_type_code
97009 ,l_component_appl_id
97010 ,l_amb_context_code
97011 ,l_entity_code
97012 ,l_event_class_code
97013 )
97014 ,p_token_3 => 'OWNER'
97015 ,p_value_3 => xla_lookups_pkg.get_meaning(
97016 p_lookup_type => 'XLA_OWNER_TYPE'
97017 ,p_lookup_code => l_component_type_code
97018 )
97019 ,p_token_4 => 'PRODUCT_NAME'
97020 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97021 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97022 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97023 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97024 ,p_ae_header_id => NULL
97025 );
97026
97027 IF (C_LEVEL_ERROR>= g_log_level) THEN
97028 trace
97029 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97030 ,p_level => C_LEVEL_ERROR
97031 ,p_module => l_log_module);
97032 END IF;
97033 END IF;
97034 END IF;
97035 --
97036 --
97037 ------------------------------------------------------------------------------------------------
97038 -- 4219869 Business Flow
97039 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97040 -- Prior Entry. Currently, the following code is always generated.
97041 ------------------------------------------------------------------------------------------------
97042 -- No ValidateCurrentLine for business flow method of Prior Entry
97043
97047 ------------------------------------------------------------------------------------
97044 ------------------------------------------------------------------------------------
97045 -- 4219869 Business Flow
97046 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97048 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97049
97050 ----------------------------------------------------------------------------------
97051 -- 4219869 Business Flow
97052 -- Update journal entry status -- Need to generate this within IF <condition>
97053 ----------------------------------------------------------------------------------
97054 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97055 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97056 ,p_balance_type_code => l_balance_type_code
97057 );
97058
97059 -------------------------------------------------------------------------------------------
97060 -- 4262811 - Generate the Accrual Reversal lines
97061 -------------------------------------------------------------------------------------------
97062 BEGIN
97063 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97064 (g_array_event(p_event_id).array_value_num('header_index'));
97065 IF l_acc_rev_flag IS NULL THEN
97066 l_acc_rev_flag := 'N';
97067 END IF;
97068 EXCEPTION
97069 WHEN OTHERS THEN
97070 l_acc_rev_flag := 'N';
97071 END;
97072 --
97073 IF (l_acc_rev_flag = 'Y') THEN
97074
97075 -- 4645092 ------------------------------------------------------------------------------
97076 -- To allow MPA report to determine if it should generate report process
97077 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97078 ------------------------------------------------------------------------------------------
97079
97080 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97081 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97082 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
97083 -- call ADRs
97084 -- Bug 4922099
97085 --
97086 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97087 (NVL(l_actual_upg_option, 'N') = 'O') OR
97088 (NVL(l_enc_upg_option, 'N') = 'O')
97089 )
97090 THEN
97091 NULL;
97092 --
97093 --
97094
97095 --
97096 --
97097 END IF;
97098
97099 --
97100 -- Update the line information that should be overwritten
97101 --
97102 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97103 p_header_num => 1);
97104 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
97105
97106 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97107
97108 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
97109 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97110 END IF;
97111
97112 --
97113 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97114 --
97115 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97116 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
97117 ELSE
97118 ---------------------------------------------------------------------------------------------------
97119 -- 4262811a Switch Sign
97120 ---------------------------------------------------------------------------------------------------
97121 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
97122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97123 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97124 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97125 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97126 -- 5132302
97127 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97128 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97129
97130 END IF;
97131
97132 -- 4955764
97133 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97134 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97135
97136
97137 XLA_AE_LINES_PKG.ValidateCurrentLine;
97138 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97139
97140 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97141 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97142 ,p_balance_type_code => l_balance_type_code);
97143
97144 END IF;
97145
97146 -----------------------------------------------------------------------------------------
97147 -- 4262811 Multiperiod Accounting
97148 -----------------------------------------------------------------------------------------
97149 -- No MPA option is assigned.
97150
97151
97155
97152 END IF;
97153 END IF;
97154 --
97156 --
97157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97158 trace
97159 (p_msg => 'END of AcctLineType_171'
97160 ,p_level => C_LEVEL_PROCEDURE
97161 ,p_module => l_log_module);
97162 END IF;
97163 --
97164 EXCEPTION
97165 WHEN xla_exceptions_pkg.application_exception THEN
97166 RAISE;
97167 WHEN OTHERS THEN
97168 xla_exceptions_pkg.raise_message
97169 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_171');
97170 END AcctLineType_171;
97171 --
97172
97173 ---------------------------------------
97174 --
97175 -- PRIVATE FUNCTION
97176 -- AcctLineType_172
97177 --
97178 ---------------------------------------
97179 PROCEDURE AcctLineType_172 (
97180 p_application_id IN NUMBER
97181 ,p_event_id IN NUMBER
97182 ,p_calculate_acctd_flag IN VARCHAR2
97183 ,p_calculate_g_l_flag IN VARCHAR2
97184 ,p_actual_flag IN OUT VARCHAR2
97185 ,p_balance_type_code OUT VARCHAR2
97186 ,p_gain_or_loss_ref OUT VARCHAR2
97187
97188 --Invoice Distribution Type
97189 , p_source_20 IN VARCHAR2
97190 , p_source_20_meaning IN VARCHAR2
97191 --When to Account for Payment Option
97192 , p_source_38 IN VARCHAR2
97193 --Payment Distribution Type
97194 , p_source_39 IN VARCHAR2
97195 , p_source_39_meaning IN VARCHAR2
97196 --Accounting Reversal Indicator
97197 , p_source_40 IN VARCHAR2
97198 --Payment Distribution Amount
97199 , p_source_41 IN NUMBER
97200 --Business Flow Accounts Payable Application Identifier
97201 , p_source_42 IN NUMBER
97202 --Payment Distribution Identifier
97203 , p_source_47 IN NUMBER
97204 --Distribution Link Type
97205 , p_source_48 IN VARCHAR2
97206 --Payment Currency Code
97207 , p_source_49 IN VARCHAR2
97208 --Override Accounted Amount Indicator
97209 , p_source_53 IN VARCHAR2
97210 , p_source_53_meaning IN VARCHAR2
97211 --Third Party Type
97212 , p_source_56 IN VARCHAR2
97213 --Payment Distribution Reversed Identifier
97214 , p_source_57 IN NUMBER
97215 --Invoice Distribution Tax Line Identifier
97216 , p_source_58 IN NUMBER
97217 --Invoice Distribution Summary Tax Line Identifier
97218 , p_source_59 IN NUMBER
97219 --Business Flow Invoice Distribution Type
97220 , p_source_62 IN VARCHAR2
97221 --Business Flow Invoice Entity Code
97222 , p_source_63 IN VARCHAR2
97223 --Business Flow Invoice Distribution Identifier
97224 , p_source_64 IN NUMBER
97225 --Business Flow Invoice Identifier
97226 , p_source_65 IN NUMBER
97227 --Accrue on Receipt Option
97228 , p_source_100 IN VARCHAR2
97229 , p_source_100_meaning IN VARCHAR2
97230 --Purchasing Encumbrance Option
97231 , p_source_102 IN VARCHAR2
97232 , p_source_102_meaning IN VARCHAR2
97233 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
97234 , p_source_103 IN NUMBER
97235 --Invoice Encumbered Option
97236 , p_source_104 IN VARCHAR2
97237 , p_source_104_meaning IN VARCHAR2
97238 --Prorated Amount of Variance Amount for Cash Basis
97239 , p_source_105 IN NUMBER
97240 )
97241 IS
97242
97243 l_component_type VARCHAR2(80);
97244 l_component_code VARCHAR2(30);
97245 l_component_type_code VARCHAR2(1);
97246 l_component_appl_id INTEGER;
97247 l_amb_context_code VARCHAR2(30);
97248 l_entity_code VARCHAR2(30);
97249 l_event_class_code VARCHAR2(30);
97250 l_ae_header_id NUMBER;
97251 l_event_type_code VARCHAR2(30);
97252 l_line_definition_code VARCHAR2(30);
97253 l_line_definition_owner_code VARCHAR2(1);
97254 --
97255 -- adr variables
97256 l_segment VARCHAR2(30);
97257 l_ccid NUMBER;
97258 l_adr_transaction_coa_id NUMBER;
97259 l_adr_accounting_coa_id NUMBER;
97260 l_adr_flexfield_segment_code VARCHAR2(30);
97261 l_adr_flex_value_set_id NUMBER;
97262 l_adr_value_type_code VARCHAR2(30);
97263 l_adr_value_combination_id NUMBER;
97264 l_adr_value_segment_code VARCHAR2(30);
97265
97266 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
97267 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
97268 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
97269 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
97270
97271 -- 4262811 Variables ------------------------------------------------------------------------------------------
97272 l_entered_amt_idx NUMBER;
97273 l_accted_amt_idx NUMBER;
97274 l_acc_rev_flag VARCHAR2(1);
97275 l_accrual_line_num NUMBER;
97276 l_tmp_amt NUMBER;
97277 l_acc_rev_natural_side_code VARCHAR2(1);
97278
97279 l_num_entries NUMBER;
97280 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
97281 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
97282 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
97283 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
97284 l_recog_line_1 NUMBER;
97288 l_bflow_applied_to_amt NUMBER; -- 5132302
97285 l_recog_line_2 NUMBER;
97286
97287 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
97289 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
97290
97291 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97292
97293 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
97294 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
97295
97296 ---------------------------------------------------------------------------------------------------------------
97297
97298
97299 --
97300 -- bulk performance
97301 --
97302 l_balance_type_code VARCHAR2(1);
97303 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
97304 l_log_module VARCHAR2(240);
97305
97306 --
97307 -- Upgrade strategy
97308 --
97309 l_actual_upg_option VARCHAR2(1);
97310 l_enc_upg_option VARCHAR2(1);
97311
97312 --
97313 BEGIN
97314 --
97315 IF g_log_enabled THEN
97316 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_172';
97317 END IF;
97318 --
97319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97320
97321 trace
97322 (p_msg => 'BEGIN of AcctLineType_172'
97323 ,p_level => C_LEVEL_PROCEDURE
97324 ,p_module => l_log_module);
97325
97326 END IF;
97327 --
97328 l_component_type := 'AMB_JLT';
97329 l_component_code := 'AP_TAX_AMOUNT_VARIANCE_CLR_ENC';
97330 l_component_type_code := 'S';
97331 l_component_appl_id := 200;
97332 l_amb_context_code := 'DEFAULT';
97333 l_entity_code := 'AP_PAYMENTS';
97334 l_event_class_code := 'RECONCILED PAYMENTS';
97335 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
97336 l_line_definition_owner_code := 'S';
97337 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
97338 --
97339 l_balance_type_code := 'E';
97340 l_segment := NULL;
97341 l_ccid := NULL;
97342 l_adr_transaction_coa_id := NULL;
97343 l_adr_accounting_coa_id := NULL;
97344 l_adr_flexfield_segment_code := NULL;
97345 l_adr_flex_value_set_id := NULL;
97346 l_adr_value_type_code := NULL;
97347 l_adr_value_combination_id := NULL;
97348 l_adr_value_segment_code := NULL;
97349
97350 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
97351 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
97352 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
97353 l_budgetary_control_flag := 'N';
97354
97355 l_bflow_applied_to_amt_idx := NULL; -- 5132302
97356 l_bflow_applied_to_amt := NULL; -- 5132302
97357 l_entered_amt_idx := NULL; -- 4262811
97358 l_accted_amt_idx := NULL; -- 4262811
97359 l_acc_rev_flag := NULL; -- 4262811
97360 l_accrual_line_num := NULL; -- 4262811
97361 l_tmp_amt := NULL; -- 4262811
97362 --
97363
97364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97365 l_balance_type_code <> 'B' THEN
97366 IF NVL(p_source_38,'
97367 ') = 'CLEAR_CLEAR' AND
97368 NVL(p_source_20,'
97369 ') = 'NONREC_TAX' AND
97370 (NVL(p_source_39,'
97371 ') = 'CASH' OR
97372 NVL(p_source_39,'
97373 ') = 'DISCOUNT') AND
97374 NVL(p_source_102,'
97375 ') = 'Y' AND
97376 NVL(p_source_100,'
97377 ') <> 'Y' AND
97378 p_source_103 IS NOT NULL AND
97379 NVL(p_source_104,'
97380 ') = 'Y'
97381 THEN
97382
97383 --
97384 XLA_AE_LINES_PKG.SetNewLine;
97385
97386 p_balance_type_code := l_balance_type_code;
97387 -- set the flag so later we will know whether the gain loss line needs to be created
97388
97389 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
97390 p_actual_flag :='A';
97391 END IF;
97392
97393 --
97394 -- bulk performance
97395 --
97396 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97397 p_header_num => 0); -- 4262811
97398 --
97399 -- set accounting line options
97400 --
97401 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97402 p_natural_side_code => 'C'
97403 , p_gain_or_loss_flag => 'N'
97404 , p_gl_transfer_mode_code => 'S'
97405 , p_acct_entry_type_code => 'E'
97406 , p_switch_side_flag => 'Y'
97407 , p_merge_duplicate_code => 'A'
97408 );
97409 --
97410 l_acc_rev_natural_side_code := 'D'; -- 4262811
97411 --
97412 --
97413 -- set accounting line type info
97414 --
97415 xla_ae_lines_pkg.SetAcctLineType
97416 (p_component_type => l_component_type
97417 ,p_event_type_code => l_event_type_code
97418 ,p_line_definition_owner_code => l_line_definition_owner_code
97419 ,p_line_definition_code => l_line_definition_code
97420 ,p_accounting_line_code => l_component_code
97421 ,p_accounting_line_type_code => l_component_type_code
97422 ,p_accounting_line_appl_id => l_component_appl_id
97426 --
97423 ,p_amb_context_code => l_amb_context_code
97424 ,p_entity_code => l_entity_code
97425 ,p_event_class_code => l_event_class_code);
97427 -- set accounting class
97428 --
97429 xla_ae_lines_pkg.SetAcctClass(
97430 p_accounting_class_code => 'TAV'
97431 , p_ae_header_id => l_ae_header_id
97432 );
97433
97434 --
97435 -- set rounding class
97436 --
97437 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
97438 'TAV';
97439
97440 --
97441 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
97442 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
97443 --
97444 -- bulk performance
97445 --
97446 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
97447
97448 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
97449 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
97450
97451 -- 4955764
97452 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97453 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
97454
97455 -- 4458381 Public Sector Enh
97456
97457 --
97458 -- set accounting attributes for the line type
97459 --
97460 l_entered_amt_idx := 10;
97461 l_accted_amt_idx := 12;
97462 l_bflow_applied_to_amt_idx := 2; -- 5132302
97463 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
97464 l_rec_acct_attrs.array_char_value(1) := p_source_40;
97465 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
97466 l_rec_acct_attrs.array_num_value(2) := p_source_41;
97467 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
97468 l_rec_acct_attrs.array_num_value(3) := p_source_42;
97469 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
97470 l_rec_acct_attrs.array_char_value(4) := p_source_62;
97471 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
97472 l_rec_acct_attrs.array_char_value(5) := p_source_63;
97473 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
97474 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
97475 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
97476 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
97477 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
97478 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
97479 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
97480 l_rec_acct_attrs.array_char_value(9) := p_source_48;
97481 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
97482 l_rec_acct_attrs.array_num_value(10) := p_source_105;
97483 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
97484 l_rec_acct_attrs.array_char_value(11) := p_source_49;
97485 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
97486 l_rec_acct_attrs.array_num_value(12) := p_source_103;
97487 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
97488 l_rec_acct_attrs.array_char_value(13) := p_source_53;
97489 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
97490 l_rec_acct_attrs.array_char_value(14) := p_source_56;
97491 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
97492 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
97493 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
97494 l_rec_acct_attrs.array_char_value(16) := p_source_48;
97495 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
97496 l_rec_acct_attrs.array_num_value(17) := p_source_58;
97497 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
97498 l_rec_acct_attrs.array_num_value(18) := p_source_58;
97499 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
97500 l_rec_acct_attrs.array_num_value(19) := p_source_59;
97501
97502 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97503 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97504
97505 ---------------------------------------------------------------------------------------------------------------
97506 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97507 ---------------------------------------------------------------------------------------------------------------
97508 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97509
97510 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97511 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97512
97513 IF xla_accounting_cache_pkg.GetValueChar
97514 (p_source_code => 'LEDGER_CATEGORY_CODE'
97515 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97516 AND l_bflow_method_code = 'PRIOR_ENTRY'
97517 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97518 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97519 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97520 )
97521 THEN
97525 ,p_balance_type => l_balance_type_code);
97522 xla_ae_lines_pkg.BflowUpgEntry
97523 (p_business_method_code => l_bflow_method_code
97524 ,p_business_class_code => l_bflow_class_code
97526 ELSE
97527 NULL;
97528 XLA_AE_LINES_PKG.business_flow_validation(
97529 p_business_method_code => l_bflow_method_code
97530 ,p_business_class_code => l_bflow_class_code
97531 ,p_inherit_description_flag => l_inherit_desc_flag);
97532 END IF;
97533
97534 --
97535 -- call analytical criteria
97536 --
97537 -- Inherited Analytical Criteria for business flow method of Prior Entry.
97538 --
97539 -- call description
97540 --
97541 -- No description or it is inherited.
97542 --
97543 -- call ADRs
97544 -- Bug 4922099
97545 --
97546 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97547 (NVL(l_actual_upg_option, 'N') = 'O') OR
97548 (NVL(l_enc_upg_option, 'N') = 'O')
97549 )
97550 THEN
97551 NULL;
97552 --
97553 --
97554
97555 --
97556 --
97557 END IF;
97558 --
97559 -- Bug 4922099
97560 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97561 (NVL(l_enc_upg_option, 'N') = 'O')
97562 ) AND
97563 (l_bflow_method_code = 'PRIOR_ENTRY')
97564 )
97565 THEN
97566 IF
97567 --
97568 1 = 1
97569 --
97570 THEN
97571 xla_accounting_err_pkg.build_message
97572 (p_appli_s_name => 'XLA'
97573 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97574 ,p_token_1 => 'LINE_NUMBER'
97575 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
97576 ,p_token_2 => 'LINE_TYPE_NAME'
97577 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
97578 l_component_type
97579 ,l_component_code
97580 ,l_component_type_code
97581 ,l_component_appl_id
97582 ,l_amb_context_code
97583 ,l_entity_code
97584 ,l_event_class_code
97585 )
97586 ,p_token_3 => 'OWNER'
97587 ,p_value_3 => xla_lookups_pkg.get_meaning(
97588 p_lookup_type => 'XLA_OWNER_TYPE'
97589 ,p_lookup_code => l_component_type_code
97590 )
97591 ,p_token_4 => 'PRODUCT_NAME'
97592 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97593 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97594 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97595 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97596 ,p_ae_header_id => NULL
97597 );
97598
97599 IF (C_LEVEL_ERROR>= g_log_level) THEN
97600 trace
97601 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97602 ,p_level => C_LEVEL_ERROR
97603 ,p_module => l_log_module);
97604 END IF;
97605 END IF;
97606 END IF;
97607 --
97608 --
97609 ------------------------------------------------------------------------------------------------
97610 -- 4219869 Business Flow
97611 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97612 -- Prior Entry. Currently, the following code is always generated.
97613 ------------------------------------------------------------------------------------------------
97614 -- No ValidateCurrentLine for business flow method of Prior Entry
97615
97616 ------------------------------------------------------------------------------------
97617 -- 4219869 Business Flow
97618 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97619 ------------------------------------------------------------------------------------
97620 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97621
97622 ----------------------------------------------------------------------------------
97623 -- 4219869 Business Flow
97624 -- Update journal entry status -- Need to generate this within IF <condition>
97628 ,p_balance_type_code => l_balance_type_code
97625 ----------------------------------------------------------------------------------
97626 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97627 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97629 );
97630
97631 -------------------------------------------------------------------------------------------
97632 -- 4262811 - Generate the Accrual Reversal lines
97633 -------------------------------------------------------------------------------------------
97634 BEGIN
97635 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97636 (g_array_event(p_event_id).array_value_num('header_index'));
97637 IF l_acc_rev_flag IS NULL THEN
97638 l_acc_rev_flag := 'N';
97639 END IF;
97640 EXCEPTION
97641 WHEN OTHERS THEN
97642 l_acc_rev_flag := 'N';
97643 END;
97644 --
97645 IF (l_acc_rev_flag = 'Y') THEN
97646
97647 -- 4645092 ------------------------------------------------------------------------------
97648 -- To allow MPA report to determine if it should generate report process
97649 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97650 ------------------------------------------------------------------------------------------
97651
97652 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97653 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97654 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
97655 -- call ADRs
97656 -- Bug 4922099
97657 --
97658 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97659 (NVL(l_actual_upg_option, 'N') = 'O') OR
97660 (NVL(l_enc_upg_option, 'N') = 'O')
97661 )
97662 THEN
97663 NULL;
97664 --
97665 --
97666
97667 --
97668 --
97669 END IF;
97670
97671 --
97672 -- Update the line information that should be overwritten
97673 --
97674 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97675 p_header_num => 1);
97676 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
97677
97678 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97679
97680 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
97681 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97682 END IF;
97683
97684 --
97685 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97686 --
97687 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97688 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
97689 ELSE
97690 ---------------------------------------------------------------------------------------------------
97691 -- 4262811a Switch Sign
97692 ---------------------------------------------------------------------------------------------------
97693 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
97694 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97695 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97696 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97697 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97698 -- 5132302
97699 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97700 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97701
97702 END IF;
97703
97704 -- 4955764
97705 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97706 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97707
97708
97709 XLA_AE_LINES_PKG.ValidateCurrentLine;
97710 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97711
97712 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97713 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97714 ,p_balance_type_code => l_balance_type_code);
97715
97716 END IF;
97717
97718 -----------------------------------------------------------------------------------------
97719 -- 4262811 Multiperiod Accounting
97720 -----------------------------------------------------------------------------------------
97721 -- No MPA option is assigned.
97722
97723
97724 END IF;
97725 END IF;
97726 --
97727
97728 --
97729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97730 trace
97731 (p_msg => 'END of AcctLineType_172'
97732 ,p_level => C_LEVEL_PROCEDURE
97733 ,p_module => l_log_module);
97734 END IF;
97735 --
97736 EXCEPTION
97737 WHEN xla_exceptions_pkg.application_exception THEN
97738 RAISE;
97739 WHEN OTHERS THEN
97740 xla_exceptions_pkg.raise_message
97744
97741 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_172');
97742 END AcctLineType_172;
97743 --
97745 ---------------------------------------
97746 --
97747 -- PRIVATE FUNCTION
97748 -- AcctLineType_173
97749 --
97750 ---------------------------------------
97751 PROCEDURE AcctLineType_173 (
97752 p_application_id IN NUMBER
97753 ,p_event_id IN NUMBER
97754 ,p_calculate_acctd_flag IN VARCHAR2
97755 ,p_calculate_g_l_flag IN VARCHAR2
97756 ,p_actual_flag IN OUT VARCHAR2
97757 ,p_balance_type_code OUT VARCHAR2
97758 ,p_gain_or_loss_ref OUT VARCHAR2
97759
97760 --Invoice Distribution Type
97761 , p_source_20 IN VARCHAR2
97762 , p_source_20_meaning IN VARCHAR2
97763 --When to Account for Payment Option
97764 , p_source_38 IN VARCHAR2
97765 --Payment Distribution Type
97766 , p_source_39 IN VARCHAR2
97767 , p_source_39_meaning IN VARCHAR2
97768 --Accounting Reversal Indicator
97769 , p_source_40 IN VARCHAR2
97770 --Business Flow Accounts Payable Application Identifier
97771 , p_source_42 IN NUMBER
97772 --Payment Distribution Identifier
97773 , p_source_47 IN NUMBER
97774 --Distribution Link Type
97775 , p_source_48 IN VARCHAR2
97776 --Payment Currency Code
97777 , p_source_49 IN VARCHAR2
97778 --Override Accounted Amount Indicator
97779 , p_source_53 IN VARCHAR2
97780 , p_source_53_meaning IN VARCHAR2
97781 --Third Party Type
97782 , p_source_56 IN VARCHAR2
97783 --Payment Distribution Reversed Identifier
97784 , p_source_57 IN NUMBER
97785 --Invoice Distribution Tax Line Identifier
97786 , p_source_58 IN NUMBER
97787 --Invoice Distribution Summary Tax Line Identifier
97788 , p_source_59 IN NUMBER
97789 --Payment Type
97790 , p_source_60 IN VARCHAR2
97791 , p_source_60_meaning IN VARCHAR2
97792 --Invoice Distribution Amount of the Payment Distribution
97793 , p_source_61 IN NUMBER
97794 --Business Flow Invoice Distribution Type
97795 , p_source_62 IN VARCHAR2
97796 --Business Flow Invoice Entity Code
97797 , p_source_63 IN VARCHAR2
97798 --Business Flow Invoice Distribution Identifier
97799 , p_source_64 IN NUMBER
97800 --Business Flow Invoice Identifier
97801 , p_source_65 IN NUMBER
97802 --Invoice Distribution Tax Distribution Identifier from Tax
97803 , p_source_66 IN NUMBER
97804 --Accrue on Receipt Option
97805 , p_source_100 IN VARCHAR2
97806 , p_source_100_meaning IN VARCHAR2
97807 --Purchasing Encumbrance Option
97808 , p_source_102 IN VARCHAR2
97809 , p_source_102_meaning IN VARCHAR2
97810 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
97811 , p_source_103 IN NUMBER
97812 --Invoice Encumbered Option
97813 , p_source_104 IN VARCHAR2
97814 , p_source_104_meaning IN VARCHAR2
97815 --Prorated Amount of Variance Amount for Cash Basis
97816 , p_source_105 IN NUMBER
97817 )
97818 IS
97819
97820 l_component_type VARCHAR2(80);
97821 l_component_code VARCHAR2(30);
97822 l_component_type_code VARCHAR2(1);
97823 l_component_appl_id INTEGER;
97824 l_amb_context_code VARCHAR2(30);
97825 l_entity_code VARCHAR2(30);
97826 l_event_class_code VARCHAR2(30);
97827 l_ae_header_id NUMBER;
97828 l_event_type_code VARCHAR2(30);
97829 l_line_definition_code VARCHAR2(30);
97830 l_line_definition_owner_code VARCHAR2(1);
97831 --
97832 -- adr variables
97833 l_segment VARCHAR2(30);
97834 l_ccid NUMBER;
97835 l_adr_transaction_coa_id NUMBER;
97836 l_adr_accounting_coa_id NUMBER;
97837 l_adr_flexfield_segment_code VARCHAR2(30);
97838 l_adr_flex_value_set_id NUMBER;
97839 l_adr_value_type_code VARCHAR2(30);
97840 l_adr_value_combination_id NUMBER;
97841 l_adr_value_segment_code VARCHAR2(30);
97842
97843 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
97844 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
97845 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
97846 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
97847
97848 -- 4262811 Variables ------------------------------------------------------------------------------------------
97849 l_entered_amt_idx NUMBER;
97850 l_accted_amt_idx NUMBER;
97851 l_acc_rev_flag VARCHAR2(1);
97852 l_accrual_line_num NUMBER;
97853 l_tmp_amt NUMBER;
97854 l_acc_rev_natural_side_code VARCHAR2(1);
97855
97856 l_num_entries NUMBER;
97857 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
97858 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
97859 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
97860 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
97861 l_recog_line_1 NUMBER;
97862 l_recog_line_2 NUMBER;
97863
97864 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
97865 l_bflow_applied_to_amt NUMBER; -- 5132302
97869
97866 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
97867
97868 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97870 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
97871 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
97872
97873 ---------------------------------------------------------------------------------------------------------------
97874
97875
97876 --
97877 -- bulk performance
97878 --
97879 l_balance_type_code VARCHAR2(1);
97880 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
97881 l_log_module VARCHAR2(240);
97882
97883 --
97884 -- Upgrade strategy
97885 --
97886 l_actual_upg_option VARCHAR2(1);
97887 l_enc_upg_option VARCHAR2(1);
97888
97889 --
97890 BEGIN
97891 --
97892 IF g_log_enabled THEN
97893 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_173';
97894 END IF;
97895 --
97896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97897
97898 trace
97899 (p_msg => 'BEGIN of AcctLineType_173'
97900 ,p_level => C_LEVEL_PROCEDURE
97901 ,p_module => l_log_module);
97902
97903 END IF;
97904 --
97905 l_component_type := 'AMB_JLT';
97906 l_component_code := 'AP_TAX_AMOUNT_VARIANCE_PMT_ENC';
97907 l_component_type_code := 'S';
97908 l_component_appl_id := 200;
97909 l_amb_context_code := 'DEFAULT';
97910 l_entity_code := 'AP_PAYMENTS';
97911 l_event_class_code := 'PAYMENTS';
97912 l_event_type_code := 'PAYMENTS_ALL';
97913 l_line_definition_owner_code := 'S';
97914 l_line_definition_code := 'ENC_PAYMENTS_ALL';
97915 --
97916 l_balance_type_code := 'E';
97917 l_segment := NULL;
97918 l_ccid := NULL;
97919 l_adr_transaction_coa_id := NULL;
97920 l_adr_accounting_coa_id := NULL;
97921 l_adr_flexfield_segment_code := NULL;
97922 l_adr_flex_value_set_id := NULL;
97923 l_adr_value_type_code := NULL;
97924 l_adr_value_combination_id := NULL;
97925 l_adr_value_segment_code := NULL;
97926
97927 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
97928 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
97929 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
97930 l_budgetary_control_flag := 'N';
97931
97932 l_bflow_applied_to_amt_idx := NULL; -- 5132302
97933 l_bflow_applied_to_amt := NULL; -- 5132302
97934 l_entered_amt_idx := NULL; -- 4262811
97935 l_accted_amt_idx := NULL; -- 4262811
97936 l_acc_rev_flag := NULL; -- 4262811
97937 l_accrual_line_num := NULL; -- 4262811
97938 l_tmp_amt := NULL; -- 4262811
97939 --
97940
97941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97942 l_balance_type_code <> 'B' THEN
97943 IF NVL(p_source_38,'
97944 ') <> 'CLEAR_CLEAR' AND
97945 NVL(p_source_20,'
97946 ') = 'NONREC_TAX' AND
97947 (NVL(p_source_39,'
97948 ') = 'CASH' OR
97949 NVL(p_source_39,'
97950 ') = 'DISCOUNT') AND
97951 NVL(p_source_60,'
97952 ') <> 'R' AND
97953 NVL(p_source_102,'
97954 ') = 'Y' AND
97955 p_source_103 IS NOT NULL AND
97956 NVL(p_source_100,'
97957 ') <> 'Y' AND
97958 NVL(p_source_104,'
97959 ') = 'Y'
97960 THEN
97961
97962 --
97963 XLA_AE_LINES_PKG.SetNewLine;
97964
97965 p_balance_type_code := l_balance_type_code;
97966 -- set the flag so later we will know whether the gain loss line needs to be created
97967
97968 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
97969 p_actual_flag :='A';
97970 END IF;
97971
97972 --
97973 -- bulk performance
97974 --
97975 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97976 p_header_num => 0); -- 4262811
97977 --
97978 -- set accounting line options
97979 --
97980 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97981 p_natural_side_code => 'C'
97982 , p_gain_or_loss_flag => 'N'
97983 , p_gl_transfer_mode_code => 'S'
97984 , p_acct_entry_type_code => 'E'
97985 , p_switch_side_flag => 'Y'
97986 , p_merge_duplicate_code => 'A'
97987 );
97988 --
97989 l_acc_rev_natural_side_code := 'D'; -- 4262811
97990 --
97991 --
97992 -- set accounting line type info
97993 --
97994 xla_ae_lines_pkg.SetAcctLineType
97995 (p_component_type => l_component_type
97996 ,p_event_type_code => l_event_type_code
97997 ,p_line_definition_owner_code => l_line_definition_owner_code
97998 ,p_line_definition_code => l_line_definition_code
97999 ,p_accounting_line_code => l_component_code
98000 ,p_accounting_line_type_code => l_component_type_code
98001 ,p_accounting_line_appl_id => l_component_appl_id
98002 ,p_amb_context_code => l_amb_context_code
98003 ,p_entity_code => l_entity_code
98004 ,p_event_class_code => l_event_class_code);
98005 --
98009 p_accounting_class_code => 'TAV'
98006 -- set accounting class
98007 --
98008 xla_ae_lines_pkg.SetAcctClass(
98010 , p_ae_header_id => l_ae_header_id
98011 );
98012
98013 --
98014 -- set rounding class
98015 --
98016 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98017 'TAV';
98018
98019 --
98020 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98021 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98022 --
98023 -- bulk performance
98024 --
98025 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98026
98027 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98028 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98029
98030 -- 4955764
98031 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98032 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98033
98034 -- 4458381 Public Sector Enh
98035
98036 --
98037 -- set accounting attributes for the line type
98038 --
98039 l_entered_amt_idx := 10;
98040 l_accted_amt_idx := 12;
98041 l_bflow_applied_to_amt_idx := 2; -- 5132302
98042 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98043 l_rec_acct_attrs.array_char_value(1) := p_source_40;
98044 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
98045 l_rec_acct_attrs.array_num_value(2) := p_source_61;
98046 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
98047 l_rec_acct_attrs.array_num_value(3) := p_source_42;
98048 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98049 l_rec_acct_attrs.array_char_value(4) := p_source_62;
98050 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
98051 l_rec_acct_attrs.array_char_value(5) := p_source_63;
98052 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
98053 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
98054 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98055 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
98056 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
98057 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
98058 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
98059 l_rec_acct_attrs.array_char_value(9) := p_source_48;
98060 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
98061 l_rec_acct_attrs.array_num_value(10) := p_source_105;
98062 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
98063 l_rec_acct_attrs.array_char_value(11) := p_source_49;
98064 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
98065 l_rec_acct_attrs.array_num_value(12) := p_source_103;
98066 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
98067 l_rec_acct_attrs.array_char_value(13) := p_source_53;
98068 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
98069 l_rec_acct_attrs.array_char_value(14) := p_source_56;
98070 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
98071 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
98072 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
98073 l_rec_acct_attrs.array_char_value(16) := p_source_48;
98074 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
98075 l_rec_acct_attrs.array_num_value(17) := p_source_58;
98076 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
98077 l_rec_acct_attrs.array_num_value(18) := p_source_66;
98078 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
98079 l_rec_acct_attrs.array_num_value(19) := p_source_59;
98080
98081 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98082 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98083
98084 ---------------------------------------------------------------------------------------------------------------
98085 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98086 ---------------------------------------------------------------------------------------------------------------
98087 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98088
98089 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98090 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98091
98092 IF xla_accounting_cache_pkg.GetValueChar
98093 (p_source_code => 'LEDGER_CATEGORY_CODE'
98094 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98095 AND l_bflow_method_code = 'PRIOR_ENTRY'
98096 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98097 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98098 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98099 )
98100 THEN
98101 xla_ae_lines_pkg.BflowUpgEntry
98105 ELSE
98102 (p_business_method_code => l_bflow_method_code
98103 ,p_business_class_code => l_bflow_class_code
98104 ,p_balance_type => l_balance_type_code);
98106 NULL;
98107 XLA_AE_LINES_PKG.business_flow_validation(
98108 p_business_method_code => l_bflow_method_code
98109 ,p_business_class_code => l_bflow_class_code
98110 ,p_inherit_description_flag => l_inherit_desc_flag);
98111 END IF;
98112
98113 --
98114 -- call analytical criteria
98115 --
98116 -- Inherited Analytical Criteria for business flow method of Prior Entry.
98117 --
98118 -- call description
98119 --
98120 -- No description or it is inherited.
98121 --
98122 -- call ADRs
98123 -- Bug 4922099
98124 --
98125 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98126 (NVL(l_actual_upg_option, 'N') = 'O') OR
98127 (NVL(l_enc_upg_option, 'N') = 'O')
98128 )
98129 THEN
98130 NULL;
98131 --
98132 --
98133
98134 --
98135 --
98136 END IF;
98137 --
98138 -- Bug 4922099
98139 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98140 (NVL(l_enc_upg_option, 'N') = 'O')
98141 ) AND
98142 (l_bflow_method_code = 'PRIOR_ENTRY')
98143 )
98144 THEN
98145 IF
98146 --
98147 1 = 1
98148 --
98149 THEN
98150 xla_accounting_err_pkg.build_message
98151 (p_appli_s_name => 'XLA'
98152 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98153 ,p_token_1 => 'LINE_NUMBER'
98154 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
98155 ,p_token_2 => 'LINE_TYPE_NAME'
98156 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
98157 l_component_type
98158 ,l_component_code
98159 ,l_component_type_code
98160 ,l_component_appl_id
98161 ,l_amb_context_code
98162 ,l_entity_code
98163 ,l_event_class_code
98164 )
98165 ,p_token_3 => 'OWNER'
98166 ,p_value_3 => xla_lookups_pkg.get_meaning(
98167 p_lookup_type => 'XLA_OWNER_TYPE'
98168 ,p_lookup_code => l_component_type_code
98169 )
98170 ,p_token_4 => 'PRODUCT_NAME'
98171 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98172 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98173 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98174 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98175 ,p_ae_header_id => NULL
98176 );
98177
98178 IF (C_LEVEL_ERROR>= g_log_level) THEN
98179 trace
98180 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98181 ,p_level => C_LEVEL_ERROR
98182 ,p_module => l_log_module);
98183 END IF;
98184 END IF;
98185 END IF;
98186 --
98187 --
98188 ------------------------------------------------------------------------------------------------
98189 -- 4219869 Business Flow
98190 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98191 -- Prior Entry. Currently, the following code is always generated.
98192 ------------------------------------------------------------------------------------------------
98193 -- No ValidateCurrentLine for business flow method of Prior Entry
98194
98195 ------------------------------------------------------------------------------------
98196 -- 4219869 Business Flow
98197 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98198 ------------------------------------------------------------------------------------
98199 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98200
98201 ----------------------------------------------------------------------------------
98202 -- 4219869 Business Flow
98203 -- Update journal entry status -- Need to generate this within IF <condition>
98204 ----------------------------------------------------------------------------------
98205 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98206 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98210 -------------------------------------------------------------------------------------------
98207 ,p_balance_type_code => l_balance_type_code
98208 );
98209
98211 -- 4262811 - Generate the Accrual Reversal lines
98212 -------------------------------------------------------------------------------------------
98213 BEGIN
98214 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98215 (g_array_event(p_event_id).array_value_num('header_index'));
98216 IF l_acc_rev_flag IS NULL THEN
98217 l_acc_rev_flag := 'N';
98218 END IF;
98219 EXCEPTION
98220 WHEN OTHERS THEN
98221 l_acc_rev_flag := 'N';
98222 END;
98223 --
98224 IF (l_acc_rev_flag = 'Y') THEN
98225
98226 -- 4645092 ------------------------------------------------------------------------------
98227 -- To allow MPA report to determine if it should generate report process
98228 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98229 ------------------------------------------------------------------------------------------
98230
98231 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98232 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98233 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
98234 -- call ADRs
98235 -- Bug 4922099
98236 --
98237 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98238 (NVL(l_actual_upg_option, 'N') = 'O') OR
98239 (NVL(l_enc_upg_option, 'N') = 'O')
98240 )
98241 THEN
98242 NULL;
98243 --
98244 --
98245
98246 --
98247 --
98248 END IF;
98249
98250 --
98251 -- Update the line information that should be overwritten
98252 --
98253 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98254 p_header_num => 1);
98255 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
98256
98257 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98258
98259 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
98260 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98261 END IF;
98262
98263 --
98264 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98265 --
98266 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98267 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
98268 ELSE
98269 ---------------------------------------------------------------------------------------------------
98270 -- 4262811a Switch Sign
98271 ---------------------------------------------------------------------------------------------------
98272 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
98273 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98274 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98275 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98276 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98277 -- 5132302
98278 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98279 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98280
98281 END IF;
98282
98283 -- 4955764
98284 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98285 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98286
98287
98288 XLA_AE_LINES_PKG.ValidateCurrentLine;
98289 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98290
98291 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98292 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98293 ,p_balance_type_code => l_balance_type_code);
98294
98295 END IF;
98296
98297 -----------------------------------------------------------------------------------------
98298 -- 4262811 Multiperiod Accounting
98299 -----------------------------------------------------------------------------------------
98300 -- No MPA option is assigned.
98301
98302
98303 END IF;
98304 END IF;
98305 --
98306
98307 --
98308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98309 trace
98310 (p_msg => 'END of AcctLineType_173'
98311 ,p_level => C_LEVEL_PROCEDURE
98312 ,p_module => l_log_module);
98313 END IF;
98314 --
98315 EXCEPTION
98316 WHEN xla_exceptions_pkg.application_exception THEN
98317 RAISE;
98318 WHEN OTHERS THEN
98319 xla_exceptions_pkg.raise_message
98320 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_173');
98321 END AcctLineType_173;
98322 --
98323
98324 ---------------------------------------
98325 --
98326 -- PRIVATE FUNCTION
98330 PROCEDURE AcctLineType_174 (
98327 -- AcctLineType_174
98328 --
98329 ---------------------------------------
98331 p_application_id IN NUMBER
98332 ,p_event_id IN NUMBER
98333 ,p_calculate_acctd_flag IN VARCHAR2
98334 ,p_calculate_g_l_flag IN VARCHAR2
98335 ,p_actual_flag IN OUT VARCHAR2
98336 ,p_balance_type_code OUT VARCHAR2
98337 ,p_gain_or_loss_ref OUT VARCHAR2
98338
98339 --Payment Distribution (Payment Rate) Ledger Amount
98340 , p_source_9 IN NUMBER
98341 --Invoice Distribution Type
98342 , p_source_20 IN VARCHAR2
98343 , p_source_20_meaning IN VARCHAR2
98344 --When to Account for Payment Option
98345 , p_source_38 IN VARCHAR2
98346 --Payment Distribution Type
98347 , p_source_39 IN VARCHAR2
98348 , p_source_39_meaning IN VARCHAR2
98349 --Accounting Reversal Indicator
98350 , p_source_40 IN VARCHAR2
98351 --Payment Distribution Amount
98352 , p_source_41 IN NUMBER
98353 --Business Flow Accounts Payable Application Identifier
98354 , p_source_42 IN NUMBER
98355 --Payment Distribution Identifier
98356 , p_source_47 IN NUMBER
98357 --Distribution Link Type
98358 , p_source_48 IN VARCHAR2
98359 --Payment Currency Code
98360 , p_source_49 IN VARCHAR2
98361 --Override Accounted Amount Indicator
98362 , p_source_53 IN VARCHAR2
98363 , p_source_53_meaning IN VARCHAR2
98364 --Third Party Type
98365 , p_source_56 IN VARCHAR2
98366 --Payment Distribution Reversed Identifier
98367 , p_source_57 IN NUMBER
98368 --Invoice Distribution Tax Line Identifier
98369 , p_source_58 IN NUMBER
98370 --Invoice Distribution Summary Tax Line Identifier
98371 , p_source_59 IN NUMBER
98372 --Payment Type
98373 , p_source_60 IN VARCHAR2
98374 , p_source_60_meaning IN VARCHAR2
98375 --Business Flow Invoice Distribution Type
98376 , p_source_62 IN VARCHAR2
98377 --Business Flow Invoice Entity Code
98378 , p_source_63 IN VARCHAR2
98379 --Business Flow Invoice Distribution Identifier
98380 , p_source_64 IN NUMBER
98381 --Business Flow Invoice Identifier
98382 , p_source_65 IN NUMBER
98383 --Invoice Distribution Tax Distribution Identifier from Tax
98384 , p_source_66 IN NUMBER
98385 --Purchasing Encumbrance Option
98386 , p_source_102 IN VARCHAR2
98387 , p_source_102_meaning IN VARCHAR2
98388 --Invoice Encumbered Option
98389 , p_source_104 IN VARCHAR2
98390 , p_source_104_meaning IN VARCHAR2
98391 )
98392 IS
98393
98394 l_component_type VARCHAR2(80);
98395 l_component_code VARCHAR2(30);
98396 l_component_type_code VARCHAR2(1);
98397 l_component_appl_id INTEGER;
98398 l_amb_context_code VARCHAR2(30);
98399 l_entity_code VARCHAR2(30);
98400 l_event_class_code VARCHAR2(30);
98401 l_ae_header_id NUMBER;
98402 l_event_type_code VARCHAR2(30);
98403 l_line_definition_code VARCHAR2(30);
98404 l_line_definition_owner_code VARCHAR2(1);
98405 --
98406 -- adr variables
98407 l_segment VARCHAR2(30);
98408 l_ccid NUMBER;
98409 l_adr_transaction_coa_id NUMBER;
98410 l_adr_accounting_coa_id NUMBER;
98411 l_adr_flexfield_segment_code VARCHAR2(30);
98412 l_adr_flex_value_set_id NUMBER;
98413 l_adr_value_type_code VARCHAR2(30);
98414 l_adr_value_combination_id NUMBER;
98415 l_adr_value_segment_code VARCHAR2(30);
98416
98417 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
98418 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
98419 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
98420 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
98421
98422 -- 4262811 Variables ------------------------------------------------------------------------------------------
98423 l_entered_amt_idx NUMBER;
98424 l_accted_amt_idx NUMBER;
98425 l_acc_rev_flag VARCHAR2(1);
98426 l_accrual_line_num NUMBER;
98427 l_tmp_amt NUMBER;
98428 l_acc_rev_natural_side_code VARCHAR2(1);
98429
98430 l_num_entries NUMBER;
98431 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
98432 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
98433 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
98434 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
98435 l_recog_line_1 NUMBER;
98436 l_recog_line_2 NUMBER;
98437
98438 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
98439 l_bflow_applied_to_amt NUMBER; -- 5132302
98440 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
98441
98442 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
98443
98444 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
98445 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
98446
98447 ---------------------------------------------------------------------------------------------------------------
98448
98449
98453 l_balance_type_code VARCHAR2(1);
98450 --
98451 -- bulk performance
98452 --
98454 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
98455 l_log_module VARCHAR2(240);
98456
98457 --
98458 -- Upgrade strategy
98459 --
98460 l_actual_upg_option VARCHAR2(1);
98461 l_enc_upg_option VARCHAR2(1);
98462
98463 --
98464 BEGIN
98465 --
98466 IF g_log_enabled THEN
98467 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_174';
98468 END IF;
98469 --
98470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98471
98472 trace
98473 (p_msg => 'BEGIN of AcctLineType_174'
98474 ,p_level => C_LEVEL_PROCEDURE
98475 ,p_module => l_log_module);
98476
98477 END IF;
98478 --
98479 l_component_type := 'AMB_JLT';
98480 l_component_code := 'AP_TAX_AMOUNT_VARIANCE_REF_ENC';
98481 l_component_type_code := 'S';
98482 l_component_appl_id := 200;
98483 l_amb_context_code := 'DEFAULT';
98484 l_entity_code := 'AP_PAYMENTS';
98485 l_event_class_code := 'REFUNDS';
98486 l_event_type_code := 'REFUNDS_ALL';
98487 l_line_definition_owner_code := 'S';
98488 l_line_definition_code := 'ENC_REFUNDS_ALL';
98489 --
98490 l_balance_type_code := 'E';
98491 l_segment := NULL;
98492 l_ccid := NULL;
98493 l_adr_transaction_coa_id := NULL;
98494 l_adr_accounting_coa_id := NULL;
98495 l_adr_flexfield_segment_code := NULL;
98496 l_adr_flex_value_set_id := NULL;
98497 l_adr_value_type_code := NULL;
98498 l_adr_value_combination_id := NULL;
98499 l_adr_value_segment_code := NULL;
98500
98501 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
98502 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
98503 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
98504 l_budgetary_control_flag := 'N';
98505
98506 l_bflow_applied_to_amt_idx := NULL; -- 5132302
98507 l_bflow_applied_to_amt := NULL; -- 5132302
98508 l_entered_amt_idx := NULL; -- 4262811
98509 l_accted_amt_idx := NULL; -- 4262811
98510 l_acc_rev_flag := NULL; -- 4262811
98511 l_accrual_line_num := NULL; -- 4262811
98512 l_tmp_amt := NULL; -- 4262811
98513 --
98514
98515 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
98516 l_balance_type_code <> 'B' THEN
98517 IF NVL(p_source_38,'
98518 ') <> 'CLEAR_CLEAR' AND
98519 NVL(p_source_20,'
98520 ') = 'NONREC_TAX' AND
98521 (NVL(p_source_39,'
98522 ') = 'CASH' OR
98523 NVL(p_source_39,'
98524 ') = 'DISCOUNT') AND
98525 NVL(p_source_60,'
98526 ') = 'R' AND
98527 NVL(p_source_102,'
98528 ') = 'Y' AND
98529 NVL(p_source_104,'
98530 ') = 'Y'
98531 THEN
98532
98533 --
98534 XLA_AE_LINES_PKG.SetNewLine;
98535
98536 p_balance_type_code := l_balance_type_code;
98537 -- set the flag so later we will know whether the gain loss line needs to be created
98538
98539 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
98540 p_actual_flag :='A';
98541 END IF;
98542
98543 --
98544 -- bulk performance
98545 --
98546 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
98547 p_header_num => 0); -- 4262811
98548 --
98549 -- set accounting line options
98550 --
98551 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
98552 p_natural_side_code => 'D'
98553 , p_gain_or_loss_flag => 'N'
98554 , p_gl_transfer_mode_code => 'S'
98555 , p_acct_entry_type_code => 'E'
98556 , p_switch_side_flag => 'Y'
98557 , p_merge_duplicate_code => 'A'
98558 );
98559 --
98560 l_acc_rev_natural_side_code := 'C'; -- 4262811
98561 --
98562 --
98563 -- set accounting line type info
98564 --
98565 xla_ae_lines_pkg.SetAcctLineType
98566 (p_component_type => l_component_type
98567 ,p_event_type_code => l_event_type_code
98568 ,p_line_definition_owner_code => l_line_definition_owner_code
98569 ,p_line_definition_code => l_line_definition_code
98570 ,p_accounting_line_code => l_component_code
98571 ,p_accounting_line_type_code => l_component_type_code
98572 ,p_accounting_line_appl_id => l_component_appl_id
98573 ,p_amb_context_code => l_amb_context_code
98574 ,p_entity_code => l_entity_code
98575 ,p_event_class_code => l_event_class_code);
98576 --
98577 -- set accounting class
98578 --
98579 xla_ae_lines_pkg.SetAcctClass(
98580 p_accounting_class_code => 'TAV'
98581 , p_ae_header_id => l_ae_header_id
98582 );
98583
98584 --
98585 -- set rounding class
98586 --
98587 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98588 'TAV';
98589
98590 --
98594 -- bulk performance
98591 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98592 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98593 --
98595 --
98596 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98597
98598 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98599 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98600
98601 -- 4955764
98602 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98603 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98604
98605 -- 4458381 Public Sector Enh
98606
98607 --
98608 -- set accounting attributes for the line type
98609 --
98610 l_entered_amt_idx := 9;
98611 l_accted_amt_idx := 11;
98612 l_bflow_applied_to_amt_idx := NULL; -- 5132302
98613 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98614 l_rec_acct_attrs.array_char_value(1) := p_source_40;
98615 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
98616 l_rec_acct_attrs.array_num_value(2) := p_source_42;
98617 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98618 l_rec_acct_attrs.array_char_value(3) := p_source_62;
98619 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
98620 l_rec_acct_attrs.array_char_value(4) := p_source_63;
98621 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
98622 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
98623 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98624 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
98625 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
98626 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
98627 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
98628 l_rec_acct_attrs.array_char_value(8) := p_source_48;
98629 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
98630 l_rec_acct_attrs.array_num_value(9) := p_source_41;
98631 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
98632 l_rec_acct_attrs.array_char_value(10) := p_source_49;
98633 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
98634 l_rec_acct_attrs.array_num_value(11) := p_source_9;
98635 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
98636 l_rec_acct_attrs.array_char_value(12) := p_source_53;
98637 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
98638 l_rec_acct_attrs.array_char_value(13) := p_source_56;
98639 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
98640 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
98641 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
98642 l_rec_acct_attrs.array_char_value(15) := p_source_48;
98643 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
98644 l_rec_acct_attrs.array_num_value(16) := p_source_58;
98645 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
98646 l_rec_acct_attrs.array_num_value(17) := p_source_66;
98647 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
98648 l_rec_acct_attrs.array_num_value(18) := p_source_59;
98649
98650 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98651 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98652
98653 ---------------------------------------------------------------------------------------------------------------
98654 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98655 ---------------------------------------------------------------------------------------------------------------
98656 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98657
98658 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98659 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98660
98661 IF xla_accounting_cache_pkg.GetValueChar
98662 (p_source_code => 'LEDGER_CATEGORY_CODE'
98663 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98664 AND l_bflow_method_code = 'PRIOR_ENTRY'
98665 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98666 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98667 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98668 )
98669 THEN
98670 xla_ae_lines_pkg.BflowUpgEntry
98671 (p_business_method_code => l_bflow_method_code
98672 ,p_business_class_code => l_bflow_class_code
98673 ,p_balance_type => l_balance_type_code);
98674 ELSE
98675 NULL;
98676 XLA_AE_LINES_PKG.business_flow_validation(
98677 p_business_method_code => l_bflow_method_code
98678 ,p_business_class_code => l_bflow_class_code
98679 ,p_inherit_description_flag => l_inherit_desc_flag);
98680 END IF;
98681
98682 --
98683 -- call analytical criteria
98684 --
98685 -- Inherited Analytical Criteria for business flow method of Prior Entry.
98689 -- No description or it is inherited.
98686 --
98687 -- call description
98688 --
98690 --
98691 -- call ADRs
98692 -- Bug 4922099
98693 --
98694 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98695 (NVL(l_actual_upg_option, 'N') = 'O') OR
98696 (NVL(l_enc_upg_option, 'N') = 'O')
98697 )
98698 THEN
98699 NULL;
98700 --
98701 --
98702
98703 --
98704 --
98705 END IF;
98706 --
98707 -- Bug 4922099
98708 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98709 (NVL(l_enc_upg_option, 'N') = 'O')
98710 ) AND
98711 (l_bflow_method_code = 'PRIOR_ENTRY')
98712 )
98713 THEN
98714 IF
98715 --
98716 1 = 1
98717 --
98718 THEN
98719 xla_accounting_err_pkg.build_message
98720 (p_appli_s_name => 'XLA'
98721 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98722 ,p_token_1 => 'LINE_NUMBER'
98723 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
98724 ,p_token_2 => 'LINE_TYPE_NAME'
98725 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
98726 l_component_type
98727 ,l_component_code
98728 ,l_component_type_code
98729 ,l_component_appl_id
98730 ,l_amb_context_code
98731 ,l_entity_code
98732 ,l_event_class_code
98733 )
98734 ,p_token_3 => 'OWNER'
98735 ,p_value_3 => xla_lookups_pkg.get_meaning(
98736 p_lookup_type => 'XLA_OWNER_TYPE'
98737 ,p_lookup_code => l_component_type_code
98738 )
98739 ,p_token_4 => 'PRODUCT_NAME'
98740 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98741 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98742 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98743 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98744 ,p_ae_header_id => NULL
98745 );
98746
98747 IF (C_LEVEL_ERROR>= g_log_level) THEN
98748 trace
98749 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98750 ,p_level => C_LEVEL_ERROR
98751 ,p_module => l_log_module);
98752 END IF;
98753 END IF;
98754 END IF;
98755 --
98756 --
98757 ------------------------------------------------------------------------------------------------
98758 -- 4219869 Business Flow
98759 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98760 -- Prior Entry. Currently, the following code is always generated.
98761 ------------------------------------------------------------------------------------------------
98762 -- No ValidateCurrentLine for business flow method of Prior Entry
98763
98764 ------------------------------------------------------------------------------------
98765 -- 4219869 Business Flow
98766 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98767 ------------------------------------------------------------------------------------
98768 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98769
98770 ----------------------------------------------------------------------------------
98771 -- 4219869 Business Flow
98772 -- Update journal entry status -- Need to generate this within IF <condition>
98773 ----------------------------------------------------------------------------------
98774 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98775 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98776 ,p_balance_type_code => l_balance_type_code
98777 );
98778
98779 -------------------------------------------------------------------------------------------
98780 -- 4262811 - Generate the Accrual Reversal lines
98781 -------------------------------------------------------------------------------------------
98782 BEGIN
98783 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98784 (g_array_event(p_event_id).array_value_num('header_index'));
98785 IF l_acc_rev_flag IS NULL THEN
98786 l_acc_rev_flag := 'N';
98787 END IF;
98788 EXCEPTION
98789 WHEN OTHERS THEN
98793 IF (l_acc_rev_flag = 'Y') THEN
98790 l_acc_rev_flag := 'N';
98791 END;
98792 --
98794
98795 -- 4645092 ------------------------------------------------------------------------------
98796 -- To allow MPA report to determine if it should generate report process
98797 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98798 ------------------------------------------------------------------------------------------
98799
98800 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98801 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98802 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
98803 -- call ADRs
98804 -- Bug 4922099
98805 --
98806 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98807 (NVL(l_actual_upg_option, 'N') = 'O') OR
98808 (NVL(l_enc_upg_option, 'N') = 'O')
98809 )
98810 THEN
98811 NULL;
98812 --
98813 --
98814
98815 --
98816 --
98817 END IF;
98818
98819 --
98820 -- Update the line information that should be overwritten
98821 --
98822 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98823 p_header_num => 1);
98824 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
98825
98826 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98827
98828 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
98829 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98830 END IF;
98831
98832 --
98833 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98834 --
98835 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98836 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
98837 ELSE
98838 ---------------------------------------------------------------------------------------------------
98839 -- 4262811a Switch Sign
98840 ---------------------------------------------------------------------------------------------------
98841 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
98842 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98843 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98844 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98845 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98846 -- 5132302
98847 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98848 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98849
98850 END IF;
98851
98852 -- 4955764
98853 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98854 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98855
98856
98857 XLA_AE_LINES_PKG.ValidateCurrentLine;
98858 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98859
98860 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98861 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98862 ,p_balance_type_code => l_balance_type_code);
98863
98864 END IF;
98865
98866 -----------------------------------------------------------------------------------------
98867 -- 4262811 Multiperiod Accounting
98868 -----------------------------------------------------------------------------------------
98869 -- No MPA option is assigned.
98870
98871
98872 END IF;
98873 END IF;
98874 --
98875
98876 --
98877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98878 trace
98879 (p_msg => 'END of AcctLineType_174'
98880 ,p_level => C_LEVEL_PROCEDURE
98881 ,p_module => l_log_module);
98882 END IF;
98883 --
98884 EXCEPTION
98885 WHEN xla_exceptions_pkg.application_exception THEN
98886 RAISE;
98887 WHEN OTHERS THEN
98888 xla_exceptions_pkg.raise_message
98889 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_174');
98890 END AcctLineType_174;
98891 --
98892
98893 ---------------------------------------
98894 --
98895 -- PRIVATE FUNCTION
98896 -- AcctLineType_175
98897 --
98898 ---------------------------------------
98899 PROCEDURE AcctLineType_175 (
98900 p_application_id IN NUMBER
98901 ,p_event_id IN NUMBER
98902 ,p_calculate_acctd_flag IN VARCHAR2
98903 ,p_calculate_g_l_flag IN VARCHAR2
98904 ,p_actual_flag IN OUT VARCHAR2
98905 ,p_balance_type_code OUT VARCHAR2
98906 ,p_gain_or_loss_ref OUT VARCHAR2
98907
98908 --Payment Distribution (Payment Rate) Ledger Amount
98909 , p_source_9 IN NUMBER
98910 --When to Account for Payment Option
98911 , p_source_38 IN VARCHAR2
98912 --Payment Distribution Type
98913 , p_source_39 IN VARCHAR2
98914 , p_source_39_meaning IN VARCHAR2
98915 --Accounting Reversal Indicator
98919 --Business Flow Accounts Payable Application Identifier
98916 , p_source_40 IN VARCHAR2
98917 --Payment Distribution Amount
98918 , p_source_41 IN NUMBER
98920 , p_source_42 IN NUMBER
98921 --Payment Distribution Identifier
98922 , p_source_47 IN NUMBER
98923 --Distribution Link Type
98924 , p_source_48 IN VARCHAR2
98925 --Payment Currency Code
98926 , p_source_49 IN VARCHAR2
98927 --Override Accounted Amount Indicator
98928 , p_source_53 IN VARCHAR2
98929 , p_source_53_meaning IN VARCHAR2
98930 --Third Party Type
98931 , p_source_56 IN VARCHAR2
98932 --Payment Distribution Reversed Identifier
98933 , p_source_57 IN NUMBER
98934 --Invoice Distribution Tax Line Identifier
98935 , p_source_58 IN NUMBER
98936 --Invoice Distribution Summary Tax Line Identifier
98937 , p_source_59 IN NUMBER
98938 --Business Flow Invoice Distribution Type
98939 , p_source_62 IN VARCHAR2
98940 --Business Flow Invoice Entity Code
98941 , p_source_63 IN VARCHAR2
98942 --Business Flow Invoice Distribution Identifier
98943 , p_source_64 IN NUMBER
98944 --Business Flow Invoice Identifier
98945 , p_source_65 IN NUMBER
98946 --Purchasing Encumbrance Option
98947 , p_source_102 IN VARCHAR2
98948 , p_source_102_meaning IN VARCHAR2
98949 --Invoice Encumbered Option
98950 , p_source_104 IN VARCHAR2
98951 , p_source_104_meaning IN VARCHAR2
98952 )
98953 IS
98954
98955 l_component_type VARCHAR2(80);
98956 l_component_code VARCHAR2(30);
98957 l_component_type_code VARCHAR2(1);
98958 l_component_appl_id INTEGER;
98959 l_amb_context_code VARCHAR2(30);
98960 l_entity_code VARCHAR2(30);
98961 l_event_class_code VARCHAR2(30);
98962 l_ae_header_id NUMBER;
98963 l_event_type_code VARCHAR2(30);
98964 l_line_definition_code VARCHAR2(30);
98965 l_line_definition_owner_code VARCHAR2(1);
98966 --
98967 -- adr variables
98968 l_segment VARCHAR2(30);
98969 l_ccid NUMBER;
98970 l_adr_transaction_coa_id NUMBER;
98971 l_adr_accounting_coa_id NUMBER;
98972 l_adr_flexfield_segment_code VARCHAR2(30);
98973 l_adr_flex_value_set_id NUMBER;
98974 l_adr_value_type_code VARCHAR2(30);
98975 l_adr_value_combination_id NUMBER;
98976 l_adr_value_segment_code VARCHAR2(30);
98977
98978 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
98979 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
98980 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
98981 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
98982
98983 -- 4262811 Variables ------------------------------------------------------------------------------------------
98984 l_entered_amt_idx NUMBER;
98985 l_accted_amt_idx NUMBER;
98986 l_acc_rev_flag VARCHAR2(1);
98987 l_accrual_line_num NUMBER;
98988 l_tmp_amt NUMBER;
98989 l_acc_rev_natural_side_code VARCHAR2(1);
98990
98991 l_num_entries NUMBER;
98992 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
98993 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
98994 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
98995 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
98996 l_recog_line_1 NUMBER;
98997 l_recog_line_2 NUMBER;
98998
98999 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
99000 l_bflow_applied_to_amt NUMBER; -- 5132302
99001 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
99002
99003 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99004
99005 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
99006 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
99007
99008 ---------------------------------------------------------------------------------------------------------------
99009
99010
99011 --
99012 -- bulk performance
99013 --
99014 l_balance_type_code VARCHAR2(1);
99015 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
99016 l_log_module VARCHAR2(240);
99017
99018 --
99019 -- Upgrade strategy
99020 --
99021 l_actual_upg_option VARCHAR2(1);
99022 l_enc_upg_option VARCHAR2(1);
99023
99024 --
99025 BEGIN
99026 --
99027 IF g_log_enabled THEN
99028 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_175';
99029 END IF;
99030 --
99031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99032
99033 trace
99034 (p_msg => 'BEGIN of AcctLineType_175'
99035 ,p_level => C_LEVEL_PROCEDURE
99036 ,p_module => l_log_module);
99037
99038 END IF;
99039 --
99040 l_component_type := 'AMB_JLT';
99041 l_component_code := 'AP_TAX_EXCHG_RATE_VAR_CLR_ENC';
99042 l_component_type_code := 'S';
99043 l_component_appl_id := 200;
99044 l_amb_context_code := 'DEFAULT';
99045 l_entity_code := 'AP_PAYMENTS';
99049 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
99046 l_event_class_code := 'RECONCILED PAYMENTS';
99047 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
99048 l_line_definition_owner_code := 'S';
99050 --
99051 l_balance_type_code := 'E';
99052 l_segment := NULL;
99053 l_ccid := NULL;
99054 l_adr_transaction_coa_id := NULL;
99055 l_adr_accounting_coa_id := NULL;
99056 l_adr_flexfield_segment_code := NULL;
99057 l_adr_flex_value_set_id := NULL;
99058 l_adr_value_type_code := NULL;
99059 l_adr_value_combination_id := NULL;
99060 l_adr_value_segment_code := NULL;
99061
99062 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
99063 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
99064 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
99065 l_budgetary_control_flag := 'N';
99066
99067 l_bflow_applied_to_amt_idx := NULL; -- 5132302
99068 l_bflow_applied_to_amt := NULL; -- 5132302
99069 l_entered_amt_idx := NULL; -- 4262811
99070 l_accted_amt_idx := NULL; -- 4262811
99071 l_acc_rev_flag := NULL; -- 4262811
99072 l_accrual_line_num := NULL; -- 4262811
99073 l_tmp_amt := NULL; -- 4262811
99074 --
99075 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
99076 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
99077 return;
99078 END IF;
99079
99080 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99081 l_balance_type_code <> 'B' THEN
99082 IF NVL(p_source_38,'
99083 ') = 'CLEAR_CLEAR' AND
99084 NVL(p_source_39,'
99085 ') = 'TAX EXCHANGE RATE VARIANCE' AND
99086 NVL(p_source_102,'
99087 ') = 'Y' AND
99088 NVL(p_source_104,'
99089 ') = 'Y'
99090 THEN
99091
99092 --
99093 XLA_AE_LINES_PKG.SetNewLine;
99094
99095 p_balance_type_code := l_balance_type_code;
99096 -- set the flag so later we will know whether the gain loss line needs to be created
99097
99098 IF(l_balance_type_code = 'A' ) THEN
99099 p_actual_flag :='G';
99100 END IF;
99101
99102 --
99103 -- bulk performance
99104 --
99105 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99106 p_header_num => 0); -- 4262811
99107 --
99108 -- set accounting line options
99109 --
99110 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99111 p_natural_side_code => 'C'
99112 , p_gain_or_loss_flag => 'Y'
99113 , p_gl_transfer_mode_code => 'S'
99114 , p_acct_entry_type_code => 'E'
99115 , p_switch_side_flag => 'Y'
99116 , p_merge_duplicate_code => 'A'
99117 );
99118 --
99119 l_acc_rev_natural_side_code := 'D'; -- 4262811
99120 --
99121 --
99122 -- set accounting line type info
99123 --
99124 xla_ae_lines_pkg.SetAcctLineType
99125 (p_component_type => l_component_type
99126 ,p_event_type_code => l_event_type_code
99127 ,p_line_definition_owner_code => l_line_definition_owner_code
99128 ,p_line_definition_code => l_line_definition_code
99129 ,p_accounting_line_code => l_component_code
99130 ,p_accounting_line_type_code => l_component_type_code
99131 ,p_accounting_line_appl_id => l_component_appl_id
99132 ,p_amb_context_code => l_amb_context_code
99133 ,p_entity_code => l_entity_code
99134 ,p_event_class_code => l_event_class_code);
99135 --
99136 -- set accounting class
99137 --
99138 xla_ae_lines_pkg.SetAcctClass(
99139 p_accounting_class_code => 'TERV'
99140 , p_ae_header_id => l_ae_header_id
99141 );
99142
99143 --
99144 -- set rounding class
99145 --
99146 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99147 'TERV';
99148
99149 --
99150 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99151 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99152 --
99153 -- bulk performance
99154 --
99155 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99156
99157 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99158 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99159
99160 -- 4955764
99161 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99162 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99163
99164 -- 4458381 Public Sector Enh
99165
99166 --
99167 -- set accounting attributes for the line type
99168 --
99169 l_entered_amt_idx := 10;
99170 l_accted_amt_idx := 12;
99174 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
99171 l_bflow_applied_to_amt_idx := 2; -- 5132302
99172 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99173 l_rec_acct_attrs.array_char_value(1) := p_source_40;
99175 l_rec_acct_attrs.array_num_value(2) := p_source_41;
99176 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
99177 l_rec_acct_attrs.array_num_value(3) := p_source_42;
99178 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99179 l_rec_acct_attrs.array_char_value(4) := p_source_62;
99180 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
99181 l_rec_acct_attrs.array_char_value(5) := p_source_63;
99182 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
99183 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
99184 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99185 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
99186 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
99187 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
99188 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
99189 l_rec_acct_attrs.array_char_value(9) := p_source_48;
99190 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
99191 l_rec_acct_attrs.array_num_value(10) := p_source_41;
99192 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
99193 l_rec_acct_attrs.array_char_value(11) := p_source_49;
99194 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
99195 l_rec_acct_attrs.array_num_value(12) := p_source_9;
99196 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
99197 l_rec_acct_attrs.array_char_value(13) := p_source_53;
99198 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
99199 l_rec_acct_attrs.array_char_value(14) := p_source_56;
99200 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
99201 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
99202 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
99203 l_rec_acct_attrs.array_char_value(16) := p_source_48;
99204 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
99205 l_rec_acct_attrs.array_num_value(17) := p_source_58;
99206 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
99207 l_rec_acct_attrs.array_num_value(18) := p_source_58;
99208 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
99209 l_rec_acct_attrs.array_num_value(19) := p_source_59;
99210
99211 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99212 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99213
99214 ---------------------------------------------------------------------------------------------------------------
99215 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99216 ---------------------------------------------------------------------------------------------------------------
99217 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99218
99219 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99220 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99221
99222 IF xla_accounting_cache_pkg.GetValueChar
99223 (p_source_code => 'LEDGER_CATEGORY_CODE'
99224 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99225 AND l_bflow_method_code = 'PRIOR_ENTRY'
99226 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99227 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99228 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99229 )
99230 THEN
99231 xla_ae_lines_pkg.BflowUpgEntry
99232 (p_business_method_code => l_bflow_method_code
99233 ,p_business_class_code => l_bflow_class_code
99234 ,p_balance_type => l_balance_type_code);
99235 ELSE
99236 NULL;
99237 XLA_AE_LINES_PKG.business_flow_validation(
99238 p_business_method_code => l_bflow_method_code
99239 ,p_business_class_code => l_bflow_class_code
99240 ,p_inherit_description_flag => l_inherit_desc_flag);
99241 END IF;
99242
99243 --
99244 -- call analytical criteria
99245 --
99246 -- Inherited Analytical Criteria for business flow method of Prior Entry.
99247 --
99248 -- call description
99249 --
99250 -- No description or it is inherited.
99251 --
99252 -- call ADRs
99253 -- Bug 4922099
99254 --
99255 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99256 (NVL(l_actual_upg_option, 'N') = 'O') OR
99257 (NVL(l_enc_upg_option, 'N') = 'O')
99258 )
99259 THEN
99260 NULL;
99261 --
99262 --
99263
99264 --
99265 --
99266 END IF;
99267 --
99268 -- Bug 4922099
99269 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99270 (NVL(l_enc_upg_option, 'N') = 'O')
99271 ) AND
99272 (l_bflow_method_code = 'PRIOR_ENTRY')
99273 )
99274 THEN
99275 IF
99276 --
99277 1 = 1
99281 (p_appli_s_name => 'XLA'
99278 --
99279 THEN
99280 xla_accounting_err_pkg.build_message
99282 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99283 ,p_token_1 => 'LINE_NUMBER'
99284 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
99285 ,p_token_2 => 'LINE_TYPE_NAME'
99286 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
99287 l_component_type
99288 ,l_component_code
99289 ,l_component_type_code
99290 ,l_component_appl_id
99291 ,l_amb_context_code
99292 ,l_entity_code
99293 ,l_event_class_code
99294 )
99295 ,p_token_3 => 'OWNER'
99296 ,p_value_3 => xla_lookups_pkg.get_meaning(
99297 p_lookup_type => 'XLA_OWNER_TYPE'
99298 ,p_lookup_code => l_component_type_code
99299 )
99300 ,p_token_4 => 'PRODUCT_NAME'
99301 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99302 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99303 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99304 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99305 ,p_ae_header_id => NULL
99306 );
99307
99308 IF (C_LEVEL_ERROR>= g_log_level) THEN
99309 trace
99310 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99311 ,p_level => C_LEVEL_ERROR
99312 ,p_module => l_log_module);
99313 END IF;
99314 END IF;
99315 END IF;
99316 --
99317 --
99318 ------------------------------------------------------------------------------------------------
99319 -- 4219869 Business Flow
99320 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99321 -- Prior Entry. Currently, the following code is always generated.
99322 ------------------------------------------------------------------------------------------------
99323 -- No ValidateCurrentLine for business flow method of Prior Entry
99324
99325 ------------------------------------------------------------------------------------
99326 -- 4219869 Business Flow
99327 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99328 ------------------------------------------------------------------------------------
99329 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99330
99331 ----------------------------------------------------------------------------------
99332 -- 4219869 Business Flow
99333 -- Update journal entry status -- Need to generate this within IF <condition>
99334 ----------------------------------------------------------------------------------
99335 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99336 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99337 ,p_balance_type_code => l_balance_type_code
99338 );
99339
99340 -------------------------------------------------------------------------------------------
99341 -- 4262811 - Generate the Accrual Reversal lines
99342 -------------------------------------------------------------------------------------------
99343 BEGIN
99344 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99345 (g_array_event(p_event_id).array_value_num('header_index'));
99346 IF l_acc_rev_flag IS NULL THEN
99347 l_acc_rev_flag := 'N';
99348 END IF;
99349 EXCEPTION
99350 WHEN OTHERS THEN
99351 l_acc_rev_flag := 'N';
99352 END;
99353 --
99354 IF (l_acc_rev_flag = 'Y') THEN
99355
99356 -- 4645092 ------------------------------------------------------------------------------
99357 -- To allow MPA report to determine if it should generate report process
99358 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99359 ------------------------------------------------------------------------------------------
99360
99361 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99362 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99363 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
99364 -- call ADRs
99365 -- Bug 4922099
99366 --
99370 )
99367 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99368 (NVL(l_actual_upg_option, 'N') = 'O') OR
99369 (NVL(l_enc_upg_option, 'N') = 'O')
99371 THEN
99372 NULL;
99373 --
99374 --
99375
99376 --
99377 --
99378 END IF;
99379
99380 --
99381 -- Update the line information that should be overwritten
99382 --
99383 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99384 p_header_num => 1);
99385 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
99386
99387 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99388
99389 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
99390 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99391 END IF;
99392
99393 --
99394 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99395 --
99396 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99397 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
99398 ELSE
99399 ---------------------------------------------------------------------------------------------------
99400 -- 4262811a Switch Sign
99401 ---------------------------------------------------------------------------------------------------
99402 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
99403 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99404 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99405 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99406 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99407 -- 5132302
99408 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99409 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99410
99411 END IF;
99412
99413 -- 4955764
99414 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99415 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99416
99417
99418 XLA_AE_LINES_PKG.ValidateCurrentLine;
99419 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99420
99421 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99422 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99423 ,p_balance_type_code => l_balance_type_code);
99424
99425 END IF;
99426
99427 -----------------------------------------------------------------------------------------
99428 -- 4262811 Multiperiod Accounting
99429 -----------------------------------------------------------------------------------------
99430 -- No MPA option is assigned.
99431
99432
99433 END IF;
99434 END IF;
99435 --
99436
99437 --
99438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99439 trace
99440 (p_msg => 'END of AcctLineType_175'
99441 ,p_level => C_LEVEL_PROCEDURE
99442 ,p_module => l_log_module);
99443 END IF;
99444 --
99445 EXCEPTION
99446 WHEN xla_exceptions_pkg.application_exception THEN
99447 RAISE;
99448 WHEN OTHERS THEN
99449 xla_exceptions_pkg.raise_message
99450 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_175');
99451 END AcctLineType_175;
99452 --
99453
99454 ---------------------------------------
99455 --
99456 -- PRIVATE FUNCTION
99457 -- AcctLineType_176
99458 --
99459 ---------------------------------------
99460 PROCEDURE AcctLineType_176 (
99461 p_application_id IN NUMBER
99462 ,p_event_id IN NUMBER
99463 ,p_calculate_acctd_flag IN VARCHAR2
99464 ,p_calculate_g_l_flag IN VARCHAR2
99465 ,p_actual_flag IN OUT VARCHAR2
99466 ,p_balance_type_code OUT VARCHAR2
99467 ,p_gain_or_loss_ref OUT VARCHAR2
99468
99469 --Payment Distribution (Payment Rate) Ledger Amount
99470 , p_source_9 IN NUMBER
99471 --When to Account for Payment Option
99472 , p_source_38 IN VARCHAR2
99473 --Payment Distribution Type
99474 , p_source_39 IN VARCHAR2
99475 , p_source_39_meaning IN VARCHAR2
99476 --Accounting Reversal Indicator
99477 , p_source_40 IN VARCHAR2
99478 --Payment Distribution Amount
99479 , p_source_41 IN NUMBER
99480 --Business Flow Accounts Payable Application Identifier
99481 , p_source_42 IN NUMBER
99482 --Payment Distribution Identifier
99483 , p_source_47 IN NUMBER
99484 --Distribution Link Type
99485 , p_source_48 IN VARCHAR2
99486 --Payment Currency Code
99487 , p_source_49 IN VARCHAR2
99488 --Override Accounted Amount Indicator
99489 , p_source_53 IN VARCHAR2
99490 , p_source_53_meaning IN VARCHAR2
99491 --Third Party Type
99492 , p_source_56 IN VARCHAR2
99493 --Payment Distribution Reversed Identifier
99494 , p_source_57 IN NUMBER
99498 , p_source_59 IN NUMBER
99495 --Invoice Distribution Tax Line Identifier
99496 , p_source_58 IN NUMBER
99497 --Invoice Distribution Summary Tax Line Identifier
99499 --Payment Type
99500 , p_source_60 IN VARCHAR2
99501 , p_source_60_meaning IN VARCHAR2
99502 --Invoice Distribution Amount of the Payment Distribution
99503 , p_source_61 IN NUMBER
99504 --Business Flow Invoice Distribution Type
99505 , p_source_62 IN VARCHAR2
99506 --Business Flow Invoice Entity Code
99507 , p_source_63 IN VARCHAR2
99508 --Business Flow Invoice Distribution Identifier
99509 , p_source_64 IN NUMBER
99510 --Business Flow Invoice Identifier
99511 , p_source_65 IN NUMBER
99512 --Invoice Distribution Tax Distribution Identifier from Tax
99513 , p_source_66 IN NUMBER
99514 --Purchasing Encumbrance Option
99515 , p_source_102 IN VARCHAR2
99516 , p_source_102_meaning IN VARCHAR2
99517 --Invoice Encumbered Option
99518 , p_source_104 IN VARCHAR2
99519 , p_source_104_meaning IN VARCHAR2
99520 )
99521 IS
99522
99523 l_component_type VARCHAR2(80);
99524 l_component_code VARCHAR2(30);
99525 l_component_type_code VARCHAR2(1);
99526 l_component_appl_id INTEGER;
99527 l_amb_context_code VARCHAR2(30);
99528 l_entity_code VARCHAR2(30);
99529 l_event_class_code VARCHAR2(30);
99530 l_ae_header_id NUMBER;
99531 l_event_type_code VARCHAR2(30);
99532 l_line_definition_code VARCHAR2(30);
99533 l_line_definition_owner_code VARCHAR2(1);
99534 --
99535 -- adr variables
99536 l_segment VARCHAR2(30);
99537 l_ccid NUMBER;
99538 l_adr_transaction_coa_id NUMBER;
99539 l_adr_accounting_coa_id NUMBER;
99540 l_adr_flexfield_segment_code VARCHAR2(30);
99541 l_adr_flex_value_set_id NUMBER;
99542 l_adr_value_type_code VARCHAR2(30);
99543 l_adr_value_combination_id NUMBER;
99544 l_adr_value_segment_code VARCHAR2(30);
99545
99546 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
99547 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
99548 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
99549 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
99550
99551 -- 4262811 Variables ------------------------------------------------------------------------------------------
99552 l_entered_amt_idx NUMBER;
99553 l_accted_amt_idx NUMBER;
99554 l_acc_rev_flag VARCHAR2(1);
99555 l_accrual_line_num NUMBER;
99556 l_tmp_amt NUMBER;
99557 l_acc_rev_natural_side_code VARCHAR2(1);
99558
99559 l_num_entries NUMBER;
99560 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
99561 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
99562 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
99563 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
99564 l_recog_line_1 NUMBER;
99565 l_recog_line_2 NUMBER;
99566
99567 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
99568 l_bflow_applied_to_amt NUMBER; -- 5132302
99569 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
99570
99571 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99572
99573 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
99574 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
99575
99576 ---------------------------------------------------------------------------------------------------------------
99577
99578
99579 --
99580 -- bulk performance
99581 --
99582 l_balance_type_code VARCHAR2(1);
99583 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
99584 l_log_module VARCHAR2(240);
99585
99586 --
99587 -- Upgrade strategy
99588 --
99589 l_actual_upg_option VARCHAR2(1);
99590 l_enc_upg_option VARCHAR2(1);
99591
99592 --
99593 BEGIN
99594 --
99595 IF g_log_enabled THEN
99596 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_176';
99597 END IF;
99598 --
99599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99600
99601 trace
99602 (p_msg => 'BEGIN of AcctLineType_176'
99603 ,p_level => C_LEVEL_PROCEDURE
99604 ,p_module => l_log_module);
99605
99606 END IF;
99607 --
99608 l_component_type := 'AMB_JLT';
99609 l_component_code := 'AP_TAX_EXCHG_RATE_VAR_PMT_ENC';
99610 l_component_type_code := 'S';
99611 l_component_appl_id := 200;
99612 l_amb_context_code := 'DEFAULT';
99613 l_entity_code := 'AP_PAYMENTS';
99614 l_event_class_code := 'PAYMENTS';
99615 l_event_type_code := 'PAYMENTS_ALL';
99616 l_line_definition_owner_code := 'S';
99617 l_line_definition_code := 'ENC_PAYMENTS_ALL';
99618 --
99619 l_balance_type_code := 'E';
99620 l_segment := NULL;
99621 l_ccid := NULL;
99622 l_adr_transaction_coa_id := NULL;
99623 l_adr_accounting_coa_id := NULL;
99624 l_adr_flexfield_segment_code := NULL;
99628 l_adr_value_segment_code := NULL;
99625 l_adr_flex_value_set_id := NULL;
99626 l_adr_value_type_code := NULL;
99627 l_adr_value_combination_id := NULL;
99629
99630 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
99631 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
99632 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
99633 l_budgetary_control_flag := 'N';
99634
99635 l_bflow_applied_to_amt_idx := NULL; -- 5132302
99636 l_bflow_applied_to_amt := NULL; -- 5132302
99637 l_entered_amt_idx := NULL; -- 4262811
99638 l_accted_amt_idx := NULL; -- 4262811
99639 l_acc_rev_flag := NULL; -- 4262811
99640 l_accrual_line_num := NULL; -- 4262811
99641 l_tmp_amt := NULL; -- 4262811
99642 --
99643 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
99644 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
99645 return;
99646 END IF;
99647
99648 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99649 l_balance_type_code <> 'B' THEN
99650 IF NVL(p_source_38,'
99651 ') <> 'CLEAR_CLEAR' AND
99652 NVL(p_source_39,'
99653 ') = 'TAX EXCHANGE RATE VARIANCE' AND
99654 NVL(p_source_60,'
99655 ') <> 'R' AND
99656 NVL(p_source_102,'
99657 ') = 'Y' AND
99658 NVL(p_source_104,'
99659 ') = 'Y'
99660 THEN
99661
99662 --
99663 XLA_AE_LINES_PKG.SetNewLine;
99664
99665 p_balance_type_code := l_balance_type_code;
99666 -- set the flag so later we will know whether the gain loss line needs to be created
99667
99668 IF(l_balance_type_code = 'A' ) THEN
99669 p_actual_flag :='G';
99670 END IF;
99671
99672 --
99673 -- bulk performance
99674 --
99675 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99676 p_header_num => 0); -- 4262811
99677 --
99678 -- set accounting line options
99679 --
99680 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99681 p_natural_side_code => 'C'
99682 , p_gain_or_loss_flag => 'Y'
99683 , p_gl_transfer_mode_code => 'S'
99684 , p_acct_entry_type_code => 'E'
99685 , p_switch_side_flag => 'Y'
99686 , p_merge_duplicate_code => 'A'
99687 );
99688 --
99689 l_acc_rev_natural_side_code := 'D'; -- 4262811
99690 --
99691 --
99692 -- set accounting line type info
99693 --
99694 xla_ae_lines_pkg.SetAcctLineType
99695 (p_component_type => l_component_type
99696 ,p_event_type_code => l_event_type_code
99697 ,p_line_definition_owner_code => l_line_definition_owner_code
99698 ,p_line_definition_code => l_line_definition_code
99699 ,p_accounting_line_code => l_component_code
99700 ,p_accounting_line_type_code => l_component_type_code
99701 ,p_accounting_line_appl_id => l_component_appl_id
99702 ,p_amb_context_code => l_amb_context_code
99703 ,p_entity_code => l_entity_code
99704 ,p_event_class_code => l_event_class_code);
99705 --
99706 -- set accounting class
99707 --
99708 xla_ae_lines_pkg.SetAcctClass(
99709 p_accounting_class_code => 'TERV'
99710 , p_ae_header_id => l_ae_header_id
99711 );
99712
99713 --
99714 -- set rounding class
99715 --
99716 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99717 'TERV';
99718
99719 --
99720 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99721 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99722 --
99723 -- bulk performance
99724 --
99725 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99726
99727 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99728 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99729
99730 -- 4955764
99731 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99732 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99733
99734 -- 4458381 Public Sector Enh
99735
99736 --
99737 -- set accounting attributes for the line type
99738 --
99739 l_entered_amt_idx := 10;
99740 l_accted_amt_idx := 12;
99741 l_bflow_applied_to_amt_idx := 2; -- 5132302
99742 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99743 l_rec_acct_attrs.array_char_value(1) := p_source_40;
99744 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
99745 l_rec_acct_attrs.array_num_value(2) := p_source_61;
99746 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
99747 l_rec_acct_attrs.array_num_value(3) := p_source_42;
99751 l_rec_acct_attrs.array_char_value(5) := p_source_63;
99748 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99749 l_rec_acct_attrs.array_char_value(4) := p_source_62;
99750 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
99752 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
99753 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
99754 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99755 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
99756 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
99757 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
99758 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
99759 l_rec_acct_attrs.array_char_value(9) := p_source_48;
99760 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
99761 l_rec_acct_attrs.array_num_value(10) := p_source_41;
99762 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
99763 l_rec_acct_attrs.array_char_value(11) := p_source_49;
99764 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
99765 l_rec_acct_attrs.array_num_value(12) := p_source_9;
99766 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
99767 l_rec_acct_attrs.array_char_value(13) := p_source_53;
99768 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
99769 l_rec_acct_attrs.array_char_value(14) := p_source_56;
99770 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
99771 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
99772 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
99773 l_rec_acct_attrs.array_char_value(16) := p_source_48;
99774 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
99775 l_rec_acct_attrs.array_num_value(17) := p_source_58;
99776 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
99777 l_rec_acct_attrs.array_num_value(18) := p_source_66;
99778 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
99779 l_rec_acct_attrs.array_num_value(19) := p_source_59;
99780
99781 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99782 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99783
99784 ---------------------------------------------------------------------------------------------------------------
99785 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99786 ---------------------------------------------------------------------------------------------------------------
99787 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99788
99789 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99790 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99791
99792 IF xla_accounting_cache_pkg.GetValueChar
99793 (p_source_code => 'LEDGER_CATEGORY_CODE'
99794 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99795 AND l_bflow_method_code = 'PRIOR_ENTRY'
99796 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99797 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99798 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99799 )
99800 THEN
99801 xla_ae_lines_pkg.BflowUpgEntry
99802 (p_business_method_code => l_bflow_method_code
99803 ,p_business_class_code => l_bflow_class_code
99804 ,p_balance_type => l_balance_type_code);
99805 ELSE
99806 NULL;
99807 XLA_AE_LINES_PKG.business_flow_validation(
99808 p_business_method_code => l_bflow_method_code
99809 ,p_business_class_code => l_bflow_class_code
99810 ,p_inherit_description_flag => l_inherit_desc_flag);
99811 END IF;
99812
99813 --
99814 -- call analytical criteria
99815 --
99816 -- Inherited Analytical Criteria for business flow method of Prior Entry.
99817 --
99818 -- call description
99819 --
99820 -- No description or it is inherited.
99821 --
99822 -- call ADRs
99823 -- Bug 4922099
99824 --
99825 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99826 (NVL(l_actual_upg_option, 'N') = 'O') OR
99827 (NVL(l_enc_upg_option, 'N') = 'O')
99828 )
99829 THEN
99830 NULL;
99831 --
99832 --
99833
99834 --
99835 --
99836 END IF;
99837 --
99838 -- Bug 4922099
99839 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99840 (NVL(l_enc_upg_option, 'N') = 'O')
99841 ) AND
99842 (l_bflow_method_code = 'PRIOR_ENTRY')
99843 )
99844 THEN
99845 IF
99846 --
99847 1 = 1
99848 --
99849 THEN
99850 xla_accounting_err_pkg.build_message
99851 (p_appli_s_name => 'XLA'
99852 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99853 ,p_token_1 => 'LINE_NUMBER'
99854 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
99858 ,l_component_code
99855 ,p_token_2 => 'LINE_TYPE_NAME'
99856 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
99857 l_component_type
99859 ,l_component_type_code
99860 ,l_component_appl_id
99861 ,l_amb_context_code
99862 ,l_entity_code
99863 ,l_event_class_code
99864 )
99865 ,p_token_3 => 'OWNER'
99866 ,p_value_3 => xla_lookups_pkg.get_meaning(
99867 p_lookup_type => 'XLA_OWNER_TYPE'
99868 ,p_lookup_code => l_component_type_code
99869 )
99870 ,p_token_4 => 'PRODUCT_NAME'
99871 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99872 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99873 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99874 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99875 ,p_ae_header_id => NULL
99876 );
99877
99878 IF (C_LEVEL_ERROR>= g_log_level) THEN
99879 trace
99880 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99881 ,p_level => C_LEVEL_ERROR
99882 ,p_module => l_log_module);
99883 END IF;
99884 END IF;
99885 END IF;
99886 --
99887 --
99888 ------------------------------------------------------------------------------------------------
99889 -- 4219869 Business Flow
99890 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99891 -- Prior Entry. Currently, the following code is always generated.
99892 ------------------------------------------------------------------------------------------------
99893 -- No ValidateCurrentLine for business flow method of Prior Entry
99894
99895 ------------------------------------------------------------------------------------
99896 -- 4219869 Business Flow
99897 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99898 ------------------------------------------------------------------------------------
99899 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99900
99901 ----------------------------------------------------------------------------------
99902 -- 4219869 Business Flow
99903 -- Update journal entry status -- Need to generate this within IF <condition>
99904 ----------------------------------------------------------------------------------
99905 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99906 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99907 ,p_balance_type_code => l_balance_type_code
99908 );
99909
99910 -------------------------------------------------------------------------------------------
99911 -- 4262811 - Generate the Accrual Reversal lines
99912 -------------------------------------------------------------------------------------------
99913 BEGIN
99914 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99915 (g_array_event(p_event_id).array_value_num('header_index'));
99916 IF l_acc_rev_flag IS NULL THEN
99917 l_acc_rev_flag := 'N';
99918 END IF;
99919 EXCEPTION
99920 WHEN OTHERS THEN
99921 l_acc_rev_flag := 'N';
99922 END;
99923 --
99924 IF (l_acc_rev_flag = 'Y') THEN
99925
99926 -- 4645092 ------------------------------------------------------------------------------
99927 -- To allow MPA report to determine if it should generate report process
99928 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99929 ------------------------------------------------------------------------------------------
99930
99931 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99932 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99933 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
99934 -- call ADRs
99935 -- Bug 4922099
99936 --
99937 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99938 (NVL(l_actual_upg_option, 'N') = 'O') OR
99939 (NVL(l_enc_upg_option, 'N') = 'O')
99940 )
99941 THEN
99942 NULL;
99943 --
99944 --
99945
99946 --
99947 --
99948 END IF;
99949
99950 --
99951 -- Update the line information that should be overwritten
99952 --
99953 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99957 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99954 p_header_num => 1);
99955 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
99956
99958
99959 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
99960 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99961 END IF;
99962
99963 --
99964 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99965 --
99966 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99967 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
99968 ELSE
99969 ---------------------------------------------------------------------------------------------------
99970 -- 4262811a Switch Sign
99971 ---------------------------------------------------------------------------------------------------
99972 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
99973 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99974 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99975 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99976 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99977 -- 5132302
99978 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99979 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99980
99981 END IF;
99982
99983 -- 4955764
99984 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99985 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99986
99987
99988 XLA_AE_LINES_PKG.ValidateCurrentLine;
99989 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99990
99991 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99992 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99993 ,p_balance_type_code => l_balance_type_code);
99994
99995 END IF;
99996
99997 -----------------------------------------------------------------------------------------
99998 -- 4262811 Multiperiod Accounting
99999 -----------------------------------------------------------------------------------------
100000 -- No MPA option is assigned.
100001
100002
100003 END IF;
100004 END IF;
100005 --
100006
100007 --
100008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100009 trace
100010 (p_msg => 'END of AcctLineType_176'
100011 ,p_level => C_LEVEL_PROCEDURE
100012 ,p_module => l_log_module);
100013 END IF;
100014 --
100015 EXCEPTION
100016 WHEN xla_exceptions_pkg.application_exception THEN
100017 RAISE;
100018 WHEN OTHERS THEN
100019 xla_exceptions_pkg.raise_message
100020 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_176');
100021 END AcctLineType_176;
100022 --
100023
100024 ---------------------------------------
100025 --
100026 -- PRIVATE FUNCTION
100027 -- AcctLineType_177
100028 --
100029 ---------------------------------------
100030 PROCEDURE AcctLineType_177 (
100031 p_application_id IN NUMBER
100032 ,p_event_id IN NUMBER
100033 ,p_calculate_acctd_flag IN VARCHAR2
100034 ,p_calculate_g_l_flag IN VARCHAR2
100035 ,p_actual_flag IN OUT VARCHAR2
100036 ,p_balance_type_code OUT VARCHAR2
100037 ,p_gain_or_loss_ref OUT VARCHAR2
100038
100039 --Payment Distribution (Payment Rate) Ledger Amount
100040 , p_source_9 IN NUMBER
100041 --Invoice Distribution Type
100042 , p_source_20 IN VARCHAR2
100043 , p_source_20_meaning IN VARCHAR2
100044 --When to Account for Payment Option
100045 , p_source_38 IN VARCHAR2
100046 --Payment Distribution Type
100047 , p_source_39 IN VARCHAR2
100048 , p_source_39_meaning IN VARCHAR2
100049 --Accounting Reversal Indicator
100050 , p_source_40 IN VARCHAR2
100051 --Payment Distribution Amount
100052 , p_source_41 IN NUMBER
100053 --Business Flow Accounts Payable Application Identifier
100054 , p_source_42 IN NUMBER
100055 --Payment Distribution Identifier
100056 , p_source_47 IN NUMBER
100057 --Distribution Link Type
100058 , p_source_48 IN VARCHAR2
100059 --Payment Currency Code
100060 , p_source_49 IN VARCHAR2
100061 --Override Accounted Amount Indicator
100062 , p_source_53 IN VARCHAR2
100063 , p_source_53_meaning IN VARCHAR2
100064 --Third Party Type
100065 , p_source_56 IN VARCHAR2
100066 --Payment Distribution Reversed Identifier
100067 , p_source_57 IN NUMBER
100068 --Invoice Distribution Tax Line Identifier
100069 , p_source_58 IN NUMBER
100070 --Invoice Distribution Summary Tax Line Identifier
100071 , p_source_59 IN NUMBER
100072 --Payment Type
100073 , p_source_60 IN VARCHAR2
100074 , p_source_60_meaning IN VARCHAR2
100075 --Business Flow Invoice Distribution Type
100079 --Business Flow Invoice Distribution Identifier
100076 , p_source_62 IN VARCHAR2
100077 --Business Flow Invoice Entity Code
100078 , p_source_63 IN VARCHAR2
100080 , p_source_64 IN NUMBER
100081 --Business Flow Invoice Identifier
100082 , p_source_65 IN NUMBER
100083 --Invoice Distribution Tax Distribution Identifier from Tax
100084 , p_source_66 IN NUMBER
100085 --Purchasing Encumbrance Option
100086 , p_source_102 IN VARCHAR2
100087 , p_source_102_meaning IN VARCHAR2
100088 --Invoice Encumbered Option
100089 , p_source_104 IN VARCHAR2
100090 , p_source_104_meaning IN VARCHAR2
100091 )
100092 IS
100093
100094 l_component_type VARCHAR2(80);
100095 l_component_code VARCHAR2(30);
100096 l_component_type_code VARCHAR2(1);
100097 l_component_appl_id INTEGER;
100098 l_amb_context_code VARCHAR2(30);
100099 l_entity_code VARCHAR2(30);
100100 l_event_class_code VARCHAR2(30);
100101 l_ae_header_id NUMBER;
100102 l_event_type_code VARCHAR2(30);
100103 l_line_definition_code VARCHAR2(30);
100104 l_line_definition_owner_code VARCHAR2(1);
100105 --
100106 -- adr variables
100107 l_segment VARCHAR2(30);
100108 l_ccid NUMBER;
100109 l_adr_transaction_coa_id NUMBER;
100110 l_adr_accounting_coa_id NUMBER;
100111 l_adr_flexfield_segment_code VARCHAR2(30);
100112 l_adr_flex_value_set_id NUMBER;
100113 l_adr_value_type_code VARCHAR2(30);
100114 l_adr_value_combination_id NUMBER;
100115 l_adr_value_segment_code VARCHAR2(30);
100116
100117 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
100118 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
100119 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
100120 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
100121
100122 -- 4262811 Variables ------------------------------------------------------------------------------------------
100123 l_entered_amt_idx NUMBER;
100124 l_accted_amt_idx NUMBER;
100125 l_acc_rev_flag VARCHAR2(1);
100126 l_accrual_line_num NUMBER;
100127 l_tmp_amt NUMBER;
100128 l_acc_rev_natural_side_code VARCHAR2(1);
100129
100130 l_num_entries NUMBER;
100131 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
100132 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
100133 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
100134 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
100135 l_recog_line_1 NUMBER;
100136 l_recog_line_2 NUMBER;
100137
100138 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
100139 l_bflow_applied_to_amt NUMBER; -- 5132302
100140 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
100141
100142 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100143
100144 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
100145 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
100146
100147 ---------------------------------------------------------------------------------------------------------------
100148
100149
100150 --
100151 -- bulk performance
100152 --
100153 l_balance_type_code VARCHAR2(1);
100154 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
100155 l_log_module VARCHAR2(240);
100156
100157 --
100158 -- Upgrade strategy
100159 --
100160 l_actual_upg_option VARCHAR2(1);
100161 l_enc_upg_option VARCHAR2(1);
100162
100163 --
100164 BEGIN
100165 --
100166 IF g_log_enabled THEN
100167 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_177';
100168 END IF;
100169 --
100170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100171
100172 trace
100173 (p_msg => 'BEGIN of AcctLineType_177'
100174 ,p_level => C_LEVEL_PROCEDURE
100175 ,p_module => l_log_module);
100176
100177 END IF;
100178 --
100179 l_component_type := 'AMB_JLT';
100180 l_component_code := 'AP_TAX_EXCHG_RATE_VAR_REF_ENC';
100181 l_component_type_code := 'S';
100182 l_component_appl_id := 200;
100183 l_amb_context_code := 'DEFAULT';
100184 l_entity_code := 'AP_PAYMENTS';
100185 l_event_class_code := 'REFUNDS';
100186 l_event_type_code := 'REFUNDS_ALL';
100187 l_line_definition_owner_code := 'S';
100188 l_line_definition_code := 'ENC_REFUNDS_ALL';
100189 --
100190 l_balance_type_code := 'E';
100191 l_segment := NULL;
100192 l_ccid := NULL;
100193 l_adr_transaction_coa_id := NULL;
100194 l_adr_accounting_coa_id := NULL;
100195 l_adr_flexfield_segment_code := NULL;
100196 l_adr_flex_value_set_id := NULL;
100197 l_adr_value_type_code := NULL;
100198 l_adr_value_combination_id := NULL;
100199 l_adr_value_segment_code := NULL;
100200
100201 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
100202 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
100206 l_bflow_applied_to_amt_idx := NULL; -- 5132302
100203 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
100204 l_budgetary_control_flag := 'N';
100205
100207 l_bflow_applied_to_amt := NULL; -- 5132302
100208 l_entered_amt_idx := NULL; -- 4262811
100209 l_accted_amt_idx := NULL; -- 4262811
100210 l_acc_rev_flag := NULL; -- 4262811
100211 l_accrual_line_num := NULL; -- 4262811
100212 l_tmp_amt := NULL; -- 4262811
100213 --
100214
100215 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100216 l_balance_type_code <> 'B' THEN
100217 IF NVL(p_source_38,'
100218 ') <> 'CLEAR_CLEAR' AND
100219 NVL(p_source_20,'
100220 ') = 'TERV' AND
100221 (NVL(p_source_39,'
100222 ') = 'CASH' OR
100223 NVL(p_source_39,'
100224 ') = 'DISCOUNT') AND
100225 NVL(p_source_60,'
100226 ') = 'R' AND
100227 NVL(p_source_102,'
100228 ') = 'Y' AND
100229 NVL(p_source_104,'
100230 ') = 'Y'
100231 THEN
100232
100233 --
100234 XLA_AE_LINES_PKG.SetNewLine;
100235
100236 p_balance_type_code := l_balance_type_code;
100237 -- set the flag so later we will know whether the gain loss line needs to be created
100238
100239 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100240 p_actual_flag :='A';
100241 END IF;
100242
100243 --
100244 -- bulk performance
100245 --
100246 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100247 p_header_num => 0); -- 4262811
100248 --
100249 -- set accounting line options
100250 --
100251 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100252 p_natural_side_code => 'D'
100253 , p_gain_or_loss_flag => 'N'
100254 , p_gl_transfer_mode_code => 'S'
100255 , p_acct_entry_type_code => 'E'
100256 , p_switch_side_flag => 'Y'
100257 , p_merge_duplicate_code => 'A'
100258 );
100259 --
100260 l_acc_rev_natural_side_code := 'C'; -- 4262811
100261 --
100262 --
100263 -- set accounting line type info
100264 --
100265 xla_ae_lines_pkg.SetAcctLineType
100266 (p_component_type => l_component_type
100267 ,p_event_type_code => l_event_type_code
100268 ,p_line_definition_owner_code => l_line_definition_owner_code
100269 ,p_line_definition_code => l_line_definition_code
100270 ,p_accounting_line_code => l_component_code
100271 ,p_accounting_line_type_code => l_component_type_code
100272 ,p_accounting_line_appl_id => l_component_appl_id
100273 ,p_amb_context_code => l_amb_context_code
100274 ,p_entity_code => l_entity_code
100275 ,p_event_class_code => l_event_class_code);
100276 --
100277 -- set accounting class
100278 --
100279 xla_ae_lines_pkg.SetAcctClass(
100280 p_accounting_class_code => 'TERV'
100281 , p_ae_header_id => l_ae_header_id
100282 );
100283
100284 --
100285 -- set rounding class
100286 --
100287 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100288 'TERV';
100289
100290 --
100291 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100292 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100293 --
100294 -- bulk performance
100295 --
100296 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100297
100298 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100299 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100300
100301 -- 4955764
100302 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100303 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100304
100305 -- 4458381 Public Sector Enh
100306
100307 --
100308 -- set accounting attributes for the line type
100309 --
100310 l_entered_amt_idx := 9;
100311 l_accted_amt_idx := 11;
100312 l_bflow_applied_to_amt_idx := NULL; -- 5132302
100313 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100314 l_rec_acct_attrs.array_char_value(1) := p_source_40;
100315 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
100316 l_rec_acct_attrs.array_num_value(2) := p_source_42;
100317 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100318 l_rec_acct_attrs.array_char_value(3) := p_source_62;
100319 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
100320 l_rec_acct_attrs.array_char_value(4) := p_source_63;
100321 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
100322 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
100323 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100324 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
100325 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
100326 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
100327 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
100328 l_rec_acct_attrs.array_char_value(8) := p_source_48;
100332 l_rec_acct_attrs.array_char_value(10) := p_source_49;
100329 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
100330 l_rec_acct_attrs.array_num_value(9) := p_source_41;
100331 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
100333 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
100334 l_rec_acct_attrs.array_num_value(11) := p_source_9;
100335 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
100336 l_rec_acct_attrs.array_char_value(12) := p_source_53;
100337 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
100338 l_rec_acct_attrs.array_char_value(13) := p_source_56;
100339 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
100340 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
100341 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
100342 l_rec_acct_attrs.array_char_value(15) := p_source_48;
100343 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
100344 l_rec_acct_attrs.array_num_value(16) := p_source_58;
100345 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
100346 l_rec_acct_attrs.array_num_value(17) := p_source_66;
100347 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
100348 l_rec_acct_attrs.array_num_value(18) := p_source_59;
100349
100350 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100351 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100352
100353 ---------------------------------------------------------------------------------------------------------------
100354 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100355 ---------------------------------------------------------------------------------------------------------------
100356 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100357
100358 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100359 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100360
100361 IF xla_accounting_cache_pkg.GetValueChar
100362 (p_source_code => 'LEDGER_CATEGORY_CODE'
100363 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100364 AND l_bflow_method_code = 'PRIOR_ENTRY'
100365 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100366 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100367 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100368 )
100369 THEN
100370 xla_ae_lines_pkg.BflowUpgEntry
100371 (p_business_method_code => l_bflow_method_code
100372 ,p_business_class_code => l_bflow_class_code
100373 ,p_balance_type => l_balance_type_code);
100374 ELSE
100375 NULL;
100376 XLA_AE_LINES_PKG.business_flow_validation(
100377 p_business_method_code => l_bflow_method_code
100378 ,p_business_class_code => l_bflow_class_code
100379 ,p_inherit_description_flag => l_inherit_desc_flag);
100380 END IF;
100381
100382 --
100383 -- call analytical criteria
100384 --
100385 -- Inherited Analytical Criteria for business flow method of Prior Entry.
100386 --
100387 -- call description
100388 --
100389 -- No description or it is inherited.
100390 --
100391 -- call ADRs
100392 -- Bug 4922099
100393 --
100394 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100395 (NVL(l_actual_upg_option, 'N') = 'O') OR
100396 (NVL(l_enc_upg_option, 'N') = 'O')
100397 )
100398 THEN
100399 NULL;
100400 --
100401 --
100402
100403 --
100404 --
100405 END IF;
100406 --
100407 -- Bug 4922099
100408 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100409 (NVL(l_enc_upg_option, 'N') = 'O')
100410 ) AND
100411 (l_bflow_method_code = 'PRIOR_ENTRY')
100412 )
100413 THEN
100414 IF
100415 --
100416 1 = 1
100417 --
100418 THEN
100419 xla_accounting_err_pkg.build_message
100420 (p_appli_s_name => 'XLA'
100421 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100422 ,p_token_1 => 'LINE_NUMBER'
100423 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
100424 ,p_token_2 => 'LINE_TYPE_NAME'
100425 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
100426 l_component_type
100427 ,l_component_code
100428 ,l_component_type_code
100429 ,l_component_appl_id
100430 ,l_amb_context_code
100431 ,l_entity_code
100435 ,p_value_3 => xla_lookups_pkg.get_meaning(
100432 ,l_event_class_code
100433 )
100434 ,p_token_3 => 'OWNER'
100436 p_lookup_type => 'XLA_OWNER_TYPE'
100437 ,p_lookup_code => l_component_type_code
100438 )
100439 ,p_token_4 => 'PRODUCT_NAME'
100440 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100441 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100442 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100443 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100444 ,p_ae_header_id => NULL
100445 );
100446
100447 IF (C_LEVEL_ERROR>= g_log_level) THEN
100448 trace
100449 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100450 ,p_level => C_LEVEL_ERROR
100451 ,p_module => l_log_module);
100452 END IF;
100453 END IF;
100454 END IF;
100455 --
100456 --
100457 ------------------------------------------------------------------------------------------------
100458 -- 4219869 Business Flow
100459 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100460 -- Prior Entry. Currently, the following code is always generated.
100461 ------------------------------------------------------------------------------------------------
100462 -- No ValidateCurrentLine for business flow method of Prior Entry
100463
100464 ------------------------------------------------------------------------------------
100465 -- 4219869 Business Flow
100466 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100467 ------------------------------------------------------------------------------------
100468 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100469
100470 ----------------------------------------------------------------------------------
100471 -- 4219869 Business Flow
100472 -- Update journal entry status -- Need to generate this within IF <condition>
100473 ----------------------------------------------------------------------------------
100474 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100475 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100476 ,p_balance_type_code => l_balance_type_code
100477 );
100478
100479 -------------------------------------------------------------------------------------------
100480 -- 4262811 - Generate the Accrual Reversal lines
100481 -------------------------------------------------------------------------------------------
100482 BEGIN
100483 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100484 (g_array_event(p_event_id).array_value_num('header_index'));
100485 IF l_acc_rev_flag IS NULL THEN
100486 l_acc_rev_flag := 'N';
100487 END IF;
100488 EXCEPTION
100489 WHEN OTHERS THEN
100490 l_acc_rev_flag := 'N';
100491 END;
100492 --
100493 IF (l_acc_rev_flag = 'Y') THEN
100494
100495 -- 4645092 ------------------------------------------------------------------------------
100496 -- To allow MPA report to determine if it should generate report process
100497 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100498 ------------------------------------------------------------------------------------------
100499
100500 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100501 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100502 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
100503 -- call ADRs
100504 -- Bug 4922099
100505 --
100506 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100507 (NVL(l_actual_upg_option, 'N') = 'O') OR
100508 (NVL(l_enc_upg_option, 'N') = 'O')
100509 )
100510 THEN
100511 NULL;
100512 --
100513 --
100514
100515 --
100516 --
100517 END IF;
100518
100519 --
100520 -- Update the line information that should be overwritten
100521 --
100522 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100523 p_header_num => 1);
100524 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
100525
100526 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100527
100528 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
100529 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100530 END IF;
100531
100532 --
100533 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100534 --
100538 ---------------------------------------------------------------------------------------------------
100535 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100536 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
100537 ELSE
100539 -- 4262811a Switch Sign
100540 ---------------------------------------------------------------------------------------------------
100541 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
100542 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100543 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100544 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100545 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100546 -- 5132302
100547 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100548 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100549
100550 END IF;
100551
100552 -- 4955764
100553 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100554 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100555
100556
100557 XLA_AE_LINES_PKG.ValidateCurrentLine;
100558 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100559
100560 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100561 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100562 ,p_balance_type_code => l_balance_type_code);
100563
100564 END IF;
100565
100566 -----------------------------------------------------------------------------------------
100567 -- 4262811 Multiperiod Accounting
100568 -----------------------------------------------------------------------------------------
100569 -- No MPA option is assigned.
100570
100571
100572 END IF;
100573 END IF;
100574 --
100575
100576 --
100577 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100578 trace
100579 (p_msg => 'END of AcctLineType_177'
100580 ,p_level => C_LEVEL_PROCEDURE
100581 ,p_module => l_log_module);
100582 END IF;
100583 --
100584 EXCEPTION
100585 WHEN xla_exceptions_pkg.application_exception THEN
100586 RAISE;
100587 WHEN OTHERS THEN
100588 xla_exceptions_pkg.raise_message
100589 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_177');
100590 END AcctLineType_177;
100591 --
100592
100593 ---------------------------------------
100594 --
100595 -- PRIVATE FUNCTION
100596 -- AcctLineType_178
100597 --
100598 ---------------------------------------
100599 PROCEDURE AcctLineType_178 (
100600 p_application_id IN NUMBER
100601 ,p_event_id IN NUMBER
100602 ,p_calculate_acctd_flag IN VARCHAR2
100603 ,p_calculate_g_l_flag IN VARCHAR2
100604 ,p_actual_flag IN OUT VARCHAR2
100605 ,p_balance_type_code OUT VARCHAR2
100606 ,p_gain_or_loss_ref OUT VARCHAR2
100607
100608 --Automatic Offsets Value
100609 , p_source_4 IN VARCHAR2
100610 , p_source_4_meaning IN VARCHAR2
100611 --Purchase Order Rate Variance Gain Account
100612 , p_source_5 IN NUMBER
100613 --Destination Type of the PO Distribution
100614 , p_source_7 IN VARCHAR2
100615 , p_source_7_meaning IN VARCHAR2
100616 --Purchase Order Rate Variance Loss Account
100617 , p_source_8 IN NUMBER
100618 --Payment Distribution (Payment Rate) Ledger Amount
100619 , p_source_9 IN NUMBER
100620 --Payment Distribution (Cleared Rate) Ledger Amount
100621 , p_source_10 IN NUMBER
100622 --Invoice Distribution Account
100623 , p_source_17 IN NUMBER
100624 --Automatic Offsets Flag
100625 , p_source_30 IN VARCHAR2
100626 , p_source_30_meaning IN VARCHAR2
100627 --When to Account for Payment Option
100628 , p_source_38 IN VARCHAR2
100629 --Payment Distribution Type
100630 , p_source_39 IN VARCHAR2
100631 , p_source_39_meaning IN VARCHAR2
100632 --Accounting Reversal Indicator
100633 , p_source_40 IN VARCHAR2
100634 --Payment Distribution Amount
100635 , p_source_41 IN NUMBER
100636 --Business Flow Accounts Payable Application Identifier
100637 , p_source_42 IN NUMBER
100638 --Business Flow Payment Distribution Type
100639 , p_source_43 IN VARCHAR2
100640 --Business Flow Payment Entity Code
100641 , p_source_44 IN VARCHAR2
100642 --Business Flow Payment Distribution Identifier
100643 , p_source_45 IN NUMBER
100644 --Business Flow Payment Identifier
100645 , p_source_46 IN NUMBER
100646 --Payment Distribution Identifier
100647 , p_source_47 IN NUMBER
100648 --Distribution Link Type
100649 , p_source_48 IN VARCHAR2
100650 --Payment Currency Code
100651 , p_source_49 IN VARCHAR2
100652 --Override Accounted Amount Indicator
100653 , p_source_53 IN VARCHAR2
100654 , p_source_53_meaning IN VARCHAR2
100655 --Payment Supplier Identifier
100656 , p_source_54 IN NUMBER
100657 --Payment Supplier Site Identifier
100661 --Payment Distribution Reversed Identifier
100658 , p_source_55 IN NUMBER
100659 --Third Party Type
100660 , p_source_56 IN VARCHAR2
100662 , p_source_57 IN NUMBER
100663 --Invoice Distribution Tax Line Identifier
100664 , p_source_58 IN NUMBER
100665 --Invoice Distribution Summary Tax Line Identifier
100666 , p_source_59 IN NUMBER
100667 --Accrue on Receipt Option
100668 , p_source_100 IN VARCHAR2
100669 , p_source_100_meaning IN VARCHAR2
100670 --Cleared Exchange Date
100671 , p_source_107 IN DATE
100672 --Cleared Exchange Rate
100673 , p_source_108 IN NUMBER
100674 --Cleared Exchange Rate Type
100675 , p_source_109 IN VARCHAR2
100676 )
100677 IS
100678
100679 l_component_type VARCHAR2(80);
100680 l_component_code VARCHAR2(30);
100681 l_component_type_code VARCHAR2(1);
100682 l_component_appl_id INTEGER;
100683 l_amb_context_code VARCHAR2(30);
100684 l_entity_code VARCHAR2(30);
100685 l_event_class_code VARCHAR2(30);
100686 l_ae_header_id NUMBER;
100687 l_event_type_code VARCHAR2(30);
100688 l_line_definition_code VARCHAR2(30);
100689 l_line_definition_owner_code VARCHAR2(1);
100690 --
100691 -- adr variables
100692 l_segment VARCHAR2(30);
100693 l_ccid NUMBER;
100694 l_adr_transaction_coa_id NUMBER;
100695 l_adr_accounting_coa_id NUMBER;
100696 l_adr_flexfield_segment_code VARCHAR2(30);
100697 l_adr_flex_value_set_id NUMBER;
100698 l_adr_value_type_code VARCHAR2(30);
100699 l_adr_value_combination_id NUMBER;
100700 l_adr_value_segment_code VARCHAR2(30);
100701
100702 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
100703 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
100704 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
100705 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
100706
100707 -- 4262811 Variables ------------------------------------------------------------------------------------------
100708 l_entered_amt_idx NUMBER;
100709 l_accted_amt_idx NUMBER;
100710 l_acc_rev_flag VARCHAR2(1);
100711 l_accrual_line_num NUMBER;
100712 l_tmp_amt NUMBER;
100713 l_acc_rev_natural_side_code VARCHAR2(1);
100714
100715 l_num_entries NUMBER;
100716 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
100717 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
100718 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
100719 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
100720 l_recog_line_1 NUMBER;
100721 l_recog_line_2 NUMBER;
100722
100723 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
100724 l_bflow_applied_to_amt NUMBER; -- 5132302
100725 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
100726
100727 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100728
100729 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
100730 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
100731
100732 ---------------------------------------------------------------------------------------------------------------
100733
100734
100735 --
100736 -- bulk performance
100737 --
100738 l_balance_type_code VARCHAR2(1);
100739 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
100740 l_log_module VARCHAR2(240);
100741
100742 --
100743 -- Upgrade strategy
100744 --
100745 l_actual_upg_option VARCHAR2(1);
100746 l_enc_upg_option VARCHAR2(1);
100747
100748 --
100749 BEGIN
100750 --
100751 IF g_log_enabled THEN
100752 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_178';
100753 END IF;
100754 --
100755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100756
100757 trace
100758 (p_msg => 'BEGIN of AcctLineType_178'
100759 ,p_level => C_LEVEL_PROCEDURE
100760 ,p_module => l_log_module);
100761
100762 END IF;
100763 --
100764 l_component_type := 'AMB_JLT';
100765 l_component_code := 'AP_TAX_EX_RATE_VAR_CLEAR';
100766 l_component_type_code := 'S';
100767 l_component_appl_id := 200;
100768 l_amb_context_code := 'DEFAULT';
100769 l_entity_code := 'AP_PAYMENTS';
100770 l_event_class_code := 'RECONCILED PAYMENTS';
100771 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
100772 l_line_definition_owner_code := 'S';
100773 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
100774 --
100775 l_balance_type_code := 'A';
100776 l_segment := NULL;
100777 l_ccid := NULL;
100778 l_adr_transaction_coa_id := NULL;
100779 l_adr_accounting_coa_id := NULL;
100780 l_adr_flexfield_segment_code := NULL;
100781 l_adr_flex_value_set_id := NULL;
100782 l_adr_value_type_code := NULL;
100783 l_adr_value_combination_id := NULL;
100784 l_adr_value_segment_code := NULL;
100785
100786 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
100787 l_bflow_class_code := ''; -- 4219869 Business Flow
100791 l_bflow_applied_to_amt_idx := NULL; -- 5132302
100788 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
100789 l_budgetary_control_flag := 'N';
100790
100792 l_bflow_applied_to_amt := NULL; -- 5132302
100793 l_entered_amt_idx := NULL; -- 4262811
100794 l_accted_amt_idx := NULL; -- 4262811
100795 l_acc_rev_flag := NULL; -- 4262811
100796 l_accrual_line_num := NULL; -- 4262811
100797 l_tmp_amt := NULL; -- 4262811
100798 --
100799 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
100800 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
100801 return;
100802 END IF;
100803
100804 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100805 l_balance_type_code <> 'B' THEN
100806 IF NVL(p_source_38,'
100807 ') = 'CLEAR_CLEAR' AND
100808 NVL(p_source_39,'
100809 ') = 'TAX EXCHANGE RATE VARIANCE' AND
100810 NVL(p_source_100,'
100811 ') = 'Y'
100812 THEN
100813
100814 --
100815 XLA_AE_LINES_PKG.SetNewLine;
100816
100817 p_balance_type_code := l_balance_type_code;
100818 -- set the flag so later we will know whether the gain loss line needs to be created
100819
100820 IF(l_balance_type_code = 'A' ) THEN
100821 p_actual_flag :='G';
100822 END IF;
100823
100824 --
100825 -- bulk performance
100826 --
100827 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100828 p_header_num => 0); -- 4262811
100829 --
100830 -- set accounting line options
100831 --
100832 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100833 p_natural_side_code => 'D'
100834 , p_gain_or_loss_flag => 'Y'
100835 , p_gl_transfer_mode_code => 'S'
100836 , p_acct_entry_type_code => 'A'
100837 , p_switch_side_flag => 'Y'
100838 , p_merge_duplicate_code => 'A'
100839 );
100840 --
100841 l_acc_rev_natural_side_code := 'C'; -- 4262811
100842 --
100843 --
100844 -- set accounting line type info
100845 --
100846 xla_ae_lines_pkg.SetAcctLineType
100847 (p_component_type => l_component_type
100848 ,p_event_type_code => l_event_type_code
100849 ,p_line_definition_owner_code => l_line_definition_owner_code
100850 ,p_line_definition_code => l_line_definition_code
100851 ,p_accounting_line_code => l_component_code
100852 ,p_accounting_line_type_code => l_component_type_code
100853 ,p_accounting_line_appl_id => l_component_appl_id
100854 ,p_amb_context_code => l_amb_context_code
100855 ,p_entity_code => l_entity_code
100856 ,p_event_class_code => l_event_class_code);
100857 --
100858 -- set accounting class
100859 --
100860 xla_ae_lines_pkg.SetAcctClass(
100861 p_accounting_class_code => 'TERV'
100862 , p_ae_header_id => l_ae_header_id
100863 );
100864
100865 --
100866 -- set rounding class
100867 --
100868 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100869 'TERV';
100870
100871 --
100872 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100873 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100874 --
100875 -- bulk performance
100876 --
100877 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100878
100879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100880 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100881
100882 -- 4955764
100883 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100884 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100885
100886 -- 4458381 Public Sector Enh
100887
100888 --
100889 -- set accounting attributes for the line type
100890 --
100891 l_entered_amt_idx := 10;
100892 l_accted_amt_idx := 15;
100893 l_bflow_applied_to_amt_idx := 2; -- 5132302
100894 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100895 l_rec_acct_attrs.array_char_value(1) := p_source_40;
100896 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
100897 l_rec_acct_attrs.array_num_value(2) := p_source_41;
100898 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
100899 l_rec_acct_attrs.array_num_value(3) := p_source_42;
100900 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100901 l_rec_acct_attrs.array_char_value(4) := p_source_43;
100902 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
100903 l_rec_acct_attrs.array_char_value(5) := p_source_44;
100904 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
100905 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
100906 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100907 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
100911 l_rec_acct_attrs.array_char_value(9) := p_source_48;
100908 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
100909 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
100910 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
100912 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
100913 l_rec_acct_attrs.array_num_value(10) := p_source_41;
100914 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
100915 l_rec_acct_attrs.array_char_value(11) := p_source_49;
100916 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
100917 l_rec_acct_attrs.array_date_value(12) := p_source_107;
100918 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
100919 l_rec_acct_attrs.array_num_value(13) := p_source_108;
100920 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
100921 l_rec_acct_attrs.array_char_value(14) := p_source_109;
100922 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
100923 l_rec_acct_attrs.array_num_value(15) := p_source_10;
100924 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
100925 l_rec_acct_attrs.array_char_value(16) := p_source_53;
100926 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
100927 l_rec_acct_attrs.array_num_value(17) := p_source_54;
100928 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
100929 l_rec_acct_attrs.array_num_value(18) := p_source_55;
100930 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
100931 l_rec_acct_attrs.array_char_value(19) := p_source_56;
100932 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
100933 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
100934 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
100935 l_rec_acct_attrs.array_char_value(21) := p_source_48;
100936 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
100937 l_rec_acct_attrs.array_num_value(22) := p_source_58;
100938 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
100939 l_rec_acct_attrs.array_num_value(23) := p_source_58;
100940 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
100941 l_rec_acct_attrs.array_num_value(24) := p_source_59;
100942
100943 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100944 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100945
100946 ---------------------------------------------------------------------------------------------------------------
100947 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100948 ---------------------------------------------------------------------------------------------------------------
100949 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100950
100951 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100952 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100953
100954 IF xla_accounting_cache_pkg.GetValueChar
100955 (p_source_code => 'LEDGER_CATEGORY_CODE'
100956 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100957 AND l_bflow_method_code = 'PRIOR_ENTRY'
100958 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100959 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100960 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100961 )
100962 THEN
100963 xla_ae_lines_pkg.BflowUpgEntry
100964 (p_business_method_code => l_bflow_method_code
100965 ,p_business_class_code => l_bflow_class_code
100966 ,p_balance_type => l_balance_type_code);
100967 ELSE
100968 NULL;
100969 -- No business flow processing for business flow method of NONE.
100970 END IF;
100971
100972 --
100973 -- call analytical criteria
100974 --
100975
100976 --
100977 -- call description
100978 --
100979 -- No description or it is inherited.
100980 --
100981 -- call ADRs
100982 -- Bug 4922099
100983 --
100984 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100985 (NVL(l_actual_upg_option, 'N') = 'O') OR
100986 (NVL(l_enc_upg_option, 'N') = 'O')
100987 )
100988 THEN
100989 NULL;
100990 --
100991 --
100992
100993 l_ccid := AcctDerRule_22(
100994 p_application_id => p_application_id
100995 , p_ae_header_id => l_ae_header_id
100996 , p_source_4 => p_source_4
100997 , p_source_4_meaning => p_source_4_meaning
100998 , p_source_5 => p_source_5
100999 , p_source_7 => p_source_7
101000 , p_source_7_meaning => p_source_7_meaning
101001 , p_source_8 => p_source_8
101002 , p_source_9 => p_source_9
101003 , p_source_10 => p_source_10
101004 , p_source_17 => p_source_17
101005 , p_source_30 => p_source_30
101006 , p_source_30_meaning => p_source_30_meaning
101007 , x_transaction_coa_id => l_adr_transaction_coa_id
101008 , x_accounting_coa_id => l_adr_accounting_coa_id
101009 , x_value_type_code => l_adr_value_type_code
101010 , p_side => 'NA'
101011 );
101012
101013 xla_ae_lines_pkg.set_ccid(
101014 p_code_combination_id => l_ccid
101015 , p_value_type_code => l_adr_value_type_code
101016 , p_transaction_coa_id => l_adr_transaction_coa_id
101020 , p_component_type => l_component_type
101017 , p_accounting_coa_id => l_adr_accounting_coa_id
101018 , p_adr_code => 'AP_ERV_TAXERV_CASH'
101019 , p_adr_type_code => 'S'
101021 , p_component_code => l_component_code
101022 , p_component_type_code => l_component_type_code
101023 , p_component_appl_id => l_component_appl_id
101024 , p_amb_context_code => l_amb_context_code
101025 , p_side => 'NA'
101026 );
101027
101028
101029 l_segment := AcctDerRule_4(
101030 p_application_id => p_application_id
101031 , p_ae_header_id => l_ae_header_id
101032 , p_source_4 => p_source_4
101033 , p_source_4_meaning => p_source_4_meaning
101034 , p_source_5 => p_source_5
101035 , p_source_7 => p_source_7
101036 , p_source_7_meaning => p_source_7_meaning
101037 , p_source_8 => p_source_8
101038 , p_source_9 => p_source_9
101039 , p_source_10 => p_source_10
101040 , x_transaction_coa_id => l_adr_transaction_coa_id
101041 , x_accounting_coa_id => l_adr_accounting_coa_id
101042 , x_flexfield_segment_code => l_adr_flexfield_segment_code
101043 , x_flex_value_set_id => l_adr_flex_value_set_id
101044 , x_value_type_code => l_adr_value_type_code
101045 , x_value_combination_id => l_adr_value_combination_id
101046 , x_value_segment_code => l_adr_value_segment_code
101047 , p_side => 'NA'
101048 , p_override_seg_flag => 'Y'
101049 );
101050
101051 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
101052
101053 xla_ae_lines_pkg.set_segment(
101054 p_to_segment_code => 'GL_ACCOUNT'
101055 , p_segment_value => l_segment
101056 , p_from_segment_code => l_adr_value_segment_code
101057 , p_from_combination_id => l_adr_value_combination_id
101058 , p_value_type_code => l_adr_value_type_code
101059 , p_transaction_coa_id => l_adr_transaction_coa_id
101060 , p_accounting_coa_id => l_adr_accounting_coa_id
101061 , p_flexfield_segment_code => l_adr_flexfield_segment_code
101062 , p_flex_value_set_id => l_adr_flex_value_set_id
101063 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
101064 , p_adr_type_code => 'S'
101065 , p_component_type => l_component_type
101066 , p_component_code => l_component_code
101067 , p_component_type_code => l_component_type_code
101068 , p_component_appl_id => l_component_appl_id
101069 , p_amb_context_code => l_amb_context_code
101070 , p_entity_code => 'AP_PAYMENTS'
101071 , p_event_class_code => 'RECONCILED PAYMENTS'
101072 , p_side => 'NA'
101073 );
101074
101075 END IF;
101076
101077 l_segment := AcctDerRule_15(
101078 p_application_id => p_application_id
101079 , p_ae_header_id => l_ae_header_id
101080 , p_source_4 => p_source_4
101081 , p_source_4_meaning => p_source_4_meaning
101082 , p_source_7 => p_source_7
101083 , p_source_7_meaning => p_source_7_meaning
101084 , p_source_17 => p_source_17
101085 , x_transaction_coa_id => l_adr_transaction_coa_id
101086 , x_accounting_coa_id => l_adr_accounting_coa_id
101087 , x_flexfield_segment_code => l_adr_flexfield_segment_code
101088 , x_flex_value_set_id => l_adr_flex_value_set_id
101089 , x_value_type_code => l_adr_value_type_code
101090 , x_value_combination_id => l_adr_value_combination_id
101091 , x_value_segment_code => l_adr_value_segment_code
101092 , p_side => 'NA'
101093 , p_override_seg_flag => 'Y'
101094 );
101095
101096 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
101097
101098 xla_ae_lines_pkg.set_segment(
101099 p_to_segment_code => 'GL_BALANCING'
101100 , p_segment_value => l_segment
101101 , p_from_segment_code => l_adr_value_segment_code
101102 , p_from_combination_id => l_adr_value_combination_id
101103 , p_value_type_code => l_adr_value_type_code
101104 , p_transaction_coa_id => l_adr_transaction_coa_id
101105 , p_accounting_coa_id => l_adr_accounting_coa_id
101106 , p_flexfield_segment_code => l_adr_flexfield_segment_code
101107 , p_flex_value_set_id => l_adr_flex_value_set_id
101108 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
101109 , p_adr_type_code => 'S'
101110 , p_component_type => l_component_type
101111 , p_component_code => l_component_code
101112 , p_component_type_code => l_component_type_code
101113 , p_component_appl_id => l_component_appl_id
101114 , p_amb_context_code => l_amb_context_code
101115 , p_entity_code => 'AP_PAYMENTS'
101116 , p_event_class_code => 'RECONCILED PAYMENTS'
101117 , p_side => 'NA'
101118 );
101119
101120 END IF;
101121
101122 --
101123 --
101124 END IF;
101125 --
101126 -- Bug 4922099
101127 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101131 )
101128 (NVL(l_enc_upg_option, 'N') = 'O')
101129 ) AND
101130 (l_bflow_method_code = 'PRIOR_ENTRY')
101132 THEN
101133 IF
101134 --
101135 1 = 2
101136 --
101137 THEN
101138 xla_accounting_err_pkg.build_message
101139 (p_appli_s_name => 'XLA'
101140 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101141 ,p_token_1 => 'LINE_NUMBER'
101142 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
101143 ,p_token_2 => 'LINE_TYPE_NAME'
101144 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
101145 l_component_type
101146 ,l_component_code
101147 ,l_component_type_code
101148 ,l_component_appl_id
101149 ,l_amb_context_code
101150 ,l_entity_code
101151 ,l_event_class_code
101152 )
101153 ,p_token_3 => 'OWNER'
101154 ,p_value_3 => xla_lookups_pkg.get_meaning(
101155 p_lookup_type => 'XLA_OWNER_TYPE'
101156 ,p_lookup_code => l_component_type_code
101157 )
101158 ,p_token_4 => 'PRODUCT_NAME'
101159 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101160 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101161 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101162 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101163 ,p_ae_header_id => NULL
101164 );
101165
101166 IF (C_LEVEL_ERROR>= g_log_level) THEN
101167 trace
101168 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101169 ,p_level => C_LEVEL_ERROR
101170 ,p_module => l_log_module);
101171 END IF;
101172 END IF;
101173 END IF;
101174 --
101175 --
101176 ------------------------------------------------------------------------------------------------
101177 -- 4219869 Business Flow
101178 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101179 -- Prior Entry. Currently, the following code is always generated.
101180 ------------------------------------------------------------------------------------------------
101181 XLA_AE_LINES_PKG.ValidateCurrentLine;
101182
101183 ------------------------------------------------------------------------------------
101184 -- 4219869 Business Flow
101185 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101186 ------------------------------------------------------------------------------------
101187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101188
101189 ----------------------------------------------------------------------------------
101190 -- 4219869 Business Flow
101191 -- Update journal entry status -- Need to generate this within IF <condition>
101192 ----------------------------------------------------------------------------------
101193 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101194 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101195 ,p_balance_type_code => l_balance_type_code
101196 );
101197
101198 -------------------------------------------------------------------------------------------
101199 -- 4262811 - Generate the Accrual Reversal lines
101200 -------------------------------------------------------------------------------------------
101201 BEGIN
101202 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101203 (g_array_event(p_event_id).array_value_num('header_index'));
101204 IF l_acc_rev_flag IS NULL THEN
101205 l_acc_rev_flag := 'N';
101206 END IF;
101207 EXCEPTION
101208 WHEN OTHERS THEN
101209 l_acc_rev_flag := 'N';
101210 END;
101211 --
101212 IF (l_acc_rev_flag = 'Y') THEN
101213
101214 -- 4645092 ------------------------------------------------------------------------------
101215 -- To allow MPA report to determine if it should generate report process
101216 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101217 ------------------------------------------------------------------------------------------
101218
101219 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101223 -- Bug 4922099
101220 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101221 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
101222 -- call ADRs
101224 --
101225 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101226 (NVL(l_actual_upg_option, 'N') = 'O') OR
101227 (NVL(l_enc_upg_option, 'N') = 'O')
101228 )
101229 THEN
101230 NULL;
101231 --
101232 --
101233
101234 l_ccid := AcctDerRule_22(
101235 p_application_id => p_application_id
101236 , p_ae_header_id => l_ae_header_id
101237 , p_source_4 => p_source_4
101238 , p_source_4_meaning => p_source_4_meaning
101239 , p_source_5 => p_source_5
101240 , p_source_7 => p_source_7
101241 , p_source_7_meaning => p_source_7_meaning
101242 , p_source_8 => p_source_8
101243 , p_source_9 => p_source_9
101244 , p_source_10 => p_source_10
101245 , p_source_17 => p_source_17
101246 , p_source_30 => p_source_30
101247 , p_source_30_meaning => p_source_30_meaning
101248 , x_transaction_coa_id => l_adr_transaction_coa_id
101249 , x_accounting_coa_id => l_adr_accounting_coa_id
101250 , x_value_type_code => l_adr_value_type_code
101251 , p_side => 'NA'
101252 );
101253
101254 xla_ae_lines_pkg.set_ccid(
101255 p_code_combination_id => l_ccid
101256 , p_value_type_code => l_adr_value_type_code
101257 , p_transaction_coa_id => l_adr_transaction_coa_id
101258 , p_accounting_coa_id => l_adr_accounting_coa_id
101259 , p_adr_code => 'AP_ERV_TAXERV_CASH'
101260 , p_adr_type_code => 'S'
101261 , p_component_type => l_component_type
101262 , p_component_code => l_component_code
101263 , p_component_type_code => l_component_type_code
101264 , p_component_appl_id => l_component_appl_id
101265 , p_amb_context_code => l_amb_context_code
101266 , p_side => 'NA'
101267 );
101268
101269
101270 l_segment := AcctDerRule_4(
101271 p_application_id => p_application_id
101272 , p_ae_header_id => l_ae_header_id
101273 , p_source_4 => p_source_4
101274 , p_source_4_meaning => p_source_4_meaning
101275 , p_source_5 => p_source_5
101276 , p_source_7 => p_source_7
101277 , p_source_7_meaning => p_source_7_meaning
101278 , p_source_8 => p_source_8
101279 , p_source_9 => p_source_9
101280 , p_source_10 => p_source_10
101281 , x_transaction_coa_id => l_adr_transaction_coa_id
101282 , x_accounting_coa_id => l_adr_accounting_coa_id
101283 , x_flexfield_segment_code => l_adr_flexfield_segment_code
101284 , x_flex_value_set_id => l_adr_flex_value_set_id
101285 , x_value_type_code => l_adr_value_type_code
101286 , x_value_combination_id => l_adr_value_combination_id
101287 , x_value_segment_code => l_adr_value_segment_code
101288 , p_side => 'NA'
101289 , p_override_seg_flag => 'Y'
101290 );
101291
101292 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
101293
101294 xla_ae_lines_pkg.set_segment(
101295 p_to_segment_code => 'GL_ACCOUNT'
101296 , p_segment_value => l_segment
101297 , p_from_segment_code => l_adr_value_segment_code
101298 , p_from_combination_id => l_adr_value_combination_id
101299 , p_value_type_code => l_adr_value_type_code
101300 , p_transaction_coa_id => l_adr_transaction_coa_id
101301 , p_accounting_coa_id => l_adr_accounting_coa_id
101302 , p_flexfield_segment_code => l_adr_flexfield_segment_code
101303 , p_flex_value_set_id => l_adr_flex_value_set_id
101304 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
101305 , p_adr_type_code => 'S'
101306 , p_component_type => l_component_type
101307 , p_component_code => l_component_code
101308 , p_component_type_code => l_component_type_code
101309 , p_component_appl_id => l_component_appl_id
101310 , p_amb_context_code => l_amb_context_code
101311 , p_entity_code => 'AP_PAYMENTS'
101312 , p_event_class_code => 'RECONCILED PAYMENTS'
101313 , p_side => 'NA'
101314 );
101315
101316 END IF;
101317
101318 l_segment := AcctDerRule_15(
101319 p_application_id => p_application_id
101320 , p_ae_header_id => l_ae_header_id
101321 , p_source_4 => p_source_4
101322 , p_source_4_meaning => p_source_4_meaning
101323 , p_source_7 => p_source_7
101324 , p_source_7_meaning => p_source_7_meaning
101325 , p_source_17 => p_source_17
101326 , x_transaction_coa_id => l_adr_transaction_coa_id
101327 , x_accounting_coa_id => l_adr_accounting_coa_id
101328 , x_flexfield_segment_code => l_adr_flexfield_segment_code
101329 , x_flex_value_set_id => l_adr_flex_value_set_id
101330 , x_value_type_code => l_adr_value_type_code
101331 , x_value_combination_id => l_adr_value_combination_id
101332 , x_value_segment_code => l_adr_value_segment_code
101333 , p_side => 'NA'
101334 , p_override_seg_flag => 'Y'
101335 );
101336
101340 p_to_segment_code => 'GL_BALANCING'
101337 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
101338
101339 xla_ae_lines_pkg.set_segment(
101341 , p_segment_value => l_segment
101342 , p_from_segment_code => l_adr_value_segment_code
101343 , p_from_combination_id => l_adr_value_combination_id
101344 , p_value_type_code => l_adr_value_type_code
101345 , p_transaction_coa_id => l_adr_transaction_coa_id
101346 , p_accounting_coa_id => l_adr_accounting_coa_id
101347 , p_flexfield_segment_code => l_adr_flexfield_segment_code
101348 , p_flex_value_set_id => l_adr_flex_value_set_id
101349 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
101350 , p_adr_type_code => 'S'
101351 , p_component_type => l_component_type
101352 , p_component_code => l_component_code
101353 , p_component_type_code => l_component_type_code
101354 , p_component_appl_id => l_component_appl_id
101355 , p_amb_context_code => l_amb_context_code
101356 , p_entity_code => 'AP_PAYMENTS'
101357 , p_event_class_code => 'RECONCILED PAYMENTS'
101358 , p_side => 'NA'
101359 );
101360
101361 END IF;
101362
101363 --
101364 --
101365 END IF;
101366
101367 --
101368 -- Update the line information that should be overwritten
101369 --
101370 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101371 p_header_num => 1);
101372 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
101373
101374 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101375
101376 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
101377 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101378 END IF;
101379
101380 --
101381 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101382 --
101383 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101384 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
101385 ELSE
101386 ---------------------------------------------------------------------------------------------------
101387 -- 4262811a Switch Sign
101388 ---------------------------------------------------------------------------------------------------
101389 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
101390 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101391 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101392 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101393 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101394 -- 5132302
101395 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101396 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101397
101398 END IF;
101399
101400 -- 4955764
101401 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101402 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101403
101404
101405 XLA_AE_LINES_PKG.ValidateCurrentLine;
101406 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101407
101408 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101409 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101410 ,p_balance_type_code => l_balance_type_code);
101411
101412 END IF;
101413
101414 -----------------------------------------------------------------------------------------
101415 -- 4262811 Multiperiod Accounting
101416 -----------------------------------------------------------------------------------------
101417 -- No MPA option is assigned.
101418
101419
101420 END IF;
101421 END IF;
101422 --
101423
101424 --
101425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101426 trace
101427 (p_msg => 'END of AcctLineType_178'
101428 ,p_level => C_LEVEL_PROCEDURE
101429 ,p_module => l_log_module);
101430 END IF;
101431 --
101432 EXCEPTION
101433 WHEN xla_exceptions_pkg.application_exception THEN
101434 RAISE;
101435 WHEN OTHERS THEN
101436 xla_exceptions_pkg.raise_message
101437 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_178');
101438 END AcctLineType_178;
101439 --
101440
101441 ---------------------------------------
101442 --
101443 -- PRIVATE FUNCTION
101444 -- AcctLineType_179
101445 --
101446 ---------------------------------------
101447 PROCEDURE AcctLineType_179 (
101448 p_application_id IN NUMBER
101449 ,p_event_id IN NUMBER
101450 ,p_calculate_acctd_flag IN VARCHAR2
101451 ,p_calculate_g_l_flag IN VARCHAR2
101452 ,p_actual_flag IN OUT VARCHAR2
101453 ,p_balance_type_code OUT VARCHAR2
101454 ,p_gain_or_loss_ref OUT VARCHAR2
101455
101456 --Automatic Offsets Value
101460 , p_source_5 IN NUMBER
101457 , p_source_4 IN VARCHAR2
101458 , p_source_4_meaning IN VARCHAR2
101459 --Purchase Order Rate Variance Gain Account
101461 --Destination Type of the PO Distribution
101462 , p_source_7 IN VARCHAR2
101463 , p_source_7_meaning IN VARCHAR2
101464 --Purchase Order Rate Variance Loss Account
101465 , p_source_8 IN NUMBER
101466 --Payment Distribution (Payment Rate) Ledger Amount
101467 , p_source_9 IN NUMBER
101468 --Payment Distribution (Cleared Rate) Ledger Amount
101469 , p_source_10 IN NUMBER
101470 --Invoice Distribution Account
101471 , p_source_17 IN NUMBER
101472 --Automatic Offsets Flag
101473 , p_source_30 IN VARCHAR2
101474 , p_source_30_meaning IN VARCHAR2
101475 --When to Account for Payment Option
101476 , p_source_38 IN VARCHAR2
101477 --Payment Distribution Type
101478 , p_source_39 IN VARCHAR2
101479 , p_source_39_meaning IN VARCHAR2
101480 --Accounting Reversal Indicator
101481 , p_source_40 IN VARCHAR2
101482 --Payment Distribution Amount
101483 , p_source_41 IN NUMBER
101484 --Business Flow Accounts Payable Application Identifier
101485 , p_source_42 IN NUMBER
101486 --Payment Distribution Identifier
101487 , p_source_47 IN NUMBER
101488 --Distribution Link Type
101489 , p_source_48 IN VARCHAR2
101490 --Payment Currency Code
101491 , p_source_49 IN VARCHAR2
101492 --Override Accounted Amount Indicator
101493 , p_source_53 IN VARCHAR2
101494 , p_source_53_meaning IN VARCHAR2
101495 --Payment Supplier Identifier
101496 , p_source_54 IN NUMBER
101497 --Payment Supplier Site Identifier
101498 , p_source_55 IN NUMBER
101499 --Third Party Type
101500 , p_source_56 IN VARCHAR2
101501 --Payment Distribution Reversed Identifier
101502 , p_source_57 IN NUMBER
101503 --Invoice Distribution Tax Line Identifier
101504 , p_source_58 IN NUMBER
101505 --Invoice Distribution Summary Tax Line Identifier
101506 , p_source_59 IN NUMBER
101507 --Payment Type
101508 , p_source_60 IN VARCHAR2
101509 , p_source_60_meaning IN VARCHAR2
101510 --Invoice Distribution Amount of the Payment Distribution
101511 , p_source_61 IN NUMBER
101512 --Business Flow Invoice Distribution Type
101513 , p_source_62 IN VARCHAR2
101514 --Business Flow Invoice Entity Code
101515 , p_source_63 IN VARCHAR2
101516 --Business Flow Invoice Distribution Identifier
101517 , p_source_64 IN NUMBER
101518 --Business Flow Invoice Identifier
101519 , p_source_65 IN NUMBER
101520 --Invoice Distribution Tax Distribution Identifier from Tax
101521 , p_source_66 IN NUMBER
101522 --Accrue on Receipt Option
101523 , p_source_100 IN VARCHAR2
101524 , p_source_100_meaning IN VARCHAR2
101525 --Invoice Type Paid
101526 , p_source_101 IN VARCHAR2
101527 , p_source_101_meaning IN VARCHAR2
101528 --Payment Exchange Date
101529 , p_source_114 IN DATE
101530 --Payment Exchange Rate
101531 , p_source_115 IN NUMBER
101532 --Payment Exchange Rate Type
101533 , p_source_116 IN VARCHAR2
101534 )
101535 IS
101536
101537 l_component_type VARCHAR2(80);
101538 l_component_code VARCHAR2(30);
101539 l_component_type_code VARCHAR2(1);
101540 l_component_appl_id INTEGER;
101541 l_amb_context_code VARCHAR2(30);
101542 l_entity_code VARCHAR2(30);
101543 l_event_class_code VARCHAR2(30);
101544 l_ae_header_id NUMBER;
101545 l_event_type_code VARCHAR2(30);
101546 l_line_definition_code VARCHAR2(30);
101547 l_line_definition_owner_code VARCHAR2(1);
101548 --
101549 -- adr variables
101550 l_segment VARCHAR2(30);
101551 l_ccid NUMBER;
101552 l_adr_transaction_coa_id NUMBER;
101553 l_adr_accounting_coa_id NUMBER;
101554 l_adr_flexfield_segment_code VARCHAR2(30);
101555 l_adr_flex_value_set_id NUMBER;
101556 l_adr_value_type_code VARCHAR2(30);
101557 l_adr_value_combination_id NUMBER;
101558 l_adr_value_segment_code VARCHAR2(30);
101559
101560 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
101561 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
101562 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
101563 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
101564
101565 -- 4262811 Variables ------------------------------------------------------------------------------------------
101566 l_entered_amt_idx NUMBER;
101567 l_accted_amt_idx NUMBER;
101568 l_acc_rev_flag VARCHAR2(1);
101569 l_accrual_line_num NUMBER;
101570 l_tmp_amt NUMBER;
101571 l_acc_rev_natural_side_code VARCHAR2(1);
101572
101573 l_num_entries NUMBER;
101574 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
101575 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
101576 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
101577 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
101578 l_recog_line_1 NUMBER;
101579 l_recog_line_2 NUMBER;
101580
101581 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
101585 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101582 l_bflow_applied_to_amt NUMBER; -- 5132302
101583 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
101584
101586
101587 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
101588 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
101589
101590 ---------------------------------------------------------------------------------------------------------------
101591
101592
101593 --
101594 -- bulk performance
101595 --
101596 l_balance_type_code VARCHAR2(1);
101597 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
101598 l_log_module VARCHAR2(240);
101599
101600 --
101601 -- Upgrade strategy
101602 --
101603 l_actual_upg_option VARCHAR2(1);
101604 l_enc_upg_option VARCHAR2(1);
101605
101606 --
101607 BEGIN
101608 --
101609 IF g_log_enabled THEN
101610 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_179';
101611 END IF;
101612 --
101613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101614
101615 trace
101616 (p_msg => 'BEGIN of AcctLineType_179'
101617 ,p_level => C_LEVEL_PROCEDURE
101618 ,p_module => l_log_module);
101619
101620 END IF;
101621 --
101622 l_component_type := 'AMB_JLT';
101623 l_component_code := 'AP_TAX_EX_RATE_VAR_PMT';
101624 l_component_type_code := 'S';
101625 l_component_appl_id := 200;
101626 l_amb_context_code := 'DEFAULT';
101627 l_entity_code := 'AP_PAYMENTS';
101628 l_event_class_code := 'PAYMENTS';
101629 l_event_type_code := 'PAYMENTS_ALL';
101630 l_line_definition_owner_code := 'S';
101631 l_line_definition_code := 'CASH_PAYMENTS_ALL';
101632 --
101633 l_balance_type_code := 'A';
101634 l_segment := NULL;
101635 l_ccid := NULL;
101636 l_adr_transaction_coa_id := NULL;
101637 l_adr_accounting_coa_id := NULL;
101638 l_adr_flexfield_segment_code := NULL;
101639 l_adr_flex_value_set_id := NULL;
101640 l_adr_value_type_code := NULL;
101641 l_adr_value_combination_id := NULL;
101642 l_adr_value_segment_code := NULL;
101643
101644 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
101645 l_bflow_class_code := ''; -- 4219869 Business Flow
101646 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
101647 l_budgetary_control_flag := 'N';
101648
101649 l_bflow_applied_to_amt_idx := NULL; -- 5132302
101650 l_bflow_applied_to_amt := NULL; -- 5132302
101651 l_entered_amt_idx := NULL; -- 4262811
101652 l_accted_amt_idx := NULL; -- 4262811
101653 l_acc_rev_flag := NULL; -- 4262811
101654 l_accrual_line_num := NULL; -- 4262811
101655 l_tmp_amt := NULL; -- 4262811
101656 --
101657 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
101658 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
101659 return;
101660 END IF;
101661
101662 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101663 l_balance_type_code <> 'B' THEN
101664 IF NVL(p_source_38,'
101665 ') <> 'CLEAR_CLEAR' AND
101666 NVL(p_source_39,'
101667 ') = 'TAX EXCHANGE RATE VARIANCE' AND
101668 NVL(p_source_100,'
101669 ') = 'Y' AND
101670 NVL(p_source_101,'
101671 ') <> 'INTEREST' AND
101672 NVL(p_source_60,'
101673 ') <> 'R'
101674 THEN
101675
101676 --
101677 XLA_AE_LINES_PKG.SetNewLine;
101678
101679 p_balance_type_code := l_balance_type_code;
101680 -- set the flag so later we will know whether the gain loss line needs to be created
101681
101682 IF(l_balance_type_code = 'A' ) THEN
101683 p_actual_flag :='G';
101684 END IF;
101685
101686 --
101687 -- bulk performance
101688 --
101689 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101690 p_header_num => 0); -- 4262811
101691 --
101692 -- set accounting line options
101693 --
101694 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101695 p_natural_side_code => 'D'
101696 , p_gain_or_loss_flag => 'Y'
101697 , p_gl_transfer_mode_code => 'S'
101698 , p_acct_entry_type_code => 'A'
101699 , p_switch_side_flag => 'Y'
101700 , p_merge_duplicate_code => 'A'
101701 );
101702 --
101703 l_acc_rev_natural_side_code := 'C'; -- 4262811
101704 --
101705 --
101706 -- set accounting line type info
101707 --
101708 xla_ae_lines_pkg.SetAcctLineType
101709 (p_component_type => l_component_type
101710 ,p_event_type_code => l_event_type_code
101711 ,p_line_definition_owner_code => l_line_definition_owner_code
101712 ,p_line_definition_code => l_line_definition_code
101713 ,p_accounting_line_code => l_component_code
101714 ,p_accounting_line_type_code => l_component_type_code
101715 ,p_accounting_line_appl_id => l_component_appl_id
101719 --
101716 ,p_amb_context_code => l_amb_context_code
101717 ,p_entity_code => l_entity_code
101718 ,p_event_class_code => l_event_class_code);
101720 -- set accounting class
101721 --
101722 xla_ae_lines_pkg.SetAcctClass(
101723 p_accounting_class_code => 'TERV'
101724 , p_ae_header_id => l_ae_header_id
101725 );
101726
101727 --
101728 -- set rounding class
101729 --
101730 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101731 'TERV';
101732
101733 --
101734 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101735 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101736 --
101737 -- bulk performance
101738 --
101739 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101740
101741 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101742 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101743
101744 -- 4955764
101745 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101746 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101747
101748 -- 4458381 Public Sector Enh
101749
101750 --
101751 -- set accounting attributes for the line type
101752 --
101753 l_entered_amt_idx := 10;
101754 l_accted_amt_idx := 15;
101755 l_bflow_applied_to_amt_idx := 2; -- 5132302
101756 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101757 l_rec_acct_attrs.array_char_value(1) := p_source_40;
101758 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
101759 l_rec_acct_attrs.array_num_value(2) := p_source_61;
101760 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
101761 l_rec_acct_attrs.array_num_value(3) := p_source_42;
101762 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101763 l_rec_acct_attrs.array_char_value(4) := p_source_62;
101764 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
101765 l_rec_acct_attrs.array_char_value(5) := p_source_63;
101766 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
101767 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
101768 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101769 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
101770 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
101771 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
101772 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
101773 l_rec_acct_attrs.array_char_value(9) := p_source_48;
101774 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
101775 l_rec_acct_attrs.array_num_value(10) := p_source_41;
101776 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
101777 l_rec_acct_attrs.array_char_value(11) := p_source_49;
101778 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
101779 l_rec_acct_attrs.array_date_value(12) := p_source_114;
101780 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
101781 l_rec_acct_attrs.array_num_value(13) := p_source_115;
101782 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
101783 l_rec_acct_attrs.array_char_value(14) := p_source_116;
101784 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
101785 l_rec_acct_attrs.array_num_value(15) := p_source_9;
101786 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
101787 l_rec_acct_attrs.array_char_value(16) := p_source_53;
101788 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
101789 l_rec_acct_attrs.array_num_value(17) := p_source_54;
101790 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
101791 l_rec_acct_attrs.array_num_value(18) := p_source_55;
101792 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
101793 l_rec_acct_attrs.array_char_value(19) := p_source_56;
101794 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
101795 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
101796 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
101797 l_rec_acct_attrs.array_char_value(21) := p_source_48;
101798 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
101799 l_rec_acct_attrs.array_num_value(22) := p_source_58;
101800 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
101801 l_rec_acct_attrs.array_num_value(23) := p_source_66;
101802 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
101803 l_rec_acct_attrs.array_num_value(24) := p_source_59;
101804
101805 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101806 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101807
101808 ---------------------------------------------------------------------------------------------------------------
101809 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101810 ---------------------------------------------------------------------------------------------------------------
101814 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101811 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101812
101813 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101815
101816 IF xla_accounting_cache_pkg.GetValueChar
101817 (p_source_code => 'LEDGER_CATEGORY_CODE'
101818 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101819 AND l_bflow_method_code = 'PRIOR_ENTRY'
101820 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101821 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101822 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101823 )
101824 THEN
101825 xla_ae_lines_pkg.BflowUpgEntry
101826 (p_business_method_code => l_bflow_method_code
101827 ,p_business_class_code => l_bflow_class_code
101828 ,p_balance_type => l_balance_type_code);
101829 ELSE
101830 NULL;
101831 -- No business flow processing for business flow method of NONE.
101832 END IF;
101833
101834 --
101835 -- call analytical criteria
101836 --
101837
101838 --
101839 -- call description
101840 --
101841 -- No description or it is inherited.
101842 --
101843 -- call ADRs
101844 -- Bug 4922099
101845 --
101846 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101847 (NVL(l_actual_upg_option, 'N') = 'O') OR
101848 (NVL(l_enc_upg_option, 'N') = 'O')
101849 )
101850 THEN
101851 NULL;
101852 --
101853 --
101854
101855 l_ccid := AcctDerRule_22(
101856 p_application_id => p_application_id
101857 , p_ae_header_id => l_ae_header_id
101858 , p_source_4 => p_source_4
101859 , p_source_4_meaning => p_source_4_meaning
101860 , p_source_5 => p_source_5
101861 , p_source_7 => p_source_7
101862 , p_source_7_meaning => p_source_7_meaning
101863 , p_source_8 => p_source_8
101864 , p_source_9 => p_source_9
101865 , p_source_10 => p_source_10
101866 , p_source_17 => p_source_17
101867 , p_source_30 => p_source_30
101868 , p_source_30_meaning => p_source_30_meaning
101869 , x_transaction_coa_id => l_adr_transaction_coa_id
101870 , x_accounting_coa_id => l_adr_accounting_coa_id
101871 , x_value_type_code => l_adr_value_type_code
101872 , p_side => 'NA'
101873 );
101874
101875 xla_ae_lines_pkg.set_ccid(
101876 p_code_combination_id => l_ccid
101877 , p_value_type_code => l_adr_value_type_code
101878 , p_transaction_coa_id => l_adr_transaction_coa_id
101879 , p_accounting_coa_id => l_adr_accounting_coa_id
101880 , p_adr_code => 'AP_ERV_TAXERV_CASH'
101881 , p_adr_type_code => 'S'
101882 , p_component_type => l_component_type
101883 , p_component_code => l_component_code
101884 , p_component_type_code => l_component_type_code
101885 , p_component_appl_id => l_component_appl_id
101886 , p_amb_context_code => l_amb_context_code
101887 , p_side => 'NA'
101888 );
101889
101890
101891 l_segment := AcctDerRule_4(
101892 p_application_id => p_application_id
101893 , p_ae_header_id => l_ae_header_id
101894 , p_source_4 => p_source_4
101895 , p_source_4_meaning => p_source_4_meaning
101896 , p_source_5 => p_source_5
101897 , p_source_7 => p_source_7
101898 , p_source_7_meaning => p_source_7_meaning
101899 , p_source_8 => p_source_8
101900 , p_source_9 => p_source_9
101901 , p_source_10 => p_source_10
101902 , x_transaction_coa_id => l_adr_transaction_coa_id
101903 , x_accounting_coa_id => l_adr_accounting_coa_id
101904 , x_flexfield_segment_code => l_adr_flexfield_segment_code
101905 , x_flex_value_set_id => l_adr_flex_value_set_id
101906 , x_value_type_code => l_adr_value_type_code
101907 , x_value_combination_id => l_adr_value_combination_id
101908 , x_value_segment_code => l_adr_value_segment_code
101909 , p_side => 'NA'
101910 , p_override_seg_flag => 'Y'
101911 );
101912
101913 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
101914
101915 xla_ae_lines_pkg.set_segment(
101916 p_to_segment_code => 'GL_ACCOUNT'
101917 , p_segment_value => l_segment
101918 , p_from_segment_code => l_adr_value_segment_code
101919 , p_from_combination_id => l_adr_value_combination_id
101920 , p_value_type_code => l_adr_value_type_code
101921 , p_transaction_coa_id => l_adr_transaction_coa_id
101922 , p_accounting_coa_id => l_adr_accounting_coa_id
101923 , p_flexfield_segment_code => l_adr_flexfield_segment_code
101924 , p_flex_value_set_id => l_adr_flex_value_set_id
101925 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
101926 , p_adr_type_code => 'S'
101927 , p_component_type => l_component_type
101928 , p_component_code => l_component_code
101929 , p_component_type_code => l_component_type_code
101933 , p_event_class_code => 'PAYMENTS'
101930 , p_component_appl_id => l_component_appl_id
101931 , p_amb_context_code => l_amb_context_code
101932 , p_entity_code => 'AP_PAYMENTS'
101934 , p_side => 'NA'
101935 );
101936
101937 END IF;
101938
101939 l_segment := AcctDerRule_15(
101940 p_application_id => p_application_id
101941 , p_ae_header_id => l_ae_header_id
101942 , p_source_4 => p_source_4
101943 , p_source_4_meaning => p_source_4_meaning
101944 , p_source_7 => p_source_7
101945 , p_source_7_meaning => p_source_7_meaning
101946 , p_source_17 => p_source_17
101947 , x_transaction_coa_id => l_adr_transaction_coa_id
101948 , x_accounting_coa_id => l_adr_accounting_coa_id
101949 , x_flexfield_segment_code => l_adr_flexfield_segment_code
101950 , x_flex_value_set_id => l_adr_flex_value_set_id
101951 , x_value_type_code => l_adr_value_type_code
101952 , x_value_combination_id => l_adr_value_combination_id
101953 , x_value_segment_code => l_adr_value_segment_code
101954 , p_side => 'NA'
101955 , p_override_seg_flag => 'Y'
101956 );
101957
101958 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
101959
101960 xla_ae_lines_pkg.set_segment(
101961 p_to_segment_code => 'GL_BALANCING'
101962 , p_segment_value => l_segment
101963 , p_from_segment_code => l_adr_value_segment_code
101964 , p_from_combination_id => l_adr_value_combination_id
101965 , p_value_type_code => l_adr_value_type_code
101966 , p_transaction_coa_id => l_adr_transaction_coa_id
101967 , p_accounting_coa_id => l_adr_accounting_coa_id
101968 , p_flexfield_segment_code => l_adr_flexfield_segment_code
101969 , p_flex_value_set_id => l_adr_flex_value_set_id
101970 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
101971 , p_adr_type_code => 'S'
101972 , p_component_type => l_component_type
101973 , p_component_code => l_component_code
101974 , p_component_type_code => l_component_type_code
101975 , p_component_appl_id => l_component_appl_id
101976 , p_amb_context_code => l_amb_context_code
101977 , p_entity_code => 'AP_PAYMENTS'
101978 , p_event_class_code => 'PAYMENTS'
101979 , p_side => 'NA'
101980 );
101981
101982 END IF;
101983
101984 --
101985 --
101986 END IF;
101987 --
101988 -- Bug 4922099
101989 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101990 (NVL(l_enc_upg_option, 'N') = 'O')
101991 ) AND
101992 (l_bflow_method_code = 'PRIOR_ENTRY')
101993 )
101994 THEN
101995 IF
101996 --
101997 1 = 2
101998 --
101999 THEN
102000 xla_accounting_err_pkg.build_message
102001 (p_appli_s_name => 'XLA'
102002 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102003 ,p_token_1 => 'LINE_NUMBER'
102004 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
102005 ,p_token_2 => 'LINE_TYPE_NAME'
102006 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
102007 l_component_type
102008 ,l_component_code
102009 ,l_component_type_code
102010 ,l_component_appl_id
102011 ,l_amb_context_code
102012 ,l_entity_code
102013 ,l_event_class_code
102014 )
102015 ,p_token_3 => 'OWNER'
102016 ,p_value_3 => xla_lookups_pkg.get_meaning(
102017 p_lookup_type => 'XLA_OWNER_TYPE'
102018 ,p_lookup_code => l_component_type_code
102019 )
102020 ,p_token_4 => 'PRODUCT_NAME'
102021 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102022 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102023 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102024 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102025 ,p_ae_header_id => NULL
102026 );
102027
102028 IF (C_LEVEL_ERROR>= g_log_level) THEN
102029 trace
102033 END IF;
102030 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102031 ,p_level => C_LEVEL_ERROR
102032 ,p_module => l_log_module);
102034 END IF;
102035 END IF;
102036 --
102037 --
102038 ------------------------------------------------------------------------------------------------
102039 -- 4219869 Business Flow
102040 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102041 -- Prior Entry. Currently, the following code is always generated.
102042 ------------------------------------------------------------------------------------------------
102043 XLA_AE_LINES_PKG.ValidateCurrentLine;
102044
102045 ------------------------------------------------------------------------------------
102046 -- 4219869 Business Flow
102047 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102048 ------------------------------------------------------------------------------------
102049 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102050
102051 ----------------------------------------------------------------------------------
102052 -- 4219869 Business Flow
102053 -- Update journal entry status -- Need to generate this within IF <condition>
102054 ----------------------------------------------------------------------------------
102055 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102056 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102057 ,p_balance_type_code => l_balance_type_code
102058 );
102059
102060 -------------------------------------------------------------------------------------------
102061 -- 4262811 - Generate the Accrual Reversal lines
102062 -------------------------------------------------------------------------------------------
102063 BEGIN
102064 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102065 (g_array_event(p_event_id).array_value_num('header_index'));
102066 IF l_acc_rev_flag IS NULL THEN
102067 l_acc_rev_flag := 'N';
102068 END IF;
102069 EXCEPTION
102070 WHEN OTHERS THEN
102071 l_acc_rev_flag := 'N';
102072 END;
102073 --
102074 IF (l_acc_rev_flag = 'Y') THEN
102075
102076 -- 4645092 ------------------------------------------------------------------------------
102077 -- To allow MPA report to determine if it should generate report process
102078 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102079 ------------------------------------------------------------------------------------------
102080
102081 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102082 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102083 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
102084 -- call ADRs
102085 -- Bug 4922099
102086 --
102087 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102088 (NVL(l_actual_upg_option, 'N') = 'O') OR
102089 (NVL(l_enc_upg_option, 'N') = 'O')
102090 )
102091 THEN
102092 NULL;
102093 --
102094 --
102095
102096 l_ccid := AcctDerRule_22(
102097 p_application_id => p_application_id
102098 , p_ae_header_id => l_ae_header_id
102099 , p_source_4 => p_source_4
102100 , p_source_4_meaning => p_source_4_meaning
102101 , p_source_5 => p_source_5
102102 , p_source_7 => p_source_7
102103 , p_source_7_meaning => p_source_7_meaning
102104 , p_source_8 => p_source_8
102105 , p_source_9 => p_source_9
102106 , p_source_10 => p_source_10
102107 , p_source_17 => p_source_17
102108 , p_source_30 => p_source_30
102109 , p_source_30_meaning => p_source_30_meaning
102110 , x_transaction_coa_id => l_adr_transaction_coa_id
102111 , x_accounting_coa_id => l_adr_accounting_coa_id
102112 , x_value_type_code => l_adr_value_type_code
102113 , p_side => 'NA'
102114 );
102115
102116 xla_ae_lines_pkg.set_ccid(
102117 p_code_combination_id => l_ccid
102118 , p_value_type_code => l_adr_value_type_code
102119 , p_transaction_coa_id => l_adr_transaction_coa_id
102120 , p_accounting_coa_id => l_adr_accounting_coa_id
102121 , p_adr_code => 'AP_ERV_TAXERV_CASH'
102122 , p_adr_type_code => 'S'
102123 , p_component_type => l_component_type
102124 , p_component_code => l_component_code
102125 , p_component_type_code => l_component_type_code
102126 , p_component_appl_id => l_component_appl_id
102127 , p_amb_context_code => l_amb_context_code
102128 , p_side => 'NA'
102129 );
102130
102131
102132 l_segment := AcctDerRule_4(
102133 p_application_id => p_application_id
102134 , p_ae_header_id => l_ae_header_id
102135 , p_source_4 => p_source_4
102136 , p_source_4_meaning => p_source_4_meaning
102137 , p_source_5 => p_source_5
102138 , p_source_7 => p_source_7
102139 , p_source_7_meaning => p_source_7_meaning
102140 , p_source_8 => p_source_8
102141 , p_source_9 => p_source_9
102142 , p_source_10 => p_source_10
102143 , x_transaction_coa_id => l_adr_transaction_coa_id
102144 , x_accounting_coa_id => l_adr_accounting_coa_id
102145 , x_flexfield_segment_code => l_adr_flexfield_segment_code
102146 , x_flex_value_set_id => l_adr_flex_value_set_id
102150 , p_side => 'NA'
102147 , x_value_type_code => l_adr_value_type_code
102148 , x_value_combination_id => l_adr_value_combination_id
102149 , x_value_segment_code => l_adr_value_segment_code
102151 , p_override_seg_flag => 'Y'
102152 );
102153
102154 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
102155
102156 xla_ae_lines_pkg.set_segment(
102157 p_to_segment_code => 'GL_ACCOUNT'
102158 , p_segment_value => l_segment
102159 , p_from_segment_code => l_adr_value_segment_code
102160 , p_from_combination_id => l_adr_value_combination_id
102161 , p_value_type_code => l_adr_value_type_code
102162 , p_transaction_coa_id => l_adr_transaction_coa_id
102163 , p_accounting_coa_id => l_adr_accounting_coa_id
102164 , p_flexfield_segment_code => l_adr_flexfield_segment_code
102165 , p_flex_value_set_id => l_adr_flex_value_set_id
102166 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
102167 , p_adr_type_code => 'S'
102168 , p_component_type => l_component_type
102169 , p_component_code => l_component_code
102170 , p_component_type_code => l_component_type_code
102171 , p_component_appl_id => l_component_appl_id
102172 , p_amb_context_code => l_amb_context_code
102173 , p_entity_code => 'AP_PAYMENTS'
102174 , p_event_class_code => 'PAYMENTS'
102175 , p_side => 'NA'
102176 );
102177
102178 END IF;
102179
102180 l_segment := AcctDerRule_15(
102181 p_application_id => p_application_id
102182 , p_ae_header_id => l_ae_header_id
102183 , p_source_4 => p_source_4
102184 , p_source_4_meaning => p_source_4_meaning
102185 , p_source_7 => p_source_7
102186 , p_source_7_meaning => p_source_7_meaning
102187 , p_source_17 => p_source_17
102188 , x_transaction_coa_id => l_adr_transaction_coa_id
102189 , x_accounting_coa_id => l_adr_accounting_coa_id
102190 , x_flexfield_segment_code => l_adr_flexfield_segment_code
102191 , x_flex_value_set_id => l_adr_flex_value_set_id
102192 , x_value_type_code => l_adr_value_type_code
102193 , x_value_combination_id => l_adr_value_combination_id
102194 , x_value_segment_code => l_adr_value_segment_code
102195 , p_side => 'NA'
102196 , p_override_seg_flag => 'Y'
102197 );
102198
102199 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
102200
102201 xla_ae_lines_pkg.set_segment(
102202 p_to_segment_code => 'GL_BALANCING'
102203 , p_segment_value => l_segment
102204 , p_from_segment_code => l_adr_value_segment_code
102205 , p_from_combination_id => l_adr_value_combination_id
102206 , p_value_type_code => l_adr_value_type_code
102207 , p_transaction_coa_id => l_adr_transaction_coa_id
102208 , p_accounting_coa_id => l_adr_accounting_coa_id
102209 , p_flexfield_segment_code => l_adr_flexfield_segment_code
102210 , p_flex_value_set_id => l_adr_flex_value_set_id
102211 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
102212 , p_adr_type_code => 'S'
102213 , p_component_type => l_component_type
102214 , p_component_code => l_component_code
102215 , p_component_type_code => l_component_type_code
102216 , p_component_appl_id => l_component_appl_id
102217 , p_amb_context_code => l_amb_context_code
102218 , p_entity_code => 'AP_PAYMENTS'
102219 , p_event_class_code => 'PAYMENTS'
102220 , p_side => 'NA'
102221 );
102222
102223 END IF;
102224
102225 --
102226 --
102227 END IF;
102228
102229 --
102230 -- Update the line information that should be overwritten
102231 --
102232 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102233 p_header_num => 1);
102234 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
102235
102236 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
102237
102238 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
102239 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
102240 END IF;
102241
102242 --
102243 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102244 --
102245 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102246 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
102247 ELSE
102248 ---------------------------------------------------------------------------------------------------
102249 -- 4262811a Switch Sign
102250 ---------------------------------------------------------------------------------------------------
102251 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
102255 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102252 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102253 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102254 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102256 -- 5132302
102257 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102258 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102259
102260 END IF;
102261
102262 -- 4955764
102263 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102264 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102265
102266
102267 XLA_AE_LINES_PKG.ValidateCurrentLine;
102268 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102269
102270 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102271 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102272 ,p_balance_type_code => l_balance_type_code);
102273
102274 END IF;
102275
102276 -----------------------------------------------------------------------------------------
102277 -- 4262811 Multiperiod Accounting
102278 -----------------------------------------------------------------------------------------
102279 -- No MPA option is assigned.
102280
102281
102282 END IF;
102283 END IF;
102284 --
102285
102286 --
102287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102288 trace
102289 (p_msg => 'END of AcctLineType_179'
102290 ,p_level => C_LEVEL_PROCEDURE
102291 ,p_module => l_log_module);
102292 END IF;
102293 --
102294 EXCEPTION
102295 WHEN xla_exceptions_pkg.application_exception THEN
102296 RAISE;
102297 WHEN OTHERS THEN
102298 xla_exceptions_pkg.raise_message
102299 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_179');
102300 END AcctLineType_179;
102301 --
102302
102303 ---------------------------------------
102304 --
102305 -- PRIVATE FUNCTION
102306 -- AcctLineType_180
102307 --
102308 ---------------------------------------
102309 PROCEDURE AcctLineType_180 (
102310 p_application_id IN NUMBER
102311 ,p_event_id IN NUMBER
102312 ,p_calculate_acctd_flag IN VARCHAR2
102313 ,p_calculate_g_l_flag IN VARCHAR2
102314 ,p_actual_flag IN OUT VARCHAR2
102315 ,p_balance_type_code OUT VARCHAR2
102316 ,p_gain_or_loss_ref OUT VARCHAR2
102317
102318 --Automatic Offsets Value
102319 , p_source_4 IN VARCHAR2
102320 , p_source_4_meaning IN VARCHAR2
102321 --Purchase Order Rate Variance Gain Account
102322 , p_source_5 IN NUMBER
102323 --Destination Type of the PO Distribution
102324 , p_source_7 IN VARCHAR2
102325 , p_source_7_meaning IN VARCHAR2
102326 --Purchase Order Rate Variance Loss Account
102327 , p_source_8 IN NUMBER
102328 --Payment Distribution (Payment Rate) Ledger Amount
102329 , p_source_9 IN NUMBER
102330 --Payment Distribution (Cleared Rate) Ledger Amount
102331 , p_source_10 IN NUMBER
102332 --Invoice Distribution Account
102333 , p_source_17 IN NUMBER
102334 --Automatic Offsets Flag
102335 , p_source_30 IN VARCHAR2
102336 , p_source_30_meaning IN VARCHAR2
102337 --When to Account for Payment Option
102338 , p_source_38 IN VARCHAR2
102339 --Payment Distribution Type
102340 , p_source_39 IN VARCHAR2
102341 , p_source_39_meaning IN VARCHAR2
102342 --Accounting Reversal Indicator
102343 , p_source_40 IN VARCHAR2
102344 --Payment Distribution Amount
102345 , p_source_41 IN NUMBER
102346 --Business Flow Accounts Payable Application Identifier
102347 , p_source_42 IN NUMBER
102348 --Payment Distribution Identifier
102349 , p_source_47 IN NUMBER
102350 --Distribution Link Type
102351 , p_source_48 IN VARCHAR2
102352 --Payment Currency Code
102353 , p_source_49 IN VARCHAR2
102354 --Override Accounted Amount Indicator
102355 , p_source_53 IN VARCHAR2
102356 , p_source_53_meaning IN VARCHAR2
102357 --Payment Supplier Identifier
102358 , p_source_54 IN NUMBER
102359 --Payment Supplier Site Identifier
102360 , p_source_55 IN NUMBER
102361 --Third Party Type
102362 , p_source_56 IN VARCHAR2
102363 --Payment Distribution Reversed Identifier
102364 , p_source_57 IN NUMBER
102365 --Invoice Distribution Tax Line Identifier
102366 , p_source_58 IN NUMBER
102367 --Invoice Distribution Summary Tax Line Identifier
102368 , p_source_59 IN NUMBER
102369 --Payment Type
102370 , p_source_60 IN VARCHAR2
102371 , p_source_60_meaning IN VARCHAR2
102372 --Business Flow Invoice Distribution Type
102373 , p_source_62 IN VARCHAR2
102374 --Business Flow Invoice Entity Code
102375 , p_source_63 IN VARCHAR2
102376 --Business Flow Invoice Distribution Identifier
102377 , p_source_64 IN NUMBER
102378 --Business Flow Invoice Identifier
102379 , p_source_65 IN NUMBER
102380 --Invoice Distribution Tax Distribution Identifier from Tax
102381 , p_source_66 IN NUMBER
102382 --Accrue on Receipt Option
102386 , p_source_114 IN DATE
102383 , p_source_100 IN VARCHAR2
102384 , p_source_100_meaning IN VARCHAR2
102385 --Payment Exchange Date
102387 --Payment Exchange Rate
102388 , p_source_115 IN NUMBER
102389 --Payment Exchange Rate Type
102390 , p_source_116 IN VARCHAR2
102391 )
102392 IS
102393
102394 l_component_type VARCHAR2(80);
102395 l_component_code VARCHAR2(30);
102396 l_component_type_code VARCHAR2(1);
102397 l_component_appl_id INTEGER;
102398 l_amb_context_code VARCHAR2(30);
102399 l_entity_code VARCHAR2(30);
102400 l_event_class_code VARCHAR2(30);
102401 l_ae_header_id NUMBER;
102402 l_event_type_code VARCHAR2(30);
102403 l_line_definition_code VARCHAR2(30);
102404 l_line_definition_owner_code VARCHAR2(1);
102405 --
102406 -- adr variables
102407 l_segment VARCHAR2(30);
102408 l_ccid NUMBER;
102409 l_adr_transaction_coa_id NUMBER;
102410 l_adr_accounting_coa_id NUMBER;
102411 l_adr_flexfield_segment_code VARCHAR2(30);
102412 l_adr_flex_value_set_id NUMBER;
102413 l_adr_value_type_code VARCHAR2(30);
102414 l_adr_value_combination_id NUMBER;
102415 l_adr_value_segment_code VARCHAR2(30);
102416
102417 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
102418 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
102419 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
102420 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
102421
102422 -- 4262811 Variables ------------------------------------------------------------------------------------------
102423 l_entered_amt_idx NUMBER;
102424 l_accted_amt_idx NUMBER;
102425 l_acc_rev_flag VARCHAR2(1);
102426 l_accrual_line_num NUMBER;
102427 l_tmp_amt NUMBER;
102428 l_acc_rev_natural_side_code VARCHAR2(1);
102429
102430 l_num_entries NUMBER;
102431 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
102432 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
102433 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
102434 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
102435 l_recog_line_1 NUMBER;
102436 l_recog_line_2 NUMBER;
102437
102438 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
102439 l_bflow_applied_to_amt NUMBER; -- 5132302
102440 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
102441
102442 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102443
102444 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
102445 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
102446
102447 ---------------------------------------------------------------------------------------------------------------
102448
102449
102450 --
102451 -- bulk performance
102452 --
102453 l_balance_type_code VARCHAR2(1);
102454 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
102455 l_log_module VARCHAR2(240);
102456
102457 --
102458 -- Upgrade strategy
102459 --
102460 l_actual_upg_option VARCHAR2(1);
102461 l_enc_upg_option VARCHAR2(1);
102462
102463 --
102464 BEGIN
102465 --
102466 IF g_log_enabled THEN
102467 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_180';
102468 END IF;
102469 --
102470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102471
102472 trace
102473 (p_msg => 'BEGIN of AcctLineType_180'
102474 ,p_level => C_LEVEL_PROCEDURE
102475 ,p_module => l_log_module);
102476
102477 END IF;
102478 --
102479 l_component_type := 'AMB_JLT';
102480 l_component_code := 'AP_TAX_EX_RATE_VAR_REF';
102481 l_component_type_code := 'S';
102482 l_component_appl_id := 200;
102483 l_amb_context_code := 'DEFAULT';
102484 l_entity_code := 'AP_PAYMENTS';
102485 l_event_class_code := 'REFUNDS';
102486 l_event_type_code := 'REFUNDS_ALL';
102487 l_line_definition_owner_code := 'S';
102488 l_line_definition_code := 'CASH_REFUNDS_ALL';
102489 --
102490 l_balance_type_code := 'A';
102491 l_segment := NULL;
102492 l_ccid := NULL;
102493 l_adr_transaction_coa_id := NULL;
102494 l_adr_accounting_coa_id := NULL;
102495 l_adr_flexfield_segment_code := NULL;
102496 l_adr_flex_value_set_id := NULL;
102497 l_adr_value_type_code := NULL;
102498 l_adr_value_combination_id := NULL;
102499 l_adr_value_segment_code := NULL;
102500
102501 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
102502 l_bflow_class_code := ''; -- 4219869 Business Flow
102503 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
102504 l_budgetary_control_flag := 'N';
102505
102506 l_bflow_applied_to_amt_idx := NULL; -- 5132302
102507 l_bflow_applied_to_amt := NULL; -- 5132302
102508 l_entered_amt_idx := NULL; -- 4262811
102509 l_accted_amt_idx := NULL; -- 4262811
102513 --
102510 l_acc_rev_flag := NULL; -- 4262811
102511 l_accrual_line_num := NULL; -- 4262811
102512 l_tmp_amt := NULL; -- 4262811
102514 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
102515 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
102516 return;
102517 END IF;
102518
102519 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102520 l_balance_type_code <> 'B' THEN
102521 IF NVL(p_source_38,'
102522 ') <> 'CLEAR_CLEAR' AND
102523 NVL(p_source_39,'
102524 ') = 'TAX EXCHANGE RATE VARIANCE' AND
102525 NVL(p_source_100,'
102526 ') = 'Y' AND
102527 NVL(p_source_60,'
102528 ') = 'R'
102529 THEN
102530
102531 --
102532 XLA_AE_LINES_PKG.SetNewLine;
102533
102534 p_balance_type_code := l_balance_type_code;
102535 -- set the flag so later we will know whether the gain loss line needs to be created
102536
102537 IF(l_balance_type_code = 'A' ) THEN
102538 p_actual_flag :='G';
102539 END IF;
102540
102541 --
102542 -- bulk performance
102543 --
102544 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102545 p_header_num => 0); -- 4262811
102546 --
102547 -- set accounting line options
102548 --
102549 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102550 p_natural_side_code => 'D'
102551 , p_gain_or_loss_flag => 'Y'
102552 , p_gl_transfer_mode_code => 'S'
102553 , p_acct_entry_type_code => 'A'
102554 , p_switch_side_flag => 'Y'
102555 , p_merge_duplicate_code => 'A'
102556 );
102557 --
102558 l_acc_rev_natural_side_code := 'C'; -- 4262811
102559 --
102560 --
102561 -- set accounting line type info
102562 --
102563 xla_ae_lines_pkg.SetAcctLineType
102564 (p_component_type => l_component_type
102565 ,p_event_type_code => l_event_type_code
102566 ,p_line_definition_owner_code => l_line_definition_owner_code
102567 ,p_line_definition_code => l_line_definition_code
102568 ,p_accounting_line_code => l_component_code
102569 ,p_accounting_line_type_code => l_component_type_code
102570 ,p_accounting_line_appl_id => l_component_appl_id
102571 ,p_amb_context_code => l_amb_context_code
102572 ,p_entity_code => l_entity_code
102573 ,p_event_class_code => l_event_class_code);
102574 --
102575 -- set accounting class
102576 --
102577 xla_ae_lines_pkg.SetAcctClass(
102578 p_accounting_class_code => 'TERV'
102579 , p_ae_header_id => l_ae_header_id
102580 );
102581
102582 --
102583 -- set rounding class
102584 --
102585 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102586 'TERV';
102587
102588 --
102589 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102590 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102591 --
102592 -- bulk performance
102593 --
102594 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102595
102596 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102597 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102598
102599 -- 4955764
102600 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102601 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102602
102603 -- 4458381 Public Sector Enh
102604
102605 --
102606 -- set accounting attributes for the line type
102607 --
102608 l_entered_amt_idx := 9;
102609 l_accted_amt_idx := 14;
102610 l_bflow_applied_to_amt_idx := NULL; -- 5132302
102611 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102612 l_rec_acct_attrs.array_char_value(1) := p_source_40;
102613 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
102614 l_rec_acct_attrs.array_num_value(2) := p_source_42;
102615 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102616 l_rec_acct_attrs.array_char_value(3) := p_source_62;
102617 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
102618 l_rec_acct_attrs.array_char_value(4) := p_source_63;
102619 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
102620 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
102621 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102622 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
102623 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
102624 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
102625 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
102626 l_rec_acct_attrs.array_char_value(8) := p_source_48;
102627 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
102631 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
102628 l_rec_acct_attrs.array_num_value(9) := p_source_41;
102629 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
102630 l_rec_acct_attrs.array_char_value(10) := p_source_49;
102632 l_rec_acct_attrs.array_date_value(11) := p_source_114;
102633 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
102634 l_rec_acct_attrs.array_num_value(12) := p_source_115;
102635 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
102636 l_rec_acct_attrs.array_char_value(13) := p_source_116;
102637 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
102638 l_rec_acct_attrs.array_num_value(14) := p_source_9;
102639 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
102640 l_rec_acct_attrs.array_char_value(15) := p_source_53;
102641 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
102642 l_rec_acct_attrs.array_num_value(16) := p_source_54;
102643 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
102644 l_rec_acct_attrs.array_num_value(17) := p_source_55;
102645 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
102646 l_rec_acct_attrs.array_char_value(18) := p_source_56;
102647 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
102648 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
102649 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
102650 l_rec_acct_attrs.array_char_value(20) := p_source_48;
102651 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
102652 l_rec_acct_attrs.array_num_value(21) := p_source_58;
102653 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
102654 l_rec_acct_attrs.array_num_value(22) := p_source_66;
102655 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
102656 l_rec_acct_attrs.array_num_value(23) := p_source_59;
102657
102658 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102659 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102660
102661 ---------------------------------------------------------------------------------------------------------------
102662 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102663 ---------------------------------------------------------------------------------------------------------------
102664 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102665
102666 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102667 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102668
102669 IF xla_accounting_cache_pkg.GetValueChar
102670 (p_source_code => 'LEDGER_CATEGORY_CODE'
102671 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102672 AND l_bflow_method_code = 'PRIOR_ENTRY'
102673 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102674 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102675 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102676 )
102677 THEN
102678 xla_ae_lines_pkg.BflowUpgEntry
102679 (p_business_method_code => l_bflow_method_code
102680 ,p_business_class_code => l_bflow_class_code
102681 ,p_balance_type => l_balance_type_code);
102682 ELSE
102683 NULL;
102684 -- No business flow processing for business flow method of NONE.
102685 END IF;
102686
102687 --
102688 -- call analytical criteria
102689 --
102690
102691 --
102692 -- call description
102693 --
102694 -- No description or it is inherited.
102695 --
102696 -- call ADRs
102697 -- Bug 4922099
102698 --
102699 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102700 (NVL(l_actual_upg_option, 'N') = 'O') OR
102701 (NVL(l_enc_upg_option, 'N') = 'O')
102702 )
102703 THEN
102704 NULL;
102705 --
102706 --
102707
102708 l_ccid := AcctDerRule_22(
102709 p_application_id => p_application_id
102710 , p_ae_header_id => l_ae_header_id
102711 , p_source_4 => p_source_4
102712 , p_source_4_meaning => p_source_4_meaning
102713 , p_source_5 => p_source_5
102714 , p_source_7 => p_source_7
102715 , p_source_7_meaning => p_source_7_meaning
102716 , p_source_8 => p_source_8
102717 , p_source_9 => p_source_9
102718 , p_source_10 => p_source_10
102719 , p_source_17 => p_source_17
102720 , p_source_30 => p_source_30
102721 , p_source_30_meaning => p_source_30_meaning
102722 , x_transaction_coa_id => l_adr_transaction_coa_id
102723 , x_accounting_coa_id => l_adr_accounting_coa_id
102724 , x_value_type_code => l_adr_value_type_code
102725 , p_side => 'NA'
102726 );
102727
102728 xla_ae_lines_pkg.set_ccid(
102729 p_code_combination_id => l_ccid
102730 , p_value_type_code => l_adr_value_type_code
102731 , p_transaction_coa_id => l_adr_transaction_coa_id
102732 , p_accounting_coa_id => l_adr_accounting_coa_id
102733 , p_adr_code => 'AP_ERV_TAXERV_CASH'
102734 , p_adr_type_code => 'S'
102735 , p_component_type => l_component_type
102739 , p_amb_context_code => l_amb_context_code
102736 , p_component_code => l_component_code
102737 , p_component_type_code => l_component_type_code
102738 , p_component_appl_id => l_component_appl_id
102740 , p_side => 'NA'
102741 );
102742
102743
102744 l_segment := AcctDerRule_4(
102745 p_application_id => p_application_id
102746 , p_ae_header_id => l_ae_header_id
102747 , p_source_4 => p_source_4
102748 , p_source_4_meaning => p_source_4_meaning
102749 , p_source_5 => p_source_5
102750 , p_source_7 => p_source_7
102751 , p_source_7_meaning => p_source_7_meaning
102752 , p_source_8 => p_source_8
102753 , p_source_9 => p_source_9
102754 , p_source_10 => p_source_10
102755 , x_transaction_coa_id => l_adr_transaction_coa_id
102756 , x_accounting_coa_id => l_adr_accounting_coa_id
102757 , x_flexfield_segment_code => l_adr_flexfield_segment_code
102758 , x_flex_value_set_id => l_adr_flex_value_set_id
102759 , x_value_type_code => l_adr_value_type_code
102760 , x_value_combination_id => l_adr_value_combination_id
102761 , x_value_segment_code => l_adr_value_segment_code
102762 , p_side => 'NA'
102763 , p_override_seg_flag => 'Y'
102764 );
102765
102766 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
102767
102768 xla_ae_lines_pkg.set_segment(
102769 p_to_segment_code => 'GL_ACCOUNT'
102770 , p_segment_value => l_segment
102771 , p_from_segment_code => l_adr_value_segment_code
102772 , p_from_combination_id => l_adr_value_combination_id
102773 , p_value_type_code => l_adr_value_type_code
102774 , p_transaction_coa_id => l_adr_transaction_coa_id
102775 , p_accounting_coa_id => l_adr_accounting_coa_id
102776 , p_flexfield_segment_code => l_adr_flexfield_segment_code
102777 , p_flex_value_set_id => l_adr_flex_value_set_id
102778 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
102779 , p_adr_type_code => 'S'
102780 , p_component_type => l_component_type
102781 , p_component_code => l_component_code
102782 , p_component_type_code => l_component_type_code
102783 , p_component_appl_id => l_component_appl_id
102784 , p_amb_context_code => l_amb_context_code
102785 , p_entity_code => 'AP_PAYMENTS'
102786 , p_event_class_code => 'REFUNDS'
102787 , p_side => 'NA'
102788 );
102789
102790 END IF;
102791
102792 l_segment := AcctDerRule_15(
102793 p_application_id => p_application_id
102794 , p_ae_header_id => l_ae_header_id
102795 , p_source_4 => p_source_4
102796 , p_source_4_meaning => p_source_4_meaning
102797 , p_source_7 => p_source_7
102798 , p_source_7_meaning => p_source_7_meaning
102799 , p_source_17 => p_source_17
102800 , x_transaction_coa_id => l_adr_transaction_coa_id
102801 , x_accounting_coa_id => l_adr_accounting_coa_id
102802 , x_flexfield_segment_code => l_adr_flexfield_segment_code
102803 , x_flex_value_set_id => l_adr_flex_value_set_id
102804 , x_value_type_code => l_adr_value_type_code
102805 , x_value_combination_id => l_adr_value_combination_id
102806 , x_value_segment_code => l_adr_value_segment_code
102807 , p_side => 'NA'
102808 , p_override_seg_flag => 'Y'
102809 );
102810
102811 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
102812
102813 xla_ae_lines_pkg.set_segment(
102814 p_to_segment_code => 'GL_BALANCING'
102815 , p_segment_value => l_segment
102816 , p_from_segment_code => l_adr_value_segment_code
102817 , p_from_combination_id => l_adr_value_combination_id
102818 , p_value_type_code => l_adr_value_type_code
102819 , p_transaction_coa_id => l_adr_transaction_coa_id
102820 , p_accounting_coa_id => l_adr_accounting_coa_id
102821 , p_flexfield_segment_code => l_adr_flexfield_segment_code
102822 , p_flex_value_set_id => l_adr_flex_value_set_id
102823 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
102824 , p_adr_type_code => 'S'
102825 , p_component_type => l_component_type
102826 , p_component_code => l_component_code
102827 , p_component_type_code => l_component_type_code
102828 , p_component_appl_id => l_component_appl_id
102829 , p_amb_context_code => l_amb_context_code
102830 , p_entity_code => 'AP_PAYMENTS'
102831 , p_event_class_code => 'REFUNDS'
102832 , p_side => 'NA'
102833 );
102834
102835 END IF;
102836
102837 --
102838 --
102839 END IF;
102840 --
102841 -- Bug 4922099
102842 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102843 (NVL(l_enc_upg_option, 'N') = 'O')
102844 ) AND
102845 (l_bflow_method_code = 'PRIOR_ENTRY')
102846 )
102847 THEN
102848 IF
102849 --
102850 1 = 2
102851 --
102852 THEN
102853 xla_accounting_err_pkg.build_message
102854 (p_appli_s_name => 'XLA'
102858 ,p_token_2 => 'LINE_TYPE_NAME'
102855 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102856 ,p_token_1 => 'LINE_NUMBER'
102857 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
102859 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
102860 l_component_type
102861 ,l_component_code
102862 ,l_component_type_code
102863 ,l_component_appl_id
102864 ,l_amb_context_code
102865 ,l_entity_code
102866 ,l_event_class_code
102867 )
102868 ,p_token_3 => 'OWNER'
102869 ,p_value_3 => xla_lookups_pkg.get_meaning(
102870 p_lookup_type => 'XLA_OWNER_TYPE'
102871 ,p_lookup_code => l_component_type_code
102872 )
102873 ,p_token_4 => 'PRODUCT_NAME'
102874 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102875 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102876 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102877 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102878 ,p_ae_header_id => NULL
102879 );
102880
102881 IF (C_LEVEL_ERROR>= g_log_level) THEN
102882 trace
102883 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102884 ,p_level => C_LEVEL_ERROR
102885 ,p_module => l_log_module);
102886 END IF;
102887 END IF;
102888 END IF;
102889 --
102890 --
102891 ------------------------------------------------------------------------------------------------
102892 -- 4219869 Business Flow
102893 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102894 -- Prior Entry. Currently, the following code is always generated.
102895 ------------------------------------------------------------------------------------------------
102896 XLA_AE_LINES_PKG.ValidateCurrentLine;
102897
102898 ------------------------------------------------------------------------------------
102899 -- 4219869 Business Flow
102900 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102901 ------------------------------------------------------------------------------------
102902 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102903
102904 ----------------------------------------------------------------------------------
102905 -- 4219869 Business Flow
102906 -- Update journal entry status -- Need to generate this within IF <condition>
102907 ----------------------------------------------------------------------------------
102908 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102909 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102910 ,p_balance_type_code => l_balance_type_code
102911 );
102912
102913 -------------------------------------------------------------------------------------------
102914 -- 4262811 - Generate the Accrual Reversal lines
102915 -------------------------------------------------------------------------------------------
102916 BEGIN
102917 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102918 (g_array_event(p_event_id).array_value_num('header_index'));
102919 IF l_acc_rev_flag IS NULL THEN
102920 l_acc_rev_flag := 'N';
102921 END IF;
102922 EXCEPTION
102923 WHEN OTHERS THEN
102924 l_acc_rev_flag := 'N';
102925 END;
102926 --
102927 IF (l_acc_rev_flag = 'Y') THEN
102928
102929 -- 4645092 ------------------------------------------------------------------------------
102930 -- To allow MPA report to determine if it should generate report process
102931 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102932 ------------------------------------------------------------------------------------------
102933
102934 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102935 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102936 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
102937 -- call ADRs
102938 -- Bug 4922099
102939 --
102940 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102941 (NVL(l_actual_upg_option, 'N') = 'O') OR
102942 (NVL(l_enc_upg_option, 'N') = 'O')
102943 )
102944 THEN
102945 NULL;
102949 l_ccid := AcctDerRule_22(
102946 --
102947 --
102948
102950 p_application_id => p_application_id
102951 , p_ae_header_id => l_ae_header_id
102952 , p_source_4 => p_source_4
102953 , p_source_4_meaning => p_source_4_meaning
102954 , p_source_5 => p_source_5
102955 , p_source_7 => p_source_7
102956 , p_source_7_meaning => p_source_7_meaning
102957 , p_source_8 => p_source_8
102958 , p_source_9 => p_source_9
102959 , p_source_10 => p_source_10
102960 , p_source_17 => p_source_17
102961 , p_source_30 => p_source_30
102962 , p_source_30_meaning => p_source_30_meaning
102963 , x_transaction_coa_id => l_adr_transaction_coa_id
102964 , x_accounting_coa_id => l_adr_accounting_coa_id
102965 , x_value_type_code => l_adr_value_type_code
102966 , p_side => 'NA'
102967 );
102968
102969 xla_ae_lines_pkg.set_ccid(
102970 p_code_combination_id => l_ccid
102971 , p_value_type_code => l_adr_value_type_code
102972 , p_transaction_coa_id => l_adr_transaction_coa_id
102973 , p_accounting_coa_id => l_adr_accounting_coa_id
102974 , p_adr_code => 'AP_ERV_TAXERV_CASH'
102975 , p_adr_type_code => 'S'
102976 , p_component_type => l_component_type
102977 , p_component_code => l_component_code
102978 , p_component_type_code => l_component_type_code
102979 , p_component_appl_id => l_component_appl_id
102980 , p_amb_context_code => l_amb_context_code
102981 , p_side => 'NA'
102982 );
102983
102984
102985 l_segment := AcctDerRule_4(
102986 p_application_id => p_application_id
102987 , p_ae_header_id => l_ae_header_id
102988 , p_source_4 => p_source_4
102989 , p_source_4_meaning => p_source_4_meaning
102990 , p_source_5 => p_source_5
102991 , p_source_7 => p_source_7
102992 , p_source_7_meaning => p_source_7_meaning
102993 , p_source_8 => p_source_8
102994 , p_source_9 => p_source_9
102995 , p_source_10 => p_source_10
102996 , x_transaction_coa_id => l_adr_transaction_coa_id
102997 , x_accounting_coa_id => l_adr_accounting_coa_id
102998 , x_flexfield_segment_code => l_adr_flexfield_segment_code
102999 , x_flex_value_set_id => l_adr_flex_value_set_id
103000 , x_value_type_code => l_adr_value_type_code
103001 , x_value_combination_id => l_adr_value_combination_id
103002 , x_value_segment_code => l_adr_value_segment_code
103003 , p_side => 'NA'
103004 , p_override_seg_flag => 'Y'
103005 );
103006
103007 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
103008
103009 xla_ae_lines_pkg.set_segment(
103010 p_to_segment_code => 'GL_ACCOUNT'
103011 , p_segment_value => l_segment
103012 , p_from_segment_code => l_adr_value_segment_code
103013 , p_from_combination_id => l_adr_value_combination_id
103014 , p_value_type_code => l_adr_value_type_code
103015 , p_transaction_coa_id => l_adr_transaction_coa_id
103016 , p_accounting_coa_id => l_adr_accounting_coa_id
103017 , p_flexfield_segment_code => l_adr_flexfield_segment_code
103018 , p_flex_value_set_id => l_adr_flex_value_set_id
103019 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
103020 , p_adr_type_code => 'S'
103021 , p_component_type => l_component_type
103022 , p_component_code => l_component_code
103023 , p_component_type_code => l_component_type_code
103024 , p_component_appl_id => l_component_appl_id
103025 , p_amb_context_code => l_amb_context_code
103026 , p_entity_code => 'AP_PAYMENTS'
103027 , p_event_class_code => 'REFUNDS'
103028 , p_side => 'NA'
103029 );
103030
103031 END IF;
103032
103033 l_segment := AcctDerRule_15(
103034 p_application_id => p_application_id
103035 , p_ae_header_id => l_ae_header_id
103036 , p_source_4 => p_source_4
103037 , p_source_4_meaning => p_source_4_meaning
103038 , p_source_7 => p_source_7
103039 , p_source_7_meaning => p_source_7_meaning
103040 , p_source_17 => p_source_17
103041 , x_transaction_coa_id => l_adr_transaction_coa_id
103042 , x_accounting_coa_id => l_adr_accounting_coa_id
103043 , x_flexfield_segment_code => l_adr_flexfield_segment_code
103044 , x_flex_value_set_id => l_adr_flex_value_set_id
103045 , x_value_type_code => l_adr_value_type_code
103046 , x_value_combination_id => l_adr_value_combination_id
103047 , x_value_segment_code => l_adr_value_segment_code
103048 , p_side => 'NA'
103049 , p_override_seg_flag => 'Y'
103050 );
103051
103052 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
103053
103054 xla_ae_lines_pkg.set_segment(
103055 p_to_segment_code => 'GL_BALANCING'
103056 , p_segment_value => l_segment
103057 , p_from_segment_code => l_adr_value_segment_code
103058 , p_from_combination_id => l_adr_value_combination_id
103059 , p_value_type_code => l_adr_value_type_code
103060 , p_transaction_coa_id => l_adr_transaction_coa_id
103061 , p_accounting_coa_id => l_adr_accounting_coa_id
103065 , p_adr_type_code => 'S'
103062 , p_flexfield_segment_code => l_adr_flexfield_segment_code
103063 , p_flex_value_set_id => l_adr_flex_value_set_id
103064 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
103066 , p_component_type => l_component_type
103067 , p_component_code => l_component_code
103068 , p_component_type_code => l_component_type_code
103069 , p_component_appl_id => l_component_appl_id
103070 , p_amb_context_code => l_amb_context_code
103071 , p_entity_code => 'AP_PAYMENTS'
103072 , p_event_class_code => 'REFUNDS'
103073 , p_side => 'NA'
103074 );
103075
103076 END IF;
103077
103078 --
103079 --
103080 END IF;
103081
103082 --
103083 -- Update the line information that should be overwritten
103084 --
103085 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103086 p_header_num => 1);
103087 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
103088
103089 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103090
103091 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
103092 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103093 END IF;
103094
103095 --
103096 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103097 --
103098 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103099 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
103100 ELSE
103101 ---------------------------------------------------------------------------------------------------
103102 -- 4262811a Switch Sign
103103 ---------------------------------------------------------------------------------------------------
103104 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
103105 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103106 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103107 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103108 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103109 -- 5132302
103110 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103111 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103112
103113 END IF;
103114
103115 -- 4955764
103116 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103117 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103118
103119
103120 XLA_AE_LINES_PKG.ValidateCurrentLine;
103121 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103122
103123 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103124 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103125 ,p_balance_type_code => l_balance_type_code);
103126
103127 END IF;
103128
103129 -----------------------------------------------------------------------------------------
103130 -- 4262811 Multiperiod Accounting
103131 -----------------------------------------------------------------------------------------
103132 -- No MPA option is assigned.
103133
103134
103135 END IF;
103136 END IF;
103137 --
103138
103139 --
103140 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103141 trace
103142 (p_msg => 'END of AcctLineType_180'
103143 ,p_level => C_LEVEL_PROCEDURE
103144 ,p_module => l_log_module);
103145 END IF;
103146 --
103147 EXCEPTION
103148 WHEN xla_exceptions_pkg.application_exception THEN
103149 RAISE;
103150 WHEN OTHERS THEN
103151 xla_exceptions_pkg.raise_message
103152 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_180');
103153 END AcctLineType_180;
103154 --
103155
103156 ---------------------------------------
103157 --
103158 -- PRIVATE FUNCTION
103159 -- AcctLineType_181
103160 --
103161 ---------------------------------------
103162 PROCEDURE AcctLineType_181 (
103163 p_application_id IN NUMBER
103164 ,p_event_id IN NUMBER
103165 ,p_calculate_acctd_flag IN VARCHAR2
103166 ,p_calculate_g_l_flag IN VARCHAR2
103167 ,p_actual_flag IN OUT VARCHAR2
103168 ,p_balance_type_code OUT VARCHAR2
103169 ,p_gain_or_loss_ref OUT VARCHAR2
103170
103171 --Payment Distribution (Cleared Rate) Ledger Amount
103172 , p_source_10 IN NUMBER
103173 --Invoice Distribution Account
103174 , p_source_17 IN NUMBER
103175 --Invoice Distribution Type
103176 , p_source_20 IN VARCHAR2
103177 , p_source_20_meaning IN VARCHAR2
103178 --When to Account for Payment Option
103179 , p_source_38 IN VARCHAR2
103180 --Payment Distribution Type
103184 , p_source_40 IN VARCHAR2
103181 , p_source_39 IN VARCHAR2
103182 , p_source_39_meaning IN VARCHAR2
103183 --Accounting Reversal Indicator
103185 --Payment Distribution Amount
103186 , p_source_41 IN NUMBER
103187 --Business Flow Accounts Payable Application Identifier
103188 , p_source_42 IN NUMBER
103189 --Business Flow Payment Distribution Type
103190 , p_source_43 IN VARCHAR2
103191 --Business Flow Payment Entity Code
103192 , p_source_44 IN VARCHAR2
103193 --Business Flow Payment Distribution Identifier
103194 , p_source_45 IN NUMBER
103195 --Business Flow Payment Identifier
103196 , p_source_46 IN NUMBER
103197 --Payment Distribution Identifier
103198 , p_source_47 IN NUMBER
103199 --Distribution Link Type
103200 , p_source_48 IN VARCHAR2
103201 --Payment Currency Code
103202 , p_source_49 IN VARCHAR2
103203 --Override Accounted Amount Indicator
103204 , p_source_53 IN VARCHAR2
103205 , p_source_53_meaning IN VARCHAR2
103206 --Payment Supplier Identifier
103207 , p_source_54 IN NUMBER
103208 --Payment Supplier Site Identifier
103209 , p_source_55 IN NUMBER
103210 --Third Party Type
103211 , p_source_56 IN VARCHAR2
103212 --Payment Distribution Reversed Identifier
103213 , p_source_57 IN NUMBER
103214 --Invoice Distribution Tax Line Identifier
103215 , p_source_58 IN NUMBER
103216 --Invoice Distribution Summary Tax Line Identifier
103217 , p_source_59 IN NUMBER
103218 --Accrue on Receipt Option
103219 , p_source_100 IN VARCHAR2
103220 , p_source_100_meaning IN VARCHAR2
103221 --Cleared Exchange Date
103222 , p_source_107 IN DATE
103223 --Cleared Exchange Rate
103224 , p_source_108 IN NUMBER
103225 --Cleared Exchange Rate Type
103226 , p_source_109 IN VARCHAR2
103227 )
103228 IS
103229
103230 l_component_type VARCHAR2(80);
103231 l_component_code VARCHAR2(30);
103232 l_component_type_code VARCHAR2(1);
103233 l_component_appl_id INTEGER;
103234 l_amb_context_code VARCHAR2(30);
103235 l_entity_code VARCHAR2(30);
103236 l_event_class_code VARCHAR2(30);
103237 l_ae_header_id NUMBER;
103238 l_event_type_code VARCHAR2(30);
103239 l_line_definition_code VARCHAR2(30);
103240 l_line_definition_owner_code VARCHAR2(1);
103241 --
103242 -- adr variables
103243 l_segment VARCHAR2(30);
103244 l_ccid NUMBER;
103245 l_adr_transaction_coa_id NUMBER;
103246 l_adr_accounting_coa_id NUMBER;
103247 l_adr_flexfield_segment_code VARCHAR2(30);
103248 l_adr_flex_value_set_id NUMBER;
103249 l_adr_value_type_code VARCHAR2(30);
103250 l_adr_value_combination_id NUMBER;
103251 l_adr_value_segment_code VARCHAR2(30);
103252
103253 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
103254 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
103255 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
103256 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
103257
103258 -- 4262811 Variables ------------------------------------------------------------------------------------------
103259 l_entered_amt_idx NUMBER;
103260 l_accted_amt_idx NUMBER;
103261 l_acc_rev_flag VARCHAR2(1);
103262 l_accrual_line_num NUMBER;
103263 l_tmp_amt NUMBER;
103264 l_acc_rev_natural_side_code VARCHAR2(1);
103265
103266 l_num_entries NUMBER;
103267 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
103268 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
103269 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
103270 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
103271 l_recog_line_1 NUMBER;
103272 l_recog_line_2 NUMBER;
103273
103274 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
103275 l_bflow_applied_to_amt NUMBER; -- 5132302
103276 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
103277
103278 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103279
103280 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
103281 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
103282
103283 ---------------------------------------------------------------------------------------------------------------
103284
103285
103286 --
103287 -- bulk performance
103288 --
103289 l_balance_type_code VARCHAR2(1);
103290 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
103291 l_log_module VARCHAR2(240);
103292
103293 --
103294 -- Upgrade strategy
103295 --
103296 l_actual_upg_option VARCHAR2(1);
103297 l_enc_upg_option VARCHAR2(1);
103298
103299 --
103300 BEGIN
103301 --
103302 IF g_log_enabled THEN
103303 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_181';
103304 END IF;
103305 --
103306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103307
103308 trace
103309 (p_msg => 'BEGIN of AcctLineType_181'
103313 END IF;
103310 ,p_level => C_LEVEL_PROCEDURE
103311 ,p_module => l_log_module);
103312
103314 --
103315 l_component_type := 'AMB_JLT';
103316 l_component_code := 'AP_TAX_INV_PRICE_VAR_CLEAR';
103317 l_component_type_code := 'S';
103318 l_component_appl_id := 200;
103319 l_amb_context_code := 'DEFAULT';
103320 l_entity_code := 'AP_PAYMENTS';
103321 l_event_class_code := 'RECONCILED PAYMENTS';
103322 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
103323 l_line_definition_owner_code := 'S';
103324 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
103325 --
103326 l_balance_type_code := 'A';
103327 l_segment := NULL;
103328 l_ccid := NULL;
103329 l_adr_transaction_coa_id := NULL;
103330 l_adr_accounting_coa_id := NULL;
103331 l_adr_flexfield_segment_code := NULL;
103332 l_adr_flex_value_set_id := NULL;
103333 l_adr_value_type_code := NULL;
103334 l_adr_value_combination_id := NULL;
103335 l_adr_value_segment_code := NULL;
103336
103337 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
103338 l_bflow_class_code := ''; -- 4219869 Business Flow
103339 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
103340 l_budgetary_control_flag := 'N';
103341
103342 l_bflow_applied_to_amt_idx := NULL; -- 5132302
103343 l_bflow_applied_to_amt := NULL; -- 5132302
103344 l_entered_amt_idx := NULL; -- 4262811
103345 l_accted_amt_idx := NULL; -- 4262811
103346 l_acc_rev_flag := NULL; -- 4262811
103347 l_accrual_line_num := NULL; -- 4262811
103348 l_tmp_amt := NULL; -- 4262811
103349 --
103350
103351 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103352 l_balance_type_code <> 'B' THEN
103353 IF NVL(p_source_38,'
103354 ') = 'CLEAR_CLEAR' AND
103355 NVL(p_source_20,'
103356 ') = 'TIPV' AND
103357 (NVL(p_source_39,'
103358 ') = 'CASH' OR
103359 NVL(p_source_39,'
103360 ') = 'AWT' OR
103361 NVL(p_source_39,'
103362 ') = 'DISCOUNT') AND
103363 NVL(p_source_100,'
103364 ') = 'Y'
103365 THEN
103366
103367 --
103368 XLA_AE_LINES_PKG.SetNewLine;
103369
103370 p_balance_type_code := l_balance_type_code;
103371 -- set the flag so later we will know whether the gain loss line needs to be created
103372
103373 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103374 p_actual_flag :='A';
103375 END IF;
103376
103377 --
103378 -- bulk performance
103379 --
103380 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103381 p_header_num => 0); -- 4262811
103382 --
103383 -- set accounting line options
103384 --
103385 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103386 p_natural_side_code => 'D'
103387 , p_gain_or_loss_flag => 'N'
103388 , p_gl_transfer_mode_code => 'S'
103389 , p_acct_entry_type_code => 'A'
103390 , p_switch_side_flag => 'Y'
103391 , p_merge_duplicate_code => 'A'
103392 );
103393 --
103394 l_acc_rev_natural_side_code := 'C'; -- 4262811
103395 --
103396 --
103397 -- set accounting line type info
103398 --
103399 xla_ae_lines_pkg.SetAcctLineType
103400 (p_component_type => l_component_type
103401 ,p_event_type_code => l_event_type_code
103402 ,p_line_definition_owner_code => l_line_definition_owner_code
103403 ,p_line_definition_code => l_line_definition_code
103404 ,p_accounting_line_code => l_component_code
103405 ,p_accounting_line_type_code => l_component_type_code
103406 ,p_accounting_line_appl_id => l_component_appl_id
103407 ,p_amb_context_code => l_amb_context_code
103408 ,p_entity_code => l_entity_code
103409 ,p_event_class_code => l_event_class_code);
103410 --
103411 -- set accounting class
103412 --
103413 xla_ae_lines_pkg.SetAcctClass(
103414 p_accounting_class_code => 'TIPV'
103415 , p_ae_header_id => l_ae_header_id
103416 );
103417
103418 --
103419 -- set rounding class
103420 --
103421 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103422 'TIPV';
103423
103424 --
103425 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103426 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103427 --
103428 -- bulk performance
103429 --
103430 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103431
103432 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103433 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103434
103435 -- 4955764
103436 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103437 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103438
103439 -- 4458381 Public Sector Enh
103440
103441 --
103445 l_accted_amt_idx := 15;
103442 -- set accounting attributes for the line type
103443 --
103444 l_entered_amt_idx := 10;
103446 l_bflow_applied_to_amt_idx := 2; -- 5132302
103447 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103448 l_rec_acct_attrs.array_char_value(1) := p_source_40;
103449 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
103450 l_rec_acct_attrs.array_num_value(2) := p_source_41;
103451 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
103452 l_rec_acct_attrs.array_num_value(3) := p_source_42;
103453 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103454 l_rec_acct_attrs.array_char_value(4) := p_source_43;
103455 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
103456 l_rec_acct_attrs.array_char_value(5) := p_source_44;
103457 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
103458 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
103459 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103460 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
103461 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
103462 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
103463 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
103464 l_rec_acct_attrs.array_char_value(9) := p_source_48;
103465 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
103466 l_rec_acct_attrs.array_num_value(10) := p_source_41;
103467 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
103468 l_rec_acct_attrs.array_char_value(11) := p_source_49;
103469 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
103470 l_rec_acct_attrs.array_date_value(12) := p_source_107;
103471 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
103472 l_rec_acct_attrs.array_num_value(13) := p_source_108;
103473 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
103474 l_rec_acct_attrs.array_char_value(14) := p_source_109;
103475 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
103476 l_rec_acct_attrs.array_num_value(15) := p_source_10;
103477 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
103478 l_rec_acct_attrs.array_char_value(16) := p_source_53;
103479 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
103480 l_rec_acct_attrs.array_num_value(17) := p_source_54;
103481 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
103482 l_rec_acct_attrs.array_num_value(18) := p_source_55;
103483 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
103484 l_rec_acct_attrs.array_char_value(19) := p_source_56;
103485 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
103486 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
103487 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
103488 l_rec_acct_attrs.array_char_value(21) := p_source_48;
103489 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
103490 l_rec_acct_attrs.array_num_value(22) := p_source_58;
103491 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
103492 l_rec_acct_attrs.array_num_value(23) := p_source_58;
103493 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
103494 l_rec_acct_attrs.array_num_value(24) := p_source_59;
103495
103496 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103497 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103498
103499 ---------------------------------------------------------------------------------------------------------------
103500 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103501 ---------------------------------------------------------------------------------------------------------------
103502 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103503
103504 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103505 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103506
103507 IF xla_accounting_cache_pkg.GetValueChar
103508 (p_source_code => 'LEDGER_CATEGORY_CODE'
103509 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103510 AND l_bflow_method_code = 'PRIOR_ENTRY'
103511 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103512 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103513 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103514 )
103515 THEN
103516 xla_ae_lines_pkg.BflowUpgEntry
103517 (p_business_method_code => l_bflow_method_code
103518 ,p_business_class_code => l_bflow_class_code
103519 ,p_balance_type => l_balance_type_code);
103520 ELSE
103521 NULL;
103522 -- No business flow processing for business flow method of NONE.
103523 END IF;
103524
103525 --
103526 -- call analytical criteria
103527 --
103528
103529 --
103530 -- call description
103531 --
103532 -- No description or it is inherited.
103533 --
103534 -- call ADRs
103535 -- Bug 4922099
103536 --
103537 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103538 (NVL(l_actual_upg_option, 'N') = 'O') OR
103539 (NVL(l_enc_upg_option, 'N') = 'O')
103540 )
103541 THEN
103542 NULL;
103543 --
103547 p_application_id => p_application_id
103544 --
103545
103546 l_ccid := AcctDerRule_26(
103548 , p_ae_header_id => l_ae_header_id
103549 , p_source_17 => p_source_17
103550 , x_transaction_coa_id => l_adr_transaction_coa_id
103551 , x_accounting_coa_id => l_adr_accounting_coa_id
103552 , x_value_type_code => l_adr_value_type_code
103553 , p_side => 'NA'
103554 );
103555
103556 xla_ae_lines_pkg.set_ccid(
103557 p_code_combination_id => l_ccid
103558 , p_value_type_code => l_adr_value_type_code
103559 , p_transaction_coa_id => l_adr_transaction_coa_id
103560 , p_accounting_coa_id => l_adr_accounting_coa_id
103561 , p_adr_code => 'AP_INVOICE_DIST'
103562 , p_adr_type_code => 'S'
103563 , p_component_type => l_component_type
103564 , p_component_code => l_component_code
103565 , p_component_type_code => l_component_type_code
103566 , p_component_appl_id => l_component_appl_id
103567 , p_amb_context_code => l_amb_context_code
103568 , p_side => 'NA'
103569 );
103570
103571
103572 --
103573 --
103574 END IF;
103575 --
103576 -- Bug 4922099
103577 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103578 (NVL(l_enc_upg_option, 'N') = 'O')
103579 ) AND
103580 (l_bflow_method_code = 'PRIOR_ENTRY')
103581 )
103582 THEN
103583 IF
103584 --
103585 1 = 2
103586 --
103587 THEN
103588 xla_accounting_err_pkg.build_message
103589 (p_appli_s_name => 'XLA'
103590 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103591 ,p_token_1 => 'LINE_NUMBER'
103592 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
103593 ,p_token_2 => 'LINE_TYPE_NAME'
103594 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
103595 l_component_type
103596 ,l_component_code
103597 ,l_component_type_code
103598 ,l_component_appl_id
103599 ,l_amb_context_code
103600 ,l_entity_code
103601 ,l_event_class_code
103602 )
103603 ,p_token_3 => 'OWNER'
103604 ,p_value_3 => xla_lookups_pkg.get_meaning(
103605 p_lookup_type => 'XLA_OWNER_TYPE'
103606 ,p_lookup_code => l_component_type_code
103607 )
103608 ,p_token_4 => 'PRODUCT_NAME'
103609 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
103610 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
103611 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
103612 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
103613 ,p_ae_header_id => NULL
103614 );
103615
103616 IF (C_LEVEL_ERROR>= g_log_level) THEN
103617 trace
103618 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103619 ,p_level => C_LEVEL_ERROR
103620 ,p_module => l_log_module);
103621 END IF;
103622 END IF;
103623 END IF;
103624 --
103625 --
103626 ------------------------------------------------------------------------------------------------
103627 -- 4219869 Business Flow
103628 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
103629 -- Prior Entry. Currently, the following code is always generated.
103630 ------------------------------------------------------------------------------------------------
103631 XLA_AE_LINES_PKG.ValidateCurrentLine;
103632
103633 ------------------------------------------------------------------------------------
103634 -- 4219869 Business Flow
103635 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
103636 ------------------------------------------------------------------------------------
103637 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103638
103639 ----------------------------------------------------------------------------------
103640 -- 4219869 Business Flow
103641 -- Update journal entry status -- Need to generate this within IF <condition>
103642 ----------------------------------------------------------------------------------
103646 );
103643 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103644 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
103645 ,p_balance_type_code => l_balance_type_code
103647
103648 -------------------------------------------------------------------------------------------
103649 -- 4262811 - Generate the Accrual Reversal lines
103650 -------------------------------------------------------------------------------------------
103651 BEGIN
103652 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
103653 (g_array_event(p_event_id).array_value_num('header_index'));
103654 IF l_acc_rev_flag IS NULL THEN
103655 l_acc_rev_flag := 'N';
103656 END IF;
103657 EXCEPTION
103658 WHEN OTHERS THEN
103659 l_acc_rev_flag := 'N';
103660 END;
103661 --
103662 IF (l_acc_rev_flag = 'Y') THEN
103663
103664 -- 4645092 ------------------------------------------------------------------------------
103665 -- To allow MPA report to determine if it should generate report process
103666 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
103667 ------------------------------------------------------------------------------------------
103668
103669 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
103670 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
103671 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
103672 -- call ADRs
103673 -- Bug 4922099
103674 --
103675 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103676 (NVL(l_actual_upg_option, 'N') = 'O') OR
103677 (NVL(l_enc_upg_option, 'N') = 'O')
103678 )
103679 THEN
103680 NULL;
103681 --
103682 --
103683
103684 l_ccid := AcctDerRule_26(
103685 p_application_id => p_application_id
103686 , p_ae_header_id => l_ae_header_id
103687 , p_source_17 => p_source_17
103688 , x_transaction_coa_id => l_adr_transaction_coa_id
103689 , x_accounting_coa_id => l_adr_accounting_coa_id
103690 , x_value_type_code => l_adr_value_type_code
103691 , p_side => 'NA'
103692 );
103693
103694 xla_ae_lines_pkg.set_ccid(
103695 p_code_combination_id => l_ccid
103696 , p_value_type_code => l_adr_value_type_code
103697 , p_transaction_coa_id => l_adr_transaction_coa_id
103698 , p_accounting_coa_id => l_adr_accounting_coa_id
103699 , p_adr_code => 'AP_INVOICE_DIST'
103700 , p_adr_type_code => 'S'
103701 , p_component_type => l_component_type
103702 , p_component_code => l_component_code
103703 , p_component_type_code => l_component_type_code
103704 , p_component_appl_id => l_component_appl_id
103705 , p_amb_context_code => l_amb_context_code
103706 , p_side => 'NA'
103707 );
103708
103709
103710 --
103711 --
103712 END IF;
103713
103714 --
103715 -- Update the line information that should be overwritten
103716 --
103717 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103718 p_header_num => 1);
103719 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
103720
103721 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103722
103723 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
103724 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103725 END IF;
103726
103727 --
103728 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103729 --
103730 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103731 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
103732 ELSE
103733 ---------------------------------------------------------------------------------------------------
103734 -- 4262811a Switch Sign
103735 ---------------------------------------------------------------------------------------------------
103736 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
103737 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103738 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103739 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103740 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103741 -- 5132302
103742 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103743 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103744
103745 END IF;
103746
103747 -- 4955764
103748 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103749 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103750
103751
103752 XLA_AE_LINES_PKG.ValidateCurrentLine;
103753 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103754
103758
103755 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103756 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103757 ,p_balance_type_code => l_balance_type_code);
103759 END IF;
103760
103761 -----------------------------------------------------------------------------------------
103762 -- 4262811 Multiperiod Accounting
103763 -----------------------------------------------------------------------------------------
103764 -- No MPA option is assigned.
103765
103766
103767 END IF;
103768 END IF;
103769 --
103770
103771 --
103772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103773 trace
103774 (p_msg => 'END of AcctLineType_181'
103775 ,p_level => C_LEVEL_PROCEDURE
103776 ,p_module => l_log_module);
103777 END IF;
103778 --
103779 EXCEPTION
103780 WHEN xla_exceptions_pkg.application_exception THEN
103781 RAISE;
103782 WHEN OTHERS THEN
103783 xla_exceptions_pkg.raise_message
103784 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_181');
103785 END AcctLineType_181;
103786 --
103787
103788 ---------------------------------------
103789 --
103790 -- PRIVATE FUNCTION
103791 -- AcctLineType_182
103792 --
103793 ---------------------------------------
103794 PROCEDURE AcctLineType_182 (
103795 p_application_id IN NUMBER
103796 ,p_event_id IN NUMBER
103797 ,p_calculate_acctd_flag IN VARCHAR2
103798 ,p_calculate_g_l_flag IN VARCHAR2
103799 ,p_actual_flag IN OUT VARCHAR2
103800 ,p_balance_type_code OUT VARCHAR2
103801 ,p_gain_or_loss_ref OUT VARCHAR2
103802
103803 --Payment Distribution (Payment Rate) Ledger Amount
103804 , p_source_9 IN NUMBER
103805 --Invoice Distribution Type
103806 , p_source_20 IN VARCHAR2
103807 , p_source_20_meaning IN VARCHAR2
103808 --When to Account for Payment Option
103809 , p_source_38 IN VARCHAR2
103810 --Payment Distribution Type
103811 , p_source_39 IN VARCHAR2
103812 , p_source_39_meaning IN VARCHAR2
103813 --Accounting Reversal Indicator
103814 , p_source_40 IN VARCHAR2
103815 --Payment Distribution Amount
103816 , p_source_41 IN NUMBER
103817 --Business Flow Accounts Payable Application Identifier
103818 , p_source_42 IN NUMBER
103819 --Payment Distribution Identifier
103820 , p_source_47 IN NUMBER
103821 --Distribution Link Type
103822 , p_source_48 IN VARCHAR2
103823 --Payment Currency Code
103824 , p_source_49 IN VARCHAR2
103825 --Override Accounted Amount Indicator
103826 , p_source_53 IN VARCHAR2
103827 , p_source_53_meaning IN VARCHAR2
103828 --Third Party Type
103829 , p_source_56 IN VARCHAR2
103830 --Payment Distribution Reversed Identifier
103831 , p_source_57 IN NUMBER
103832 --Invoice Distribution Tax Line Identifier
103833 , p_source_58 IN NUMBER
103834 --Invoice Distribution Summary Tax Line Identifier
103835 , p_source_59 IN NUMBER
103836 --Business Flow Invoice Distribution Type
103837 , p_source_62 IN VARCHAR2
103838 --Business Flow Invoice Entity Code
103839 , p_source_63 IN VARCHAR2
103840 --Business Flow Invoice Distribution Identifier
103841 , p_source_64 IN NUMBER
103842 --Business Flow Invoice Identifier
103843 , p_source_65 IN NUMBER
103844 --Purchasing Encumbrance Option
103845 , p_source_102 IN VARCHAR2
103846 , p_source_102_meaning IN VARCHAR2
103847 --Invoice Encumbered Option
103848 , p_source_104 IN VARCHAR2
103849 , p_source_104_meaning IN VARCHAR2
103850 )
103851 IS
103852
103853 l_component_type VARCHAR2(80);
103854 l_component_code VARCHAR2(30);
103855 l_component_type_code VARCHAR2(1);
103856 l_component_appl_id INTEGER;
103857 l_amb_context_code VARCHAR2(30);
103858 l_entity_code VARCHAR2(30);
103859 l_event_class_code VARCHAR2(30);
103860 l_ae_header_id NUMBER;
103861 l_event_type_code VARCHAR2(30);
103862 l_line_definition_code VARCHAR2(30);
103863 l_line_definition_owner_code VARCHAR2(1);
103864 --
103865 -- adr variables
103866 l_segment VARCHAR2(30);
103867 l_ccid NUMBER;
103868 l_adr_transaction_coa_id NUMBER;
103869 l_adr_accounting_coa_id NUMBER;
103870 l_adr_flexfield_segment_code VARCHAR2(30);
103871 l_adr_flex_value_set_id NUMBER;
103872 l_adr_value_type_code VARCHAR2(30);
103873 l_adr_value_combination_id NUMBER;
103874 l_adr_value_segment_code VARCHAR2(30);
103875
103876 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
103877 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
103878 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
103879 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
103880
103881 -- 4262811 Variables ------------------------------------------------------------------------------------------
103882 l_entered_amt_idx NUMBER;
103883 l_accted_amt_idx NUMBER;
103884 l_acc_rev_flag VARCHAR2(1);
103885 l_accrual_line_num NUMBER;
103886 l_tmp_amt NUMBER;
103887 l_acc_rev_natural_side_code VARCHAR2(1);
103891 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
103888
103889 l_num_entries NUMBER;
103890 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
103892 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
103893 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
103894 l_recog_line_1 NUMBER;
103895 l_recog_line_2 NUMBER;
103896
103897 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
103898 l_bflow_applied_to_amt NUMBER; -- 5132302
103899 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
103900
103901 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103902
103903 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
103904 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
103905
103906 ---------------------------------------------------------------------------------------------------------------
103907
103908
103909 --
103910 -- bulk performance
103911 --
103912 l_balance_type_code VARCHAR2(1);
103913 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
103914 l_log_module VARCHAR2(240);
103915
103916 --
103917 -- Upgrade strategy
103918 --
103919 l_actual_upg_option VARCHAR2(1);
103920 l_enc_upg_option VARCHAR2(1);
103921
103922 --
103923 BEGIN
103924 --
103925 IF g_log_enabled THEN
103926 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_182';
103927 END IF;
103928 --
103929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103930
103931 trace
103932 (p_msg => 'BEGIN of AcctLineType_182'
103933 ,p_level => C_LEVEL_PROCEDURE
103934 ,p_module => l_log_module);
103935
103936 END IF;
103937 --
103938 l_component_type := 'AMB_JLT';
103939 l_component_code := 'AP_TAX_INV_PRICE_VAR_CLR_ENC';
103940 l_component_type_code := 'S';
103941 l_component_appl_id := 200;
103942 l_amb_context_code := 'DEFAULT';
103943 l_entity_code := 'AP_PAYMENTS';
103944 l_event_class_code := 'RECONCILED PAYMENTS';
103945 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
103946 l_line_definition_owner_code := 'S';
103947 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
103948 --
103949 l_balance_type_code := 'E';
103950 l_segment := NULL;
103951 l_ccid := NULL;
103952 l_adr_transaction_coa_id := NULL;
103953 l_adr_accounting_coa_id := NULL;
103954 l_adr_flexfield_segment_code := NULL;
103955 l_adr_flex_value_set_id := NULL;
103956 l_adr_value_type_code := NULL;
103957 l_adr_value_combination_id := NULL;
103958 l_adr_value_segment_code := NULL;
103959
103960 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
103961 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
103962 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
103963 l_budgetary_control_flag := 'N';
103964
103965 l_bflow_applied_to_amt_idx := NULL; -- 5132302
103966 l_bflow_applied_to_amt := NULL; -- 5132302
103967 l_entered_amt_idx := NULL; -- 4262811
103968 l_accted_amt_idx := NULL; -- 4262811
103969 l_acc_rev_flag := NULL; -- 4262811
103970 l_accrual_line_num := NULL; -- 4262811
103971 l_tmp_amt := NULL; -- 4262811
103972 --
103973
103974 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103975 l_balance_type_code <> 'B' THEN
103976 IF NVL(p_source_38,'
103977 ') = 'CLEAR_CLEAR' AND
103978 NVL(p_source_20,'
103979 ') = 'TIPV' AND
103980 (NVL(p_source_39,'
103981 ') = 'CASH' OR
103982 NVL(p_source_39,'
103983 ') = 'DISCOUNT') AND
103984 NVL(p_source_102,'
103985 ') = 'Y' AND
103986 NVL(p_source_104,'
103987 ') = 'Y'
103988 THEN
103989
103990 --
103991 XLA_AE_LINES_PKG.SetNewLine;
103992
103993 p_balance_type_code := l_balance_type_code;
103994 -- set the flag so later we will know whether the gain loss line needs to be created
103995
103996 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103997 p_actual_flag :='A';
103998 END IF;
103999
104000 --
104001 -- bulk performance
104002 --
104003 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104004 p_header_num => 0); -- 4262811
104005 --
104006 -- set accounting line options
104007 --
104008 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104009 p_natural_side_code => 'C'
104010 , p_gain_or_loss_flag => 'N'
104011 , p_gl_transfer_mode_code => 'S'
104012 , p_acct_entry_type_code => 'E'
104013 , p_switch_side_flag => 'Y'
104014 , p_merge_duplicate_code => 'A'
104015 );
104016 --
104017 l_acc_rev_natural_side_code := 'D'; -- 4262811
104018 --
104019 --
104020 -- set accounting line type info
104021 --
104022 xla_ae_lines_pkg.SetAcctLineType
104023 (p_component_type => l_component_type
104027 ,p_accounting_line_code => l_component_code
104024 ,p_event_type_code => l_event_type_code
104025 ,p_line_definition_owner_code => l_line_definition_owner_code
104026 ,p_line_definition_code => l_line_definition_code
104028 ,p_accounting_line_type_code => l_component_type_code
104029 ,p_accounting_line_appl_id => l_component_appl_id
104030 ,p_amb_context_code => l_amb_context_code
104031 ,p_entity_code => l_entity_code
104032 ,p_event_class_code => l_event_class_code);
104033 --
104034 -- set accounting class
104035 --
104036 xla_ae_lines_pkg.SetAcctClass(
104037 p_accounting_class_code => 'TIPV'
104038 , p_ae_header_id => l_ae_header_id
104039 );
104040
104041 --
104042 -- set rounding class
104043 --
104044 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104045 'TIPV';
104046
104047 --
104048 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104049 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104050 --
104051 -- bulk performance
104052 --
104053 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104054
104055 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104056 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104057
104058 -- 4955764
104059 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104060 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104061
104062 -- 4458381 Public Sector Enh
104063
104064 --
104065 -- set accounting attributes for the line type
104066 --
104067 l_entered_amt_idx := 10;
104068 l_accted_amt_idx := 12;
104069 l_bflow_applied_to_amt_idx := 2; -- 5132302
104070 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104071 l_rec_acct_attrs.array_char_value(1) := p_source_40;
104072 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
104073 l_rec_acct_attrs.array_num_value(2) := p_source_41;
104074 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
104075 l_rec_acct_attrs.array_num_value(3) := p_source_42;
104076 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104077 l_rec_acct_attrs.array_char_value(4) := p_source_62;
104078 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
104079 l_rec_acct_attrs.array_char_value(5) := p_source_63;
104080 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
104081 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
104082 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104083 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
104084 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
104085 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
104086 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
104087 l_rec_acct_attrs.array_char_value(9) := p_source_48;
104088 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
104089 l_rec_acct_attrs.array_num_value(10) := p_source_41;
104090 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
104091 l_rec_acct_attrs.array_char_value(11) := p_source_49;
104092 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
104093 l_rec_acct_attrs.array_num_value(12) := p_source_9;
104094 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
104095 l_rec_acct_attrs.array_char_value(13) := p_source_53;
104096 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
104097 l_rec_acct_attrs.array_char_value(14) := p_source_56;
104098 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
104099 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
104100 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
104101 l_rec_acct_attrs.array_char_value(16) := p_source_48;
104102 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
104103 l_rec_acct_attrs.array_num_value(17) := p_source_58;
104104 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
104105 l_rec_acct_attrs.array_num_value(18) := p_source_58;
104106 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
104107 l_rec_acct_attrs.array_num_value(19) := p_source_59;
104108
104109 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104110 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104111
104112 ---------------------------------------------------------------------------------------------------------------
104113 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104114 ---------------------------------------------------------------------------------------------------------------
104115 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104116
104117 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104118 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104119
104120 IF xla_accounting_cache_pkg.GetValueChar
104121 (p_source_code => 'LEDGER_CATEGORY_CODE'
104125 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104122 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104123 AND l_bflow_method_code = 'PRIOR_ENTRY'
104124 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104126 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104127 )
104128 THEN
104129 xla_ae_lines_pkg.BflowUpgEntry
104130 (p_business_method_code => l_bflow_method_code
104131 ,p_business_class_code => l_bflow_class_code
104132 ,p_balance_type => l_balance_type_code);
104133 ELSE
104134 NULL;
104135 XLA_AE_LINES_PKG.business_flow_validation(
104136 p_business_method_code => l_bflow_method_code
104137 ,p_business_class_code => l_bflow_class_code
104138 ,p_inherit_description_flag => l_inherit_desc_flag);
104139 END IF;
104140
104141 --
104142 -- call analytical criteria
104143 --
104144 -- Inherited Analytical Criteria for business flow method of Prior Entry.
104145 --
104146 -- call description
104147 --
104148 -- No description or it is inherited.
104149 --
104150 -- call ADRs
104151 -- Bug 4922099
104152 --
104153 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104154 (NVL(l_actual_upg_option, 'N') = 'O') OR
104155 (NVL(l_enc_upg_option, 'N') = 'O')
104156 )
104157 THEN
104158 NULL;
104159 --
104160 --
104161
104162 --
104163 --
104164 END IF;
104165 --
104166 -- Bug 4922099
104167 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104168 (NVL(l_enc_upg_option, 'N') = 'O')
104169 ) AND
104170 (l_bflow_method_code = 'PRIOR_ENTRY')
104171 )
104172 THEN
104173 IF
104174 --
104175 1 = 1
104176 --
104177 THEN
104178 xla_accounting_err_pkg.build_message
104179 (p_appli_s_name => 'XLA'
104180 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104181 ,p_token_1 => 'LINE_NUMBER'
104182 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
104183 ,p_token_2 => 'LINE_TYPE_NAME'
104184 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
104185 l_component_type
104186 ,l_component_code
104187 ,l_component_type_code
104188 ,l_component_appl_id
104189 ,l_amb_context_code
104190 ,l_entity_code
104191 ,l_event_class_code
104192 )
104193 ,p_token_3 => 'OWNER'
104194 ,p_value_3 => xla_lookups_pkg.get_meaning(
104195 p_lookup_type => 'XLA_OWNER_TYPE'
104196 ,p_lookup_code => l_component_type_code
104197 )
104198 ,p_token_4 => 'PRODUCT_NAME'
104199 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104200 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104201 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104202 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104203 ,p_ae_header_id => NULL
104204 );
104205
104206 IF (C_LEVEL_ERROR>= g_log_level) THEN
104207 trace
104208 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104209 ,p_level => C_LEVEL_ERROR
104210 ,p_module => l_log_module);
104211 END IF;
104212 END IF;
104213 END IF;
104214 --
104215 --
104216 ------------------------------------------------------------------------------------------------
104217 -- 4219869 Business Flow
104218 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104219 -- Prior Entry. Currently, the following code is always generated.
104220 ------------------------------------------------------------------------------------------------
104221 -- No ValidateCurrentLine for business flow method of Prior Entry
104222
104223 ------------------------------------------------------------------------------------
104224 -- 4219869 Business Flow
104225 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104226 ------------------------------------------------------------------------------------
104230 -- 4219869 Business Flow
104227 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104228
104229 ----------------------------------------------------------------------------------
104231 -- Update journal entry status -- Need to generate this within IF <condition>
104232 ----------------------------------------------------------------------------------
104233 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104234 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104235 ,p_balance_type_code => l_balance_type_code
104236 );
104237
104238 -------------------------------------------------------------------------------------------
104239 -- 4262811 - Generate the Accrual Reversal lines
104240 -------------------------------------------------------------------------------------------
104241 BEGIN
104242 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104243 (g_array_event(p_event_id).array_value_num('header_index'));
104244 IF l_acc_rev_flag IS NULL THEN
104245 l_acc_rev_flag := 'N';
104246 END IF;
104247 EXCEPTION
104248 WHEN OTHERS THEN
104249 l_acc_rev_flag := 'N';
104250 END;
104251 --
104252 IF (l_acc_rev_flag = 'Y') THEN
104253
104254 -- 4645092 ------------------------------------------------------------------------------
104255 -- To allow MPA report to determine if it should generate report process
104256 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104257 ------------------------------------------------------------------------------------------
104258
104259 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104260 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104261 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
104262 -- call ADRs
104263 -- Bug 4922099
104264 --
104265 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104266 (NVL(l_actual_upg_option, 'N') = 'O') OR
104267 (NVL(l_enc_upg_option, 'N') = 'O')
104268 )
104269 THEN
104270 NULL;
104271 --
104272 --
104273
104274 --
104275 --
104276 END IF;
104277
104278 --
104279 -- Update the line information that should be overwritten
104280 --
104281 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104282 p_header_num => 1);
104283 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
104284
104285 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104286
104287 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
104288 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104289 END IF;
104290
104291 --
104292 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104293 --
104294 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104295 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
104296 ELSE
104297 ---------------------------------------------------------------------------------------------------
104298 -- 4262811a Switch Sign
104299 ---------------------------------------------------------------------------------------------------
104300 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
104301 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104302 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104303 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104304 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104305 -- 5132302
104306 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104307 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104308
104309 END IF;
104310
104311 -- 4955764
104312 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104313 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104314
104315
104316 XLA_AE_LINES_PKG.ValidateCurrentLine;
104317 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104318
104319 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104320 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104321 ,p_balance_type_code => l_balance_type_code);
104322
104323 END IF;
104324
104325 -----------------------------------------------------------------------------------------
104326 -- 4262811 Multiperiod Accounting
104327 -----------------------------------------------------------------------------------------
104328 -- No MPA option is assigned.
104329
104330
104331 END IF;
104332 END IF;
104333 --
104334
104335 --
104336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104337 trace
104338 (p_msg => 'END of AcctLineType_182'
104339 ,p_level => C_LEVEL_PROCEDURE
104340 ,p_module => l_log_module);
104341 END IF;
104342 --
104343 EXCEPTION
104347 xla_exceptions_pkg.raise_message
104344 WHEN xla_exceptions_pkg.application_exception THEN
104345 RAISE;
104346 WHEN OTHERS THEN
104348 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_182');
104349 END AcctLineType_182;
104350 --
104351
104352 ---------------------------------------
104353 --
104354 -- PRIVATE FUNCTION
104355 -- AcctLineType_183
104356 --
104357 ---------------------------------------
104358 PROCEDURE AcctLineType_183 (
104359 p_application_id IN NUMBER
104360 ,p_event_id IN NUMBER
104361 ,p_calculate_acctd_flag IN VARCHAR2
104362 ,p_calculate_g_l_flag IN VARCHAR2
104363 ,p_actual_flag IN OUT VARCHAR2
104364 ,p_balance_type_code OUT VARCHAR2
104365 ,p_gain_or_loss_ref OUT VARCHAR2
104366
104367 --Payment Distribution (Payment Rate) Ledger Amount
104368 , p_source_9 IN NUMBER
104369 --Invoice Distribution Account
104370 , p_source_17 IN NUMBER
104371 --Invoice Distribution Type
104372 , p_source_20 IN VARCHAR2
104373 , p_source_20_meaning IN VARCHAR2
104374 --When to Account for Payment Option
104375 , p_source_38 IN VARCHAR2
104376 --Payment Distribution Type
104377 , p_source_39 IN VARCHAR2
104378 , p_source_39_meaning IN VARCHAR2
104379 --Accounting Reversal Indicator
104380 , p_source_40 IN VARCHAR2
104381 --Payment Distribution Amount
104382 , p_source_41 IN NUMBER
104383 --Business Flow Accounts Payable Application Identifier
104384 , p_source_42 IN NUMBER
104385 --Payment Distribution Identifier
104386 , p_source_47 IN NUMBER
104387 --Distribution Link Type
104388 , p_source_48 IN VARCHAR2
104389 --Payment Currency Code
104390 , p_source_49 IN VARCHAR2
104391 --Override Accounted Amount Indicator
104392 , p_source_53 IN VARCHAR2
104393 , p_source_53_meaning IN VARCHAR2
104394 --Payment Supplier Identifier
104395 , p_source_54 IN NUMBER
104396 --Payment Supplier Site Identifier
104397 , p_source_55 IN NUMBER
104398 --Third Party Type
104399 , p_source_56 IN VARCHAR2
104400 --Payment Distribution Reversed Identifier
104401 , p_source_57 IN NUMBER
104402 --Invoice Distribution Tax Line Identifier
104403 , p_source_58 IN NUMBER
104404 --Invoice Distribution Summary Tax Line Identifier
104405 , p_source_59 IN NUMBER
104406 --Payment Type
104407 , p_source_60 IN VARCHAR2
104408 , p_source_60_meaning IN VARCHAR2
104409 --Invoice Distribution Amount of the Payment Distribution
104410 , p_source_61 IN NUMBER
104411 --Business Flow Invoice Distribution Type
104412 , p_source_62 IN VARCHAR2
104413 --Business Flow Invoice Entity Code
104414 , p_source_63 IN VARCHAR2
104415 --Business Flow Invoice Distribution Identifier
104416 , p_source_64 IN NUMBER
104417 --Business Flow Invoice Identifier
104418 , p_source_65 IN NUMBER
104419 --Invoice Distribution Tax Distribution Identifier from Tax
104420 , p_source_66 IN NUMBER
104421 --Accrue on Receipt Option
104422 , p_source_100 IN VARCHAR2
104423 , p_source_100_meaning IN VARCHAR2
104424 --Invoice Type Paid
104425 , p_source_101 IN VARCHAR2
104426 , p_source_101_meaning IN VARCHAR2
104427 --Payment Exchange Date
104428 , p_source_114 IN DATE
104429 --Payment Exchange Rate
104430 , p_source_115 IN NUMBER
104431 --Payment Exchange Rate Type
104432 , p_source_116 IN VARCHAR2
104433 )
104434 IS
104435
104436 l_component_type VARCHAR2(80);
104437 l_component_code VARCHAR2(30);
104438 l_component_type_code VARCHAR2(1);
104439 l_component_appl_id INTEGER;
104440 l_amb_context_code VARCHAR2(30);
104441 l_entity_code VARCHAR2(30);
104442 l_event_class_code VARCHAR2(30);
104443 l_ae_header_id NUMBER;
104444 l_event_type_code VARCHAR2(30);
104445 l_line_definition_code VARCHAR2(30);
104446 l_line_definition_owner_code VARCHAR2(1);
104447 --
104448 -- adr variables
104449 l_segment VARCHAR2(30);
104450 l_ccid NUMBER;
104451 l_adr_transaction_coa_id NUMBER;
104452 l_adr_accounting_coa_id NUMBER;
104453 l_adr_flexfield_segment_code VARCHAR2(30);
104454 l_adr_flex_value_set_id NUMBER;
104455 l_adr_value_type_code VARCHAR2(30);
104456 l_adr_value_combination_id NUMBER;
104457 l_adr_value_segment_code VARCHAR2(30);
104458
104459 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
104460 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
104461 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
104462 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
104463
104464 -- 4262811 Variables ------------------------------------------------------------------------------------------
104465 l_entered_amt_idx NUMBER;
104466 l_accted_amt_idx NUMBER;
104467 l_acc_rev_flag VARCHAR2(1);
104468 l_accrual_line_num NUMBER;
104469 l_tmp_amt NUMBER;
104470 l_acc_rev_natural_side_code VARCHAR2(1);
104471
104472 l_num_entries NUMBER;
104476 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
104473 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
104474 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
104475 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
104477 l_recog_line_1 NUMBER;
104478 l_recog_line_2 NUMBER;
104479
104480 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
104481 l_bflow_applied_to_amt NUMBER; -- 5132302
104482 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
104483
104484 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104485
104486 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
104487 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
104488
104489 ---------------------------------------------------------------------------------------------------------------
104490
104491
104492 --
104493 -- bulk performance
104494 --
104495 l_balance_type_code VARCHAR2(1);
104496 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
104497 l_log_module VARCHAR2(240);
104498
104499 --
104500 -- Upgrade strategy
104501 --
104502 l_actual_upg_option VARCHAR2(1);
104503 l_enc_upg_option VARCHAR2(1);
104504
104505 --
104506 BEGIN
104507 --
104508 IF g_log_enabled THEN
104509 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_183';
104510 END IF;
104511 --
104512 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104513
104514 trace
104515 (p_msg => 'BEGIN of AcctLineType_183'
104516 ,p_level => C_LEVEL_PROCEDURE
104517 ,p_module => l_log_module);
104518
104519 END IF;
104520 --
104521 l_component_type := 'AMB_JLT';
104522 l_component_code := 'AP_TAX_INV_PRICE_VAR_PMT';
104523 l_component_type_code := 'S';
104524 l_component_appl_id := 200;
104525 l_amb_context_code := 'DEFAULT';
104526 l_entity_code := 'AP_PAYMENTS';
104527 l_event_class_code := 'PAYMENTS';
104528 l_event_type_code := 'PAYMENTS_ALL';
104529 l_line_definition_owner_code := 'S';
104530 l_line_definition_code := 'CASH_PAYMENTS_ALL';
104531 --
104532 l_balance_type_code := 'A';
104533 l_segment := NULL;
104534 l_ccid := NULL;
104535 l_adr_transaction_coa_id := NULL;
104536 l_adr_accounting_coa_id := NULL;
104537 l_adr_flexfield_segment_code := NULL;
104538 l_adr_flex_value_set_id := NULL;
104539 l_adr_value_type_code := NULL;
104540 l_adr_value_combination_id := NULL;
104541 l_adr_value_segment_code := NULL;
104542
104543 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
104544 l_bflow_class_code := ''; -- 4219869 Business Flow
104545 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
104546 l_budgetary_control_flag := 'N';
104547
104548 l_bflow_applied_to_amt_idx := NULL; -- 5132302
104549 l_bflow_applied_to_amt := NULL; -- 5132302
104550 l_entered_amt_idx := NULL; -- 4262811
104551 l_accted_amt_idx := NULL; -- 4262811
104552 l_acc_rev_flag := NULL; -- 4262811
104553 l_accrual_line_num := NULL; -- 4262811
104554 l_tmp_amt := NULL; -- 4262811
104555 --
104556
104557 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104558 l_balance_type_code <> 'B' THEN
104559 IF NVL(p_source_38,'
104560 ') <> 'CLEAR_CLEAR' AND
104561 NVL(p_source_20,'
104562 ') = 'TIPV' AND
104563 NVL(p_source_101,'
104564 ') <> 'INTEREST' AND
104565 (NVL(p_source_39,'
104566 ') = 'CASH' OR
104567 NVL(p_source_39,'
104568 ') = 'AWT' OR
104569 NVL(p_source_39,'
104570 ') = 'DISCOUNT') AND
104571 NVL(p_source_60,'
104572 ') <> 'R' AND
104573 NVL(p_source_100,'
104574 ') = 'Y'
104575 THEN
104576
104577 --
104578 XLA_AE_LINES_PKG.SetNewLine;
104579
104580 p_balance_type_code := l_balance_type_code;
104581 -- set the flag so later we will know whether the gain loss line needs to be created
104582
104583 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104584 p_actual_flag :='A';
104585 END IF;
104586
104587 --
104588 -- bulk performance
104589 --
104590 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104591 p_header_num => 0); -- 4262811
104592 --
104593 -- set accounting line options
104594 --
104595 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104596 p_natural_side_code => 'D'
104597 , p_gain_or_loss_flag => 'N'
104598 , p_gl_transfer_mode_code => 'S'
104599 , p_acct_entry_type_code => 'A'
104600 , p_switch_side_flag => 'Y'
104601 , p_merge_duplicate_code => 'A'
104602 );
104603 --
104604 l_acc_rev_natural_side_code := 'C'; -- 4262811
104605 --
104606 --
104607 -- set accounting line type info
104608 --
104609 xla_ae_lines_pkg.SetAcctLineType
104610 (p_component_type => l_component_type
104614 ,p_accounting_line_code => l_component_code
104611 ,p_event_type_code => l_event_type_code
104612 ,p_line_definition_owner_code => l_line_definition_owner_code
104613 ,p_line_definition_code => l_line_definition_code
104615 ,p_accounting_line_type_code => l_component_type_code
104616 ,p_accounting_line_appl_id => l_component_appl_id
104617 ,p_amb_context_code => l_amb_context_code
104618 ,p_entity_code => l_entity_code
104619 ,p_event_class_code => l_event_class_code);
104620 --
104621 -- set accounting class
104622 --
104623 xla_ae_lines_pkg.SetAcctClass(
104624 p_accounting_class_code => 'TIPV'
104625 , p_ae_header_id => l_ae_header_id
104626 );
104627
104628 --
104629 -- set rounding class
104630 --
104631 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104632 'TIPV';
104633
104634 --
104635 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104636 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104637 --
104638 -- bulk performance
104639 --
104640 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104641
104642 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104643 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104644
104645 -- 4955764
104646 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104647 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104648
104649 -- 4458381 Public Sector Enh
104650
104651 --
104652 -- set accounting attributes for the line type
104653 --
104654 l_entered_amt_idx := 10;
104655 l_accted_amt_idx := 15;
104656 l_bflow_applied_to_amt_idx := 2; -- 5132302
104657 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104658 l_rec_acct_attrs.array_char_value(1) := p_source_40;
104659 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
104660 l_rec_acct_attrs.array_num_value(2) := p_source_61;
104661 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
104662 l_rec_acct_attrs.array_num_value(3) := p_source_42;
104663 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104664 l_rec_acct_attrs.array_char_value(4) := p_source_62;
104665 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
104666 l_rec_acct_attrs.array_char_value(5) := p_source_63;
104667 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
104668 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
104669 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104670 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
104671 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
104672 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
104673 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
104674 l_rec_acct_attrs.array_char_value(9) := p_source_48;
104675 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
104676 l_rec_acct_attrs.array_num_value(10) := p_source_41;
104677 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
104678 l_rec_acct_attrs.array_char_value(11) := p_source_49;
104679 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
104680 l_rec_acct_attrs.array_date_value(12) := p_source_114;
104681 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
104682 l_rec_acct_attrs.array_num_value(13) := p_source_115;
104683 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
104684 l_rec_acct_attrs.array_char_value(14) := p_source_116;
104685 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
104686 l_rec_acct_attrs.array_num_value(15) := p_source_9;
104687 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
104688 l_rec_acct_attrs.array_char_value(16) := p_source_53;
104689 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
104690 l_rec_acct_attrs.array_num_value(17) := p_source_54;
104691 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
104692 l_rec_acct_attrs.array_num_value(18) := p_source_55;
104693 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
104694 l_rec_acct_attrs.array_char_value(19) := p_source_56;
104695 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
104696 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
104697 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
104698 l_rec_acct_attrs.array_char_value(21) := p_source_48;
104699 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
104700 l_rec_acct_attrs.array_num_value(22) := p_source_58;
104701 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
104702 l_rec_acct_attrs.array_num_value(23) := p_source_66;
104703 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
104704 l_rec_acct_attrs.array_num_value(24) := p_source_59;
104705
104706 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104707 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104708
104709 ---------------------------------------------------------------------------------------------------------------
104713
104710 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104711 ---------------------------------------------------------------------------------------------------------------
104712 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104714 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104715 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104716
104717 IF xla_accounting_cache_pkg.GetValueChar
104718 (p_source_code => 'LEDGER_CATEGORY_CODE'
104719 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104720 AND l_bflow_method_code = 'PRIOR_ENTRY'
104721 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104722 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104723 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104724 )
104725 THEN
104726 xla_ae_lines_pkg.BflowUpgEntry
104727 (p_business_method_code => l_bflow_method_code
104728 ,p_business_class_code => l_bflow_class_code
104729 ,p_balance_type => l_balance_type_code);
104730 ELSE
104731 NULL;
104732 -- No business flow processing for business flow method of NONE.
104733 END IF;
104734
104735 --
104736 -- call analytical criteria
104737 --
104738
104739 --
104740 -- call description
104741 --
104742 -- No description or it is inherited.
104743 --
104744 -- call ADRs
104745 -- Bug 4922099
104746 --
104747 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104748 (NVL(l_actual_upg_option, 'N') = 'O') OR
104749 (NVL(l_enc_upg_option, 'N') = 'O')
104750 )
104751 THEN
104752 NULL;
104753 --
104754 --
104755
104756 l_ccid := AcctDerRule_26(
104757 p_application_id => p_application_id
104758 , p_ae_header_id => l_ae_header_id
104759 , p_source_17 => p_source_17
104760 , x_transaction_coa_id => l_adr_transaction_coa_id
104761 , x_accounting_coa_id => l_adr_accounting_coa_id
104762 , x_value_type_code => l_adr_value_type_code
104763 , p_side => 'NA'
104764 );
104765
104766 xla_ae_lines_pkg.set_ccid(
104767 p_code_combination_id => l_ccid
104768 , p_value_type_code => l_adr_value_type_code
104769 , p_transaction_coa_id => l_adr_transaction_coa_id
104770 , p_accounting_coa_id => l_adr_accounting_coa_id
104771 , p_adr_code => 'AP_INVOICE_DIST'
104772 , p_adr_type_code => 'S'
104773 , p_component_type => l_component_type
104774 , p_component_code => l_component_code
104775 , p_component_type_code => l_component_type_code
104776 , p_component_appl_id => l_component_appl_id
104777 , p_amb_context_code => l_amb_context_code
104778 , p_side => 'NA'
104779 );
104780
104781
104782 --
104783 --
104784 END IF;
104785 --
104786 -- Bug 4922099
104787 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104788 (NVL(l_enc_upg_option, 'N') = 'O')
104789 ) AND
104790 (l_bflow_method_code = 'PRIOR_ENTRY')
104791 )
104792 THEN
104793 IF
104794 --
104795 1 = 2
104796 --
104797 THEN
104798 xla_accounting_err_pkg.build_message
104799 (p_appli_s_name => 'XLA'
104800 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104801 ,p_token_1 => 'LINE_NUMBER'
104802 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
104803 ,p_token_2 => 'LINE_TYPE_NAME'
104804 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
104805 l_component_type
104806 ,l_component_code
104807 ,l_component_type_code
104808 ,l_component_appl_id
104809 ,l_amb_context_code
104810 ,l_entity_code
104811 ,l_event_class_code
104812 )
104813 ,p_token_3 => 'OWNER'
104814 ,p_value_3 => xla_lookups_pkg.get_meaning(
104815 p_lookup_type => 'XLA_OWNER_TYPE'
104816 ,p_lookup_code => l_component_type_code
104817 )
104818 ,p_token_4 => 'PRODUCT_NAME'
104819 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104823 ,p_ae_header_id => NULL
104820 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104821 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104822 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104824 );
104825
104826 IF (C_LEVEL_ERROR>= g_log_level) THEN
104827 trace
104828 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104829 ,p_level => C_LEVEL_ERROR
104830 ,p_module => l_log_module);
104831 END IF;
104832 END IF;
104833 END IF;
104834 --
104835 --
104836 ------------------------------------------------------------------------------------------------
104837 -- 4219869 Business Flow
104838 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104839 -- Prior Entry. Currently, the following code is always generated.
104840 ------------------------------------------------------------------------------------------------
104841 XLA_AE_LINES_PKG.ValidateCurrentLine;
104842
104843 ------------------------------------------------------------------------------------
104844 -- 4219869 Business Flow
104845 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104846 ------------------------------------------------------------------------------------
104847 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104848
104849 ----------------------------------------------------------------------------------
104850 -- 4219869 Business Flow
104851 -- Update journal entry status -- Need to generate this within IF <condition>
104852 ----------------------------------------------------------------------------------
104853 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104854 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104855 ,p_balance_type_code => l_balance_type_code
104856 );
104857
104858 -------------------------------------------------------------------------------------------
104859 -- 4262811 - Generate the Accrual Reversal lines
104860 -------------------------------------------------------------------------------------------
104861 BEGIN
104862 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104863 (g_array_event(p_event_id).array_value_num('header_index'));
104864 IF l_acc_rev_flag IS NULL THEN
104865 l_acc_rev_flag := 'N';
104866 END IF;
104867 EXCEPTION
104868 WHEN OTHERS THEN
104869 l_acc_rev_flag := 'N';
104870 END;
104871 --
104872 IF (l_acc_rev_flag = 'Y') THEN
104873
104874 -- 4645092 ------------------------------------------------------------------------------
104875 -- To allow MPA report to determine if it should generate report process
104876 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104877 ------------------------------------------------------------------------------------------
104878
104879 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104880 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104881 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
104882 -- call ADRs
104883 -- Bug 4922099
104884 --
104885 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104886 (NVL(l_actual_upg_option, 'N') = 'O') OR
104887 (NVL(l_enc_upg_option, 'N') = 'O')
104888 )
104889 THEN
104890 NULL;
104891 --
104892 --
104893
104894 l_ccid := AcctDerRule_26(
104895 p_application_id => p_application_id
104896 , p_ae_header_id => l_ae_header_id
104897 , p_source_17 => p_source_17
104898 , x_transaction_coa_id => l_adr_transaction_coa_id
104899 , x_accounting_coa_id => l_adr_accounting_coa_id
104900 , x_value_type_code => l_adr_value_type_code
104901 , p_side => 'NA'
104902 );
104903
104904 xla_ae_lines_pkg.set_ccid(
104905 p_code_combination_id => l_ccid
104906 , p_value_type_code => l_adr_value_type_code
104907 , p_transaction_coa_id => l_adr_transaction_coa_id
104908 , p_accounting_coa_id => l_adr_accounting_coa_id
104909 , p_adr_code => 'AP_INVOICE_DIST'
104910 , p_adr_type_code => 'S'
104911 , p_component_type => l_component_type
104912 , p_component_code => l_component_code
104913 , p_component_type_code => l_component_type_code
104914 , p_component_appl_id => l_component_appl_id
104915 , p_amb_context_code => l_amb_context_code
104916 , p_side => 'NA'
104917 );
104918
104919
104920 --
104921 --
104922 END IF;
104923
104924 --
104925 -- Update the line information that should be overwritten
104926 --
104927 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104928 p_header_num => 1);
104929 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
104930
104931 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104932
104936
104933 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
104934 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104935 END IF;
104937 --
104938 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104939 --
104940 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104941 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
104942 ELSE
104943 ---------------------------------------------------------------------------------------------------
104944 -- 4262811a Switch Sign
104945 ---------------------------------------------------------------------------------------------------
104946 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
104947 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104948 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104949 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104950 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104951 -- 5132302
104952 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104953 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104954
104955 END IF;
104956
104957 -- 4955764
104958 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104959 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104960
104961
104962 XLA_AE_LINES_PKG.ValidateCurrentLine;
104963 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104964
104965 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104966 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104967 ,p_balance_type_code => l_balance_type_code);
104968
104969 END IF;
104970
104971 -----------------------------------------------------------------------------------------
104972 -- 4262811 Multiperiod Accounting
104973 -----------------------------------------------------------------------------------------
104974 -- No MPA option is assigned.
104975
104976
104977 END IF;
104978 END IF;
104979 --
104980
104981 --
104982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104983 trace
104984 (p_msg => 'END of AcctLineType_183'
104985 ,p_level => C_LEVEL_PROCEDURE
104986 ,p_module => l_log_module);
104987 END IF;
104988 --
104989 EXCEPTION
104990 WHEN xla_exceptions_pkg.application_exception THEN
104991 RAISE;
104992 WHEN OTHERS THEN
104993 xla_exceptions_pkg.raise_message
104994 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_183');
104995 END AcctLineType_183;
104996 --
104997
104998 ---------------------------------------
104999 --
105000 -- PRIVATE FUNCTION
105001 -- AcctLineType_184
105002 --
105003 ---------------------------------------
105004 PROCEDURE AcctLineType_184 (
105005 p_application_id IN NUMBER
105006 ,p_event_id IN NUMBER
105007 ,p_calculate_acctd_flag IN VARCHAR2
105008 ,p_calculate_g_l_flag IN VARCHAR2
105009 ,p_actual_flag IN OUT VARCHAR2
105010 ,p_balance_type_code OUT VARCHAR2
105011 ,p_gain_or_loss_ref OUT VARCHAR2
105012
105013 --Payment Distribution (Payment Rate) Ledger Amount
105014 , p_source_9 IN NUMBER
105015 --Invoice Distribution Type
105016 , p_source_20 IN VARCHAR2
105017 , p_source_20_meaning IN VARCHAR2
105018 --When to Account for Payment Option
105019 , p_source_38 IN VARCHAR2
105020 --Payment Distribution Type
105021 , p_source_39 IN VARCHAR2
105022 , p_source_39_meaning IN VARCHAR2
105023 --Accounting Reversal Indicator
105024 , p_source_40 IN VARCHAR2
105025 --Payment Distribution Amount
105026 , p_source_41 IN NUMBER
105027 --Business Flow Accounts Payable Application Identifier
105028 , p_source_42 IN NUMBER
105029 --Payment Distribution Identifier
105030 , p_source_47 IN NUMBER
105031 --Distribution Link Type
105032 , p_source_48 IN VARCHAR2
105033 --Payment Currency Code
105034 , p_source_49 IN VARCHAR2
105035 --Override Accounted Amount Indicator
105036 , p_source_53 IN VARCHAR2
105037 , p_source_53_meaning IN VARCHAR2
105038 --Third Party Type
105039 , p_source_56 IN VARCHAR2
105040 --Payment Distribution Reversed Identifier
105041 , p_source_57 IN NUMBER
105042 --Invoice Distribution Tax Line Identifier
105043 , p_source_58 IN NUMBER
105044 --Invoice Distribution Summary Tax Line Identifier
105045 , p_source_59 IN NUMBER
105046 --Payment Type
105047 , p_source_60 IN VARCHAR2
105048 , p_source_60_meaning IN VARCHAR2
105049 --Invoice Distribution Amount of the Payment Distribution
105050 , p_source_61 IN NUMBER
105051 --Business Flow Invoice Distribution Type
105052 , p_source_62 IN VARCHAR2
105053 --Business Flow Invoice Entity Code
105054 , p_source_63 IN VARCHAR2
105058 , p_source_65 IN NUMBER
105055 --Business Flow Invoice Distribution Identifier
105056 , p_source_64 IN NUMBER
105057 --Business Flow Invoice Identifier
105059 --Invoice Distribution Tax Distribution Identifier from Tax
105060 , p_source_66 IN NUMBER
105061 --Purchasing Encumbrance Option
105062 , p_source_102 IN VARCHAR2
105063 , p_source_102_meaning IN VARCHAR2
105064 --Invoice Encumbered Option
105065 , p_source_104 IN VARCHAR2
105066 , p_source_104_meaning IN VARCHAR2
105067 )
105068 IS
105069
105070 l_component_type VARCHAR2(80);
105071 l_component_code VARCHAR2(30);
105072 l_component_type_code VARCHAR2(1);
105073 l_component_appl_id INTEGER;
105074 l_amb_context_code VARCHAR2(30);
105075 l_entity_code VARCHAR2(30);
105076 l_event_class_code VARCHAR2(30);
105077 l_ae_header_id NUMBER;
105078 l_event_type_code VARCHAR2(30);
105079 l_line_definition_code VARCHAR2(30);
105080 l_line_definition_owner_code VARCHAR2(1);
105081 --
105082 -- adr variables
105083 l_segment VARCHAR2(30);
105084 l_ccid NUMBER;
105085 l_adr_transaction_coa_id NUMBER;
105086 l_adr_accounting_coa_id NUMBER;
105087 l_adr_flexfield_segment_code VARCHAR2(30);
105088 l_adr_flex_value_set_id NUMBER;
105089 l_adr_value_type_code VARCHAR2(30);
105090 l_adr_value_combination_id NUMBER;
105091 l_adr_value_segment_code VARCHAR2(30);
105092
105093 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
105094 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
105095 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
105096 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
105097
105098 -- 4262811 Variables ------------------------------------------------------------------------------------------
105099 l_entered_amt_idx NUMBER;
105100 l_accted_amt_idx NUMBER;
105101 l_acc_rev_flag VARCHAR2(1);
105102 l_accrual_line_num NUMBER;
105103 l_tmp_amt NUMBER;
105104 l_acc_rev_natural_side_code VARCHAR2(1);
105105
105106 l_num_entries NUMBER;
105107 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
105108 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
105109 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
105110 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
105111 l_recog_line_1 NUMBER;
105112 l_recog_line_2 NUMBER;
105113
105114 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
105115 l_bflow_applied_to_amt NUMBER; -- 5132302
105116 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
105117
105118 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105119
105120 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
105121 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
105122
105123 ---------------------------------------------------------------------------------------------------------------
105124
105125
105126 --
105127 -- bulk performance
105128 --
105129 l_balance_type_code VARCHAR2(1);
105130 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
105131 l_log_module VARCHAR2(240);
105132
105133 --
105134 -- Upgrade strategy
105135 --
105136 l_actual_upg_option VARCHAR2(1);
105137 l_enc_upg_option VARCHAR2(1);
105138
105139 --
105140 BEGIN
105141 --
105142 IF g_log_enabled THEN
105143 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_184';
105144 END IF;
105145 --
105146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105147
105148 trace
105149 (p_msg => 'BEGIN of AcctLineType_184'
105150 ,p_level => C_LEVEL_PROCEDURE
105151 ,p_module => l_log_module);
105152
105153 END IF;
105154 --
105155 l_component_type := 'AMB_JLT';
105156 l_component_code := 'AP_TAX_INV_PRICE_VAR_PMT_ENC';
105157 l_component_type_code := 'S';
105158 l_component_appl_id := 200;
105159 l_amb_context_code := 'DEFAULT';
105160 l_entity_code := 'AP_PAYMENTS';
105161 l_event_class_code := 'PAYMENTS';
105162 l_event_type_code := 'PAYMENTS_ALL';
105163 l_line_definition_owner_code := 'S';
105164 l_line_definition_code := 'ENC_PAYMENTS_ALL';
105165 --
105166 l_balance_type_code := 'E';
105167 l_segment := NULL;
105168 l_ccid := NULL;
105169 l_adr_transaction_coa_id := NULL;
105170 l_adr_accounting_coa_id := NULL;
105171 l_adr_flexfield_segment_code := NULL;
105172 l_adr_flex_value_set_id := NULL;
105173 l_adr_value_type_code := NULL;
105174 l_adr_value_combination_id := NULL;
105175 l_adr_value_segment_code := NULL;
105176
105177 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
105178 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
105179 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
105180 l_budgetary_control_flag := 'N';
105181
105185 l_accted_amt_idx := NULL; -- 4262811
105182 l_bflow_applied_to_amt_idx := NULL; -- 5132302
105183 l_bflow_applied_to_amt := NULL; -- 5132302
105184 l_entered_amt_idx := NULL; -- 4262811
105186 l_acc_rev_flag := NULL; -- 4262811
105187 l_accrual_line_num := NULL; -- 4262811
105188 l_tmp_amt := NULL; -- 4262811
105189 --
105190
105191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105192 l_balance_type_code <> 'B' THEN
105193 IF NVL(p_source_38,'
105194 ') <> 'CLEAR_CLEAR' AND
105195 NVL(p_source_20,'
105196 ') = 'TIPV' AND
105197 (NVL(p_source_39,'
105198 ') = 'CASH' OR
105199 NVL(p_source_39,'
105200 ') = 'DISCOUNT') AND
105201 NVL(p_source_60,'
105202 ') <> 'R' AND
105203 NVL(p_source_102,'
105204 ') = 'Y' AND
105205 NVL(p_source_104,'
105206 ') = 'Y'
105207 THEN
105208
105209 --
105210 XLA_AE_LINES_PKG.SetNewLine;
105211
105212 p_balance_type_code := l_balance_type_code;
105213 -- set the flag so later we will know whether the gain loss line needs to be created
105214
105215 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105216 p_actual_flag :='A';
105217 END IF;
105218
105219 --
105220 -- bulk performance
105221 --
105222 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105223 p_header_num => 0); -- 4262811
105224 --
105225 -- set accounting line options
105226 --
105227 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105228 p_natural_side_code => 'C'
105229 , p_gain_or_loss_flag => 'N'
105230 , p_gl_transfer_mode_code => 'S'
105231 , p_acct_entry_type_code => 'E'
105232 , p_switch_side_flag => 'Y'
105233 , p_merge_duplicate_code => 'A'
105234 );
105235 --
105236 l_acc_rev_natural_side_code := 'D'; -- 4262811
105237 --
105238 --
105239 -- set accounting line type info
105240 --
105241 xla_ae_lines_pkg.SetAcctLineType
105242 (p_component_type => l_component_type
105243 ,p_event_type_code => l_event_type_code
105244 ,p_line_definition_owner_code => l_line_definition_owner_code
105245 ,p_line_definition_code => l_line_definition_code
105246 ,p_accounting_line_code => l_component_code
105247 ,p_accounting_line_type_code => l_component_type_code
105248 ,p_accounting_line_appl_id => l_component_appl_id
105249 ,p_amb_context_code => l_amb_context_code
105250 ,p_entity_code => l_entity_code
105251 ,p_event_class_code => l_event_class_code);
105252 --
105253 -- set accounting class
105254 --
105255 xla_ae_lines_pkg.SetAcctClass(
105256 p_accounting_class_code => 'TIPV'
105257 , p_ae_header_id => l_ae_header_id
105258 );
105259
105260 --
105261 -- set rounding class
105262 --
105263 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105264 'TIPV';
105265
105266 --
105267 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105268 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105269 --
105270 -- bulk performance
105271 --
105272 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105273
105274 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105275 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105276
105277 -- 4955764
105278 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105279 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105280
105281 -- 4458381 Public Sector Enh
105282
105283 --
105284 -- set accounting attributes for the line type
105285 --
105286 l_entered_amt_idx := 10;
105287 l_accted_amt_idx := 12;
105288 l_bflow_applied_to_amt_idx := 2; -- 5132302
105289 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105290 l_rec_acct_attrs.array_char_value(1) := p_source_40;
105291 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
105292 l_rec_acct_attrs.array_num_value(2) := p_source_61;
105293 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
105294 l_rec_acct_attrs.array_num_value(3) := p_source_42;
105295 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105296 l_rec_acct_attrs.array_char_value(4) := p_source_62;
105297 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
105298 l_rec_acct_attrs.array_char_value(5) := p_source_63;
105299 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
105300 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
105301 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105302 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
105303 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
105304 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
105308 l_rec_acct_attrs.array_num_value(10) := p_source_41;
105305 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
105306 l_rec_acct_attrs.array_char_value(9) := p_source_48;
105307 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
105309 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
105310 l_rec_acct_attrs.array_char_value(11) := p_source_49;
105311 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
105312 l_rec_acct_attrs.array_num_value(12) := p_source_9;
105313 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
105314 l_rec_acct_attrs.array_char_value(13) := p_source_53;
105315 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
105316 l_rec_acct_attrs.array_char_value(14) := p_source_56;
105317 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
105318 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
105319 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
105320 l_rec_acct_attrs.array_char_value(16) := p_source_48;
105321 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
105322 l_rec_acct_attrs.array_num_value(17) := p_source_58;
105323 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
105324 l_rec_acct_attrs.array_num_value(18) := p_source_66;
105325 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
105326 l_rec_acct_attrs.array_num_value(19) := p_source_59;
105327
105328 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105329 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105330
105331 ---------------------------------------------------------------------------------------------------------------
105332 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105333 ---------------------------------------------------------------------------------------------------------------
105334 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105335
105336 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105337 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105338
105339 IF xla_accounting_cache_pkg.GetValueChar
105340 (p_source_code => 'LEDGER_CATEGORY_CODE'
105341 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105342 AND l_bflow_method_code = 'PRIOR_ENTRY'
105343 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105344 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105345 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105346 )
105347 THEN
105348 xla_ae_lines_pkg.BflowUpgEntry
105349 (p_business_method_code => l_bflow_method_code
105350 ,p_business_class_code => l_bflow_class_code
105351 ,p_balance_type => l_balance_type_code);
105352 ELSE
105353 NULL;
105354 XLA_AE_LINES_PKG.business_flow_validation(
105355 p_business_method_code => l_bflow_method_code
105356 ,p_business_class_code => l_bflow_class_code
105357 ,p_inherit_description_flag => l_inherit_desc_flag);
105358 END IF;
105359
105360 --
105361 -- call analytical criteria
105362 --
105363 -- Inherited Analytical Criteria for business flow method of Prior Entry.
105364 --
105365 -- call description
105366 --
105367 -- No description or it is inherited.
105368 --
105369 -- call ADRs
105370 -- Bug 4922099
105371 --
105372 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105373 (NVL(l_actual_upg_option, 'N') = 'O') OR
105374 (NVL(l_enc_upg_option, 'N') = 'O')
105375 )
105376 THEN
105377 NULL;
105378 --
105379 --
105380
105381 --
105382 --
105383 END IF;
105384 --
105385 -- Bug 4922099
105386 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105387 (NVL(l_enc_upg_option, 'N') = 'O')
105388 ) AND
105389 (l_bflow_method_code = 'PRIOR_ENTRY')
105390 )
105391 THEN
105392 IF
105393 --
105394 1 = 1
105395 --
105396 THEN
105397 xla_accounting_err_pkg.build_message
105398 (p_appli_s_name => 'XLA'
105399 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105400 ,p_token_1 => 'LINE_NUMBER'
105401 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
105402 ,p_token_2 => 'LINE_TYPE_NAME'
105403 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
105404 l_component_type
105405 ,l_component_code
105406 ,l_component_type_code
105407 ,l_component_appl_id
105408 ,l_amb_context_code
105409 ,l_entity_code
105413 ,p_value_3 => xla_lookups_pkg.get_meaning(
105410 ,l_event_class_code
105411 )
105412 ,p_token_3 => 'OWNER'
105414 p_lookup_type => 'XLA_OWNER_TYPE'
105415 ,p_lookup_code => l_component_type_code
105416 )
105417 ,p_token_4 => 'PRODUCT_NAME'
105418 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105419 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105420 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105421 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105422 ,p_ae_header_id => NULL
105423 );
105424
105425 IF (C_LEVEL_ERROR>= g_log_level) THEN
105426 trace
105427 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105428 ,p_level => C_LEVEL_ERROR
105429 ,p_module => l_log_module);
105430 END IF;
105431 END IF;
105432 END IF;
105433 --
105434 --
105435 ------------------------------------------------------------------------------------------------
105436 -- 4219869 Business Flow
105437 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105438 -- Prior Entry. Currently, the following code is always generated.
105439 ------------------------------------------------------------------------------------------------
105440 -- No ValidateCurrentLine for business flow method of Prior Entry
105441
105442 ------------------------------------------------------------------------------------
105443 -- 4219869 Business Flow
105444 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105445 ------------------------------------------------------------------------------------
105446 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105447
105448 ----------------------------------------------------------------------------------
105449 -- 4219869 Business Flow
105450 -- Update journal entry status -- Need to generate this within IF <condition>
105451 ----------------------------------------------------------------------------------
105452 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105453 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105454 ,p_balance_type_code => l_balance_type_code
105455 );
105456
105457 -------------------------------------------------------------------------------------------
105458 -- 4262811 - Generate the Accrual Reversal lines
105459 -------------------------------------------------------------------------------------------
105460 BEGIN
105461 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105462 (g_array_event(p_event_id).array_value_num('header_index'));
105463 IF l_acc_rev_flag IS NULL THEN
105464 l_acc_rev_flag := 'N';
105465 END IF;
105466 EXCEPTION
105467 WHEN OTHERS THEN
105468 l_acc_rev_flag := 'N';
105469 END;
105470 --
105471 IF (l_acc_rev_flag = 'Y') THEN
105472
105473 -- 4645092 ------------------------------------------------------------------------------
105474 -- To allow MPA report to determine if it should generate report process
105475 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105476 ------------------------------------------------------------------------------------------
105477
105478 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105479 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105480 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
105481 -- call ADRs
105482 -- Bug 4922099
105483 --
105484 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105485 (NVL(l_actual_upg_option, 'N') = 'O') OR
105486 (NVL(l_enc_upg_option, 'N') = 'O')
105487 )
105488 THEN
105489 NULL;
105490 --
105491 --
105492
105493 --
105494 --
105495 END IF;
105496
105497 --
105498 -- Update the line information that should be overwritten
105499 --
105500 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105501 p_header_num => 1);
105502 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
105503
105504 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105505
105506 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
105507 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105508 END IF;
105509
105510 --
105511 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105512 --
105513 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105517 -- 4262811a Switch Sign
105514 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
105515 ELSE
105516 ---------------------------------------------------------------------------------------------------
105518 ---------------------------------------------------------------------------------------------------
105519 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
105520 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105521 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105522 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105523 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105524 -- 5132302
105525 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105526 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105527
105528 END IF;
105529
105530 -- 4955764
105531 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105532 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105533
105534
105535 XLA_AE_LINES_PKG.ValidateCurrentLine;
105536 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105537
105538 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105539 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105540 ,p_balance_type_code => l_balance_type_code);
105541
105542 END IF;
105543
105544 -----------------------------------------------------------------------------------------
105545 -- 4262811 Multiperiod Accounting
105546 -----------------------------------------------------------------------------------------
105547 -- No MPA option is assigned.
105548
105549
105550 END IF;
105551 END IF;
105552 --
105553
105554 --
105555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105556 trace
105557 (p_msg => 'END of AcctLineType_184'
105558 ,p_level => C_LEVEL_PROCEDURE
105559 ,p_module => l_log_module);
105560 END IF;
105561 --
105562 EXCEPTION
105563 WHEN xla_exceptions_pkg.application_exception THEN
105564 RAISE;
105565 WHEN OTHERS THEN
105566 xla_exceptions_pkg.raise_message
105567 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_184');
105568 END AcctLineType_184;
105569 --
105570
105571 ---------------------------------------
105572 --
105573 -- PRIVATE FUNCTION
105574 -- AcctLineType_185
105575 --
105576 ---------------------------------------
105577 PROCEDURE AcctLineType_185 (
105578 p_application_id IN NUMBER
105579 ,p_event_id IN NUMBER
105580 ,p_calculate_acctd_flag IN VARCHAR2
105581 ,p_calculate_g_l_flag IN VARCHAR2
105582 ,p_actual_flag IN OUT VARCHAR2
105583 ,p_balance_type_code OUT VARCHAR2
105584 ,p_gain_or_loss_ref OUT VARCHAR2
105585
105586 --Payment Distribution (Payment Rate) Ledger Amount
105587 , p_source_9 IN NUMBER
105588 --Invoice Distribution Account
105589 , p_source_17 IN NUMBER
105590 --Invoice Distribution Type
105591 , p_source_20 IN VARCHAR2
105592 , p_source_20_meaning IN VARCHAR2
105593 --When to Account for Payment Option
105594 , p_source_38 IN VARCHAR2
105595 --Payment Distribution Type
105596 , p_source_39 IN VARCHAR2
105597 , p_source_39_meaning IN VARCHAR2
105598 --Accounting Reversal Indicator
105599 , p_source_40 IN VARCHAR2
105600 --Payment Distribution Amount
105601 , p_source_41 IN NUMBER
105602 --Business Flow Accounts Payable Application Identifier
105603 , p_source_42 IN NUMBER
105604 --Payment Distribution Identifier
105605 , p_source_47 IN NUMBER
105606 --Distribution Link Type
105607 , p_source_48 IN VARCHAR2
105608 --Payment Currency Code
105609 , p_source_49 IN VARCHAR2
105610 --Override Accounted Amount Indicator
105611 , p_source_53 IN VARCHAR2
105612 , p_source_53_meaning IN VARCHAR2
105613 --Payment Supplier Identifier
105614 , p_source_54 IN NUMBER
105615 --Payment Supplier Site Identifier
105616 , p_source_55 IN NUMBER
105617 --Third Party Type
105618 , p_source_56 IN VARCHAR2
105619 --Payment Distribution Reversed Identifier
105620 , p_source_57 IN NUMBER
105621 --Invoice Distribution Tax Line Identifier
105622 , p_source_58 IN NUMBER
105623 --Invoice Distribution Summary Tax Line Identifier
105624 , p_source_59 IN NUMBER
105625 --Payment Type
105626 , p_source_60 IN VARCHAR2
105627 , p_source_60_meaning IN VARCHAR2
105628 --Business Flow Invoice Distribution Type
105629 , p_source_62 IN VARCHAR2
105630 --Business Flow Invoice Entity Code
105631 , p_source_63 IN VARCHAR2
105632 --Business Flow Invoice Distribution Identifier
105633 , p_source_64 IN NUMBER
105634 --Business Flow Invoice Identifier
105635 , p_source_65 IN NUMBER
105636 --Invoice Distribution Tax Distribution Identifier from Tax
105637 , p_source_66 IN NUMBER
105638 --Accrue on Receipt Option
105639 , p_source_100 IN VARCHAR2
105643 --Payment Exchange Rate
105640 , p_source_100_meaning IN VARCHAR2
105641 --Payment Exchange Date
105642 , p_source_114 IN DATE
105644 , p_source_115 IN NUMBER
105645 --Payment Exchange Rate Type
105646 , p_source_116 IN VARCHAR2
105647 )
105648 IS
105649
105650 l_component_type VARCHAR2(80);
105651 l_component_code VARCHAR2(30);
105652 l_component_type_code VARCHAR2(1);
105653 l_component_appl_id INTEGER;
105654 l_amb_context_code VARCHAR2(30);
105655 l_entity_code VARCHAR2(30);
105656 l_event_class_code VARCHAR2(30);
105657 l_ae_header_id NUMBER;
105658 l_event_type_code VARCHAR2(30);
105659 l_line_definition_code VARCHAR2(30);
105660 l_line_definition_owner_code VARCHAR2(1);
105661 --
105662 -- adr variables
105663 l_segment VARCHAR2(30);
105664 l_ccid NUMBER;
105665 l_adr_transaction_coa_id NUMBER;
105666 l_adr_accounting_coa_id NUMBER;
105667 l_adr_flexfield_segment_code VARCHAR2(30);
105668 l_adr_flex_value_set_id NUMBER;
105669 l_adr_value_type_code VARCHAR2(30);
105670 l_adr_value_combination_id NUMBER;
105671 l_adr_value_segment_code VARCHAR2(30);
105672
105673 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
105674 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
105675 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
105676 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
105677
105678 -- 4262811 Variables ------------------------------------------------------------------------------------------
105679 l_entered_amt_idx NUMBER;
105680 l_accted_amt_idx NUMBER;
105681 l_acc_rev_flag VARCHAR2(1);
105682 l_accrual_line_num NUMBER;
105683 l_tmp_amt NUMBER;
105684 l_acc_rev_natural_side_code VARCHAR2(1);
105685
105686 l_num_entries NUMBER;
105687 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
105688 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
105689 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
105690 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
105691 l_recog_line_1 NUMBER;
105692 l_recog_line_2 NUMBER;
105693
105694 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
105695 l_bflow_applied_to_amt NUMBER; -- 5132302
105696 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
105697
105698 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105699
105700 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
105701 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
105702
105703 ---------------------------------------------------------------------------------------------------------------
105704
105705
105706 --
105707 -- bulk performance
105708 --
105709 l_balance_type_code VARCHAR2(1);
105710 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
105711 l_log_module VARCHAR2(240);
105712
105713 --
105714 -- Upgrade strategy
105715 --
105716 l_actual_upg_option VARCHAR2(1);
105717 l_enc_upg_option VARCHAR2(1);
105718
105719 --
105720 BEGIN
105721 --
105722 IF g_log_enabled THEN
105723 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_185';
105724 END IF;
105725 --
105726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105727
105728 trace
105729 (p_msg => 'BEGIN of AcctLineType_185'
105730 ,p_level => C_LEVEL_PROCEDURE
105731 ,p_module => l_log_module);
105732
105733 END IF;
105734 --
105735 l_component_type := 'AMB_JLT';
105736 l_component_code := 'AP_TAX_INV_PRICE_VAR_REF';
105737 l_component_type_code := 'S';
105738 l_component_appl_id := 200;
105739 l_amb_context_code := 'DEFAULT';
105740 l_entity_code := 'AP_PAYMENTS';
105741 l_event_class_code := 'REFUNDS';
105742 l_event_type_code := 'REFUNDS_ALL';
105743 l_line_definition_owner_code := 'S';
105744 l_line_definition_code := 'CASH_REFUNDS_ALL';
105745 --
105746 l_balance_type_code := 'A';
105747 l_segment := NULL;
105748 l_ccid := NULL;
105749 l_adr_transaction_coa_id := NULL;
105750 l_adr_accounting_coa_id := NULL;
105751 l_adr_flexfield_segment_code := NULL;
105752 l_adr_flex_value_set_id := NULL;
105753 l_adr_value_type_code := NULL;
105754 l_adr_value_combination_id := NULL;
105755 l_adr_value_segment_code := NULL;
105756
105757 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
105758 l_bflow_class_code := ''; -- 4219869 Business Flow
105759 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
105760 l_budgetary_control_flag := 'N';
105761
105762 l_bflow_applied_to_amt_idx := NULL; -- 5132302
105763 l_bflow_applied_to_amt := NULL; -- 5132302
105764 l_entered_amt_idx := NULL; -- 4262811
105765 l_accted_amt_idx := NULL; -- 4262811
105766 l_acc_rev_flag := NULL; -- 4262811
105770
105767 l_accrual_line_num := NULL; -- 4262811
105768 l_tmp_amt := NULL; -- 4262811
105769 --
105771 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105772 l_balance_type_code <> 'B' THEN
105773 IF NVL(p_source_38,'
105774 ') <> 'CLEAR_CLEAR' AND
105775 NVL(p_source_20,'
105776 ') = 'TIPV' AND
105777 (NVL(p_source_39,'
105778 ') = 'CASH' OR
105779 NVL(p_source_39,'
105780 ') = 'DISCOUNT') AND
105781 NVL(p_source_60,'
105782 ') = 'R' AND
105783 NVL(p_source_100,'
105784 ') = 'Y'
105785 THEN
105786
105787 --
105788 XLA_AE_LINES_PKG.SetNewLine;
105789
105790 p_balance_type_code := l_balance_type_code;
105791 -- set the flag so later we will know whether the gain loss line needs to be created
105792
105793 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105794 p_actual_flag :='A';
105795 END IF;
105796
105797 --
105798 -- bulk performance
105799 --
105800 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105801 p_header_num => 0); -- 4262811
105802 --
105803 -- set accounting line options
105804 --
105805 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105806 p_natural_side_code => 'D'
105807 , p_gain_or_loss_flag => 'N'
105808 , p_gl_transfer_mode_code => 'S'
105809 , p_acct_entry_type_code => 'A'
105810 , p_switch_side_flag => 'Y'
105811 , p_merge_duplicate_code => 'A'
105812 );
105813 --
105814 l_acc_rev_natural_side_code := 'C'; -- 4262811
105815 --
105816 --
105817 -- set accounting line type info
105818 --
105819 xla_ae_lines_pkg.SetAcctLineType
105820 (p_component_type => l_component_type
105821 ,p_event_type_code => l_event_type_code
105822 ,p_line_definition_owner_code => l_line_definition_owner_code
105823 ,p_line_definition_code => l_line_definition_code
105824 ,p_accounting_line_code => l_component_code
105825 ,p_accounting_line_type_code => l_component_type_code
105826 ,p_accounting_line_appl_id => l_component_appl_id
105827 ,p_amb_context_code => l_amb_context_code
105828 ,p_entity_code => l_entity_code
105829 ,p_event_class_code => l_event_class_code);
105830 --
105831 -- set accounting class
105832 --
105833 xla_ae_lines_pkg.SetAcctClass(
105834 p_accounting_class_code => 'TIPV'
105835 , p_ae_header_id => l_ae_header_id
105836 );
105837
105838 --
105839 -- set rounding class
105840 --
105841 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105842 'TIPV';
105843
105844 --
105845 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105846 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105847 --
105848 -- bulk performance
105849 --
105850 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105851
105852 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105853 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105854
105855 -- 4955764
105856 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105857 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105858
105859 -- 4458381 Public Sector Enh
105860
105861 --
105862 -- set accounting attributes for the line type
105863 --
105864 l_entered_amt_idx := 9;
105865 l_accted_amt_idx := 14;
105866 l_bflow_applied_to_amt_idx := NULL; -- 5132302
105867 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105868 l_rec_acct_attrs.array_char_value(1) := p_source_40;
105869 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
105870 l_rec_acct_attrs.array_num_value(2) := p_source_42;
105871 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105872 l_rec_acct_attrs.array_char_value(3) := p_source_62;
105873 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
105874 l_rec_acct_attrs.array_char_value(4) := p_source_63;
105875 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
105876 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
105877 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105878 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
105879 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
105880 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
105881 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
105882 l_rec_acct_attrs.array_char_value(8) := p_source_48;
105883 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
105884 l_rec_acct_attrs.array_num_value(9) := p_source_41;
105885 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
105886 l_rec_acct_attrs.array_char_value(10) := p_source_49;
105887 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
105891 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
105888 l_rec_acct_attrs.array_date_value(11) := p_source_114;
105889 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
105890 l_rec_acct_attrs.array_num_value(12) := p_source_115;
105892 l_rec_acct_attrs.array_char_value(13) := p_source_116;
105893 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
105894 l_rec_acct_attrs.array_num_value(14) := p_source_9;
105895 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
105896 l_rec_acct_attrs.array_char_value(15) := p_source_53;
105897 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
105898 l_rec_acct_attrs.array_num_value(16) := p_source_54;
105899 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
105900 l_rec_acct_attrs.array_num_value(17) := p_source_55;
105901 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
105902 l_rec_acct_attrs.array_char_value(18) := p_source_56;
105903 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
105904 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
105905 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
105906 l_rec_acct_attrs.array_char_value(20) := p_source_48;
105907 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
105908 l_rec_acct_attrs.array_num_value(21) := p_source_58;
105909 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
105910 l_rec_acct_attrs.array_num_value(22) := p_source_66;
105911 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
105912 l_rec_acct_attrs.array_num_value(23) := p_source_59;
105913
105914 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105915 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105916
105917 ---------------------------------------------------------------------------------------------------------------
105918 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105919 ---------------------------------------------------------------------------------------------------------------
105920 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105921
105922 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105923 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105924
105925 IF xla_accounting_cache_pkg.GetValueChar
105926 (p_source_code => 'LEDGER_CATEGORY_CODE'
105927 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105928 AND l_bflow_method_code = 'PRIOR_ENTRY'
105929 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105930 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105931 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105932 )
105933 THEN
105934 xla_ae_lines_pkg.BflowUpgEntry
105935 (p_business_method_code => l_bflow_method_code
105936 ,p_business_class_code => l_bflow_class_code
105937 ,p_balance_type => l_balance_type_code);
105938 ELSE
105939 NULL;
105940 -- No business flow processing for business flow method of NONE.
105941 END IF;
105942
105943 --
105944 -- call analytical criteria
105945 --
105946
105947 --
105948 -- call description
105949 --
105950 -- No description or it is inherited.
105951 --
105952 -- call ADRs
105953 -- Bug 4922099
105954 --
105955 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105956 (NVL(l_actual_upg_option, 'N') = 'O') OR
105957 (NVL(l_enc_upg_option, 'N') = 'O')
105958 )
105959 THEN
105960 NULL;
105961 --
105962 --
105963
105964 l_ccid := AcctDerRule_26(
105965 p_application_id => p_application_id
105966 , p_ae_header_id => l_ae_header_id
105967 , p_source_17 => p_source_17
105968 , x_transaction_coa_id => l_adr_transaction_coa_id
105969 , x_accounting_coa_id => l_adr_accounting_coa_id
105970 , x_value_type_code => l_adr_value_type_code
105971 , p_side => 'NA'
105972 );
105973
105974 xla_ae_lines_pkg.set_ccid(
105975 p_code_combination_id => l_ccid
105976 , p_value_type_code => l_adr_value_type_code
105977 , p_transaction_coa_id => l_adr_transaction_coa_id
105978 , p_accounting_coa_id => l_adr_accounting_coa_id
105979 , p_adr_code => 'AP_INVOICE_DIST'
105980 , p_adr_type_code => 'S'
105981 , p_component_type => l_component_type
105982 , p_component_code => l_component_code
105983 , p_component_type_code => l_component_type_code
105984 , p_component_appl_id => l_component_appl_id
105985 , p_amb_context_code => l_amb_context_code
105986 , p_side => 'NA'
105987 );
105988
105989
105990 --
105991 --
105992 END IF;
105993 --
105994 -- Bug 4922099
105995 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105996 (NVL(l_enc_upg_option, 'N') = 'O')
105997 ) AND
105998 (l_bflow_method_code = 'PRIOR_ENTRY')
105999 )
106000 THEN
106001 IF
106002 --
106003 1 = 2
106007 (p_appli_s_name => 'XLA'
106004 --
106005 THEN
106006 xla_accounting_err_pkg.build_message
106008 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106009 ,p_token_1 => 'LINE_NUMBER'
106010 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
106011 ,p_token_2 => 'LINE_TYPE_NAME'
106012 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
106013 l_component_type
106014 ,l_component_code
106015 ,l_component_type_code
106016 ,l_component_appl_id
106017 ,l_amb_context_code
106018 ,l_entity_code
106019 ,l_event_class_code
106020 )
106021 ,p_token_3 => 'OWNER'
106022 ,p_value_3 => xla_lookups_pkg.get_meaning(
106023 p_lookup_type => 'XLA_OWNER_TYPE'
106024 ,p_lookup_code => l_component_type_code
106025 )
106026 ,p_token_4 => 'PRODUCT_NAME'
106027 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106028 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106029 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106030 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106031 ,p_ae_header_id => NULL
106032 );
106033
106034 IF (C_LEVEL_ERROR>= g_log_level) THEN
106035 trace
106036 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106037 ,p_level => C_LEVEL_ERROR
106038 ,p_module => l_log_module);
106039 END IF;
106040 END IF;
106041 END IF;
106042 --
106043 --
106044 ------------------------------------------------------------------------------------------------
106045 -- 4219869 Business Flow
106046 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106047 -- Prior Entry. Currently, the following code is always generated.
106048 ------------------------------------------------------------------------------------------------
106049 XLA_AE_LINES_PKG.ValidateCurrentLine;
106050
106051 ------------------------------------------------------------------------------------
106052 -- 4219869 Business Flow
106053 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106054 ------------------------------------------------------------------------------------
106055 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106056
106057 ----------------------------------------------------------------------------------
106058 -- 4219869 Business Flow
106059 -- Update journal entry status -- Need to generate this within IF <condition>
106060 ----------------------------------------------------------------------------------
106061 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106062 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106063 ,p_balance_type_code => l_balance_type_code
106064 );
106065
106066 -------------------------------------------------------------------------------------------
106067 -- 4262811 - Generate the Accrual Reversal lines
106068 -------------------------------------------------------------------------------------------
106069 BEGIN
106070 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106071 (g_array_event(p_event_id).array_value_num('header_index'));
106072 IF l_acc_rev_flag IS NULL THEN
106073 l_acc_rev_flag := 'N';
106074 END IF;
106075 EXCEPTION
106076 WHEN OTHERS THEN
106077 l_acc_rev_flag := 'N';
106078 END;
106079 --
106080 IF (l_acc_rev_flag = 'Y') THEN
106081
106082 -- 4645092 ------------------------------------------------------------------------------
106083 -- To allow MPA report to determine if it should generate report process
106084 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106085 ------------------------------------------------------------------------------------------
106086
106087 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106088 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106089 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
106090 -- call ADRs
106091 -- Bug 4922099
106092 --
106093 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106094 (NVL(l_actual_upg_option, 'N') = 'O') OR
106098 NULL;
106095 (NVL(l_enc_upg_option, 'N') = 'O')
106096 )
106097 THEN
106099 --
106100 --
106101
106102 l_ccid := AcctDerRule_26(
106103 p_application_id => p_application_id
106104 , p_ae_header_id => l_ae_header_id
106105 , p_source_17 => p_source_17
106106 , x_transaction_coa_id => l_adr_transaction_coa_id
106107 , x_accounting_coa_id => l_adr_accounting_coa_id
106108 , x_value_type_code => l_adr_value_type_code
106109 , p_side => 'NA'
106110 );
106111
106112 xla_ae_lines_pkg.set_ccid(
106113 p_code_combination_id => l_ccid
106114 , p_value_type_code => l_adr_value_type_code
106115 , p_transaction_coa_id => l_adr_transaction_coa_id
106116 , p_accounting_coa_id => l_adr_accounting_coa_id
106117 , p_adr_code => 'AP_INVOICE_DIST'
106118 , p_adr_type_code => 'S'
106119 , p_component_type => l_component_type
106120 , p_component_code => l_component_code
106121 , p_component_type_code => l_component_type_code
106122 , p_component_appl_id => l_component_appl_id
106123 , p_amb_context_code => l_amb_context_code
106124 , p_side => 'NA'
106125 );
106126
106127
106128 --
106129 --
106130 END IF;
106131
106132 --
106133 -- Update the line information that should be overwritten
106134 --
106135 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106136 p_header_num => 1);
106137 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
106138
106139 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106140
106141 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
106142 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106143 END IF;
106144
106145 --
106146 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106147 --
106148 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106149 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
106150 ELSE
106151 ---------------------------------------------------------------------------------------------------
106152 -- 4262811a Switch Sign
106153 ---------------------------------------------------------------------------------------------------
106154 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
106155 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106156 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106157 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106158 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106159 -- 5132302
106160 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106161 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106162
106163 END IF;
106164
106165 -- 4955764
106166 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106167 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106168
106169
106170 XLA_AE_LINES_PKG.ValidateCurrentLine;
106171 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106172
106173 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106174 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106175 ,p_balance_type_code => l_balance_type_code);
106176
106177 END IF;
106178
106179 -----------------------------------------------------------------------------------------
106180 -- 4262811 Multiperiod Accounting
106181 -----------------------------------------------------------------------------------------
106182 -- No MPA option is assigned.
106183
106184
106185 END IF;
106186 END IF;
106187 --
106188
106189 --
106190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106191 trace
106192 (p_msg => 'END of AcctLineType_185'
106193 ,p_level => C_LEVEL_PROCEDURE
106194 ,p_module => l_log_module);
106195 END IF;
106196 --
106197 EXCEPTION
106198 WHEN xla_exceptions_pkg.application_exception THEN
106199 RAISE;
106200 WHEN OTHERS THEN
106201 xla_exceptions_pkg.raise_message
106202 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_185');
106203 END AcctLineType_185;
106204 --
106205
106206 ---------------------------------------
106207 --
106208 -- PRIVATE FUNCTION
106209 -- AcctLineType_186
106210 --
106211 ---------------------------------------
106212 PROCEDURE AcctLineType_186 (
106213 p_application_id IN NUMBER
106214 ,p_event_id IN NUMBER
106215 ,p_calculate_acctd_flag IN VARCHAR2
106216 ,p_calculate_g_l_flag IN VARCHAR2
106217 ,p_actual_flag IN OUT VARCHAR2
106218 ,p_balance_type_code OUT VARCHAR2
106222 , p_source_9 IN NUMBER
106219 ,p_gain_or_loss_ref OUT VARCHAR2
106220
106221 --Payment Distribution (Payment Rate) Ledger Amount
106223 --Invoice Distribution Type
106224 , p_source_20 IN VARCHAR2
106225 , p_source_20_meaning IN VARCHAR2
106226 --When to Account for Payment Option
106227 , p_source_38 IN VARCHAR2
106228 --Payment Distribution Type
106229 , p_source_39 IN VARCHAR2
106230 , p_source_39_meaning IN VARCHAR2
106231 --Accounting Reversal Indicator
106232 , p_source_40 IN VARCHAR2
106233 --Payment Distribution Amount
106234 , p_source_41 IN NUMBER
106235 --Business Flow Accounts Payable Application Identifier
106236 , p_source_42 IN NUMBER
106237 --Payment Distribution Identifier
106238 , p_source_47 IN NUMBER
106239 --Distribution Link Type
106240 , p_source_48 IN VARCHAR2
106241 --Payment Currency Code
106242 , p_source_49 IN VARCHAR2
106243 --Override Accounted Amount Indicator
106244 , p_source_53 IN VARCHAR2
106245 , p_source_53_meaning IN VARCHAR2
106246 --Third Party Type
106247 , p_source_56 IN VARCHAR2
106248 --Payment Distribution Reversed Identifier
106249 , p_source_57 IN NUMBER
106250 --Invoice Distribution Tax Line Identifier
106251 , p_source_58 IN NUMBER
106252 --Invoice Distribution Summary Tax Line Identifier
106253 , p_source_59 IN NUMBER
106254 --Payment Type
106255 , p_source_60 IN VARCHAR2
106256 , p_source_60_meaning IN VARCHAR2
106257 --Business Flow Invoice Distribution Type
106258 , p_source_62 IN VARCHAR2
106259 --Business Flow Invoice Entity Code
106260 , p_source_63 IN VARCHAR2
106261 --Business Flow Invoice Distribution Identifier
106262 , p_source_64 IN NUMBER
106263 --Business Flow Invoice Identifier
106264 , p_source_65 IN NUMBER
106265 --Invoice Distribution Tax Distribution Identifier from Tax
106266 , p_source_66 IN NUMBER
106267 --Purchasing Encumbrance Option
106268 , p_source_102 IN VARCHAR2
106269 , p_source_102_meaning IN VARCHAR2
106270 --Invoice Encumbered Option
106271 , p_source_104 IN VARCHAR2
106272 , p_source_104_meaning IN VARCHAR2
106273 )
106274 IS
106275
106276 l_component_type VARCHAR2(80);
106277 l_component_code VARCHAR2(30);
106278 l_component_type_code VARCHAR2(1);
106279 l_component_appl_id INTEGER;
106280 l_amb_context_code VARCHAR2(30);
106281 l_entity_code VARCHAR2(30);
106282 l_event_class_code VARCHAR2(30);
106283 l_ae_header_id NUMBER;
106284 l_event_type_code VARCHAR2(30);
106285 l_line_definition_code VARCHAR2(30);
106286 l_line_definition_owner_code VARCHAR2(1);
106287 --
106288 -- adr variables
106289 l_segment VARCHAR2(30);
106290 l_ccid NUMBER;
106291 l_adr_transaction_coa_id NUMBER;
106292 l_adr_accounting_coa_id NUMBER;
106293 l_adr_flexfield_segment_code VARCHAR2(30);
106294 l_adr_flex_value_set_id NUMBER;
106295 l_adr_value_type_code VARCHAR2(30);
106296 l_adr_value_combination_id NUMBER;
106297 l_adr_value_segment_code VARCHAR2(30);
106298
106299 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
106300 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
106301 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
106302 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
106303
106304 -- 4262811 Variables ------------------------------------------------------------------------------------------
106305 l_entered_amt_idx NUMBER;
106306 l_accted_amt_idx NUMBER;
106307 l_acc_rev_flag VARCHAR2(1);
106308 l_accrual_line_num NUMBER;
106309 l_tmp_amt NUMBER;
106310 l_acc_rev_natural_side_code VARCHAR2(1);
106311
106312 l_num_entries NUMBER;
106313 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
106314 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
106315 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
106316 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
106317 l_recog_line_1 NUMBER;
106318 l_recog_line_2 NUMBER;
106319
106320 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
106321 l_bflow_applied_to_amt NUMBER; -- 5132302
106322 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
106323
106324 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106325
106326 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
106327 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
106328
106329 ---------------------------------------------------------------------------------------------------------------
106330
106331
106332 --
106333 -- bulk performance
106334 --
106335 l_balance_type_code VARCHAR2(1);
106336 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
106337 l_log_module VARCHAR2(240);
106338
106339 --
106340 -- Upgrade strategy
106341 --
106342 l_actual_upg_option VARCHAR2(1);
106346 BEGIN
106343 l_enc_upg_option VARCHAR2(1);
106344
106345 --
106347 --
106348 IF g_log_enabled THEN
106349 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_186';
106350 END IF;
106351 --
106352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106353
106354 trace
106355 (p_msg => 'BEGIN of AcctLineType_186'
106356 ,p_level => C_LEVEL_PROCEDURE
106357 ,p_module => l_log_module);
106358
106359 END IF;
106360 --
106361 l_component_type := 'AMB_JLT';
106362 l_component_code := 'AP_TAX_INV_PRICE_VAR_REF_ENC';
106363 l_component_type_code := 'S';
106364 l_component_appl_id := 200;
106365 l_amb_context_code := 'DEFAULT';
106366 l_entity_code := 'AP_PAYMENTS';
106367 l_event_class_code := 'REFUNDS';
106368 l_event_type_code := 'REFUNDS_ALL';
106369 l_line_definition_owner_code := 'S';
106370 l_line_definition_code := 'ENC_REFUNDS_ALL';
106371 --
106372 l_balance_type_code := 'E';
106373 l_segment := NULL;
106374 l_ccid := NULL;
106375 l_adr_transaction_coa_id := NULL;
106376 l_adr_accounting_coa_id := NULL;
106377 l_adr_flexfield_segment_code := NULL;
106378 l_adr_flex_value_set_id := NULL;
106379 l_adr_value_type_code := NULL;
106380 l_adr_value_combination_id := NULL;
106381 l_adr_value_segment_code := NULL;
106382
106383 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
106384 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
106385 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
106386 l_budgetary_control_flag := 'N';
106387
106388 l_bflow_applied_to_amt_idx := NULL; -- 5132302
106389 l_bflow_applied_to_amt := NULL; -- 5132302
106390 l_entered_amt_idx := NULL; -- 4262811
106391 l_accted_amt_idx := NULL; -- 4262811
106392 l_acc_rev_flag := NULL; -- 4262811
106393 l_accrual_line_num := NULL; -- 4262811
106394 l_tmp_amt := NULL; -- 4262811
106395 --
106396
106397 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106398 l_balance_type_code <> 'B' THEN
106399 IF NVL(p_source_38,'
106400 ') <> 'CLEAR_CLEAR' AND
106401 NVL(p_source_20,'
106402 ') = 'TIPV' AND
106403 (NVL(p_source_39,'
106404 ') = 'CASH' OR
106405 NVL(p_source_39,'
106406 ') = 'DISCOUNT') AND
106407 NVL(p_source_60,'
106408 ') = 'R' AND
106409 NVL(p_source_102,'
106410 ') = 'Y' AND
106411 NVL(p_source_104,'
106412 ') = 'Y'
106413 THEN
106414
106415 --
106416 XLA_AE_LINES_PKG.SetNewLine;
106417
106418 p_balance_type_code := l_balance_type_code;
106419 -- set the flag so later we will know whether the gain loss line needs to be created
106420
106421 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106422 p_actual_flag :='A';
106423 END IF;
106424
106425 --
106426 -- bulk performance
106427 --
106428 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106429 p_header_num => 0); -- 4262811
106430 --
106431 -- set accounting line options
106432 --
106433 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106434 p_natural_side_code => 'D'
106435 , p_gain_or_loss_flag => 'N'
106436 , p_gl_transfer_mode_code => 'S'
106437 , p_acct_entry_type_code => 'E'
106438 , p_switch_side_flag => 'Y'
106439 , p_merge_duplicate_code => 'A'
106440 );
106441 --
106442 l_acc_rev_natural_side_code := 'C'; -- 4262811
106443 --
106444 --
106445 -- set accounting line type info
106446 --
106447 xla_ae_lines_pkg.SetAcctLineType
106448 (p_component_type => l_component_type
106449 ,p_event_type_code => l_event_type_code
106450 ,p_line_definition_owner_code => l_line_definition_owner_code
106451 ,p_line_definition_code => l_line_definition_code
106452 ,p_accounting_line_code => l_component_code
106453 ,p_accounting_line_type_code => l_component_type_code
106454 ,p_accounting_line_appl_id => l_component_appl_id
106455 ,p_amb_context_code => l_amb_context_code
106456 ,p_entity_code => l_entity_code
106457 ,p_event_class_code => l_event_class_code);
106458 --
106459 -- set accounting class
106460 --
106461 xla_ae_lines_pkg.SetAcctClass(
106462 p_accounting_class_code => 'TIPV'
106463 , p_ae_header_id => l_ae_header_id
106464 );
106465
106466 --
106467 -- set rounding class
106468 --
106469 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106470 'TIPV';
106471
106472 --
106473 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106474 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106475 --
106476 -- bulk performance
106477 --
106478 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106479
106483 -- 4955764
106480 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106481 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106482
106484 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106485 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106486
106487 -- 4458381 Public Sector Enh
106488
106489 --
106490 -- set accounting attributes for the line type
106491 --
106492 l_entered_amt_idx := 9;
106493 l_accted_amt_idx := 11;
106494 l_bflow_applied_to_amt_idx := NULL; -- 5132302
106495 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106496 l_rec_acct_attrs.array_char_value(1) := p_source_40;
106497 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
106498 l_rec_acct_attrs.array_num_value(2) := p_source_42;
106499 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
106500 l_rec_acct_attrs.array_char_value(3) := p_source_62;
106501 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
106502 l_rec_acct_attrs.array_char_value(4) := p_source_63;
106503 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
106504 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
106505 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
106506 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
106507 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
106508 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
106509 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
106510 l_rec_acct_attrs.array_char_value(8) := p_source_48;
106511 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
106512 l_rec_acct_attrs.array_num_value(9) := p_source_41;
106513 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
106514 l_rec_acct_attrs.array_char_value(10) := p_source_49;
106515 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
106516 l_rec_acct_attrs.array_num_value(11) := p_source_9;
106517 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
106518 l_rec_acct_attrs.array_char_value(12) := p_source_53;
106519 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
106520 l_rec_acct_attrs.array_char_value(13) := p_source_56;
106521 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
106522 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
106523 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
106524 l_rec_acct_attrs.array_char_value(15) := p_source_48;
106525 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
106526 l_rec_acct_attrs.array_num_value(16) := p_source_58;
106527 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
106528 l_rec_acct_attrs.array_num_value(17) := p_source_66;
106529 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
106530 l_rec_acct_attrs.array_num_value(18) := p_source_59;
106531
106532 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106533 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106534
106535 ---------------------------------------------------------------------------------------------------------------
106536 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106537 ---------------------------------------------------------------------------------------------------------------
106538 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106539
106540 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106541 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106542
106543 IF xla_accounting_cache_pkg.GetValueChar
106544 (p_source_code => 'LEDGER_CATEGORY_CODE'
106545 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106546 AND l_bflow_method_code = 'PRIOR_ENTRY'
106547 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106548 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106549 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106550 )
106551 THEN
106552 xla_ae_lines_pkg.BflowUpgEntry
106553 (p_business_method_code => l_bflow_method_code
106554 ,p_business_class_code => l_bflow_class_code
106555 ,p_balance_type => l_balance_type_code);
106556 ELSE
106557 NULL;
106558 XLA_AE_LINES_PKG.business_flow_validation(
106559 p_business_method_code => l_bflow_method_code
106560 ,p_business_class_code => l_bflow_class_code
106561 ,p_inherit_description_flag => l_inherit_desc_flag);
106562 END IF;
106563
106564 --
106565 -- call analytical criteria
106566 --
106567 -- Inherited Analytical Criteria for business flow method of Prior Entry.
106568 --
106569 -- call description
106570 --
106571 -- No description or it is inherited.
106572 --
106573 -- call ADRs
106574 -- Bug 4922099
106575 --
106576 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106577 (NVL(l_actual_upg_option, 'N') = 'O') OR
106581 NULL;
106578 (NVL(l_enc_upg_option, 'N') = 'O')
106579 )
106580 THEN
106582 --
106583 --
106584
106585 --
106586 --
106587 END IF;
106588 --
106589 -- Bug 4922099
106590 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106591 (NVL(l_enc_upg_option, 'N') = 'O')
106592 ) AND
106593 (l_bflow_method_code = 'PRIOR_ENTRY')
106594 )
106595 THEN
106596 IF
106597 --
106598 1 = 1
106599 --
106600 THEN
106601 xla_accounting_err_pkg.build_message
106602 (p_appli_s_name => 'XLA'
106603 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106604 ,p_token_1 => 'LINE_NUMBER'
106605 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
106606 ,p_token_2 => 'LINE_TYPE_NAME'
106607 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
106608 l_component_type
106609 ,l_component_code
106610 ,l_component_type_code
106611 ,l_component_appl_id
106612 ,l_amb_context_code
106613 ,l_entity_code
106614 ,l_event_class_code
106615 )
106616 ,p_token_3 => 'OWNER'
106617 ,p_value_3 => xla_lookups_pkg.get_meaning(
106618 p_lookup_type => 'XLA_OWNER_TYPE'
106619 ,p_lookup_code => l_component_type_code
106620 )
106621 ,p_token_4 => 'PRODUCT_NAME'
106622 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106623 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106624 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106625 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106626 ,p_ae_header_id => NULL
106627 );
106628
106629 IF (C_LEVEL_ERROR>= g_log_level) THEN
106630 trace
106631 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106632 ,p_level => C_LEVEL_ERROR
106633 ,p_module => l_log_module);
106634 END IF;
106635 END IF;
106636 END IF;
106637 --
106638 --
106639 ------------------------------------------------------------------------------------------------
106640 -- 4219869 Business Flow
106641 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106642 -- Prior Entry. Currently, the following code is always generated.
106643 ------------------------------------------------------------------------------------------------
106644 -- No ValidateCurrentLine for business flow method of Prior Entry
106645
106646 ------------------------------------------------------------------------------------
106647 -- 4219869 Business Flow
106648 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106649 ------------------------------------------------------------------------------------
106650 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106651
106652 ----------------------------------------------------------------------------------
106653 -- 4219869 Business Flow
106654 -- Update journal entry status -- Need to generate this within IF <condition>
106655 ----------------------------------------------------------------------------------
106656 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106657 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106658 ,p_balance_type_code => l_balance_type_code
106659 );
106660
106661 -------------------------------------------------------------------------------------------
106662 -- 4262811 - Generate the Accrual Reversal lines
106663 -------------------------------------------------------------------------------------------
106664 BEGIN
106665 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106666 (g_array_event(p_event_id).array_value_num('header_index'));
106667 IF l_acc_rev_flag IS NULL THEN
106668 l_acc_rev_flag := 'N';
106669 END IF;
106670 EXCEPTION
106671 WHEN OTHERS THEN
106672 l_acc_rev_flag := 'N';
106673 END;
106674 --
106675 IF (l_acc_rev_flag = 'Y') THEN
106676
106677 -- 4645092 ------------------------------------------------------------------------------
106678 -- To allow MPA report to determine if it should generate report process
106682 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106679 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106680 ------------------------------------------------------------------------------------------
106681
106683 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106684 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
106685 -- call ADRs
106686 -- Bug 4922099
106687 --
106688 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106689 (NVL(l_actual_upg_option, 'N') = 'O') OR
106690 (NVL(l_enc_upg_option, 'N') = 'O')
106691 )
106692 THEN
106693 NULL;
106694 --
106695 --
106696
106697 --
106698 --
106699 END IF;
106700
106701 --
106702 -- Update the line information that should be overwritten
106703 --
106704 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106705 p_header_num => 1);
106706 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
106707
106708 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106709
106710 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
106711 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106712 END IF;
106713
106714 --
106715 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106716 --
106717 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106718 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
106719 ELSE
106720 ---------------------------------------------------------------------------------------------------
106721 -- 4262811a Switch Sign
106722 ---------------------------------------------------------------------------------------------------
106723 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
106724 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106725 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106726 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106727 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106728 -- 5132302
106729 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106730 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106731
106732 END IF;
106733
106734 -- 4955764
106735 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106736 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106737
106738
106739 XLA_AE_LINES_PKG.ValidateCurrentLine;
106740 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106741
106742 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106743 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106744 ,p_balance_type_code => l_balance_type_code);
106745
106746 END IF;
106747
106748 -----------------------------------------------------------------------------------------
106749 -- 4262811 Multiperiod Accounting
106750 -----------------------------------------------------------------------------------------
106751 -- No MPA option is assigned.
106752
106753
106754 END IF;
106755 END IF;
106756 --
106757
106758 --
106759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106760 trace
106761 (p_msg => 'END of AcctLineType_186'
106762 ,p_level => C_LEVEL_PROCEDURE
106763 ,p_module => l_log_module);
106764 END IF;
106765 --
106766 EXCEPTION
106767 WHEN xla_exceptions_pkg.application_exception THEN
106768 RAISE;
106769 WHEN OTHERS THEN
106770 xla_exceptions_pkg.raise_message
106771 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_186');
106772 END AcctLineType_186;
106773 --
106774
106775 ---------------------------------------
106776 --
106777 -- PRIVATE FUNCTION
106778 -- AcctLineType_187
106779 --
106780 ---------------------------------------
106781 PROCEDURE AcctLineType_187 (
106782 p_application_id IN NUMBER
106783 ,p_event_id IN NUMBER
106784 ,p_calculate_acctd_flag IN VARCHAR2
106785 ,p_calculate_g_l_flag IN VARCHAR2
106786 ,p_actual_flag IN OUT VARCHAR2
106787 ,p_balance_type_code OUT VARCHAR2
106788 ,p_gain_or_loss_ref OUT VARCHAR2
106789
106790 --Invoice Distribution Type
106791 , p_source_20 IN VARCHAR2
106792 , p_source_20_meaning IN VARCHAR2
106793 --When to Account for Payment Option
106794 , p_source_38 IN VARCHAR2
106795 --Payment Distribution Type
106796 , p_source_39 IN VARCHAR2
106797 , p_source_39_meaning IN VARCHAR2
106798 --Accounting Reversal Indicator
106799 , p_source_40 IN VARCHAR2
106800 --Payment Distribution Amount
106801 , p_source_41 IN NUMBER
106802 --Business Flow Accounts Payable Application Identifier
106803 , p_source_42 IN NUMBER
106804 --Payment Distribution Identifier
106808 --Payment Currency Code
106805 , p_source_47 IN NUMBER
106806 --Distribution Link Type
106807 , p_source_48 IN VARCHAR2
106809 , p_source_49 IN VARCHAR2
106810 --Override Accounted Amount Indicator
106811 , p_source_53 IN VARCHAR2
106812 , p_source_53_meaning IN VARCHAR2
106813 --Third Party Type
106814 , p_source_56 IN VARCHAR2
106815 --Payment Distribution Reversed Identifier
106816 , p_source_57 IN NUMBER
106817 --Invoice Distribution Tax Line Identifier
106818 , p_source_58 IN NUMBER
106819 --Invoice Distribution Summary Tax Line Identifier
106820 , p_source_59 IN NUMBER
106821 --Business Flow Invoice Distribution Type
106822 , p_source_62 IN VARCHAR2
106823 --Business Flow Invoice Entity Code
106824 , p_source_63 IN VARCHAR2
106825 --Business Flow Invoice Distribution Identifier
106826 , p_source_64 IN NUMBER
106827 --Business Flow Invoice Identifier
106828 , p_source_65 IN NUMBER
106829 --Accrue on Receipt Option
106830 , p_source_100 IN VARCHAR2
106831 , p_source_100_meaning IN VARCHAR2
106832 --Purchasing Encumbrance Option
106833 , p_source_102 IN VARCHAR2
106834 , p_source_102_meaning IN VARCHAR2
106835 --Invoice Encumbered Option
106836 , p_source_104 IN VARCHAR2
106837 , p_source_104_meaning IN VARCHAR2
106838 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
106839 , p_source_142 IN NUMBER
106840 --Prorated Amount of Quantity Variance for Cash Basis
106841 , p_source_143 IN NUMBER
106842 )
106843 IS
106844
106845 l_component_type VARCHAR2(80);
106846 l_component_code VARCHAR2(30);
106847 l_component_type_code VARCHAR2(1);
106848 l_component_appl_id INTEGER;
106849 l_amb_context_code VARCHAR2(30);
106850 l_entity_code VARCHAR2(30);
106851 l_event_class_code VARCHAR2(30);
106852 l_ae_header_id NUMBER;
106853 l_event_type_code VARCHAR2(30);
106854 l_line_definition_code VARCHAR2(30);
106855 l_line_definition_owner_code VARCHAR2(1);
106856 --
106857 -- adr variables
106858 l_segment VARCHAR2(30);
106859 l_ccid NUMBER;
106860 l_adr_transaction_coa_id NUMBER;
106861 l_adr_accounting_coa_id NUMBER;
106862 l_adr_flexfield_segment_code VARCHAR2(30);
106863 l_adr_flex_value_set_id NUMBER;
106864 l_adr_value_type_code VARCHAR2(30);
106865 l_adr_value_combination_id NUMBER;
106866 l_adr_value_segment_code VARCHAR2(30);
106867
106868 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
106869 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
106870 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
106871 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
106872
106873 -- 4262811 Variables ------------------------------------------------------------------------------------------
106874 l_entered_amt_idx NUMBER;
106875 l_accted_amt_idx NUMBER;
106876 l_acc_rev_flag VARCHAR2(1);
106877 l_accrual_line_num NUMBER;
106878 l_tmp_amt NUMBER;
106879 l_acc_rev_natural_side_code VARCHAR2(1);
106880
106881 l_num_entries NUMBER;
106882 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
106883 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
106884 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
106885 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
106886 l_recog_line_1 NUMBER;
106887 l_recog_line_2 NUMBER;
106888
106889 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
106890 l_bflow_applied_to_amt NUMBER; -- 5132302
106891 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
106892
106893 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106894
106895 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
106896 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
106897
106898 ---------------------------------------------------------------------------------------------------------------
106899
106900
106901 --
106902 -- bulk performance
106903 --
106904 l_balance_type_code VARCHAR2(1);
106905 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
106906 l_log_module VARCHAR2(240);
106907
106908 --
106909 -- Upgrade strategy
106910 --
106911 l_actual_upg_option VARCHAR2(1);
106912 l_enc_upg_option VARCHAR2(1);
106913
106914 --
106915 BEGIN
106916 --
106917 IF g_log_enabled THEN
106918 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_187';
106919 END IF;
106920 --
106921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106922
106923 trace
106924 (p_msg => 'BEGIN of AcctLineType_187'
106925 ,p_level => C_LEVEL_PROCEDURE
106926 ,p_module => l_log_module);
106927
106928 END IF;
106929 --
106930 l_component_type := 'AMB_JLT';
106931 l_component_code := 'AP_TAX_QTY_VARIANCE_CLR_ENC';
106932 l_component_type_code := 'S';
106933 l_component_appl_id := 200;
106937 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
106934 l_amb_context_code := 'DEFAULT';
106935 l_entity_code := 'AP_PAYMENTS';
106936 l_event_class_code := 'RECONCILED PAYMENTS';
106938 l_line_definition_owner_code := 'S';
106939 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
106940 --
106941 l_balance_type_code := 'E';
106942 l_segment := NULL;
106943 l_ccid := NULL;
106944 l_adr_transaction_coa_id := NULL;
106945 l_adr_accounting_coa_id := NULL;
106946 l_adr_flexfield_segment_code := NULL;
106947 l_adr_flex_value_set_id := NULL;
106948 l_adr_value_type_code := NULL;
106949 l_adr_value_combination_id := NULL;
106950 l_adr_value_segment_code := NULL;
106951
106952 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
106953 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
106954 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
106955 l_budgetary_control_flag := 'N';
106956
106957 l_bflow_applied_to_amt_idx := NULL; -- 5132302
106958 l_bflow_applied_to_amt := NULL; -- 5132302
106959 l_entered_amt_idx := NULL; -- 4262811
106960 l_accted_amt_idx := NULL; -- 4262811
106961 l_acc_rev_flag := NULL; -- 4262811
106962 l_accrual_line_num := NULL; -- 4262811
106963 l_tmp_amt := NULL; -- 4262811
106964 --
106965
106966 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106967 l_balance_type_code <> 'B' THEN
106968 IF NVL(p_source_38,'
106969 ') = 'CLEAR_CLEAR' AND
106970 NVL(p_source_20,'
106971 ') = 'NONREC_TAX' AND
106972 (NVL(p_source_39,'
106973 ') = 'CASH' OR
106974 NVL(p_source_39,'
106975 ') = 'DISCOUNT') AND
106976 NVL(p_source_102,'
106977 ') = 'Y' AND
106978 NVL(p_source_100,'
106979 ') <> 'Y' AND
106980 p_source_142 IS NOT NULL AND
106981 NVL(p_source_104,'
106982 ') = 'Y'
106983 THEN
106984
106985 --
106986 XLA_AE_LINES_PKG.SetNewLine;
106987
106988 p_balance_type_code := l_balance_type_code;
106989 -- set the flag so later we will know whether the gain loss line needs to be created
106990
106991 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106992 p_actual_flag :='A';
106993 END IF;
106994
106995 --
106996 -- bulk performance
106997 --
106998 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106999 p_header_num => 0); -- 4262811
107000 --
107001 -- set accounting line options
107002 --
107003 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107004 p_natural_side_code => 'C'
107005 , p_gain_or_loss_flag => 'N'
107006 , p_gl_transfer_mode_code => 'S'
107007 , p_acct_entry_type_code => 'E'
107008 , p_switch_side_flag => 'Y'
107009 , p_merge_duplicate_code => 'A'
107010 );
107011 --
107012 l_acc_rev_natural_side_code := 'D'; -- 4262811
107013 --
107014 --
107015 -- set accounting line type info
107016 --
107017 xla_ae_lines_pkg.SetAcctLineType
107018 (p_component_type => l_component_type
107019 ,p_event_type_code => l_event_type_code
107020 ,p_line_definition_owner_code => l_line_definition_owner_code
107021 ,p_line_definition_code => l_line_definition_code
107022 ,p_accounting_line_code => l_component_code
107023 ,p_accounting_line_type_code => l_component_type_code
107024 ,p_accounting_line_appl_id => l_component_appl_id
107025 ,p_amb_context_code => l_amb_context_code
107026 ,p_entity_code => l_entity_code
107027 ,p_event_class_code => l_event_class_code);
107028 --
107029 -- set accounting class
107030 --
107031 xla_ae_lines_pkg.SetAcctClass(
107032 p_accounting_class_code => 'TQV'
107033 , p_ae_header_id => l_ae_header_id
107034 );
107035
107036 --
107037 -- set rounding class
107038 --
107039 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107040 'TQV';
107041
107042 --
107043 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107044 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107045 --
107046 -- bulk performance
107047 --
107048 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107049
107050 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107051 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107052
107053 -- 4955764
107054 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107055 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107056
107057 -- 4458381 Public Sector Enh
107058
107059 --
107060 -- set accounting attributes for the line type
107061 --
107062 l_entered_amt_idx := 10;
107063 l_accted_amt_idx := 12;
107064 l_bflow_applied_to_amt_idx := 2; -- 5132302
107068 l_rec_acct_attrs.array_num_value(2) := p_source_41;
107065 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107066 l_rec_acct_attrs.array_char_value(1) := p_source_40;
107067 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
107069 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
107070 l_rec_acct_attrs.array_num_value(3) := p_source_42;
107071 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107072 l_rec_acct_attrs.array_char_value(4) := p_source_62;
107073 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
107074 l_rec_acct_attrs.array_char_value(5) := p_source_63;
107075 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
107076 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
107077 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107078 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
107079 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
107080 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
107081 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
107082 l_rec_acct_attrs.array_char_value(9) := p_source_48;
107083 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
107084 l_rec_acct_attrs.array_num_value(10) := p_source_143;
107085 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
107086 l_rec_acct_attrs.array_char_value(11) := p_source_49;
107087 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
107088 l_rec_acct_attrs.array_num_value(12) := p_source_142;
107089 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
107090 l_rec_acct_attrs.array_char_value(13) := p_source_53;
107091 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
107092 l_rec_acct_attrs.array_char_value(14) := p_source_56;
107093 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
107094 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
107095 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
107096 l_rec_acct_attrs.array_char_value(16) := p_source_48;
107097 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
107098 l_rec_acct_attrs.array_num_value(17) := p_source_58;
107099 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
107100 l_rec_acct_attrs.array_num_value(18) := p_source_58;
107101 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
107102 l_rec_acct_attrs.array_num_value(19) := p_source_59;
107103
107104 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107105 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107106
107107 ---------------------------------------------------------------------------------------------------------------
107108 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107109 ---------------------------------------------------------------------------------------------------------------
107110 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107111
107112 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107113 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107114
107115 IF xla_accounting_cache_pkg.GetValueChar
107116 (p_source_code => 'LEDGER_CATEGORY_CODE'
107117 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107118 AND l_bflow_method_code = 'PRIOR_ENTRY'
107119 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107120 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107121 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107122 )
107123 THEN
107124 xla_ae_lines_pkg.BflowUpgEntry
107125 (p_business_method_code => l_bflow_method_code
107126 ,p_business_class_code => l_bflow_class_code
107127 ,p_balance_type => l_balance_type_code);
107128 ELSE
107129 NULL;
107130 XLA_AE_LINES_PKG.business_flow_validation(
107131 p_business_method_code => l_bflow_method_code
107132 ,p_business_class_code => l_bflow_class_code
107133 ,p_inherit_description_flag => l_inherit_desc_flag);
107134 END IF;
107135
107136 --
107137 -- call analytical criteria
107138 --
107139 -- Inherited Analytical Criteria for business flow method of Prior Entry.
107140 --
107141 -- call description
107142 --
107143 -- No description or it is inherited.
107144 --
107145 -- call ADRs
107146 -- Bug 4922099
107147 --
107148 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107149 (NVL(l_actual_upg_option, 'N') = 'O') OR
107150 (NVL(l_enc_upg_option, 'N') = 'O')
107151 )
107152 THEN
107153 NULL;
107154 --
107155 --
107156
107157 --
107158 --
107159 END IF;
107160 --
107161 -- Bug 4922099
107162 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107163 (NVL(l_enc_upg_option, 'N') = 'O')
107164 ) AND
107165 (l_bflow_method_code = 'PRIOR_ENTRY')
107166 )
107167 THEN
107168 IF
107169 --
107170 1 = 1
107171 --
107172 THEN
107176 ,p_token_1 => 'LINE_NUMBER'
107173 xla_accounting_err_pkg.build_message
107174 (p_appli_s_name => 'XLA'
107175 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107177 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
107178 ,p_token_2 => 'LINE_TYPE_NAME'
107179 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
107180 l_component_type
107181 ,l_component_code
107182 ,l_component_type_code
107183 ,l_component_appl_id
107184 ,l_amb_context_code
107185 ,l_entity_code
107186 ,l_event_class_code
107187 )
107188 ,p_token_3 => 'OWNER'
107189 ,p_value_3 => xla_lookups_pkg.get_meaning(
107190 p_lookup_type => 'XLA_OWNER_TYPE'
107191 ,p_lookup_code => l_component_type_code
107192 )
107193 ,p_token_4 => 'PRODUCT_NAME'
107194 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107195 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107196 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107197 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107198 ,p_ae_header_id => NULL
107199 );
107200
107201 IF (C_LEVEL_ERROR>= g_log_level) THEN
107202 trace
107203 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107204 ,p_level => C_LEVEL_ERROR
107205 ,p_module => l_log_module);
107206 END IF;
107207 END IF;
107208 END IF;
107209 --
107210 --
107211 ------------------------------------------------------------------------------------------------
107212 -- 4219869 Business Flow
107213 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107214 -- Prior Entry. Currently, the following code is always generated.
107215 ------------------------------------------------------------------------------------------------
107216 -- No ValidateCurrentLine for business flow method of Prior Entry
107217
107218 ------------------------------------------------------------------------------------
107219 -- 4219869 Business Flow
107220 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107221 ------------------------------------------------------------------------------------
107222 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107223
107224 ----------------------------------------------------------------------------------
107225 -- 4219869 Business Flow
107226 -- Update journal entry status -- Need to generate this within IF <condition>
107227 ----------------------------------------------------------------------------------
107228 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107229 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107230 ,p_balance_type_code => l_balance_type_code
107231 );
107232
107233 -------------------------------------------------------------------------------------------
107234 -- 4262811 - Generate the Accrual Reversal lines
107235 -------------------------------------------------------------------------------------------
107236 BEGIN
107237 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107238 (g_array_event(p_event_id).array_value_num('header_index'));
107239 IF l_acc_rev_flag IS NULL THEN
107240 l_acc_rev_flag := 'N';
107241 END IF;
107242 EXCEPTION
107243 WHEN OTHERS THEN
107244 l_acc_rev_flag := 'N';
107245 END;
107246 --
107247 IF (l_acc_rev_flag = 'Y') THEN
107248
107249 -- 4645092 ------------------------------------------------------------------------------
107250 -- To allow MPA report to determine if it should generate report process
107251 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107252 ------------------------------------------------------------------------------------------
107253
107254 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107255 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107256 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
107257 -- call ADRs
107258 -- Bug 4922099
107259 --
107260 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107261 (NVL(l_actual_upg_option, 'N') = 'O') OR
107265 NULL;
107262 (NVL(l_enc_upg_option, 'N') = 'O')
107263 )
107264 THEN
107266 --
107267 --
107268
107269 --
107270 --
107271 END IF;
107272
107273 --
107274 -- Update the line information that should be overwritten
107275 --
107276 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107277 p_header_num => 1);
107278 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
107279
107280 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107281
107282 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
107283 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107284 END IF;
107285
107286 --
107287 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107288 --
107289 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107290 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
107291 ELSE
107292 ---------------------------------------------------------------------------------------------------
107293 -- 4262811a Switch Sign
107294 ---------------------------------------------------------------------------------------------------
107295 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
107296 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107298 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107299 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107300 -- 5132302
107301 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107302 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107303
107304 END IF;
107305
107306 -- 4955764
107307 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107308 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107309
107310
107311 XLA_AE_LINES_PKG.ValidateCurrentLine;
107312 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107313
107314 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107315 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107316 ,p_balance_type_code => l_balance_type_code);
107317
107318 END IF;
107319
107320 -----------------------------------------------------------------------------------------
107321 -- 4262811 Multiperiod Accounting
107322 -----------------------------------------------------------------------------------------
107323 -- No MPA option is assigned.
107324
107325
107326 END IF;
107327 END IF;
107328 --
107329
107330 --
107331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107332 trace
107333 (p_msg => 'END of AcctLineType_187'
107334 ,p_level => C_LEVEL_PROCEDURE
107335 ,p_module => l_log_module);
107336 END IF;
107337 --
107338 EXCEPTION
107339 WHEN xla_exceptions_pkg.application_exception THEN
107340 RAISE;
107341 WHEN OTHERS THEN
107342 xla_exceptions_pkg.raise_message
107343 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_187');
107344 END AcctLineType_187;
107345 --
107346
107347 ---------------------------------------
107348 --
107349 -- PRIVATE FUNCTION
107350 -- AcctLineType_188
107351 --
107352 ---------------------------------------
107353 PROCEDURE AcctLineType_188 (
107354 p_application_id IN NUMBER
107355 ,p_event_id IN NUMBER
107356 ,p_calculate_acctd_flag IN VARCHAR2
107357 ,p_calculate_g_l_flag IN VARCHAR2
107358 ,p_actual_flag IN OUT VARCHAR2
107359 ,p_balance_type_code OUT VARCHAR2
107360 ,p_gain_or_loss_ref OUT VARCHAR2
107361
107362 --Invoice Distribution Type
107363 , p_source_20 IN VARCHAR2
107364 , p_source_20_meaning IN VARCHAR2
107365 --When to Account for Payment Option
107366 , p_source_38 IN VARCHAR2
107367 --Payment Distribution Type
107368 , p_source_39 IN VARCHAR2
107369 , p_source_39_meaning IN VARCHAR2
107370 --Accounting Reversal Indicator
107371 , p_source_40 IN VARCHAR2
107372 --Business Flow Accounts Payable Application Identifier
107373 , p_source_42 IN NUMBER
107374 --Payment Distribution Identifier
107375 , p_source_47 IN NUMBER
107376 --Distribution Link Type
107377 , p_source_48 IN VARCHAR2
107378 --Payment Currency Code
107379 , p_source_49 IN VARCHAR2
107380 --Override Accounted Amount Indicator
107381 , p_source_53 IN VARCHAR2
107382 , p_source_53_meaning IN VARCHAR2
107383 --Third Party Type
107384 , p_source_56 IN VARCHAR2
107385 --Payment Distribution Reversed Identifier
107386 , p_source_57 IN NUMBER
107387 --Invoice Distribution Tax Line Identifier
107388 , p_source_58 IN NUMBER
107389 --Invoice Distribution Summary Tax Line Identifier
107393 , p_source_60_meaning IN VARCHAR2
107390 , p_source_59 IN NUMBER
107391 --Payment Type
107392 , p_source_60 IN VARCHAR2
107394 --Invoice Distribution Amount of the Payment Distribution
107395 , p_source_61 IN NUMBER
107396 --Business Flow Invoice Distribution Type
107397 , p_source_62 IN VARCHAR2
107398 --Business Flow Invoice Entity Code
107399 , p_source_63 IN VARCHAR2
107400 --Business Flow Invoice Distribution Identifier
107401 , p_source_64 IN NUMBER
107402 --Business Flow Invoice Identifier
107403 , p_source_65 IN NUMBER
107404 --Invoice Distribution Tax Distribution Identifier from Tax
107405 , p_source_66 IN NUMBER
107406 --Accrue on Receipt Option
107407 , p_source_100 IN VARCHAR2
107408 , p_source_100_meaning IN VARCHAR2
107409 --Purchasing Encumbrance Option
107410 , p_source_102 IN VARCHAR2
107411 , p_source_102_meaning IN VARCHAR2
107412 --Invoice Encumbered Option
107413 , p_source_104 IN VARCHAR2
107414 , p_source_104_meaning IN VARCHAR2
107415 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
107416 , p_source_142 IN NUMBER
107417 --Prorated Amount of Quantity Variance for Cash Basis
107418 , p_source_143 IN NUMBER
107419 )
107420 IS
107421
107422 l_component_type VARCHAR2(80);
107423 l_component_code VARCHAR2(30);
107424 l_component_type_code VARCHAR2(1);
107425 l_component_appl_id INTEGER;
107426 l_amb_context_code VARCHAR2(30);
107427 l_entity_code VARCHAR2(30);
107428 l_event_class_code VARCHAR2(30);
107429 l_ae_header_id NUMBER;
107430 l_event_type_code VARCHAR2(30);
107431 l_line_definition_code VARCHAR2(30);
107432 l_line_definition_owner_code VARCHAR2(1);
107433 --
107434 -- adr variables
107435 l_segment VARCHAR2(30);
107436 l_ccid NUMBER;
107437 l_adr_transaction_coa_id NUMBER;
107438 l_adr_accounting_coa_id NUMBER;
107439 l_adr_flexfield_segment_code VARCHAR2(30);
107440 l_adr_flex_value_set_id NUMBER;
107441 l_adr_value_type_code VARCHAR2(30);
107442 l_adr_value_combination_id NUMBER;
107443 l_adr_value_segment_code VARCHAR2(30);
107444
107445 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
107446 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
107447 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
107448 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
107449
107450 -- 4262811 Variables ------------------------------------------------------------------------------------------
107451 l_entered_amt_idx NUMBER;
107452 l_accted_amt_idx NUMBER;
107453 l_acc_rev_flag VARCHAR2(1);
107454 l_accrual_line_num NUMBER;
107455 l_tmp_amt NUMBER;
107456 l_acc_rev_natural_side_code VARCHAR2(1);
107457
107458 l_num_entries NUMBER;
107459 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
107460 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
107461 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
107462 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
107463 l_recog_line_1 NUMBER;
107464 l_recog_line_2 NUMBER;
107465
107466 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
107467 l_bflow_applied_to_amt NUMBER; -- 5132302
107468 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
107469
107470 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107471
107472 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
107473 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
107474
107475 ---------------------------------------------------------------------------------------------------------------
107476
107477
107478 --
107479 -- bulk performance
107480 --
107481 l_balance_type_code VARCHAR2(1);
107482 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
107483 l_log_module VARCHAR2(240);
107484
107485 --
107486 -- Upgrade strategy
107487 --
107488 l_actual_upg_option VARCHAR2(1);
107489 l_enc_upg_option VARCHAR2(1);
107490
107491 --
107492 BEGIN
107493 --
107494 IF g_log_enabled THEN
107495 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_188';
107496 END IF;
107497 --
107498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107499
107500 trace
107501 (p_msg => 'BEGIN of AcctLineType_188'
107502 ,p_level => C_LEVEL_PROCEDURE
107503 ,p_module => l_log_module);
107504
107505 END IF;
107506 --
107507 l_component_type := 'AMB_JLT';
107508 l_component_code := 'AP_TAX_QTY_VARIANCE_PMT_ENC';
107509 l_component_type_code := 'S';
107510 l_component_appl_id := 200;
107511 l_amb_context_code := 'DEFAULT';
107512 l_entity_code := 'AP_PAYMENTS';
107513 l_event_class_code := 'PAYMENTS';
107514 l_event_type_code := 'PAYMENTS_ALL';
107515 l_line_definition_owner_code := 'S';
107516 l_line_definition_code := 'ENC_PAYMENTS_ALL';
107517 --
107518 l_balance_type_code := 'E';
107522 l_adr_accounting_coa_id := NULL;
107519 l_segment := NULL;
107520 l_ccid := NULL;
107521 l_adr_transaction_coa_id := NULL;
107523 l_adr_flexfield_segment_code := NULL;
107524 l_adr_flex_value_set_id := NULL;
107525 l_adr_value_type_code := NULL;
107526 l_adr_value_combination_id := NULL;
107527 l_adr_value_segment_code := NULL;
107528
107529 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
107530 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
107531 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
107532 l_budgetary_control_flag := 'N';
107533
107534 l_bflow_applied_to_amt_idx := NULL; -- 5132302
107535 l_bflow_applied_to_amt := NULL; -- 5132302
107536 l_entered_amt_idx := NULL; -- 4262811
107537 l_accted_amt_idx := NULL; -- 4262811
107538 l_acc_rev_flag := NULL; -- 4262811
107539 l_accrual_line_num := NULL; -- 4262811
107540 l_tmp_amt := NULL; -- 4262811
107541 --
107542
107543 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
107544 l_balance_type_code <> 'B' THEN
107545 IF NVL(p_source_38,'
107546 ') <> 'CLEAR_CLEAR' AND
107547 NVL(p_source_20,'
107548 ') = 'NONREC_TAX' AND
107549 (NVL(p_source_39,'
107550 ') = 'CASH' OR
107551 NVL(p_source_39,'
107552 ') = 'DISCOUNT') AND
107553 NVL(p_source_60,'
107554 ') <> 'R' AND
107555 NVL(p_source_102,'
107556 ') = 'Y' AND
107557 p_source_142 IS NOT NULL AND
107558 NVL(p_source_100,'
107559 ') <> 'Y' AND
107560 NVL(p_source_104,'
107561 ') = 'Y'
107562 THEN
107563
107564 --
107565 XLA_AE_LINES_PKG.SetNewLine;
107566
107567 p_balance_type_code := l_balance_type_code;
107568 -- set the flag so later we will know whether the gain loss line needs to be created
107569
107570 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
107571 p_actual_flag :='A';
107572 END IF;
107573
107574 --
107575 -- bulk performance
107576 --
107577 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
107578 p_header_num => 0); -- 4262811
107579 --
107580 -- set accounting line options
107581 --
107582 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107583 p_natural_side_code => 'C'
107584 , p_gain_or_loss_flag => 'N'
107585 , p_gl_transfer_mode_code => 'S'
107586 , p_acct_entry_type_code => 'E'
107587 , p_switch_side_flag => 'Y'
107588 , p_merge_duplicate_code => 'A'
107589 );
107590 --
107591 l_acc_rev_natural_side_code := 'D'; -- 4262811
107592 --
107593 --
107594 -- set accounting line type info
107595 --
107596 xla_ae_lines_pkg.SetAcctLineType
107597 (p_component_type => l_component_type
107598 ,p_event_type_code => l_event_type_code
107599 ,p_line_definition_owner_code => l_line_definition_owner_code
107600 ,p_line_definition_code => l_line_definition_code
107601 ,p_accounting_line_code => l_component_code
107602 ,p_accounting_line_type_code => l_component_type_code
107603 ,p_accounting_line_appl_id => l_component_appl_id
107604 ,p_amb_context_code => l_amb_context_code
107605 ,p_entity_code => l_entity_code
107606 ,p_event_class_code => l_event_class_code);
107607 --
107608 -- set accounting class
107609 --
107610 xla_ae_lines_pkg.SetAcctClass(
107611 p_accounting_class_code => 'TQV'
107612 , p_ae_header_id => l_ae_header_id
107613 );
107614
107615 --
107616 -- set rounding class
107617 --
107618 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107619 'TQV';
107620
107621 --
107622 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107623 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107624 --
107625 -- bulk performance
107626 --
107627 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107628
107629 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107630 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107631
107632 -- 4955764
107633 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107634 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107635
107636 -- 4458381 Public Sector Enh
107637
107638 --
107639 -- set accounting attributes for the line type
107640 --
107641 l_entered_amt_idx := 10;
107642 l_accted_amt_idx := 12;
107643 l_bflow_applied_to_amt_idx := 2; -- 5132302
107644 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107645 l_rec_acct_attrs.array_char_value(1) := p_source_40;
107646 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
107647 l_rec_acct_attrs.array_num_value(2) := p_source_61;
107648 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
107652 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
107649 l_rec_acct_attrs.array_num_value(3) := p_source_42;
107650 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107651 l_rec_acct_attrs.array_char_value(4) := p_source_62;
107653 l_rec_acct_attrs.array_char_value(5) := p_source_63;
107654 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
107655 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
107656 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107657 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
107658 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
107659 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
107660 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
107661 l_rec_acct_attrs.array_char_value(9) := p_source_48;
107662 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
107663 l_rec_acct_attrs.array_num_value(10) := p_source_143;
107664 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
107665 l_rec_acct_attrs.array_char_value(11) := p_source_49;
107666 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
107667 l_rec_acct_attrs.array_num_value(12) := p_source_142;
107668 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
107669 l_rec_acct_attrs.array_char_value(13) := p_source_53;
107670 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
107671 l_rec_acct_attrs.array_char_value(14) := p_source_56;
107672 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
107673 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
107674 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
107675 l_rec_acct_attrs.array_char_value(16) := p_source_48;
107676 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
107677 l_rec_acct_attrs.array_num_value(17) := p_source_58;
107678 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
107679 l_rec_acct_attrs.array_num_value(18) := p_source_66;
107680 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
107681 l_rec_acct_attrs.array_num_value(19) := p_source_59;
107682
107683 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107684 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107685
107686 ---------------------------------------------------------------------------------------------------------------
107687 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107688 ---------------------------------------------------------------------------------------------------------------
107689 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107690
107691 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107692 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107693
107694 IF xla_accounting_cache_pkg.GetValueChar
107695 (p_source_code => 'LEDGER_CATEGORY_CODE'
107696 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107697 AND l_bflow_method_code = 'PRIOR_ENTRY'
107698 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107699 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107700 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107701 )
107702 THEN
107703 xla_ae_lines_pkg.BflowUpgEntry
107704 (p_business_method_code => l_bflow_method_code
107705 ,p_business_class_code => l_bflow_class_code
107706 ,p_balance_type => l_balance_type_code);
107707 ELSE
107708 NULL;
107709 XLA_AE_LINES_PKG.business_flow_validation(
107710 p_business_method_code => l_bflow_method_code
107711 ,p_business_class_code => l_bflow_class_code
107712 ,p_inherit_description_flag => l_inherit_desc_flag);
107713 END IF;
107714
107715 --
107716 -- call analytical criteria
107717 --
107718 -- Inherited Analytical Criteria for business flow method of Prior Entry.
107719 --
107720 -- call description
107721 --
107722 -- No description or it is inherited.
107723 --
107724 -- call ADRs
107725 -- Bug 4922099
107726 --
107727 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107728 (NVL(l_actual_upg_option, 'N') = 'O') OR
107729 (NVL(l_enc_upg_option, 'N') = 'O')
107730 )
107731 THEN
107732 NULL;
107733 --
107734 --
107735
107736 --
107737 --
107738 END IF;
107739 --
107740 -- Bug 4922099
107741 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107742 (NVL(l_enc_upg_option, 'N') = 'O')
107743 ) AND
107744 (l_bflow_method_code = 'PRIOR_ENTRY')
107745 )
107746 THEN
107747 IF
107748 --
107749 1 = 1
107750 --
107751 THEN
107752 xla_accounting_err_pkg.build_message
107753 (p_appli_s_name => 'XLA'
107754 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107755 ,p_token_1 => 'LINE_NUMBER'
107759 l_component_type
107756 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
107757 ,p_token_2 => 'LINE_TYPE_NAME'
107758 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
107760 ,l_component_code
107761 ,l_component_type_code
107762 ,l_component_appl_id
107763 ,l_amb_context_code
107764 ,l_entity_code
107765 ,l_event_class_code
107766 )
107767 ,p_token_3 => 'OWNER'
107768 ,p_value_3 => xla_lookups_pkg.get_meaning(
107769 p_lookup_type => 'XLA_OWNER_TYPE'
107770 ,p_lookup_code => l_component_type_code
107771 )
107772 ,p_token_4 => 'PRODUCT_NAME'
107773 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107774 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107775 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107776 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107777 ,p_ae_header_id => NULL
107778 );
107779
107780 IF (C_LEVEL_ERROR>= g_log_level) THEN
107781 trace
107782 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107783 ,p_level => C_LEVEL_ERROR
107784 ,p_module => l_log_module);
107785 END IF;
107786 END IF;
107787 END IF;
107788 --
107789 --
107790 ------------------------------------------------------------------------------------------------
107791 -- 4219869 Business Flow
107792 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107793 -- Prior Entry. Currently, the following code is always generated.
107794 ------------------------------------------------------------------------------------------------
107795 -- No ValidateCurrentLine for business flow method of Prior Entry
107796
107797 ------------------------------------------------------------------------------------
107798 -- 4219869 Business Flow
107799 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107800 ------------------------------------------------------------------------------------
107801 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107802
107803 ----------------------------------------------------------------------------------
107804 -- 4219869 Business Flow
107805 -- Update journal entry status -- Need to generate this within IF <condition>
107806 ----------------------------------------------------------------------------------
107807 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107808 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107809 ,p_balance_type_code => l_balance_type_code
107810 );
107811
107812 -------------------------------------------------------------------------------------------
107813 -- 4262811 - Generate the Accrual Reversal lines
107814 -------------------------------------------------------------------------------------------
107815 BEGIN
107816 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107817 (g_array_event(p_event_id).array_value_num('header_index'));
107818 IF l_acc_rev_flag IS NULL THEN
107819 l_acc_rev_flag := 'N';
107820 END IF;
107821 EXCEPTION
107822 WHEN OTHERS THEN
107823 l_acc_rev_flag := 'N';
107824 END;
107825 --
107826 IF (l_acc_rev_flag = 'Y') THEN
107827
107828 -- 4645092 ------------------------------------------------------------------------------
107829 -- To allow MPA report to determine if it should generate report process
107830 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107831 ------------------------------------------------------------------------------------------
107832
107833 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107834 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107835 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
107836 -- call ADRs
107837 -- Bug 4922099
107838 --
107839 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107840 (NVL(l_actual_upg_option, 'N') = 'O') OR
107841 (NVL(l_enc_upg_option, 'N') = 'O')
107842 )
107843 THEN
107844 NULL;
107845 --
107846 --
107847
107848 --
107849 --
107850 END IF;
107854 --
107851
107852 --
107853 -- Update the line information that should be overwritten
107855 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107856 p_header_num => 1);
107857 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
107858
107859 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107860
107861 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
107862 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107863 END IF;
107864
107865 --
107866 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107867 --
107868 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107869 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
107870 ELSE
107871 ---------------------------------------------------------------------------------------------------
107872 -- 4262811a Switch Sign
107873 ---------------------------------------------------------------------------------------------------
107874 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
107875 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107876 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107877 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107878 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107879 -- 5132302
107880 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107881 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107882
107883 END IF;
107884
107885 -- 4955764
107886 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107887 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107888
107889
107890 XLA_AE_LINES_PKG.ValidateCurrentLine;
107891 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107892
107893 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107894 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107895 ,p_balance_type_code => l_balance_type_code);
107896
107897 END IF;
107898
107899 -----------------------------------------------------------------------------------------
107900 -- 4262811 Multiperiod Accounting
107901 -----------------------------------------------------------------------------------------
107902 -- No MPA option is assigned.
107903
107904
107905 END IF;
107906 END IF;
107907 --
107908
107909 --
107910 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107911 trace
107912 (p_msg => 'END of AcctLineType_188'
107913 ,p_level => C_LEVEL_PROCEDURE
107914 ,p_module => l_log_module);
107915 END IF;
107916 --
107917 EXCEPTION
107918 WHEN xla_exceptions_pkg.application_exception THEN
107919 RAISE;
107920 WHEN OTHERS THEN
107921 xla_exceptions_pkg.raise_message
107922 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_188');
107923 END AcctLineType_188;
107924 --
107925
107926 ---------------------------------------
107927 --
107928 -- PRIVATE FUNCTION
107929 -- AcctLineType_189
107930 --
107931 ---------------------------------------
107932 PROCEDURE AcctLineType_189 (
107933 p_application_id IN NUMBER
107934 ,p_event_id IN NUMBER
107935 ,p_calculate_acctd_flag IN VARCHAR2
107936 ,p_calculate_g_l_flag IN VARCHAR2
107937 ,p_actual_flag IN OUT VARCHAR2
107938 ,p_balance_type_code OUT VARCHAR2
107939 ,p_gain_or_loss_ref OUT VARCHAR2
107940
107941 --Payment Distribution (Payment Rate) Ledger Amount
107942 , p_source_9 IN NUMBER
107943 --Invoice Distribution Type
107944 , p_source_20 IN VARCHAR2
107945 , p_source_20_meaning IN VARCHAR2
107946 --When to Account for Payment Option
107947 , p_source_38 IN VARCHAR2
107948 --Payment Distribution Type
107949 , p_source_39 IN VARCHAR2
107950 , p_source_39_meaning IN VARCHAR2
107951 --Accounting Reversal Indicator
107952 , p_source_40 IN VARCHAR2
107953 --Payment Distribution Amount
107954 , p_source_41 IN NUMBER
107955 --Business Flow Accounts Payable Application Identifier
107956 , p_source_42 IN NUMBER
107957 --Payment Distribution Identifier
107958 , p_source_47 IN NUMBER
107959 --Distribution Link Type
107960 , p_source_48 IN VARCHAR2
107961 --Payment Currency Code
107962 , p_source_49 IN VARCHAR2
107963 --Override Accounted Amount Indicator
107964 , p_source_53 IN VARCHAR2
107965 , p_source_53_meaning IN VARCHAR2
107966 --Third Party Type
107967 , p_source_56 IN VARCHAR2
107968 --Payment Distribution Reversed Identifier
107969 , p_source_57 IN NUMBER
107970 --Invoice Distribution Tax Line Identifier
107971 , p_source_58 IN NUMBER
107972 --Invoice Distribution Summary Tax Line Identifier
107973 , p_source_59 IN NUMBER
107974 --Payment Type
107978 , p_source_62 IN VARCHAR2
107975 , p_source_60 IN VARCHAR2
107976 , p_source_60_meaning IN VARCHAR2
107977 --Business Flow Invoice Distribution Type
107979 --Business Flow Invoice Entity Code
107980 , p_source_63 IN VARCHAR2
107981 --Business Flow Invoice Distribution Identifier
107982 , p_source_64 IN NUMBER
107983 --Business Flow Invoice Identifier
107984 , p_source_65 IN NUMBER
107985 --Invoice Distribution Tax Distribution Identifier from Tax
107986 , p_source_66 IN NUMBER
107987 --Purchasing Encumbrance Option
107988 , p_source_102 IN VARCHAR2
107989 , p_source_102_meaning IN VARCHAR2
107990 --Invoice Encumbered Option
107991 , p_source_104 IN VARCHAR2
107992 , p_source_104_meaning IN VARCHAR2
107993 )
107994 IS
107995
107996 l_component_type VARCHAR2(80);
107997 l_component_code VARCHAR2(30);
107998 l_component_type_code VARCHAR2(1);
107999 l_component_appl_id INTEGER;
108000 l_amb_context_code VARCHAR2(30);
108001 l_entity_code VARCHAR2(30);
108002 l_event_class_code VARCHAR2(30);
108003 l_ae_header_id NUMBER;
108004 l_event_type_code VARCHAR2(30);
108005 l_line_definition_code VARCHAR2(30);
108006 l_line_definition_owner_code VARCHAR2(1);
108007 --
108008 -- adr variables
108009 l_segment VARCHAR2(30);
108010 l_ccid NUMBER;
108011 l_adr_transaction_coa_id NUMBER;
108012 l_adr_accounting_coa_id NUMBER;
108013 l_adr_flexfield_segment_code VARCHAR2(30);
108014 l_adr_flex_value_set_id NUMBER;
108015 l_adr_value_type_code VARCHAR2(30);
108016 l_adr_value_combination_id NUMBER;
108017 l_adr_value_segment_code VARCHAR2(30);
108018
108019 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
108020 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
108021 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
108022 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
108023
108024 -- 4262811 Variables ------------------------------------------------------------------------------------------
108025 l_entered_amt_idx NUMBER;
108026 l_accted_amt_idx NUMBER;
108027 l_acc_rev_flag VARCHAR2(1);
108028 l_accrual_line_num NUMBER;
108029 l_tmp_amt NUMBER;
108030 l_acc_rev_natural_side_code VARCHAR2(1);
108031
108032 l_num_entries NUMBER;
108033 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
108034 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
108035 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
108036 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
108037 l_recog_line_1 NUMBER;
108038 l_recog_line_2 NUMBER;
108039
108040 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
108041 l_bflow_applied_to_amt NUMBER; -- 5132302
108042 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
108043
108044 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108045
108046 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
108047 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
108048
108049 ---------------------------------------------------------------------------------------------------------------
108050
108051
108052 --
108053 -- bulk performance
108054 --
108055 l_balance_type_code VARCHAR2(1);
108056 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
108057 l_log_module VARCHAR2(240);
108058
108059 --
108060 -- Upgrade strategy
108061 --
108062 l_actual_upg_option VARCHAR2(1);
108063 l_enc_upg_option VARCHAR2(1);
108064
108065 --
108066 BEGIN
108067 --
108068 IF g_log_enabled THEN
108069 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_189';
108070 END IF;
108071 --
108072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108073
108074 trace
108075 (p_msg => 'BEGIN of AcctLineType_189'
108076 ,p_level => C_LEVEL_PROCEDURE
108077 ,p_module => l_log_module);
108078
108079 END IF;
108080 --
108081 l_component_type := 'AMB_JLT';
108082 l_component_code := 'AP_TAX_QTY_VARIANCE_REF_ENC';
108083 l_component_type_code := 'S';
108084 l_component_appl_id := 200;
108085 l_amb_context_code := 'DEFAULT';
108086 l_entity_code := 'AP_PAYMENTS';
108087 l_event_class_code := 'REFUNDS';
108088 l_event_type_code := 'REFUNDS_ALL';
108089 l_line_definition_owner_code := 'S';
108090 l_line_definition_code := 'ENC_REFUNDS_ALL';
108091 --
108092 l_balance_type_code := 'E';
108093 l_segment := NULL;
108094 l_ccid := NULL;
108095 l_adr_transaction_coa_id := NULL;
108096 l_adr_accounting_coa_id := NULL;
108097 l_adr_flexfield_segment_code := NULL;
108098 l_adr_flex_value_set_id := NULL;
108099 l_adr_value_type_code := NULL;
108100 l_adr_value_combination_id := NULL;
108101 l_adr_value_segment_code := NULL;
108102
108103 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
108107
108104 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
108105 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
108106 l_budgetary_control_flag := 'N';
108108 l_bflow_applied_to_amt_idx := NULL; -- 5132302
108109 l_bflow_applied_to_amt := NULL; -- 5132302
108110 l_entered_amt_idx := NULL; -- 4262811
108111 l_accted_amt_idx := NULL; -- 4262811
108112 l_acc_rev_flag := NULL; -- 4262811
108113 l_accrual_line_num := NULL; -- 4262811
108114 l_tmp_amt := NULL; -- 4262811
108115 --
108116
108117 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108118 l_balance_type_code <> 'B' THEN
108119 IF NVL(p_source_38,'
108120 ') <> 'CLEAR_CLEAR' AND
108121 NVL(p_source_20,'
108122 ') = 'NONREC_TAX' AND
108123 (NVL(p_source_39,'
108124 ') = 'CASH' OR
108125 NVL(p_source_39,'
108126 ') = 'DISCOUNT') AND
108127 NVL(p_source_60,'
108128 ') = 'R' AND
108129 NVL(p_source_102,'
108130 ') = 'Y' AND
108131 NVL(p_source_104,'
108132 ') = 'Y'
108133 THEN
108134
108135 --
108136 XLA_AE_LINES_PKG.SetNewLine;
108137
108138 p_balance_type_code := l_balance_type_code;
108139 -- set the flag so later we will know whether the gain loss line needs to be created
108140
108141 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108142 p_actual_flag :='A';
108143 END IF;
108144
108145 --
108146 -- bulk performance
108147 --
108148 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108149 p_header_num => 0); -- 4262811
108150 --
108151 -- set accounting line options
108152 --
108153 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108154 p_natural_side_code => 'D'
108155 , p_gain_or_loss_flag => 'N'
108156 , p_gl_transfer_mode_code => 'S'
108157 , p_acct_entry_type_code => 'E'
108158 , p_switch_side_flag => 'Y'
108159 , p_merge_duplicate_code => 'A'
108160 );
108161 --
108162 l_acc_rev_natural_side_code := 'C'; -- 4262811
108163 --
108164 --
108165 -- set accounting line type info
108166 --
108167 xla_ae_lines_pkg.SetAcctLineType
108168 (p_component_type => l_component_type
108169 ,p_event_type_code => l_event_type_code
108170 ,p_line_definition_owner_code => l_line_definition_owner_code
108171 ,p_line_definition_code => l_line_definition_code
108172 ,p_accounting_line_code => l_component_code
108173 ,p_accounting_line_type_code => l_component_type_code
108174 ,p_accounting_line_appl_id => l_component_appl_id
108175 ,p_amb_context_code => l_amb_context_code
108176 ,p_entity_code => l_entity_code
108177 ,p_event_class_code => l_event_class_code);
108178 --
108179 -- set accounting class
108180 --
108181 xla_ae_lines_pkg.SetAcctClass(
108182 p_accounting_class_code => 'TQV'
108183 , p_ae_header_id => l_ae_header_id
108184 );
108185
108186 --
108187 -- set rounding class
108188 --
108189 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108190 'TQV';
108191
108192 --
108193 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108194 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108195 --
108196 -- bulk performance
108197 --
108198 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108199
108200 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108201 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108202
108203 -- 4955764
108204 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108205 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108206
108207 -- 4458381 Public Sector Enh
108208
108209 --
108210 -- set accounting attributes for the line type
108211 --
108212 l_entered_amt_idx := 9;
108213 l_accted_amt_idx := 11;
108214 l_bflow_applied_to_amt_idx := NULL; -- 5132302
108215 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108216 l_rec_acct_attrs.array_char_value(1) := p_source_40;
108217 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
108218 l_rec_acct_attrs.array_num_value(2) := p_source_42;
108219 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108220 l_rec_acct_attrs.array_char_value(3) := p_source_62;
108221 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
108222 l_rec_acct_attrs.array_char_value(4) := p_source_63;
108223 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
108224 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
108225 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108226 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
108227 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
108228 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
108232 l_rec_acct_attrs.array_num_value(9) := p_source_41;
108229 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
108230 l_rec_acct_attrs.array_char_value(8) := p_source_48;
108231 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
108233 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
108234 l_rec_acct_attrs.array_char_value(10) := p_source_49;
108235 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
108236 l_rec_acct_attrs.array_num_value(11) := p_source_9;
108237 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
108238 l_rec_acct_attrs.array_char_value(12) := p_source_53;
108239 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
108240 l_rec_acct_attrs.array_char_value(13) := p_source_56;
108241 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
108242 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
108243 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
108244 l_rec_acct_attrs.array_char_value(15) := p_source_48;
108245 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
108246 l_rec_acct_attrs.array_num_value(16) := p_source_58;
108247 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
108248 l_rec_acct_attrs.array_num_value(17) := p_source_66;
108249 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
108250 l_rec_acct_attrs.array_num_value(18) := p_source_59;
108251
108252 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108253 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108254
108255 ---------------------------------------------------------------------------------------------------------------
108256 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108257 ---------------------------------------------------------------------------------------------------------------
108258 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108259
108260 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108261 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108262
108263 IF xla_accounting_cache_pkg.GetValueChar
108264 (p_source_code => 'LEDGER_CATEGORY_CODE'
108265 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108266 AND l_bflow_method_code = 'PRIOR_ENTRY'
108267 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108268 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108269 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108270 )
108271 THEN
108272 xla_ae_lines_pkg.BflowUpgEntry
108273 (p_business_method_code => l_bflow_method_code
108274 ,p_business_class_code => l_bflow_class_code
108275 ,p_balance_type => l_balance_type_code);
108276 ELSE
108277 NULL;
108278 XLA_AE_LINES_PKG.business_flow_validation(
108279 p_business_method_code => l_bflow_method_code
108280 ,p_business_class_code => l_bflow_class_code
108281 ,p_inherit_description_flag => l_inherit_desc_flag);
108282 END IF;
108283
108284 --
108285 -- call analytical criteria
108286 --
108287 -- Inherited Analytical Criteria for business flow method of Prior Entry.
108288 --
108289 -- call description
108290 --
108291 -- No description or it is inherited.
108292 --
108293 -- call ADRs
108294 -- Bug 4922099
108295 --
108296 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108297 (NVL(l_actual_upg_option, 'N') = 'O') OR
108298 (NVL(l_enc_upg_option, 'N') = 'O')
108299 )
108300 THEN
108301 NULL;
108302 --
108303 --
108304
108305 --
108306 --
108307 END IF;
108308 --
108309 -- Bug 4922099
108310 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108311 (NVL(l_enc_upg_option, 'N') = 'O')
108312 ) AND
108313 (l_bflow_method_code = 'PRIOR_ENTRY')
108314 )
108315 THEN
108316 IF
108317 --
108318 1 = 1
108319 --
108320 THEN
108321 xla_accounting_err_pkg.build_message
108322 (p_appli_s_name => 'XLA'
108323 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108324 ,p_token_1 => 'LINE_NUMBER'
108325 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
108326 ,p_token_2 => 'LINE_TYPE_NAME'
108327 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
108328 l_component_type
108329 ,l_component_code
108330 ,l_component_type_code
108331 ,l_component_appl_id
108332 ,l_amb_context_code
108336 ,p_token_3 => 'OWNER'
108333 ,l_entity_code
108334 ,l_event_class_code
108335 )
108337 ,p_value_3 => xla_lookups_pkg.get_meaning(
108338 p_lookup_type => 'XLA_OWNER_TYPE'
108339 ,p_lookup_code => l_component_type_code
108340 )
108341 ,p_token_4 => 'PRODUCT_NAME'
108342 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108343 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108344 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108345 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108346 ,p_ae_header_id => NULL
108347 );
108348
108349 IF (C_LEVEL_ERROR>= g_log_level) THEN
108350 trace
108351 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108352 ,p_level => C_LEVEL_ERROR
108353 ,p_module => l_log_module);
108354 END IF;
108355 END IF;
108356 END IF;
108357 --
108358 --
108359 ------------------------------------------------------------------------------------------------
108360 -- 4219869 Business Flow
108361 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108362 -- Prior Entry. Currently, the following code is always generated.
108363 ------------------------------------------------------------------------------------------------
108364 -- No ValidateCurrentLine for business flow method of Prior Entry
108365
108366 ------------------------------------------------------------------------------------
108367 -- 4219869 Business Flow
108368 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108369 ------------------------------------------------------------------------------------
108370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108371
108372 ----------------------------------------------------------------------------------
108373 -- 4219869 Business Flow
108374 -- Update journal entry status -- Need to generate this within IF <condition>
108375 ----------------------------------------------------------------------------------
108376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108378 ,p_balance_type_code => l_balance_type_code
108379 );
108380
108381 -------------------------------------------------------------------------------------------
108382 -- 4262811 - Generate the Accrual Reversal lines
108383 -------------------------------------------------------------------------------------------
108384 BEGIN
108385 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108386 (g_array_event(p_event_id).array_value_num('header_index'));
108387 IF l_acc_rev_flag IS NULL THEN
108388 l_acc_rev_flag := 'N';
108389 END IF;
108390 EXCEPTION
108391 WHEN OTHERS THEN
108392 l_acc_rev_flag := 'N';
108393 END;
108394 --
108395 IF (l_acc_rev_flag = 'Y') THEN
108396
108397 -- 4645092 ------------------------------------------------------------------------------
108398 -- To allow MPA report to determine if it should generate report process
108399 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
108400 ------------------------------------------------------------------------------------------
108401
108402 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
108403 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
108404 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
108405 -- call ADRs
108406 -- Bug 4922099
108407 --
108408 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108409 (NVL(l_actual_upg_option, 'N') = 'O') OR
108410 (NVL(l_enc_upg_option, 'N') = 'O')
108411 )
108412 THEN
108413 NULL;
108414 --
108415 --
108416
108417 --
108418 --
108419 END IF;
108420
108421 --
108422 -- Update the line information that should be overwritten
108423 --
108424 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108425 p_header_num => 1);
108426 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
108427
108428 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108429
108430 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
108431 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108432 END IF;
108433
108437 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108434 --
108435 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108436 --
108438 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
108439 ELSE
108440 ---------------------------------------------------------------------------------------------------
108441 -- 4262811a Switch Sign
108442 ---------------------------------------------------------------------------------------------------
108443 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
108444 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108445 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108446 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108447 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108448 -- 5132302
108449 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108450 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108451
108452 END IF;
108453
108454 -- 4955764
108455 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108456 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108457
108458
108459 XLA_AE_LINES_PKG.ValidateCurrentLine;
108460 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108461
108462 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108463 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108464 ,p_balance_type_code => l_balance_type_code);
108465
108466 END IF;
108467
108468 -----------------------------------------------------------------------------------------
108469 -- 4262811 Multiperiod Accounting
108470 -----------------------------------------------------------------------------------------
108471 -- No MPA option is assigned.
108472
108473
108474 END IF;
108475 END IF;
108476 --
108477
108478 --
108479 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108480 trace
108481 (p_msg => 'END of AcctLineType_189'
108482 ,p_level => C_LEVEL_PROCEDURE
108483 ,p_module => l_log_module);
108484 END IF;
108485 --
108486 EXCEPTION
108487 WHEN xla_exceptions_pkg.application_exception THEN
108488 RAISE;
108489 WHEN OTHERS THEN
108490 xla_exceptions_pkg.raise_message
108491 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_189');
108492 END AcctLineType_189;
108493 --
108494
108495 ---------------------------------------
108496 --
108497 -- PRIVATE FUNCTION
108498 -- AcctLineType_190
108499 --
108500 ---------------------------------------
108501 PROCEDURE AcctLineType_190 (
108502 p_application_id IN NUMBER
108503 ,p_event_id IN NUMBER
108504 ,p_calculate_acctd_flag IN VARCHAR2
108505 ,p_calculate_g_l_flag IN VARCHAR2
108506 ,p_actual_flag IN OUT VARCHAR2
108507 ,p_balance_type_code OUT VARCHAR2
108508 ,p_gain_or_loss_ref OUT VARCHAR2
108509
108510 --Payment Distribution (Cleared Rate) Ledger Amount
108511 , p_source_10 IN NUMBER
108512 --Invoice Distribution Account
108513 , p_source_17 IN NUMBER
108514 --Invoice Distribution Type
108515 , p_source_20 IN VARCHAR2
108516 , p_source_20_meaning IN VARCHAR2
108517 --When to Account for Payment Option
108518 , p_source_38 IN VARCHAR2
108519 --Payment Distribution Type
108520 , p_source_39 IN VARCHAR2
108521 , p_source_39_meaning IN VARCHAR2
108522 --Accounting Reversal Indicator
108523 , p_source_40 IN VARCHAR2
108524 --Payment Distribution Amount
108525 , p_source_41 IN NUMBER
108526 --Business Flow Accounts Payable Application Identifier
108527 , p_source_42 IN NUMBER
108528 --Business Flow Payment Distribution Type
108529 , p_source_43 IN VARCHAR2
108530 --Business Flow Payment Entity Code
108531 , p_source_44 IN VARCHAR2
108532 --Business Flow Payment Distribution Identifier
108533 , p_source_45 IN NUMBER
108534 --Business Flow Payment Identifier
108535 , p_source_46 IN NUMBER
108536 --Payment Distribution Identifier
108537 , p_source_47 IN NUMBER
108538 --Distribution Link Type
108539 , p_source_48 IN VARCHAR2
108540 --Payment Currency Code
108541 , p_source_49 IN VARCHAR2
108542 --Override Accounted Amount Indicator
108543 , p_source_53 IN VARCHAR2
108544 , p_source_53_meaning IN VARCHAR2
108545 --Payment Supplier Identifier
108546 , p_source_54 IN NUMBER
108547 --Payment Supplier Site Identifier
108548 , p_source_55 IN NUMBER
108549 --Third Party Type
108550 , p_source_56 IN VARCHAR2
108551 --Payment Distribution Reversed Identifier
108552 , p_source_57 IN NUMBER
108553 --Invoice Distribution Tax Line Identifier
108554 , p_source_58 IN NUMBER
108555 --Invoice Distribution Summary Tax Line Identifier
108556 , p_source_59 IN NUMBER
108557 --Accrue on Receipt Option
108558 , p_source_100 IN VARCHAR2
108562 --Cleared Exchange Rate
108559 , p_source_100_meaning IN VARCHAR2
108560 --Cleared Exchange Date
108561 , p_source_107 IN DATE
108563 , p_source_108 IN NUMBER
108564 --Cleared Exchange Rate Type
108565 , p_source_109 IN VARCHAR2
108566 )
108567 IS
108568
108569 l_component_type VARCHAR2(80);
108570 l_component_code VARCHAR2(30);
108571 l_component_type_code VARCHAR2(1);
108572 l_component_appl_id INTEGER;
108573 l_amb_context_code VARCHAR2(30);
108574 l_entity_code VARCHAR2(30);
108575 l_event_class_code VARCHAR2(30);
108576 l_ae_header_id NUMBER;
108577 l_event_type_code VARCHAR2(30);
108578 l_line_definition_code VARCHAR2(30);
108579 l_line_definition_owner_code VARCHAR2(1);
108580 --
108581 -- adr variables
108582 l_segment VARCHAR2(30);
108583 l_ccid NUMBER;
108584 l_adr_transaction_coa_id NUMBER;
108585 l_adr_accounting_coa_id NUMBER;
108586 l_adr_flexfield_segment_code VARCHAR2(30);
108587 l_adr_flex_value_set_id NUMBER;
108588 l_adr_value_type_code VARCHAR2(30);
108589 l_adr_value_combination_id NUMBER;
108590 l_adr_value_segment_code VARCHAR2(30);
108591
108592 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
108593 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
108594 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
108595 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
108596
108597 -- 4262811 Variables ------------------------------------------------------------------------------------------
108598 l_entered_amt_idx NUMBER;
108599 l_accted_amt_idx NUMBER;
108600 l_acc_rev_flag VARCHAR2(1);
108601 l_accrual_line_num NUMBER;
108602 l_tmp_amt NUMBER;
108603 l_acc_rev_natural_side_code VARCHAR2(1);
108604
108605 l_num_entries NUMBER;
108606 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
108607 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
108608 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
108609 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
108610 l_recog_line_1 NUMBER;
108611 l_recog_line_2 NUMBER;
108612
108613 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
108614 l_bflow_applied_to_amt NUMBER; -- 5132302
108615 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
108616
108617 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108618
108619 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
108620 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
108621
108622 ---------------------------------------------------------------------------------------------------------------
108623
108624
108625 --
108626 -- bulk performance
108627 --
108628 l_balance_type_code VARCHAR2(1);
108629 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
108630 l_log_module VARCHAR2(240);
108631
108632 --
108633 -- Upgrade strategy
108634 --
108635 l_actual_upg_option VARCHAR2(1);
108636 l_enc_upg_option VARCHAR2(1);
108637
108638 --
108639 BEGIN
108640 --
108641 IF g_log_enabled THEN
108642 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_190';
108643 END IF;
108644 --
108645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108646
108647 trace
108648 (p_msg => 'BEGIN of AcctLineType_190'
108649 ,p_level => C_LEVEL_PROCEDURE
108650 ,p_module => l_log_module);
108651
108652 END IF;
108653 --
108654 l_component_type := 'AMB_JLT';
108655 l_component_code := 'AP_TAX_RATE_VAR_CLEAR';
108656 l_component_type_code := 'S';
108657 l_component_appl_id := 200;
108658 l_amb_context_code := 'DEFAULT';
108659 l_entity_code := 'AP_PAYMENTS';
108660 l_event_class_code := 'RECONCILED PAYMENTS';
108661 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
108662 l_line_definition_owner_code := 'S';
108663 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
108664 --
108665 l_balance_type_code := 'A';
108666 l_segment := NULL;
108667 l_ccid := NULL;
108668 l_adr_transaction_coa_id := NULL;
108669 l_adr_accounting_coa_id := NULL;
108670 l_adr_flexfield_segment_code := NULL;
108671 l_adr_flex_value_set_id := NULL;
108672 l_adr_value_type_code := NULL;
108673 l_adr_value_combination_id := NULL;
108674 l_adr_value_segment_code := NULL;
108675
108676 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
108677 l_bflow_class_code := ''; -- 4219869 Business Flow
108678 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
108679 l_budgetary_control_flag := 'N';
108680
108681 l_bflow_applied_to_amt_idx := NULL; -- 5132302
108682 l_bflow_applied_to_amt := NULL; -- 5132302
108683 l_entered_amt_idx := NULL; -- 4262811
108684 l_accted_amt_idx := NULL; -- 4262811
108685 l_acc_rev_flag := NULL; -- 4262811
108689
108686 l_accrual_line_num := NULL; -- 4262811
108687 l_tmp_amt := NULL; -- 4262811
108688 --
108690 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108691 l_balance_type_code <> 'B' THEN
108692 IF NVL(p_source_38,'
108693 ') = 'CLEAR_CLEAR' AND
108694 NVL(p_source_20,'
108695 ') = 'TRV' AND
108696 (NVL(p_source_39,'
108697 ') = 'CASH' OR
108698 NVL(p_source_39,'
108699 ') = 'AWT' OR
108700 NVL(p_source_39,'
108701 ') = 'DISCOUNT') AND
108702 NVL(p_source_100,'
108703 ') = 'Y'
108704 THEN
108705
108706 --
108707 XLA_AE_LINES_PKG.SetNewLine;
108708
108709 p_balance_type_code := l_balance_type_code;
108710 -- set the flag so later we will know whether the gain loss line needs to be created
108711
108712 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108713 p_actual_flag :='A';
108714 END IF;
108715
108716 --
108717 -- bulk performance
108718 --
108719 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108720 p_header_num => 0); -- 4262811
108721 --
108722 -- set accounting line options
108723 --
108724 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108725 p_natural_side_code => 'D'
108726 , p_gain_or_loss_flag => 'N'
108727 , p_gl_transfer_mode_code => 'S'
108728 , p_acct_entry_type_code => 'A'
108729 , p_switch_side_flag => 'Y'
108730 , p_merge_duplicate_code => 'A'
108731 );
108732 --
108733 l_acc_rev_natural_side_code := 'C'; -- 4262811
108734 --
108735 --
108736 -- set accounting line type info
108737 --
108738 xla_ae_lines_pkg.SetAcctLineType
108739 (p_component_type => l_component_type
108740 ,p_event_type_code => l_event_type_code
108741 ,p_line_definition_owner_code => l_line_definition_owner_code
108742 ,p_line_definition_code => l_line_definition_code
108743 ,p_accounting_line_code => l_component_code
108744 ,p_accounting_line_type_code => l_component_type_code
108745 ,p_accounting_line_appl_id => l_component_appl_id
108746 ,p_amb_context_code => l_amb_context_code
108747 ,p_entity_code => l_entity_code
108748 ,p_event_class_code => l_event_class_code);
108749 --
108750 -- set accounting class
108751 --
108752 xla_ae_lines_pkg.SetAcctClass(
108753 p_accounting_class_code => 'TRV'
108754 , p_ae_header_id => l_ae_header_id
108755 );
108756
108757 --
108758 -- set rounding class
108759 --
108760 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108761 'TRV';
108762
108763 --
108764 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108765 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108766 --
108767 -- bulk performance
108768 --
108769 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108770
108771 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108772 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108773
108774 -- 4955764
108775 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108776 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108777
108778 -- 4458381 Public Sector Enh
108779
108780 --
108781 -- set accounting attributes for the line type
108782 --
108783 l_entered_amt_idx := 10;
108784 l_accted_amt_idx := 15;
108785 l_bflow_applied_to_amt_idx := 2; -- 5132302
108786 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108787 l_rec_acct_attrs.array_char_value(1) := p_source_40;
108788 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
108789 l_rec_acct_attrs.array_num_value(2) := p_source_41;
108790 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
108791 l_rec_acct_attrs.array_num_value(3) := p_source_42;
108792 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108793 l_rec_acct_attrs.array_char_value(4) := p_source_43;
108794 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
108795 l_rec_acct_attrs.array_char_value(5) := p_source_44;
108796 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
108797 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
108798 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108799 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
108800 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
108801 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
108802 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
108803 l_rec_acct_attrs.array_char_value(9) := p_source_48;
108804 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
108805 l_rec_acct_attrs.array_num_value(10) := p_source_41;
108806 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
108807 l_rec_acct_attrs.array_char_value(11) := p_source_49;
108808 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
108812 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
108809 l_rec_acct_attrs.array_date_value(12) := p_source_107;
108810 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
108811 l_rec_acct_attrs.array_num_value(13) := p_source_108;
108813 l_rec_acct_attrs.array_char_value(14) := p_source_109;
108814 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
108815 l_rec_acct_attrs.array_num_value(15) := p_source_10;
108816 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
108817 l_rec_acct_attrs.array_char_value(16) := p_source_53;
108818 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
108819 l_rec_acct_attrs.array_num_value(17) := p_source_54;
108820 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
108821 l_rec_acct_attrs.array_num_value(18) := p_source_55;
108822 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
108823 l_rec_acct_attrs.array_char_value(19) := p_source_56;
108824 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
108825 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
108826 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
108827 l_rec_acct_attrs.array_char_value(21) := p_source_48;
108828 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
108829 l_rec_acct_attrs.array_num_value(22) := p_source_58;
108830 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
108831 l_rec_acct_attrs.array_num_value(23) := p_source_58;
108832 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
108833 l_rec_acct_attrs.array_num_value(24) := p_source_59;
108834
108835 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108836 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108837
108838 ---------------------------------------------------------------------------------------------------------------
108839 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108840 ---------------------------------------------------------------------------------------------------------------
108841 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108842
108843 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108844 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108845
108846 IF xla_accounting_cache_pkg.GetValueChar
108847 (p_source_code => 'LEDGER_CATEGORY_CODE'
108848 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108849 AND l_bflow_method_code = 'PRIOR_ENTRY'
108850 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108851 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108852 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108853 )
108854 THEN
108855 xla_ae_lines_pkg.BflowUpgEntry
108856 (p_business_method_code => l_bflow_method_code
108857 ,p_business_class_code => l_bflow_class_code
108858 ,p_balance_type => l_balance_type_code);
108859 ELSE
108860 NULL;
108861 -- No business flow processing for business flow method of NONE.
108862 END IF;
108863
108864 --
108865 -- call analytical criteria
108866 --
108867
108868 --
108869 -- call description
108870 --
108871 -- No description or it is inherited.
108872 --
108873 -- call ADRs
108874 -- Bug 4922099
108875 --
108876 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108877 (NVL(l_actual_upg_option, 'N') = 'O') OR
108878 (NVL(l_enc_upg_option, 'N') = 'O')
108879 )
108880 THEN
108881 NULL;
108882 --
108883 --
108884
108885 l_ccid := AcctDerRule_26(
108886 p_application_id => p_application_id
108887 , p_ae_header_id => l_ae_header_id
108888 , p_source_17 => p_source_17
108889 , x_transaction_coa_id => l_adr_transaction_coa_id
108890 , x_accounting_coa_id => l_adr_accounting_coa_id
108891 , x_value_type_code => l_adr_value_type_code
108892 , p_side => 'NA'
108893 );
108894
108895 xla_ae_lines_pkg.set_ccid(
108896 p_code_combination_id => l_ccid
108897 , p_value_type_code => l_adr_value_type_code
108898 , p_transaction_coa_id => l_adr_transaction_coa_id
108899 , p_accounting_coa_id => l_adr_accounting_coa_id
108900 , p_adr_code => 'AP_INVOICE_DIST'
108901 , p_adr_type_code => 'S'
108902 , p_component_type => l_component_type
108903 , p_component_code => l_component_code
108904 , p_component_type_code => l_component_type_code
108905 , p_component_appl_id => l_component_appl_id
108906 , p_amb_context_code => l_amb_context_code
108907 , p_side => 'NA'
108908 );
108909
108910
108911 --
108912 --
108913 END IF;
108914 --
108915 -- Bug 4922099
108916 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108917 (NVL(l_enc_upg_option, 'N') = 'O')
108918 ) AND
108919 (l_bflow_method_code = 'PRIOR_ENTRY')
108920 )
108921 THEN
108922 IF
108926 THEN
108923 --
108924 1 = 2
108925 --
108927 xla_accounting_err_pkg.build_message
108928 (p_appli_s_name => 'XLA'
108929 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108930 ,p_token_1 => 'LINE_NUMBER'
108931 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
108932 ,p_token_2 => 'LINE_TYPE_NAME'
108933 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
108934 l_component_type
108935 ,l_component_code
108936 ,l_component_type_code
108937 ,l_component_appl_id
108938 ,l_amb_context_code
108939 ,l_entity_code
108940 ,l_event_class_code
108941 )
108942 ,p_token_3 => 'OWNER'
108943 ,p_value_3 => xla_lookups_pkg.get_meaning(
108944 p_lookup_type => 'XLA_OWNER_TYPE'
108945 ,p_lookup_code => l_component_type_code
108946 )
108947 ,p_token_4 => 'PRODUCT_NAME'
108948 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108949 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108950 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108951 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108952 ,p_ae_header_id => NULL
108953 );
108954
108955 IF (C_LEVEL_ERROR>= g_log_level) THEN
108956 trace
108957 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108958 ,p_level => C_LEVEL_ERROR
108959 ,p_module => l_log_module);
108960 END IF;
108961 END IF;
108962 END IF;
108963 --
108964 --
108965 ------------------------------------------------------------------------------------------------
108966 -- 4219869 Business Flow
108967 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108968 -- Prior Entry. Currently, the following code is always generated.
108969 ------------------------------------------------------------------------------------------------
108970 XLA_AE_LINES_PKG.ValidateCurrentLine;
108971
108972 ------------------------------------------------------------------------------------
108973 -- 4219869 Business Flow
108974 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108975 ------------------------------------------------------------------------------------
108976 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108977
108978 ----------------------------------------------------------------------------------
108979 -- 4219869 Business Flow
108980 -- Update journal entry status -- Need to generate this within IF <condition>
108981 ----------------------------------------------------------------------------------
108982 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108983 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108984 ,p_balance_type_code => l_balance_type_code
108985 );
108986
108987 -------------------------------------------------------------------------------------------
108988 -- 4262811 - Generate the Accrual Reversal lines
108989 -------------------------------------------------------------------------------------------
108990 BEGIN
108991 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108992 (g_array_event(p_event_id).array_value_num('header_index'));
108993 IF l_acc_rev_flag IS NULL THEN
108994 l_acc_rev_flag := 'N';
108995 END IF;
108996 EXCEPTION
108997 WHEN OTHERS THEN
108998 l_acc_rev_flag := 'N';
108999 END;
109000 --
109001 IF (l_acc_rev_flag = 'Y') THEN
109002
109003 -- 4645092 ------------------------------------------------------------------------------
109004 -- To allow MPA report to determine if it should generate report process
109005 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109006 ------------------------------------------------------------------------------------------
109007
109008 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109009 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109010 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
109011 -- call ADRs
109015 (NVL(l_actual_upg_option, 'N') = 'O') OR
109012 -- Bug 4922099
109013 --
109014 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109016 (NVL(l_enc_upg_option, 'N') = 'O')
109017 )
109018 THEN
109019 NULL;
109020 --
109021 --
109022
109023 l_ccid := AcctDerRule_26(
109024 p_application_id => p_application_id
109025 , p_ae_header_id => l_ae_header_id
109026 , p_source_17 => p_source_17
109027 , x_transaction_coa_id => l_adr_transaction_coa_id
109028 , x_accounting_coa_id => l_adr_accounting_coa_id
109029 , x_value_type_code => l_adr_value_type_code
109030 , p_side => 'NA'
109031 );
109032
109033 xla_ae_lines_pkg.set_ccid(
109034 p_code_combination_id => l_ccid
109035 , p_value_type_code => l_adr_value_type_code
109036 , p_transaction_coa_id => l_adr_transaction_coa_id
109037 , p_accounting_coa_id => l_adr_accounting_coa_id
109038 , p_adr_code => 'AP_INVOICE_DIST'
109039 , p_adr_type_code => 'S'
109040 , p_component_type => l_component_type
109041 , p_component_code => l_component_code
109042 , p_component_type_code => l_component_type_code
109043 , p_component_appl_id => l_component_appl_id
109044 , p_amb_context_code => l_amb_context_code
109045 , p_side => 'NA'
109046 );
109047
109048
109049 --
109050 --
109051 END IF;
109052
109053 --
109054 -- Update the line information that should be overwritten
109055 --
109056 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109057 p_header_num => 1);
109058 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
109059
109060 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109061
109062 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
109063 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109064 END IF;
109065
109066 --
109067 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109068 --
109069 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109070 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
109071 ELSE
109072 ---------------------------------------------------------------------------------------------------
109073 -- 4262811a Switch Sign
109074 ---------------------------------------------------------------------------------------------------
109075 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
109076 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109077 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109078 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109079 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109080 -- 5132302
109081 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109082 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109083
109084 END IF;
109085
109086 -- 4955764
109087 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109088 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109089
109090
109091 XLA_AE_LINES_PKG.ValidateCurrentLine;
109092 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109093
109094 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109095 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109096 ,p_balance_type_code => l_balance_type_code);
109097
109098 END IF;
109099
109100 -----------------------------------------------------------------------------------------
109101 -- 4262811 Multiperiod Accounting
109102 -----------------------------------------------------------------------------------------
109103 -- No MPA option is assigned.
109104
109105
109106 END IF;
109107 END IF;
109108 --
109109
109110 --
109111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109112 trace
109113 (p_msg => 'END of AcctLineType_190'
109114 ,p_level => C_LEVEL_PROCEDURE
109115 ,p_module => l_log_module);
109116 END IF;
109117 --
109118 EXCEPTION
109119 WHEN xla_exceptions_pkg.application_exception THEN
109120 RAISE;
109121 WHEN OTHERS THEN
109122 xla_exceptions_pkg.raise_message
109123 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_190');
109124 END AcctLineType_190;
109125 --
109126
109127 ---------------------------------------
109128 --
109129 -- PRIVATE FUNCTION
109130 -- AcctLineType_191
109131 --
109132 ---------------------------------------
109133 PROCEDURE AcctLineType_191 (
109134 p_application_id IN NUMBER
109138 ,p_actual_flag IN OUT VARCHAR2
109135 ,p_event_id IN NUMBER
109136 ,p_calculate_acctd_flag IN VARCHAR2
109137 ,p_calculate_g_l_flag IN VARCHAR2
109139 ,p_balance_type_code OUT VARCHAR2
109140 ,p_gain_or_loss_ref OUT VARCHAR2
109141
109142 --Payment Distribution (Payment Rate) Ledger Amount
109143 , p_source_9 IN NUMBER
109144 --Invoice Distribution Type
109145 , p_source_20 IN VARCHAR2
109146 , p_source_20_meaning IN VARCHAR2
109147 --When to Account for Payment Option
109148 , p_source_38 IN VARCHAR2
109149 --Payment Distribution Type
109150 , p_source_39 IN VARCHAR2
109151 , p_source_39_meaning IN VARCHAR2
109152 --Accounting Reversal Indicator
109153 , p_source_40 IN VARCHAR2
109154 --Payment Distribution Amount
109155 , p_source_41 IN NUMBER
109156 --Business Flow Accounts Payable Application Identifier
109157 , p_source_42 IN NUMBER
109158 --Payment Distribution Identifier
109159 , p_source_47 IN NUMBER
109160 --Distribution Link Type
109161 , p_source_48 IN VARCHAR2
109162 --Payment Currency Code
109163 , p_source_49 IN VARCHAR2
109164 --Override Accounted Amount Indicator
109165 , p_source_53 IN VARCHAR2
109166 , p_source_53_meaning IN VARCHAR2
109167 --Third Party Type
109168 , p_source_56 IN VARCHAR2
109169 --Payment Distribution Reversed Identifier
109170 , p_source_57 IN NUMBER
109171 --Invoice Distribution Tax Line Identifier
109172 , p_source_58 IN NUMBER
109173 --Invoice Distribution Summary Tax Line Identifier
109174 , p_source_59 IN NUMBER
109175 --Business Flow Invoice Distribution Type
109176 , p_source_62 IN VARCHAR2
109177 --Business Flow Invoice Entity Code
109178 , p_source_63 IN VARCHAR2
109179 --Business Flow Invoice Distribution Identifier
109180 , p_source_64 IN NUMBER
109181 --Business Flow Invoice Identifier
109182 , p_source_65 IN NUMBER
109183 --Purchasing Encumbrance Option
109184 , p_source_102 IN VARCHAR2
109185 , p_source_102_meaning IN VARCHAR2
109186 --Invoice Encumbered Option
109187 , p_source_104 IN VARCHAR2
109188 , p_source_104_meaning IN VARCHAR2
109189 )
109190 IS
109191
109192 l_component_type VARCHAR2(80);
109193 l_component_code VARCHAR2(30);
109194 l_component_type_code VARCHAR2(1);
109195 l_component_appl_id INTEGER;
109196 l_amb_context_code VARCHAR2(30);
109197 l_entity_code VARCHAR2(30);
109198 l_event_class_code VARCHAR2(30);
109199 l_ae_header_id NUMBER;
109200 l_event_type_code VARCHAR2(30);
109201 l_line_definition_code VARCHAR2(30);
109202 l_line_definition_owner_code VARCHAR2(1);
109203 --
109204 -- adr variables
109205 l_segment VARCHAR2(30);
109206 l_ccid NUMBER;
109207 l_adr_transaction_coa_id NUMBER;
109208 l_adr_accounting_coa_id NUMBER;
109209 l_adr_flexfield_segment_code VARCHAR2(30);
109210 l_adr_flex_value_set_id NUMBER;
109211 l_adr_value_type_code VARCHAR2(30);
109212 l_adr_value_combination_id NUMBER;
109213 l_adr_value_segment_code VARCHAR2(30);
109214
109215 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
109216 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
109217 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
109218 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
109219
109220 -- 4262811 Variables ------------------------------------------------------------------------------------------
109221 l_entered_amt_idx NUMBER;
109222 l_accted_amt_idx NUMBER;
109223 l_acc_rev_flag VARCHAR2(1);
109224 l_accrual_line_num NUMBER;
109225 l_tmp_amt NUMBER;
109226 l_acc_rev_natural_side_code VARCHAR2(1);
109227
109228 l_num_entries NUMBER;
109229 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
109230 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
109231 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
109232 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
109233 l_recog_line_1 NUMBER;
109234 l_recog_line_2 NUMBER;
109235
109236 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
109237 l_bflow_applied_to_amt NUMBER; -- 5132302
109238 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
109239
109240 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109241
109242 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
109243 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
109244
109245 ---------------------------------------------------------------------------------------------------------------
109246
109247
109248 --
109249 -- bulk performance
109250 --
109251 l_balance_type_code VARCHAR2(1);
109252 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
109253 l_log_module VARCHAR2(240);
109254
109255 --
109256 -- Upgrade strategy
109257 --
109258 l_actual_upg_option VARCHAR2(1);
109259 l_enc_upg_option VARCHAR2(1);
109260
109261 --
109262 BEGIN
109263 --
109264 IF g_log_enabled THEN
109268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109265 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_191';
109266 END IF;
109267 --
109269
109270 trace
109271 (p_msg => 'BEGIN of AcctLineType_191'
109272 ,p_level => C_LEVEL_PROCEDURE
109273 ,p_module => l_log_module);
109274
109275 END IF;
109276 --
109277 l_component_type := 'AMB_JLT';
109278 l_component_code := 'AP_TAX_RATE_VAR_CLR_ENC';
109279 l_component_type_code := 'S';
109280 l_component_appl_id := 200;
109281 l_amb_context_code := 'DEFAULT';
109282 l_entity_code := 'AP_PAYMENTS';
109283 l_event_class_code := 'RECONCILED PAYMENTS';
109284 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
109285 l_line_definition_owner_code := 'S';
109286 l_line_definition_code := 'ENC_RECONCILED_PAYMENTS_ALL';
109287 --
109288 l_balance_type_code := 'E';
109289 l_segment := NULL;
109290 l_ccid := NULL;
109291 l_adr_transaction_coa_id := NULL;
109292 l_adr_accounting_coa_id := NULL;
109293 l_adr_flexfield_segment_code := NULL;
109294 l_adr_flex_value_set_id := NULL;
109295 l_adr_value_type_code := NULL;
109296 l_adr_value_combination_id := NULL;
109297 l_adr_value_segment_code := NULL;
109298
109299 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
109300 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
109301 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
109302 l_budgetary_control_flag := 'N';
109303
109304 l_bflow_applied_to_amt_idx := NULL; -- 5132302
109305 l_bflow_applied_to_amt := NULL; -- 5132302
109306 l_entered_amt_idx := NULL; -- 4262811
109307 l_accted_amt_idx := NULL; -- 4262811
109308 l_acc_rev_flag := NULL; -- 4262811
109309 l_accrual_line_num := NULL; -- 4262811
109310 l_tmp_amt := NULL; -- 4262811
109311 --
109312
109313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109314 l_balance_type_code <> 'B' THEN
109315 IF NVL(p_source_38,'
109316 ') = 'CLEAR_CLEAR' AND
109317 NVL(p_source_20,'
109318 ') = 'TRV' AND
109319 (NVL(p_source_39,'
109320 ') = 'CASH' OR
109321 NVL(p_source_39,'
109322 ') = 'DISCOUNT') AND
109323 NVL(p_source_102,'
109324 ') = 'Y' AND
109325 NVL(p_source_104,'
109326 ') = 'Y'
109327 THEN
109328
109329 --
109330 XLA_AE_LINES_PKG.SetNewLine;
109331
109332 p_balance_type_code := l_balance_type_code;
109333 -- set the flag so later we will know whether the gain loss line needs to be created
109334
109335 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109336 p_actual_flag :='A';
109337 END IF;
109338
109339 --
109340 -- bulk performance
109341 --
109342 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109343 p_header_num => 0); -- 4262811
109344 --
109345 -- set accounting line options
109346 --
109347 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109348 p_natural_side_code => 'C'
109349 , p_gain_or_loss_flag => 'N'
109350 , p_gl_transfer_mode_code => 'S'
109351 , p_acct_entry_type_code => 'E'
109352 , p_switch_side_flag => 'Y'
109353 , p_merge_duplicate_code => 'A'
109354 );
109355 --
109356 l_acc_rev_natural_side_code := 'D'; -- 4262811
109357 --
109358 --
109359 -- set accounting line type info
109360 --
109361 xla_ae_lines_pkg.SetAcctLineType
109362 (p_component_type => l_component_type
109363 ,p_event_type_code => l_event_type_code
109364 ,p_line_definition_owner_code => l_line_definition_owner_code
109365 ,p_line_definition_code => l_line_definition_code
109366 ,p_accounting_line_code => l_component_code
109367 ,p_accounting_line_type_code => l_component_type_code
109368 ,p_accounting_line_appl_id => l_component_appl_id
109369 ,p_amb_context_code => l_amb_context_code
109370 ,p_entity_code => l_entity_code
109371 ,p_event_class_code => l_event_class_code);
109372 --
109373 -- set accounting class
109374 --
109375 xla_ae_lines_pkg.SetAcctClass(
109376 p_accounting_class_code => 'TRV'
109377 , p_ae_header_id => l_ae_header_id
109378 );
109379
109380 --
109381 -- set rounding class
109382 --
109383 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109384 'TRV';
109385
109386 --
109387 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109388 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109389 --
109390 -- bulk performance
109391 --
109392 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109393
109394 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109395 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109396
109397 -- 4955764
109398 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109402
109399 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109400
109401 -- 4458381 Public Sector Enh
109403 --
109404 -- set accounting attributes for the line type
109405 --
109406 l_entered_amt_idx := 10;
109407 l_accted_amt_idx := 12;
109408 l_bflow_applied_to_amt_idx := 2; -- 5132302
109409 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109410 l_rec_acct_attrs.array_char_value(1) := p_source_40;
109411 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
109412 l_rec_acct_attrs.array_num_value(2) := p_source_41;
109413 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
109414 l_rec_acct_attrs.array_num_value(3) := p_source_42;
109415 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109416 l_rec_acct_attrs.array_char_value(4) := p_source_62;
109417 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
109418 l_rec_acct_attrs.array_char_value(5) := p_source_63;
109419 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
109420 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
109421 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109422 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
109423 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
109424 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
109425 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
109426 l_rec_acct_attrs.array_char_value(9) := p_source_48;
109427 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
109428 l_rec_acct_attrs.array_num_value(10) := p_source_41;
109429 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
109430 l_rec_acct_attrs.array_char_value(11) := p_source_49;
109431 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
109432 l_rec_acct_attrs.array_num_value(12) := p_source_9;
109433 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
109434 l_rec_acct_attrs.array_char_value(13) := p_source_53;
109435 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
109436 l_rec_acct_attrs.array_char_value(14) := p_source_56;
109437 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
109438 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
109439 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
109440 l_rec_acct_attrs.array_char_value(16) := p_source_48;
109441 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
109442 l_rec_acct_attrs.array_num_value(17) := p_source_58;
109443 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
109444 l_rec_acct_attrs.array_num_value(18) := p_source_58;
109445 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
109446 l_rec_acct_attrs.array_num_value(19) := p_source_59;
109447
109448 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109449 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109450
109451 ---------------------------------------------------------------------------------------------------------------
109452 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109453 ---------------------------------------------------------------------------------------------------------------
109454 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109455
109456 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109457 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109458
109459 IF xla_accounting_cache_pkg.GetValueChar
109460 (p_source_code => 'LEDGER_CATEGORY_CODE'
109461 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109462 AND l_bflow_method_code = 'PRIOR_ENTRY'
109463 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109464 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109465 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109466 )
109467 THEN
109468 xla_ae_lines_pkg.BflowUpgEntry
109469 (p_business_method_code => l_bflow_method_code
109470 ,p_business_class_code => l_bflow_class_code
109471 ,p_balance_type => l_balance_type_code);
109472 ELSE
109473 NULL;
109474 XLA_AE_LINES_PKG.business_flow_validation(
109475 p_business_method_code => l_bflow_method_code
109476 ,p_business_class_code => l_bflow_class_code
109477 ,p_inherit_description_flag => l_inherit_desc_flag);
109478 END IF;
109479
109480 --
109481 -- call analytical criteria
109482 --
109483 -- Inherited Analytical Criteria for business flow method of Prior Entry.
109484 --
109485 -- call description
109486 --
109487 -- No description or it is inherited.
109488 --
109489 -- call ADRs
109490 -- Bug 4922099
109491 --
109492 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109493 (NVL(l_actual_upg_option, 'N') = 'O') OR
109494 (NVL(l_enc_upg_option, 'N') = 'O')
109495 )
109496 THEN
109497 NULL;
109498 --
109499 --
109500
109501 --
109502 --
109503 END IF;
109504 --
109505 -- Bug 4922099
109509 (l_bflow_method_code = 'PRIOR_ENTRY')
109506 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109507 (NVL(l_enc_upg_option, 'N') = 'O')
109508 ) AND
109510 )
109511 THEN
109512 IF
109513 --
109514 1 = 1
109515 --
109516 THEN
109517 xla_accounting_err_pkg.build_message
109518 (p_appli_s_name => 'XLA'
109519 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109520 ,p_token_1 => 'LINE_NUMBER'
109521 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
109522 ,p_token_2 => 'LINE_TYPE_NAME'
109523 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
109524 l_component_type
109525 ,l_component_code
109526 ,l_component_type_code
109527 ,l_component_appl_id
109528 ,l_amb_context_code
109529 ,l_entity_code
109530 ,l_event_class_code
109531 )
109532 ,p_token_3 => 'OWNER'
109533 ,p_value_3 => xla_lookups_pkg.get_meaning(
109534 p_lookup_type => 'XLA_OWNER_TYPE'
109535 ,p_lookup_code => l_component_type_code
109536 )
109537 ,p_token_4 => 'PRODUCT_NAME'
109538 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109539 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109540 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109541 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109542 ,p_ae_header_id => NULL
109543 );
109544
109545 IF (C_LEVEL_ERROR>= g_log_level) THEN
109546 trace
109547 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109548 ,p_level => C_LEVEL_ERROR
109549 ,p_module => l_log_module);
109550 END IF;
109551 END IF;
109552 END IF;
109553 --
109554 --
109555 ------------------------------------------------------------------------------------------------
109556 -- 4219869 Business Flow
109557 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109558 -- Prior Entry. Currently, the following code is always generated.
109559 ------------------------------------------------------------------------------------------------
109560 -- No ValidateCurrentLine for business flow method of Prior Entry
109561
109562 ------------------------------------------------------------------------------------
109563 -- 4219869 Business Flow
109564 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109565 ------------------------------------------------------------------------------------
109566 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109567
109568 ----------------------------------------------------------------------------------
109569 -- 4219869 Business Flow
109570 -- Update journal entry status -- Need to generate this within IF <condition>
109571 ----------------------------------------------------------------------------------
109572 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109573 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109574 ,p_balance_type_code => l_balance_type_code
109575 );
109576
109577 -------------------------------------------------------------------------------------------
109578 -- 4262811 - Generate the Accrual Reversal lines
109579 -------------------------------------------------------------------------------------------
109580 BEGIN
109581 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109582 (g_array_event(p_event_id).array_value_num('header_index'));
109583 IF l_acc_rev_flag IS NULL THEN
109584 l_acc_rev_flag := 'N';
109585 END IF;
109586 EXCEPTION
109587 WHEN OTHERS THEN
109588 l_acc_rev_flag := 'N';
109589 END;
109590 --
109591 IF (l_acc_rev_flag = 'Y') THEN
109592
109593 -- 4645092 ------------------------------------------------------------------------------
109594 -- To allow MPA report to determine if it should generate report process
109595 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109599 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109596 ------------------------------------------------------------------------------------------
109597
109598 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109600 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
109601 -- call ADRs
109602 -- Bug 4922099
109603 --
109604 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109605 (NVL(l_actual_upg_option, 'N') = 'O') OR
109606 (NVL(l_enc_upg_option, 'N') = 'O')
109607 )
109608 THEN
109609 NULL;
109610 --
109611 --
109612
109613 --
109614 --
109615 END IF;
109616
109617 --
109618 -- Update the line information that should be overwritten
109619 --
109620 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109621 p_header_num => 1);
109622 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
109623
109624 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109625
109626 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
109627 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109628 END IF;
109629
109630 --
109631 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109632 --
109633 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109634 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
109635 ELSE
109636 ---------------------------------------------------------------------------------------------------
109637 -- 4262811a Switch Sign
109638 ---------------------------------------------------------------------------------------------------
109639 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
109640 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109641 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109642 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109643 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109644 -- 5132302
109645 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109646 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109647
109648 END IF;
109649
109650 -- 4955764
109651 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109652 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109653
109654
109655 XLA_AE_LINES_PKG.ValidateCurrentLine;
109656 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109657
109658 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109659 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109660 ,p_balance_type_code => l_balance_type_code);
109661
109662 END IF;
109663
109664 -----------------------------------------------------------------------------------------
109665 -- 4262811 Multiperiod Accounting
109666 -----------------------------------------------------------------------------------------
109667 -- No MPA option is assigned.
109668
109669
109670 END IF;
109671 END IF;
109672 --
109673
109674 --
109675 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109676 trace
109677 (p_msg => 'END of AcctLineType_191'
109678 ,p_level => C_LEVEL_PROCEDURE
109679 ,p_module => l_log_module);
109680 END IF;
109681 --
109682 EXCEPTION
109683 WHEN xla_exceptions_pkg.application_exception THEN
109684 RAISE;
109685 WHEN OTHERS THEN
109686 xla_exceptions_pkg.raise_message
109687 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_191');
109688 END AcctLineType_191;
109689 --
109690
109691 ---------------------------------------
109692 --
109693 -- PRIVATE FUNCTION
109694 -- AcctLineType_192
109695 --
109696 ---------------------------------------
109697 PROCEDURE AcctLineType_192 (
109698 p_application_id IN NUMBER
109699 ,p_event_id IN NUMBER
109700 ,p_calculate_acctd_flag IN VARCHAR2
109701 ,p_calculate_g_l_flag IN VARCHAR2
109702 ,p_actual_flag IN OUT VARCHAR2
109703 ,p_balance_type_code OUT VARCHAR2
109704 ,p_gain_or_loss_ref OUT VARCHAR2
109705
109706 --Payment Distribution (Payment Rate) Ledger Amount
109707 , p_source_9 IN NUMBER
109708 --Invoice Distribution Account
109709 , p_source_17 IN NUMBER
109710 --Invoice Distribution Type
109711 , p_source_20 IN VARCHAR2
109712 , p_source_20_meaning IN VARCHAR2
109713 --When to Account for Payment Option
109714 , p_source_38 IN VARCHAR2
109715 --Payment Distribution Type
109716 , p_source_39 IN VARCHAR2
109717 , p_source_39_meaning IN VARCHAR2
109718 --Accounting Reversal Indicator
109719 , p_source_40 IN VARCHAR2
109723 , p_source_42 IN NUMBER
109720 --Payment Distribution Amount
109721 , p_source_41 IN NUMBER
109722 --Business Flow Accounts Payable Application Identifier
109724 --Payment Distribution Identifier
109725 , p_source_47 IN NUMBER
109726 --Distribution Link Type
109727 , p_source_48 IN VARCHAR2
109728 --Payment Currency Code
109729 , p_source_49 IN VARCHAR2
109730 --Override Accounted Amount Indicator
109731 , p_source_53 IN VARCHAR2
109732 , p_source_53_meaning IN VARCHAR2
109733 --Payment Supplier Identifier
109734 , p_source_54 IN NUMBER
109735 --Payment Supplier Site Identifier
109736 , p_source_55 IN NUMBER
109737 --Third Party Type
109738 , p_source_56 IN VARCHAR2
109739 --Payment Distribution Reversed Identifier
109740 , p_source_57 IN NUMBER
109741 --Invoice Distribution Tax Line Identifier
109742 , p_source_58 IN NUMBER
109743 --Invoice Distribution Summary Tax Line Identifier
109744 , p_source_59 IN NUMBER
109745 --Payment Type
109746 , p_source_60 IN VARCHAR2
109747 , p_source_60_meaning IN VARCHAR2
109748 --Invoice Distribution Amount of the Payment Distribution
109749 , p_source_61 IN NUMBER
109750 --Business Flow Invoice Distribution Type
109751 , p_source_62 IN VARCHAR2
109752 --Business Flow Invoice Entity Code
109753 , p_source_63 IN VARCHAR2
109754 --Business Flow Invoice Distribution Identifier
109755 , p_source_64 IN NUMBER
109756 --Business Flow Invoice Identifier
109757 , p_source_65 IN NUMBER
109758 --Invoice Distribution Tax Distribution Identifier from Tax
109759 , p_source_66 IN NUMBER
109760 --Accrue on Receipt Option
109761 , p_source_100 IN VARCHAR2
109762 , p_source_100_meaning IN VARCHAR2
109763 --Invoice Type Paid
109764 , p_source_101 IN VARCHAR2
109765 , p_source_101_meaning IN VARCHAR2
109766 --Payment Exchange Date
109767 , p_source_114 IN DATE
109768 --Payment Exchange Rate
109769 , p_source_115 IN NUMBER
109770 --Payment Exchange Rate Type
109771 , p_source_116 IN VARCHAR2
109772 )
109773 IS
109774
109775 l_component_type VARCHAR2(80);
109776 l_component_code VARCHAR2(30);
109777 l_component_type_code VARCHAR2(1);
109778 l_component_appl_id INTEGER;
109779 l_amb_context_code VARCHAR2(30);
109780 l_entity_code VARCHAR2(30);
109781 l_event_class_code VARCHAR2(30);
109782 l_ae_header_id NUMBER;
109783 l_event_type_code VARCHAR2(30);
109784 l_line_definition_code VARCHAR2(30);
109785 l_line_definition_owner_code VARCHAR2(1);
109786 --
109787 -- adr variables
109788 l_segment VARCHAR2(30);
109789 l_ccid NUMBER;
109790 l_adr_transaction_coa_id NUMBER;
109791 l_adr_accounting_coa_id NUMBER;
109792 l_adr_flexfield_segment_code VARCHAR2(30);
109793 l_adr_flex_value_set_id NUMBER;
109794 l_adr_value_type_code VARCHAR2(30);
109795 l_adr_value_combination_id NUMBER;
109796 l_adr_value_segment_code VARCHAR2(30);
109797
109798 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
109799 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
109800 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
109801 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
109802
109803 -- 4262811 Variables ------------------------------------------------------------------------------------------
109804 l_entered_amt_idx NUMBER;
109805 l_accted_amt_idx NUMBER;
109806 l_acc_rev_flag VARCHAR2(1);
109807 l_accrual_line_num NUMBER;
109808 l_tmp_amt NUMBER;
109809 l_acc_rev_natural_side_code VARCHAR2(1);
109810
109811 l_num_entries NUMBER;
109812 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
109813 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
109814 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
109815 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
109816 l_recog_line_1 NUMBER;
109817 l_recog_line_2 NUMBER;
109818
109819 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
109820 l_bflow_applied_to_amt NUMBER; -- 5132302
109821 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
109822
109823 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109824
109825 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
109826 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
109827
109828 ---------------------------------------------------------------------------------------------------------------
109829
109830
109831 --
109832 -- bulk performance
109833 --
109834 l_balance_type_code VARCHAR2(1);
109835 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
109836 l_log_module VARCHAR2(240);
109837
109838 --
109839 -- Upgrade strategy
109840 --
109841 l_actual_upg_option VARCHAR2(1);
109842 l_enc_upg_option VARCHAR2(1);
109843
109844 --
109845 BEGIN
109846 --
109847 IF g_log_enabled THEN
109851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109848 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_192';
109849 END IF;
109850 --
109852
109853 trace
109854 (p_msg => 'BEGIN of AcctLineType_192'
109855 ,p_level => C_LEVEL_PROCEDURE
109856 ,p_module => l_log_module);
109857
109858 END IF;
109859 --
109860 l_component_type := 'AMB_JLT';
109861 l_component_code := 'AP_TAX_RATE_VAR_PMT';
109862 l_component_type_code := 'S';
109863 l_component_appl_id := 200;
109864 l_amb_context_code := 'DEFAULT';
109865 l_entity_code := 'AP_PAYMENTS';
109866 l_event_class_code := 'PAYMENTS';
109867 l_event_type_code := 'PAYMENTS_ALL';
109868 l_line_definition_owner_code := 'S';
109869 l_line_definition_code := 'CASH_PAYMENTS_ALL';
109870 --
109871 l_balance_type_code := 'A';
109872 l_segment := NULL;
109873 l_ccid := NULL;
109874 l_adr_transaction_coa_id := NULL;
109875 l_adr_accounting_coa_id := NULL;
109876 l_adr_flexfield_segment_code := NULL;
109877 l_adr_flex_value_set_id := NULL;
109878 l_adr_value_type_code := NULL;
109879 l_adr_value_combination_id := NULL;
109880 l_adr_value_segment_code := NULL;
109881
109882 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
109883 l_bflow_class_code := ''; -- 4219869 Business Flow
109884 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
109885 l_budgetary_control_flag := 'N';
109886
109887 l_bflow_applied_to_amt_idx := NULL; -- 5132302
109888 l_bflow_applied_to_amt := NULL; -- 5132302
109889 l_entered_amt_idx := NULL; -- 4262811
109890 l_accted_amt_idx := NULL; -- 4262811
109891 l_acc_rev_flag := NULL; -- 4262811
109892 l_accrual_line_num := NULL; -- 4262811
109893 l_tmp_amt := NULL; -- 4262811
109894 --
109895
109896 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109897 l_balance_type_code <> 'B' THEN
109898 IF NVL(p_source_38,'
109899 ') <> 'CLEAR_CLEAR' AND
109900 NVL(p_source_20,'
109901 ') = 'TRV' AND
109902 NVL(p_source_101,'
109903 ') <> 'INTEREST' AND
109904 (NVL(p_source_39,'
109905 ') = 'CASH' OR
109906 NVL(p_source_39,'
109907 ') = 'AWT' OR
109908 NVL(p_source_39,'
109909 ') = 'DISCOUNT') AND
109910 NVL(p_source_60,'
109911 ') <> 'R' AND
109912 NVL(p_source_100,'
109913 ') = 'Y'
109914 THEN
109915
109916 --
109917 XLA_AE_LINES_PKG.SetNewLine;
109918
109919 p_balance_type_code := l_balance_type_code;
109920 -- set the flag so later we will know whether the gain loss line needs to be created
109921
109922 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109923 p_actual_flag :='A';
109924 END IF;
109925
109926 --
109927 -- bulk performance
109928 --
109929 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109930 p_header_num => 0); -- 4262811
109931 --
109932 -- set accounting line options
109933 --
109934 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109935 p_natural_side_code => 'D'
109936 , p_gain_or_loss_flag => 'N'
109937 , p_gl_transfer_mode_code => 'S'
109938 , p_acct_entry_type_code => 'A'
109939 , p_switch_side_flag => 'Y'
109940 , p_merge_duplicate_code => 'A'
109941 );
109942 --
109943 l_acc_rev_natural_side_code := 'C'; -- 4262811
109944 --
109945 --
109946 -- set accounting line type info
109947 --
109948 xla_ae_lines_pkg.SetAcctLineType
109949 (p_component_type => l_component_type
109950 ,p_event_type_code => l_event_type_code
109951 ,p_line_definition_owner_code => l_line_definition_owner_code
109952 ,p_line_definition_code => l_line_definition_code
109953 ,p_accounting_line_code => l_component_code
109954 ,p_accounting_line_type_code => l_component_type_code
109955 ,p_accounting_line_appl_id => l_component_appl_id
109956 ,p_amb_context_code => l_amb_context_code
109957 ,p_entity_code => l_entity_code
109958 ,p_event_class_code => l_event_class_code);
109959 --
109960 -- set accounting class
109961 --
109962 xla_ae_lines_pkg.SetAcctClass(
109963 p_accounting_class_code => 'TRV'
109964 , p_ae_header_id => l_ae_header_id
109965 );
109966
109967 --
109968 -- set rounding class
109969 --
109970 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109971 'TRV';
109972
109973 --
109974 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109975 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109976 --
109977 -- bulk performance
109978 --
109979 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109980
109981 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109982 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109983
109984 -- 4955764
109988 -- 4458381 Public Sector Enh
109985 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109986 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109987
109989
109990 --
109991 -- set accounting attributes for the line type
109992 --
109993 l_entered_amt_idx := 10;
109994 l_accted_amt_idx := 15;
109995 l_bflow_applied_to_amt_idx := 2; -- 5132302
109996 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109997 l_rec_acct_attrs.array_char_value(1) := p_source_40;
109998 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
109999 l_rec_acct_attrs.array_num_value(2) := p_source_61;
110000 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
110001 l_rec_acct_attrs.array_num_value(3) := p_source_42;
110002 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110003 l_rec_acct_attrs.array_char_value(4) := p_source_62;
110004 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
110005 l_rec_acct_attrs.array_char_value(5) := p_source_63;
110006 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
110007 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
110008 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110009 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
110010 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
110011 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
110012 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
110013 l_rec_acct_attrs.array_char_value(9) := p_source_48;
110014 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
110015 l_rec_acct_attrs.array_num_value(10) := p_source_41;
110016 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
110017 l_rec_acct_attrs.array_char_value(11) := p_source_49;
110018 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
110019 l_rec_acct_attrs.array_date_value(12) := p_source_114;
110020 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
110021 l_rec_acct_attrs.array_num_value(13) := p_source_115;
110022 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
110023 l_rec_acct_attrs.array_char_value(14) := p_source_116;
110024 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
110025 l_rec_acct_attrs.array_num_value(15) := p_source_9;
110026 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
110027 l_rec_acct_attrs.array_char_value(16) := p_source_53;
110028 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
110029 l_rec_acct_attrs.array_num_value(17) := p_source_54;
110030 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
110031 l_rec_acct_attrs.array_num_value(18) := p_source_55;
110032 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
110033 l_rec_acct_attrs.array_char_value(19) := p_source_56;
110034 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
110035 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
110036 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
110037 l_rec_acct_attrs.array_char_value(21) := p_source_48;
110038 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
110039 l_rec_acct_attrs.array_num_value(22) := p_source_58;
110040 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
110041 l_rec_acct_attrs.array_num_value(23) := p_source_66;
110042 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
110043 l_rec_acct_attrs.array_num_value(24) := p_source_59;
110044
110045 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110046 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110047
110048 ---------------------------------------------------------------------------------------------------------------
110049 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110050 ---------------------------------------------------------------------------------------------------------------
110051 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110052
110053 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110054 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110055
110056 IF xla_accounting_cache_pkg.GetValueChar
110057 (p_source_code => 'LEDGER_CATEGORY_CODE'
110058 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110059 AND l_bflow_method_code = 'PRIOR_ENTRY'
110060 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110061 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110062 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110063 )
110064 THEN
110065 xla_ae_lines_pkg.BflowUpgEntry
110066 (p_business_method_code => l_bflow_method_code
110067 ,p_business_class_code => l_bflow_class_code
110068 ,p_balance_type => l_balance_type_code);
110069 ELSE
110070 NULL;
110071 -- No business flow processing for business flow method of NONE.
110072 END IF;
110073
110074 --
110075 -- call analytical criteria
110076 --
110077
110078 --
110079 -- call description
110080 --
110081 -- No description or it is inherited.
110082 --
110083 -- call ADRs
110087 (NVL(l_actual_upg_option, 'N') = 'O') OR
110084 -- Bug 4922099
110085 --
110086 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110088 (NVL(l_enc_upg_option, 'N') = 'O')
110089 )
110090 THEN
110091 NULL;
110092 --
110093 --
110094
110095 l_ccid := AcctDerRule_26(
110096 p_application_id => p_application_id
110097 , p_ae_header_id => l_ae_header_id
110098 , p_source_17 => p_source_17
110099 , x_transaction_coa_id => l_adr_transaction_coa_id
110100 , x_accounting_coa_id => l_adr_accounting_coa_id
110101 , x_value_type_code => l_adr_value_type_code
110102 , p_side => 'NA'
110103 );
110104
110105 xla_ae_lines_pkg.set_ccid(
110106 p_code_combination_id => l_ccid
110107 , p_value_type_code => l_adr_value_type_code
110108 , p_transaction_coa_id => l_adr_transaction_coa_id
110109 , p_accounting_coa_id => l_adr_accounting_coa_id
110110 , p_adr_code => 'AP_INVOICE_DIST'
110111 , p_adr_type_code => 'S'
110112 , p_component_type => l_component_type
110113 , p_component_code => l_component_code
110114 , p_component_type_code => l_component_type_code
110115 , p_component_appl_id => l_component_appl_id
110116 , p_amb_context_code => l_amb_context_code
110117 , p_side => 'NA'
110118 );
110119
110120
110121 --
110122 --
110123 END IF;
110124 --
110125 -- Bug 4922099
110126 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110127 (NVL(l_enc_upg_option, 'N') = 'O')
110128 ) AND
110129 (l_bflow_method_code = 'PRIOR_ENTRY')
110130 )
110131 THEN
110132 IF
110133 --
110134 1 = 2
110135 --
110136 THEN
110137 xla_accounting_err_pkg.build_message
110138 (p_appli_s_name => 'XLA'
110139 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110140 ,p_token_1 => 'LINE_NUMBER'
110141 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
110142 ,p_token_2 => 'LINE_TYPE_NAME'
110143 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
110144 l_component_type
110145 ,l_component_code
110146 ,l_component_type_code
110147 ,l_component_appl_id
110148 ,l_amb_context_code
110149 ,l_entity_code
110150 ,l_event_class_code
110151 )
110152 ,p_token_3 => 'OWNER'
110153 ,p_value_3 => xla_lookups_pkg.get_meaning(
110154 p_lookup_type => 'XLA_OWNER_TYPE'
110155 ,p_lookup_code => l_component_type_code
110156 )
110157 ,p_token_4 => 'PRODUCT_NAME'
110158 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110159 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110160 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110161 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110162 ,p_ae_header_id => NULL
110163 );
110164
110165 IF (C_LEVEL_ERROR>= g_log_level) THEN
110166 trace
110167 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110168 ,p_level => C_LEVEL_ERROR
110169 ,p_module => l_log_module);
110170 END IF;
110171 END IF;
110172 END IF;
110173 --
110174 --
110175 ------------------------------------------------------------------------------------------------
110176 -- 4219869 Business Flow
110177 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110178 -- Prior Entry. Currently, the following code is always generated.
110179 ------------------------------------------------------------------------------------------------
110180 XLA_AE_LINES_PKG.ValidateCurrentLine;
110181
110182 ------------------------------------------------------------------------------------
110183 -- 4219869 Business Flow
110184 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110188 ----------------------------------------------------------------------------------
110185 ------------------------------------------------------------------------------------
110186 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110187
110189 -- 4219869 Business Flow
110190 -- Update journal entry status -- Need to generate this within IF <condition>
110191 ----------------------------------------------------------------------------------
110192 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110193 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110194 ,p_balance_type_code => l_balance_type_code
110195 );
110196
110197 -------------------------------------------------------------------------------------------
110198 -- 4262811 - Generate the Accrual Reversal lines
110199 -------------------------------------------------------------------------------------------
110200 BEGIN
110201 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110202 (g_array_event(p_event_id).array_value_num('header_index'));
110203 IF l_acc_rev_flag IS NULL THEN
110204 l_acc_rev_flag := 'N';
110205 END IF;
110206 EXCEPTION
110207 WHEN OTHERS THEN
110208 l_acc_rev_flag := 'N';
110209 END;
110210 --
110211 IF (l_acc_rev_flag = 'Y') THEN
110212
110213 -- 4645092 ------------------------------------------------------------------------------
110214 -- To allow MPA report to determine if it should generate report process
110215 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110216 ------------------------------------------------------------------------------------------
110217
110218 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110219 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110220 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
110221 -- call ADRs
110222 -- Bug 4922099
110223 --
110224 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110225 (NVL(l_actual_upg_option, 'N') = 'O') OR
110226 (NVL(l_enc_upg_option, 'N') = 'O')
110227 )
110228 THEN
110229 NULL;
110230 --
110231 --
110232
110233 l_ccid := AcctDerRule_26(
110234 p_application_id => p_application_id
110235 , p_ae_header_id => l_ae_header_id
110236 , p_source_17 => p_source_17
110237 , x_transaction_coa_id => l_adr_transaction_coa_id
110238 , x_accounting_coa_id => l_adr_accounting_coa_id
110239 , x_value_type_code => l_adr_value_type_code
110240 , p_side => 'NA'
110241 );
110242
110243 xla_ae_lines_pkg.set_ccid(
110244 p_code_combination_id => l_ccid
110245 , p_value_type_code => l_adr_value_type_code
110246 , p_transaction_coa_id => l_adr_transaction_coa_id
110247 , p_accounting_coa_id => l_adr_accounting_coa_id
110248 , p_adr_code => 'AP_INVOICE_DIST'
110249 , p_adr_type_code => 'S'
110250 , p_component_type => l_component_type
110251 , p_component_code => l_component_code
110252 , p_component_type_code => l_component_type_code
110253 , p_component_appl_id => l_component_appl_id
110254 , p_amb_context_code => l_amb_context_code
110255 , p_side => 'NA'
110256 );
110257
110258
110259 --
110260 --
110261 END IF;
110262
110263 --
110264 -- Update the line information that should be overwritten
110265 --
110266 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110267 p_header_num => 1);
110268 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
110269
110270 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110271
110272 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
110273 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110274 END IF;
110275
110276 --
110277 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110278 --
110279 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110280 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
110281 ELSE
110282 ---------------------------------------------------------------------------------------------------
110283 -- 4262811a Switch Sign
110284 ---------------------------------------------------------------------------------------------------
110285 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
110286 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110287 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110288 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110289 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110290 -- 5132302
110291 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110295
110292 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110293
110294 END IF;
110296 -- 4955764
110297 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110298 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110299
110300
110301 XLA_AE_LINES_PKG.ValidateCurrentLine;
110302 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110303
110304 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110305 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110306 ,p_balance_type_code => l_balance_type_code);
110307
110308 END IF;
110309
110310 -----------------------------------------------------------------------------------------
110311 -- 4262811 Multiperiod Accounting
110312 -----------------------------------------------------------------------------------------
110313 -- No MPA option is assigned.
110314
110315
110316 END IF;
110317 END IF;
110318 --
110319
110320 --
110321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110322 trace
110323 (p_msg => 'END of AcctLineType_192'
110324 ,p_level => C_LEVEL_PROCEDURE
110325 ,p_module => l_log_module);
110326 END IF;
110327 --
110328 EXCEPTION
110329 WHEN xla_exceptions_pkg.application_exception THEN
110330 RAISE;
110331 WHEN OTHERS THEN
110332 xla_exceptions_pkg.raise_message
110333 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_192');
110334 END AcctLineType_192;
110335 --
110336
110337 ---------------------------------------
110338 --
110339 -- PRIVATE FUNCTION
110340 -- AcctLineType_193
110341 --
110342 ---------------------------------------
110343 PROCEDURE AcctLineType_193 (
110344 p_application_id IN NUMBER
110345 ,p_event_id IN NUMBER
110346 ,p_calculate_acctd_flag IN VARCHAR2
110347 ,p_calculate_g_l_flag IN VARCHAR2
110348 ,p_actual_flag IN OUT VARCHAR2
110349 ,p_balance_type_code OUT VARCHAR2
110350 ,p_gain_or_loss_ref OUT VARCHAR2
110351
110352 --Payment Distribution (Payment Rate) Ledger Amount
110353 , p_source_9 IN NUMBER
110354 --Invoice Distribution Type
110355 , p_source_20 IN VARCHAR2
110356 , p_source_20_meaning IN VARCHAR2
110357 --When to Account for Payment Option
110358 , p_source_38 IN VARCHAR2
110359 --Payment Distribution Type
110360 , p_source_39 IN VARCHAR2
110361 , p_source_39_meaning IN VARCHAR2
110362 --Accounting Reversal Indicator
110363 , p_source_40 IN VARCHAR2
110364 --Payment Distribution Amount
110365 , p_source_41 IN NUMBER
110366 --Business Flow Accounts Payable Application Identifier
110367 , p_source_42 IN NUMBER
110368 --Payment Distribution Identifier
110369 , p_source_47 IN NUMBER
110370 --Distribution Link Type
110371 , p_source_48 IN VARCHAR2
110372 --Payment Currency Code
110373 , p_source_49 IN VARCHAR2
110374 --Override Accounted Amount Indicator
110375 , p_source_53 IN VARCHAR2
110376 , p_source_53_meaning IN VARCHAR2
110377 --Third Party Type
110378 , p_source_56 IN VARCHAR2
110379 --Payment Distribution Reversed Identifier
110380 , p_source_57 IN NUMBER
110381 --Invoice Distribution Tax Line Identifier
110382 , p_source_58 IN NUMBER
110383 --Invoice Distribution Summary Tax Line Identifier
110384 , p_source_59 IN NUMBER
110385 --Payment Type
110386 , p_source_60 IN VARCHAR2
110387 , p_source_60_meaning IN VARCHAR2
110388 --Invoice Distribution Amount of the Payment Distribution
110389 , p_source_61 IN NUMBER
110390 --Business Flow Invoice Distribution Type
110391 , p_source_62 IN VARCHAR2
110392 --Business Flow Invoice Entity Code
110393 , p_source_63 IN VARCHAR2
110394 --Business Flow Invoice Distribution Identifier
110395 , p_source_64 IN NUMBER
110396 --Business Flow Invoice Identifier
110397 , p_source_65 IN NUMBER
110398 --Invoice Distribution Tax Distribution Identifier from Tax
110399 , p_source_66 IN NUMBER
110400 --Purchasing Encumbrance Option
110401 , p_source_102 IN VARCHAR2
110402 , p_source_102_meaning IN VARCHAR2
110403 --Invoice Encumbered Option
110404 , p_source_104 IN VARCHAR2
110405 , p_source_104_meaning IN VARCHAR2
110406 )
110407 IS
110408
110409 l_component_type VARCHAR2(80);
110410 l_component_code VARCHAR2(30);
110411 l_component_type_code VARCHAR2(1);
110412 l_component_appl_id INTEGER;
110413 l_amb_context_code VARCHAR2(30);
110414 l_entity_code VARCHAR2(30);
110415 l_event_class_code VARCHAR2(30);
110416 l_ae_header_id NUMBER;
110417 l_event_type_code VARCHAR2(30);
110418 l_line_definition_code VARCHAR2(30);
110419 l_line_definition_owner_code VARCHAR2(1);
110420 --
110421 -- adr variables
110422 l_segment VARCHAR2(30);
110423 l_ccid NUMBER;
110424 l_adr_transaction_coa_id NUMBER;
110425 l_adr_accounting_coa_id NUMBER;
110426 l_adr_flexfield_segment_code VARCHAR2(30);
110427 l_adr_flex_value_set_id NUMBER;
110428 l_adr_value_type_code VARCHAR2(30);
110432 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
110429 l_adr_value_combination_id NUMBER;
110430 l_adr_value_segment_code VARCHAR2(30);
110431
110433 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
110434 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
110435 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
110436
110437 -- 4262811 Variables ------------------------------------------------------------------------------------------
110438 l_entered_amt_idx NUMBER;
110439 l_accted_amt_idx NUMBER;
110440 l_acc_rev_flag VARCHAR2(1);
110441 l_accrual_line_num NUMBER;
110442 l_tmp_amt NUMBER;
110443 l_acc_rev_natural_side_code VARCHAR2(1);
110444
110445 l_num_entries NUMBER;
110446 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
110447 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
110448 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
110449 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
110450 l_recog_line_1 NUMBER;
110451 l_recog_line_2 NUMBER;
110452
110453 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
110454 l_bflow_applied_to_amt NUMBER; -- 5132302
110455 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
110456
110457 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110458
110459 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
110460 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
110461
110462 ---------------------------------------------------------------------------------------------------------------
110463
110464
110465 --
110466 -- bulk performance
110467 --
110468 l_balance_type_code VARCHAR2(1);
110469 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
110470 l_log_module VARCHAR2(240);
110471
110472 --
110473 -- Upgrade strategy
110474 --
110475 l_actual_upg_option VARCHAR2(1);
110476 l_enc_upg_option VARCHAR2(1);
110477
110478 --
110479 BEGIN
110480 --
110481 IF g_log_enabled THEN
110482 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_193';
110483 END IF;
110484 --
110485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110486
110487 trace
110488 (p_msg => 'BEGIN of AcctLineType_193'
110489 ,p_level => C_LEVEL_PROCEDURE
110490 ,p_module => l_log_module);
110491
110492 END IF;
110493 --
110494 l_component_type := 'AMB_JLT';
110495 l_component_code := 'AP_TAX_RATE_VAR_PMT_ENC';
110496 l_component_type_code := 'S';
110497 l_component_appl_id := 200;
110498 l_amb_context_code := 'DEFAULT';
110499 l_entity_code := 'AP_PAYMENTS';
110500 l_event_class_code := 'PAYMENTS';
110501 l_event_type_code := 'PAYMENTS_ALL';
110502 l_line_definition_owner_code := 'S';
110503 l_line_definition_code := 'ENC_PAYMENTS_ALL';
110504 --
110505 l_balance_type_code := 'E';
110506 l_segment := NULL;
110507 l_ccid := NULL;
110508 l_adr_transaction_coa_id := NULL;
110509 l_adr_accounting_coa_id := NULL;
110510 l_adr_flexfield_segment_code := NULL;
110511 l_adr_flex_value_set_id := NULL;
110512 l_adr_value_type_code := NULL;
110513 l_adr_value_combination_id := NULL;
110514 l_adr_value_segment_code := NULL;
110515
110516 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
110517 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
110518 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
110519 l_budgetary_control_flag := 'N';
110520
110521 l_bflow_applied_to_amt_idx := NULL; -- 5132302
110522 l_bflow_applied_to_amt := NULL; -- 5132302
110523 l_entered_amt_idx := NULL; -- 4262811
110524 l_accted_amt_idx := NULL; -- 4262811
110525 l_acc_rev_flag := NULL; -- 4262811
110526 l_accrual_line_num := NULL; -- 4262811
110527 l_tmp_amt := NULL; -- 4262811
110528 --
110529
110530 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110531 l_balance_type_code <> 'B' THEN
110532 IF NVL(p_source_38,'
110533 ') <> 'CLEAR_CLEAR' AND
110534 NVL(p_source_20,'
110535 ') = 'TRV' AND
110536 (NVL(p_source_39,'
110537 ') = 'CASH' OR
110538 NVL(p_source_39,'
110539 ') = 'DISCOUNT') AND
110540 NVL(p_source_60,'
110541 ') <> 'R' AND
110542 NVL(p_source_102,'
110543 ') = 'Y' AND
110544 NVL(p_source_104,'
110545 ') = 'Y'
110546 THEN
110547
110548 --
110549 XLA_AE_LINES_PKG.SetNewLine;
110550
110551 p_balance_type_code := l_balance_type_code;
110552 -- set the flag so later we will know whether the gain loss line needs to be created
110553
110554 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110555 p_actual_flag :='A';
110556 END IF;
110557
110558 --
110559 -- bulk performance
110560 --
110561 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110562 p_header_num => 0); -- 4262811
110563 --
110567 p_natural_side_code => 'C'
110564 -- set accounting line options
110565 --
110566 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110568 , p_gain_or_loss_flag => 'N'
110569 , p_gl_transfer_mode_code => 'S'
110570 , p_acct_entry_type_code => 'E'
110571 , p_switch_side_flag => 'Y'
110572 , p_merge_duplicate_code => 'A'
110573 );
110574 --
110575 l_acc_rev_natural_side_code := 'D'; -- 4262811
110576 --
110577 --
110578 -- set accounting line type info
110579 --
110580 xla_ae_lines_pkg.SetAcctLineType
110581 (p_component_type => l_component_type
110582 ,p_event_type_code => l_event_type_code
110583 ,p_line_definition_owner_code => l_line_definition_owner_code
110584 ,p_line_definition_code => l_line_definition_code
110585 ,p_accounting_line_code => l_component_code
110586 ,p_accounting_line_type_code => l_component_type_code
110587 ,p_accounting_line_appl_id => l_component_appl_id
110588 ,p_amb_context_code => l_amb_context_code
110589 ,p_entity_code => l_entity_code
110590 ,p_event_class_code => l_event_class_code);
110591 --
110592 -- set accounting class
110593 --
110594 xla_ae_lines_pkg.SetAcctClass(
110595 p_accounting_class_code => 'TRV'
110596 , p_ae_header_id => l_ae_header_id
110597 );
110598
110599 --
110600 -- set rounding class
110601 --
110602 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110603 'TRV';
110604
110605 --
110606 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110607 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110608 --
110609 -- bulk performance
110610 --
110611 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110612
110613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110614 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110615
110616 -- 4955764
110617 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110618 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110619
110620 -- 4458381 Public Sector Enh
110621
110622 --
110623 -- set accounting attributes for the line type
110624 --
110625 l_entered_amt_idx := 10;
110626 l_accted_amt_idx := 12;
110627 l_bflow_applied_to_amt_idx := 2; -- 5132302
110628 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110629 l_rec_acct_attrs.array_char_value(1) := p_source_40;
110630 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
110631 l_rec_acct_attrs.array_num_value(2) := p_source_61;
110632 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
110633 l_rec_acct_attrs.array_num_value(3) := p_source_42;
110634 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110635 l_rec_acct_attrs.array_char_value(4) := p_source_62;
110636 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
110637 l_rec_acct_attrs.array_char_value(5) := p_source_63;
110638 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
110639 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
110640 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110641 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
110642 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
110643 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
110644 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
110645 l_rec_acct_attrs.array_char_value(9) := p_source_48;
110646 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
110647 l_rec_acct_attrs.array_num_value(10) := p_source_41;
110648 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
110649 l_rec_acct_attrs.array_char_value(11) := p_source_49;
110650 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
110651 l_rec_acct_attrs.array_num_value(12) := p_source_9;
110652 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
110653 l_rec_acct_attrs.array_char_value(13) := p_source_53;
110654 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
110655 l_rec_acct_attrs.array_char_value(14) := p_source_56;
110656 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
110657 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_57);
110658 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
110659 l_rec_acct_attrs.array_char_value(16) := p_source_48;
110660 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
110661 l_rec_acct_attrs.array_num_value(17) := p_source_58;
110662 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
110663 l_rec_acct_attrs.array_num_value(18) := p_source_66;
110664 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
110665 l_rec_acct_attrs.array_num_value(19) := p_source_59;
110666
110667 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110668 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110669
110673 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110670 ---------------------------------------------------------------------------------------------------------------
110671 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110672 ---------------------------------------------------------------------------------------------------------------
110674
110675 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110676 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110677
110678 IF xla_accounting_cache_pkg.GetValueChar
110679 (p_source_code => 'LEDGER_CATEGORY_CODE'
110680 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110681 AND l_bflow_method_code = 'PRIOR_ENTRY'
110682 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110683 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110684 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110685 )
110686 THEN
110687 xla_ae_lines_pkg.BflowUpgEntry
110688 (p_business_method_code => l_bflow_method_code
110689 ,p_business_class_code => l_bflow_class_code
110690 ,p_balance_type => l_balance_type_code);
110691 ELSE
110692 NULL;
110693 XLA_AE_LINES_PKG.business_flow_validation(
110694 p_business_method_code => l_bflow_method_code
110695 ,p_business_class_code => l_bflow_class_code
110696 ,p_inherit_description_flag => l_inherit_desc_flag);
110697 END IF;
110698
110699 --
110700 -- call analytical criteria
110701 --
110702 -- Inherited Analytical Criteria for business flow method of Prior Entry.
110703 --
110704 -- call description
110705 --
110706 -- No description or it is inherited.
110707 --
110708 -- call ADRs
110709 -- Bug 4922099
110710 --
110711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110712 (NVL(l_actual_upg_option, 'N') = 'O') OR
110713 (NVL(l_enc_upg_option, 'N') = 'O')
110714 )
110715 THEN
110716 NULL;
110717 --
110718 --
110719
110720 --
110721 --
110722 END IF;
110723 --
110724 -- Bug 4922099
110725 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110726 (NVL(l_enc_upg_option, 'N') = 'O')
110727 ) AND
110728 (l_bflow_method_code = 'PRIOR_ENTRY')
110729 )
110730 THEN
110731 IF
110732 --
110733 1 = 1
110734 --
110735 THEN
110736 xla_accounting_err_pkg.build_message
110737 (p_appli_s_name => 'XLA'
110738 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110739 ,p_token_1 => 'LINE_NUMBER'
110740 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
110741 ,p_token_2 => 'LINE_TYPE_NAME'
110742 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
110743 l_component_type
110744 ,l_component_code
110745 ,l_component_type_code
110746 ,l_component_appl_id
110747 ,l_amb_context_code
110748 ,l_entity_code
110749 ,l_event_class_code
110750 )
110751 ,p_token_3 => 'OWNER'
110752 ,p_value_3 => xla_lookups_pkg.get_meaning(
110753 p_lookup_type => 'XLA_OWNER_TYPE'
110754 ,p_lookup_code => l_component_type_code
110755 )
110756 ,p_token_4 => 'PRODUCT_NAME'
110757 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110758 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110759 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110760 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110761 ,p_ae_header_id => NULL
110762 );
110763
110764 IF (C_LEVEL_ERROR>= g_log_level) THEN
110765 trace
110766 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110767 ,p_level => C_LEVEL_ERROR
110768 ,p_module => l_log_module);
110769 END IF;
110770 END IF;
110771 END IF;
110772 --
110773 --
110777 -- Prior Entry. Currently, the following code is always generated.
110774 ------------------------------------------------------------------------------------------------
110775 -- 4219869 Business Flow
110776 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110778 ------------------------------------------------------------------------------------------------
110779 -- No ValidateCurrentLine for business flow method of Prior Entry
110780
110781 ------------------------------------------------------------------------------------
110782 -- 4219869 Business Flow
110783 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110784 ------------------------------------------------------------------------------------
110785 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110786
110787 ----------------------------------------------------------------------------------
110788 -- 4219869 Business Flow
110789 -- Update journal entry status -- Need to generate this within IF <condition>
110790 ----------------------------------------------------------------------------------
110791 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110792 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110793 ,p_balance_type_code => l_balance_type_code
110794 );
110795
110796 -------------------------------------------------------------------------------------------
110797 -- 4262811 - Generate the Accrual Reversal lines
110798 -------------------------------------------------------------------------------------------
110799 BEGIN
110800 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110801 (g_array_event(p_event_id).array_value_num('header_index'));
110802 IF l_acc_rev_flag IS NULL THEN
110803 l_acc_rev_flag := 'N';
110804 END IF;
110805 EXCEPTION
110806 WHEN OTHERS THEN
110807 l_acc_rev_flag := 'N';
110808 END;
110809 --
110810 IF (l_acc_rev_flag = 'Y') THEN
110811
110812 -- 4645092 ------------------------------------------------------------------------------
110813 -- To allow MPA report to determine if it should generate report process
110814 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110815 ------------------------------------------------------------------------------------------
110816
110817 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110818 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110819 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
110820 -- call ADRs
110821 -- Bug 4922099
110822 --
110823 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110824 (NVL(l_actual_upg_option, 'N') = 'O') OR
110825 (NVL(l_enc_upg_option, 'N') = 'O')
110826 )
110827 THEN
110828 NULL;
110829 --
110830 --
110831
110832 --
110833 --
110834 END IF;
110835
110836 --
110837 -- Update the line information that should be overwritten
110838 --
110839 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110840 p_header_num => 1);
110841 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
110842
110843 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110844
110845 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
110846 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110847 END IF;
110848
110849 --
110850 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110851 --
110852 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110853 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
110854 ELSE
110855 ---------------------------------------------------------------------------------------------------
110856 -- 4262811a Switch Sign
110857 ---------------------------------------------------------------------------------------------------
110858 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
110859 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110860 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110861 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110862 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110863 -- 5132302
110864 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110865 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110866
110867 END IF;
110868
110869 -- 4955764
110870 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110871 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110872
110873
110874 XLA_AE_LINES_PKG.ValidateCurrentLine;
110875 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110876
110880
110877 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110878 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110879 ,p_balance_type_code => l_balance_type_code);
110881 END IF;
110882
110883 -----------------------------------------------------------------------------------------
110884 -- 4262811 Multiperiod Accounting
110885 -----------------------------------------------------------------------------------------
110886 -- No MPA option is assigned.
110887
110888
110889 END IF;
110890 END IF;
110891 --
110892
110893 --
110894 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110895 trace
110896 (p_msg => 'END of AcctLineType_193'
110897 ,p_level => C_LEVEL_PROCEDURE
110898 ,p_module => l_log_module);
110899 END IF;
110900 --
110901 EXCEPTION
110902 WHEN xla_exceptions_pkg.application_exception THEN
110903 RAISE;
110904 WHEN OTHERS THEN
110905 xla_exceptions_pkg.raise_message
110906 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_193');
110907 END AcctLineType_193;
110908 --
110909
110910 ---------------------------------------
110911 --
110912 -- PRIVATE FUNCTION
110913 -- AcctLineType_194
110914 --
110915 ---------------------------------------
110916 PROCEDURE AcctLineType_194 (
110917 p_application_id IN NUMBER
110918 ,p_event_id IN NUMBER
110919 ,p_calculate_acctd_flag IN VARCHAR2
110920 ,p_calculate_g_l_flag IN VARCHAR2
110921 ,p_actual_flag IN OUT VARCHAR2
110922 ,p_balance_type_code OUT VARCHAR2
110923 ,p_gain_or_loss_ref OUT VARCHAR2
110924
110925 --Payment Distribution (Payment Rate) Ledger Amount
110926 , p_source_9 IN NUMBER
110927 --Invoice Distribution Account
110928 , p_source_17 IN NUMBER
110929 --Invoice Distribution Type
110930 , p_source_20 IN VARCHAR2
110931 , p_source_20_meaning IN VARCHAR2
110932 --When to Account for Payment Option
110933 , p_source_38 IN VARCHAR2
110934 --Payment Distribution Type
110935 , p_source_39 IN VARCHAR2
110936 , p_source_39_meaning IN VARCHAR2
110937 --Accounting Reversal Indicator
110938 , p_source_40 IN VARCHAR2
110939 --Payment Distribution Amount
110940 , p_source_41 IN NUMBER
110941 --Business Flow Accounts Payable Application Identifier
110942 , p_source_42 IN NUMBER
110943 --Payment Distribution Identifier
110944 , p_source_47 IN NUMBER
110945 --Distribution Link Type
110946 , p_source_48 IN VARCHAR2
110947 --Payment Currency Code
110948 , p_source_49 IN VARCHAR2
110949 --Override Accounted Amount Indicator
110950 , p_source_53 IN VARCHAR2
110951 , p_source_53_meaning IN VARCHAR2
110952 --Payment Supplier Identifier
110953 , p_source_54 IN NUMBER
110954 --Payment Supplier Site Identifier
110955 , p_source_55 IN NUMBER
110956 --Third Party Type
110957 , p_source_56 IN VARCHAR2
110958 --Payment Distribution Reversed Identifier
110959 , p_source_57 IN NUMBER
110960 --Invoice Distribution Tax Line Identifier
110961 , p_source_58 IN NUMBER
110962 --Invoice Distribution Summary Tax Line Identifier
110963 , p_source_59 IN NUMBER
110964 --Payment Type
110965 , p_source_60 IN VARCHAR2
110966 , p_source_60_meaning IN VARCHAR2
110967 --Business Flow Invoice Distribution Type
110968 , p_source_62 IN VARCHAR2
110969 --Business Flow Invoice Entity Code
110970 , p_source_63 IN VARCHAR2
110971 --Business Flow Invoice Distribution Identifier
110972 , p_source_64 IN NUMBER
110973 --Business Flow Invoice Identifier
110974 , p_source_65 IN NUMBER
110975 --Invoice Distribution Tax Distribution Identifier from Tax
110976 , p_source_66 IN NUMBER
110977 --Accrue on Receipt Option
110978 , p_source_100 IN VARCHAR2
110979 , p_source_100_meaning IN VARCHAR2
110980 --Payment Exchange Date
110981 , p_source_114 IN DATE
110982 --Payment Exchange Rate
110983 , p_source_115 IN NUMBER
110984 --Payment Exchange Rate Type
110985 , p_source_116 IN VARCHAR2
110986 )
110987 IS
110988
110989 l_component_type VARCHAR2(80);
110990 l_component_code VARCHAR2(30);
110991 l_component_type_code VARCHAR2(1);
110992 l_component_appl_id INTEGER;
110993 l_amb_context_code VARCHAR2(30);
110994 l_entity_code VARCHAR2(30);
110995 l_event_class_code VARCHAR2(30);
110996 l_ae_header_id NUMBER;
110997 l_event_type_code VARCHAR2(30);
110998 l_line_definition_code VARCHAR2(30);
110999 l_line_definition_owner_code VARCHAR2(1);
111000 --
111001 -- adr variables
111002 l_segment VARCHAR2(30);
111003 l_ccid NUMBER;
111004 l_adr_transaction_coa_id NUMBER;
111005 l_adr_accounting_coa_id NUMBER;
111006 l_adr_flexfield_segment_code VARCHAR2(30);
111007 l_adr_flex_value_set_id NUMBER;
111008 l_adr_value_type_code VARCHAR2(30);
111009 l_adr_value_combination_id NUMBER;
111010 l_adr_value_segment_code VARCHAR2(30);
111011
111012 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
111013 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
111017 -- 4262811 Variables ------------------------------------------------------------------------------------------
111014 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
111015 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
111016
111018 l_entered_amt_idx NUMBER;
111019 l_accted_amt_idx NUMBER;
111020 l_acc_rev_flag VARCHAR2(1);
111021 l_accrual_line_num NUMBER;
111022 l_tmp_amt NUMBER;
111023 l_acc_rev_natural_side_code VARCHAR2(1);
111024
111025 l_num_entries NUMBER;
111026 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
111027 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
111028 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
111029 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
111030 l_recog_line_1 NUMBER;
111031 l_recog_line_2 NUMBER;
111032
111033 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
111034 l_bflow_applied_to_amt NUMBER; -- 5132302
111035 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
111036
111037 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111038
111039 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
111040 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
111041
111042 ---------------------------------------------------------------------------------------------------------------
111043
111044
111045 --
111046 -- bulk performance
111047 --
111048 l_balance_type_code VARCHAR2(1);
111049 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
111050 l_log_module VARCHAR2(240);
111051
111052 --
111053 -- Upgrade strategy
111054 --
111055 l_actual_upg_option VARCHAR2(1);
111056 l_enc_upg_option VARCHAR2(1);
111057
111058 --
111059 BEGIN
111060 --
111061 IF g_log_enabled THEN
111062 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_194';
111063 END IF;
111064 --
111065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111066
111067 trace
111068 (p_msg => 'BEGIN of AcctLineType_194'
111069 ,p_level => C_LEVEL_PROCEDURE
111070 ,p_module => l_log_module);
111071
111072 END IF;
111073 --
111074 l_component_type := 'AMB_JLT';
111075 l_component_code := 'AP_TAX_RATE_VAR_REF';
111076 l_component_type_code := 'S';
111077 l_component_appl_id := 200;
111078 l_amb_context_code := 'DEFAULT';
111079 l_entity_code := 'AP_PAYMENTS';
111080 l_event_class_code := 'REFUNDS';
111081 l_event_type_code := 'REFUNDS_ALL';
111082 l_line_definition_owner_code := 'S';
111083 l_line_definition_code := 'CASH_REFUNDS_ALL';
111084 --
111085 l_balance_type_code := 'A';
111086 l_segment := NULL;
111087 l_ccid := NULL;
111088 l_adr_transaction_coa_id := NULL;
111089 l_adr_accounting_coa_id := NULL;
111090 l_adr_flexfield_segment_code := NULL;
111091 l_adr_flex_value_set_id := NULL;
111092 l_adr_value_type_code := NULL;
111093 l_adr_value_combination_id := NULL;
111094 l_adr_value_segment_code := NULL;
111095
111096 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
111097 l_bflow_class_code := ''; -- 4219869 Business Flow
111098 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
111099 l_budgetary_control_flag := 'N';
111100
111101 l_bflow_applied_to_amt_idx := NULL; -- 5132302
111102 l_bflow_applied_to_amt := NULL; -- 5132302
111103 l_entered_amt_idx := NULL; -- 4262811
111104 l_accted_amt_idx := NULL; -- 4262811
111105 l_acc_rev_flag := NULL; -- 4262811
111106 l_accrual_line_num := NULL; -- 4262811
111107 l_tmp_amt := NULL; -- 4262811
111108 --
111109
111110 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111111 l_balance_type_code <> 'B' THEN
111112 IF NVL(p_source_38,'
111113 ') <> 'CLEAR_CLEAR' AND
111114 NVL(p_source_20,'
111115 ') = 'TRV' AND
111116 (NVL(p_source_39,'
111117 ') = 'CASH' OR
111118 NVL(p_source_39,'
111119 ') = 'DISCOUNT') AND
111120 NVL(p_source_60,'
111121 ') = 'R' AND
111122 NVL(p_source_100,'
111123 ') = 'Y'
111124 THEN
111125
111126 --
111127 XLA_AE_LINES_PKG.SetNewLine;
111128
111129 p_balance_type_code := l_balance_type_code;
111130 -- set the flag so later we will know whether the gain loss line needs to be created
111131
111132 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111133 p_actual_flag :='A';
111134 END IF;
111135
111136 --
111137 -- bulk performance
111138 --
111139 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111140 p_header_num => 0); -- 4262811
111141 --
111142 -- set accounting line options
111143 --
111144 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111145 p_natural_side_code => 'D'
111146 , p_gain_or_loss_flag => 'N'
111147 , p_gl_transfer_mode_code => 'S'
111148 , p_acct_entry_type_code => 'A'
111149 , p_switch_side_flag => 'Y'
111153 l_acc_rev_natural_side_code := 'C'; -- 4262811
111150 , p_merge_duplicate_code => 'A'
111151 );
111152 --
111154 --
111155 --
111156 -- set accounting line type info
111157 --
111158 xla_ae_lines_pkg.SetAcctLineType
111159 (p_component_type => l_component_type
111160 ,p_event_type_code => l_event_type_code
111161 ,p_line_definition_owner_code => l_line_definition_owner_code
111162 ,p_line_definition_code => l_line_definition_code
111163 ,p_accounting_line_code => l_component_code
111164 ,p_accounting_line_type_code => l_component_type_code
111165 ,p_accounting_line_appl_id => l_component_appl_id
111166 ,p_amb_context_code => l_amb_context_code
111167 ,p_entity_code => l_entity_code
111168 ,p_event_class_code => l_event_class_code);
111169 --
111170 -- set accounting class
111171 --
111172 xla_ae_lines_pkg.SetAcctClass(
111173 p_accounting_class_code => 'TRV'
111174 , p_ae_header_id => l_ae_header_id
111175 );
111176
111177 --
111178 -- set rounding class
111179 --
111180 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111181 'TRV';
111182
111183 --
111184 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111185 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111186 --
111187 -- bulk performance
111188 --
111189 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111190
111191 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111192 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111193
111194 -- 4955764
111195 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111196 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111197
111198 -- 4458381 Public Sector Enh
111199
111200 --
111201 -- set accounting attributes for the line type
111202 --
111203 l_entered_amt_idx := 9;
111204 l_accted_amt_idx := 14;
111205 l_bflow_applied_to_amt_idx := NULL; -- 5132302
111206 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111207 l_rec_acct_attrs.array_char_value(1) := p_source_40;
111208 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
111209 l_rec_acct_attrs.array_num_value(2) := p_source_42;
111210 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111211 l_rec_acct_attrs.array_char_value(3) := p_source_62;
111212 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
111213 l_rec_acct_attrs.array_char_value(4) := p_source_63;
111214 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
111215 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
111216 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111217 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
111218 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
111219 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
111220 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
111221 l_rec_acct_attrs.array_char_value(8) := p_source_48;
111222 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
111223 l_rec_acct_attrs.array_num_value(9) := p_source_41;
111224 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
111225 l_rec_acct_attrs.array_char_value(10) := p_source_49;
111226 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
111227 l_rec_acct_attrs.array_date_value(11) := p_source_114;
111228 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
111229 l_rec_acct_attrs.array_num_value(12) := p_source_115;
111230 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
111231 l_rec_acct_attrs.array_char_value(13) := p_source_116;
111232 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
111233 l_rec_acct_attrs.array_num_value(14) := p_source_9;
111234 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
111235 l_rec_acct_attrs.array_char_value(15) := p_source_53;
111236 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
111237 l_rec_acct_attrs.array_num_value(16) := p_source_54;
111238 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
111239 l_rec_acct_attrs.array_num_value(17) := p_source_55;
111240 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
111241 l_rec_acct_attrs.array_char_value(18) := p_source_56;
111242 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
111243 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_57);
111244 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
111245 l_rec_acct_attrs.array_char_value(20) := p_source_48;
111246 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
111247 l_rec_acct_attrs.array_num_value(21) := p_source_58;
111248 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
111249 l_rec_acct_attrs.array_num_value(22) := p_source_66;
111250 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
111251 l_rec_acct_attrs.array_num_value(23) := p_source_59;
111252
111253 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111257 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111254 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111255
111256 ---------------------------------------------------------------------------------------------------------------
111258 ---------------------------------------------------------------------------------------------------------------
111259 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111260
111261 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111262 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111263
111264 IF xla_accounting_cache_pkg.GetValueChar
111265 (p_source_code => 'LEDGER_CATEGORY_CODE'
111266 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111267 AND l_bflow_method_code = 'PRIOR_ENTRY'
111268 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111269 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111270 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111271 )
111272 THEN
111273 xla_ae_lines_pkg.BflowUpgEntry
111274 (p_business_method_code => l_bflow_method_code
111275 ,p_business_class_code => l_bflow_class_code
111276 ,p_balance_type => l_balance_type_code);
111277 ELSE
111278 NULL;
111279 -- No business flow processing for business flow method of NONE.
111280 END IF;
111281
111282 --
111283 -- call analytical criteria
111284 --
111285
111286 --
111287 -- call description
111288 --
111289 -- No description or it is inherited.
111290 --
111291 -- call ADRs
111292 -- Bug 4922099
111293 --
111294 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111295 (NVL(l_actual_upg_option, 'N') = 'O') OR
111296 (NVL(l_enc_upg_option, 'N') = 'O')
111297 )
111298 THEN
111299 NULL;
111300 --
111301 --
111302
111303 l_ccid := AcctDerRule_26(
111304 p_application_id => p_application_id
111305 , p_ae_header_id => l_ae_header_id
111306 , p_source_17 => p_source_17
111307 , x_transaction_coa_id => l_adr_transaction_coa_id
111308 , x_accounting_coa_id => l_adr_accounting_coa_id
111309 , x_value_type_code => l_adr_value_type_code
111310 , p_side => 'NA'
111311 );
111312
111313 xla_ae_lines_pkg.set_ccid(
111314 p_code_combination_id => l_ccid
111315 , p_value_type_code => l_adr_value_type_code
111316 , p_transaction_coa_id => l_adr_transaction_coa_id
111317 , p_accounting_coa_id => l_adr_accounting_coa_id
111318 , p_adr_code => 'AP_INVOICE_DIST'
111319 , p_adr_type_code => 'S'
111320 , p_component_type => l_component_type
111321 , p_component_code => l_component_code
111322 , p_component_type_code => l_component_type_code
111323 , p_component_appl_id => l_component_appl_id
111324 , p_amb_context_code => l_amb_context_code
111325 , p_side => 'NA'
111326 );
111327
111328
111329 --
111330 --
111331 END IF;
111332 --
111333 -- Bug 4922099
111334 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111335 (NVL(l_enc_upg_option, 'N') = 'O')
111336 ) AND
111337 (l_bflow_method_code = 'PRIOR_ENTRY')
111338 )
111339 THEN
111340 IF
111341 --
111342 1 = 2
111343 --
111344 THEN
111345 xla_accounting_err_pkg.build_message
111346 (p_appli_s_name => 'XLA'
111347 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111348 ,p_token_1 => 'LINE_NUMBER'
111349 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
111350 ,p_token_2 => 'LINE_TYPE_NAME'
111351 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
111352 l_component_type
111353 ,l_component_code
111354 ,l_component_type_code
111355 ,l_component_appl_id
111356 ,l_amb_context_code
111357 ,l_entity_code
111358 ,l_event_class_code
111359 )
111360 ,p_token_3 => 'OWNER'
111361 ,p_value_3 => xla_lookups_pkg.get_meaning(
111362 p_lookup_type => 'XLA_OWNER_TYPE'
111363 ,p_lookup_code => l_component_type_code
111367 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111364 )
111365 ,p_token_4 => 'PRODUCT_NAME'
111366 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111368 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111369 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111370 ,p_ae_header_id => NULL
111371 );
111372
111373 IF (C_LEVEL_ERROR>= g_log_level) THEN
111374 trace
111375 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111376 ,p_level => C_LEVEL_ERROR
111377 ,p_module => l_log_module);
111378 END IF;
111379 END IF;
111380 END IF;
111381 --
111382 --
111383 ------------------------------------------------------------------------------------------------
111384 -- 4219869 Business Flow
111385 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111386 -- Prior Entry. Currently, the following code is always generated.
111387 ------------------------------------------------------------------------------------------------
111388 XLA_AE_LINES_PKG.ValidateCurrentLine;
111389
111390 ------------------------------------------------------------------------------------
111391 -- 4219869 Business Flow
111392 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111393 ------------------------------------------------------------------------------------
111394 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111395
111396 ----------------------------------------------------------------------------------
111397 -- 4219869 Business Flow
111398 -- Update journal entry status -- Need to generate this within IF <condition>
111399 ----------------------------------------------------------------------------------
111400 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111401 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111402 ,p_balance_type_code => l_balance_type_code
111403 );
111404
111405 -------------------------------------------------------------------------------------------
111406 -- 4262811 - Generate the Accrual Reversal lines
111407 -------------------------------------------------------------------------------------------
111408 BEGIN
111409 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111410 (g_array_event(p_event_id).array_value_num('header_index'));
111411 IF l_acc_rev_flag IS NULL THEN
111412 l_acc_rev_flag := 'N';
111413 END IF;
111414 EXCEPTION
111415 WHEN OTHERS THEN
111416 l_acc_rev_flag := 'N';
111417 END;
111418 --
111419 IF (l_acc_rev_flag = 'Y') THEN
111420
111421 -- 4645092 ------------------------------------------------------------------------------
111422 -- To allow MPA report to determine if it should generate report process
111423 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111424 ------------------------------------------------------------------------------------------
111425
111426 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111427 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111428 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
111429 -- call ADRs
111430 -- Bug 4922099
111431 --
111432 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111433 (NVL(l_actual_upg_option, 'N') = 'O') OR
111434 (NVL(l_enc_upg_option, 'N') = 'O')
111435 )
111436 THEN
111437 NULL;
111438 --
111439 --
111440
111441 l_ccid := AcctDerRule_26(
111442 p_application_id => p_application_id
111443 , p_ae_header_id => l_ae_header_id
111444 , p_source_17 => p_source_17
111445 , x_transaction_coa_id => l_adr_transaction_coa_id
111446 , x_accounting_coa_id => l_adr_accounting_coa_id
111447 , x_value_type_code => l_adr_value_type_code
111448 , p_side => 'NA'
111449 );
111450
111451 xla_ae_lines_pkg.set_ccid(
111452 p_code_combination_id => l_ccid
111453 , p_value_type_code => l_adr_value_type_code
111454 , p_transaction_coa_id => l_adr_transaction_coa_id
111455 , p_accounting_coa_id => l_adr_accounting_coa_id
111456 , p_adr_code => 'AP_INVOICE_DIST'
111457 , p_adr_type_code => 'S'
111458 , p_component_type => l_component_type
111459 , p_component_code => l_component_code
111460 , p_component_type_code => l_component_type_code
111461 , p_component_appl_id => l_component_appl_id
111462 , p_amb_context_code => l_amb_context_code
111463 , p_side => 'NA'
111464 );
111465
111466
111467 --
111468 --
111469 END IF;
111470
111471 --
111472 -- Update the line information that should be overwritten
111473 --
111477
111474 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111475 p_header_num => 1);
111476 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
111478 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111479
111480 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
111481 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111482 END IF;
111483
111484 --
111485 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111486 --
111487 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111488 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
111489 ELSE
111490 ---------------------------------------------------------------------------------------------------
111491 -- 4262811a Switch Sign
111492 ---------------------------------------------------------------------------------------------------
111493 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
111494 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111496 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111497 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111498 -- 5132302
111499 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111500 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111501
111502 END IF;
111503
111504 -- 4955764
111505 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111506 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111507
111508
111509 XLA_AE_LINES_PKG.ValidateCurrentLine;
111510 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111511
111512 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111513 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111514 ,p_balance_type_code => l_balance_type_code);
111515
111516 END IF;
111517
111518 -----------------------------------------------------------------------------------------
111519 -- 4262811 Multiperiod Accounting
111520 -----------------------------------------------------------------------------------------
111521 -- No MPA option is assigned.
111522
111523
111524 END IF;
111525 END IF;
111526 --
111527
111528 --
111529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111530 trace
111531 (p_msg => 'END of AcctLineType_194'
111532 ,p_level => C_LEVEL_PROCEDURE
111533 ,p_module => l_log_module);
111534 END IF;
111535 --
111536 EXCEPTION
111537 WHEN xla_exceptions_pkg.application_exception THEN
111538 RAISE;
111539 WHEN OTHERS THEN
111540 xla_exceptions_pkg.raise_message
111541 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_194');
111542 END AcctLineType_194;
111543 --
111544
111545 ---------------------------------------
111546 --
111547 -- PRIVATE FUNCTION
111548 -- AcctLineType_195
111549 --
111550 ---------------------------------------
111551 PROCEDURE AcctLineType_195 (
111552 p_application_id IN NUMBER
111553 ,p_event_id IN NUMBER
111554 ,p_calculate_acctd_flag IN VARCHAR2
111555 ,p_calculate_g_l_flag IN VARCHAR2
111556 ,p_actual_flag IN OUT VARCHAR2
111557 ,p_balance_type_code OUT VARCHAR2
111558 ,p_gain_or_loss_ref OUT VARCHAR2
111559
111560 --Payment Distribution (Payment Rate) Ledger Amount
111561 , p_source_9 IN NUMBER
111562 --Invoice Distribution Type
111563 , p_source_20 IN VARCHAR2
111564 , p_source_20_meaning IN VARCHAR2
111565 --When to Account for Payment Option
111566 , p_source_38 IN VARCHAR2
111567 --Payment Distribution Type
111568 , p_source_39 IN VARCHAR2
111569 , p_source_39_meaning IN VARCHAR2
111570 --Accounting Reversal Indicator
111571 , p_source_40 IN VARCHAR2
111572 --Payment Distribution Amount
111573 , p_source_41 IN NUMBER
111574 --Business Flow Accounts Payable Application Identifier
111575 , p_source_42 IN NUMBER
111576 --Payment Distribution Identifier
111577 , p_source_47 IN NUMBER
111578 --Distribution Link Type
111579 , p_source_48 IN VARCHAR2
111580 --Payment Currency Code
111581 , p_source_49 IN VARCHAR2
111582 --Override Accounted Amount Indicator
111583 , p_source_53 IN VARCHAR2
111584 , p_source_53_meaning IN VARCHAR2
111585 --Third Party Type
111586 , p_source_56 IN VARCHAR2
111587 --Payment Distribution Reversed Identifier
111588 , p_source_57 IN NUMBER
111589 --Invoice Distribution Tax Line Identifier
111590 , p_source_58 IN NUMBER
111591 --Invoice Distribution Summary Tax Line Identifier
111592 , p_source_59 IN NUMBER
111596 --Business Flow Invoice Distribution Type
111593 --Payment Type
111594 , p_source_60 IN VARCHAR2
111595 , p_source_60_meaning IN VARCHAR2
111597 , p_source_62 IN VARCHAR2
111598 --Business Flow Invoice Entity Code
111599 , p_source_63 IN VARCHAR2
111600 --Business Flow Invoice Distribution Identifier
111601 , p_source_64 IN NUMBER
111602 --Business Flow Invoice Identifier
111603 , p_source_65 IN NUMBER
111604 --Invoice Distribution Tax Distribution Identifier from Tax
111605 , p_source_66 IN NUMBER
111606 --Purchasing Encumbrance Option
111607 , p_source_102 IN VARCHAR2
111608 , p_source_102_meaning IN VARCHAR2
111609 --Invoice Encumbered Option
111610 , p_source_104 IN VARCHAR2
111611 , p_source_104_meaning IN VARCHAR2
111612 )
111613 IS
111614
111615 l_component_type VARCHAR2(80);
111616 l_component_code VARCHAR2(30);
111617 l_component_type_code VARCHAR2(1);
111618 l_component_appl_id INTEGER;
111619 l_amb_context_code VARCHAR2(30);
111620 l_entity_code VARCHAR2(30);
111621 l_event_class_code VARCHAR2(30);
111622 l_ae_header_id NUMBER;
111623 l_event_type_code VARCHAR2(30);
111624 l_line_definition_code VARCHAR2(30);
111625 l_line_definition_owner_code VARCHAR2(1);
111626 --
111627 -- adr variables
111628 l_segment VARCHAR2(30);
111629 l_ccid NUMBER;
111630 l_adr_transaction_coa_id NUMBER;
111631 l_adr_accounting_coa_id NUMBER;
111632 l_adr_flexfield_segment_code VARCHAR2(30);
111633 l_adr_flex_value_set_id NUMBER;
111634 l_adr_value_type_code VARCHAR2(30);
111635 l_adr_value_combination_id NUMBER;
111636 l_adr_value_segment_code VARCHAR2(30);
111637
111638 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
111639 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
111640 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
111641 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
111642
111643 -- 4262811 Variables ------------------------------------------------------------------------------------------
111644 l_entered_amt_idx NUMBER;
111645 l_accted_amt_idx NUMBER;
111646 l_acc_rev_flag VARCHAR2(1);
111647 l_accrual_line_num NUMBER;
111648 l_tmp_amt NUMBER;
111649 l_acc_rev_natural_side_code VARCHAR2(1);
111650
111651 l_num_entries NUMBER;
111652 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
111653 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
111654 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
111655 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
111656 l_recog_line_1 NUMBER;
111657 l_recog_line_2 NUMBER;
111658
111659 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
111660 l_bflow_applied_to_amt NUMBER; -- 5132302
111661 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
111662
111663 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111664
111665 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
111666 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
111667
111668 ---------------------------------------------------------------------------------------------------------------
111669
111670
111671 --
111672 -- bulk performance
111673 --
111674 l_balance_type_code VARCHAR2(1);
111675 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
111676 l_log_module VARCHAR2(240);
111677
111678 --
111679 -- Upgrade strategy
111680 --
111681 l_actual_upg_option VARCHAR2(1);
111682 l_enc_upg_option VARCHAR2(1);
111683
111684 --
111685 BEGIN
111686 --
111687 IF g_log_enabled THEN
111688 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_195';
111689 END IF;
111690 --
111691 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111692
111693 trace
111694 (p_msg => 'BEGIN of AcctLineType_195'
111695 ,p_level => C_LEVEL_PROCEDURE
111696 ,p_module => l_log_module);
111697
111698 END IF;
111699 --
111700 l_component_type := 'AMB_JLT';
111701 l_component_code := 'AP_TAX_RATE_VAR_REF_ENC';
111702 l_component_type_code := 'S';
111703 l_component_appl_id := 200;
111704 l_amb_context_code := 'DEFAULT';
111705 l_entity_code := 'AP_PAYMENTS';
111706 l_event_class_code := 'REFUNDS';
111707 l_event_type_code := 'REFUNDS_ALL';
111708 l_line_definition_owner_code := 'S';
111709 l_line_definition_code := 'ENC_REFUNDS_ALL';
111710 --
111711 l_balance_type_code := 'E';
111712 l_segment := NULL;
111713 l_ccid := NULL;
111714 l_adr_transaction_coa_id := NULL;
111715 l_adr_accounting_coa_id := NULL;
111716 l_adr_flexfield_segment_code := NULL;
111717 l_adr_flex_value_set_id := NULL;
111718 l_adr_value_type_code := NULL;
111719 l_adr_value_combination_id := NULL;
111720 l_adr_value_segment_code := NULL;
111721
111725 l_budgetary_control_flag := 'N';
111722 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
111723 l_bflow_class_code := 'AP_INV_ENCUM'; -- 4219869 Business Flow
111724 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
111726
111727 l_bflow_applied_to_amt_idx := NULL; -- 5132302
111728 l_bflow_applied_to_amt := NULL; -- 5132302
111729 l_entered_amt_idx := NULL; -- 4262811
111730 l_accted_amt_idx := NULL; -- 4262811
111731 l_acc_rev_flag := NULL; -- 4262811
111732 l_accrual_line_num := NULL; -- 4262811
111733 l_tmp_amt := NULL; -- 4262811
111734 --
111735
111736 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111737 l_balance_type_code <> 'B' THEN
111738 IF NVL(p_source_38,'
111739 ') <> 'CLEAR_CLEAR' AND
111740 NVL(p_source_20,'
111741 ') = 'TRV' AND
111742 (NVL(p_source_39,'
111743 ') = 'CASH' OR
111744 NVL(p_source_39,'
111745 ') = 'DISCOUNT') AND
111746 NVL(p_source_60,'
111747 ') = 'R' AND
111748 NVL(p_source_102,'
111749 ') = 'Y' AND
111750 NVL(p_source_104,'
111751 ') = 'Y'
111752 THEN
111753
111754 --
111755 XLA_AE_LINES_PKG.SetNewLine;
111756
111757 p_balance_type_code := l_balance_type_code;
111758 -- set the flag so later we will know whether the gain loss line needs to be created
111759
111760 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111761 p_actual_flag :='A';
111762 END IF;
111763
111764 --
111765 -- bulk performance
111766 --
111767 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111768 p_header_num => 0); -- 4262811
111769 --
111770 -- set accounting line options
111771 --
111772 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111773 p_natural_side_code => 'D'
111774 , p_gain_or_loss_flag => 'N'
111775 , p_gl_transfer_mode_code => 'S'
111776 , p_acct_entry_type_code => 'E'
111777 , p_switch_side_flag => 'Y'
111778 , p_merge_duplicate_code => 'A'
111779 );
111780 --
111781 l_acc_rev_natural_side_code := 'C'; -- 4262811
111782 --
111783 --
111784 -- set accounting line type info
111785 --
111786 xla_ae_lines_pkg.SetAcctLineType
111787 (p_component_type => l_component_type
111788 ,p_event_type_code => l_event_type_code
111789 ,p_line_definition_owner_code => l_line_definition_owner_code
111790 ,p_line_definition_code => l_line_definition_code
111791 ,p_accounting_line_code => l_component_code
111792 ,p_accounting_line_type_code => l_component_type_code
111793 ,p_accounting_line_appl_id => l_component_appl_id
111794 ,p_amb_context_code => l_amb_context_code
111795 ,p_entity_code => l_entity_code
111796 ,p_event_class_code => l_event_class_code);
111797 --
111798 -- set accounting class
111799 --
111800 xla_ae_lines_pkg.SetAcctClass(
111801 p_accounting_class_code => 'TRV'
111802 , p_ae_header_id => l_ae_header_id
111803 );
111804
111805 --
111806 -- set rounding class
111807 --
111808 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111809 'TRV';
111810
111811 --
111812 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111813 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111814 --
111815 -- bulk performance
111816 --
111817 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111818
111819 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111820 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111821
111822 -- 4955764
111823 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111824 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111825
111826 -- 4458381 Public Sector Enh
111827
111828 --
111829 -- set accounting attributes for the line type
111830 --
111831 l_entered_amt_idx := 9;
111832 l_accted_amt_idx := 11;
111833 l_bflow_applied_to_amt_idx := NULL; -- 5132302
111834 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111835 l_rec_acct_attrs.array_char_value(1) := p_source_40;
111836 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
111837 l_rec_acct_attrs.array_num_value(2) := p_source_42;
111838 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111839 l_rec_acct_attrs.array_char_value(3) := p_source_62;
111840 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
111841 l_rec_acct_attrs.array_char_value(4) := p_source_63;
111842 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
111843 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_64);
111844 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111845 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_65);
111846 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
111850 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
111847 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_47);
111848 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
111849 l_rec_acct_attrs.array_char_value(8) := p_source_48;
111851 l_rec_acct_attrs.array_num_value(9) := p_source_41;
111852 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
111853 l_rec_acct_attrs.array_char_value(10) := p_source_49;
111854 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
111855 l_rec_acct_attrs.array_num_value(11) := p_source_9;
111856 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
111857 l_rec_acct_attrs.array_char_value(12) := p_source_53;
111858 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
111859 l_rec_acct_attrs.array_char_value(13) := p_source_56;
111860 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
111861 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_57);
111862 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
111863 l_rec_acct_attrs.array_char_value(15) := p_source_48;
111864 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
111865 l_rec_acct_attrs.array_num_value(16) := p_source_58;
111866 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
111867 l_rec_acct_attrs.array_num_value(17) := p_source_66;
111868 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
111869 l_rec_acct_attrs.array_num_value(18) := p_source_59;
111870
111871 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111872 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111873
111874 ---------------------------------------------------------------------------------------------------------------
111875 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111876 ---------------------------------------------------------------------------------------------------------------
111877 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111878
111879 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111880 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111881
111882 IF xla_accounting_cache_pkg.GetValueChar
111883 (p_source_code => 'LEDGER_CATEGORY_CODE'
111884 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111885 AND l_bflow_method_code = 'PRIOR_ENTRY'
111886 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111887 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111888 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111889 )
111890 THEN
111891 xla_ae_lines_pkg.BflowUpgEntry
111892 (p_business_method_code => l_bflow_method_code
111893 ,p_business_class_code => l_bflow_class_code
111894 ,p_balance_type => l_balance_type_code);
111895 ELSE
111896 NULL;
111897 XLA_AE_LINES_PKG.business_flow_validation(
111898 p_business_method_code => l_bflow_method_code
111899 ,p_business_class_code => l_bflow_class_code
111900 ,p_inherit_description_flag => l_inherit_desc_flag);
111901 END IF;
111902
111903 --
111904 -- call analytical criteria
111905 --
111906 -- Inherited Analytical Criteria for business flow method of Prior Entry.
111907 --
111908 -- call description
111909 --
111910 -- No description or it is inherited.
111911 --
111912 -- call ADRs
111913 -- Bug 4922099
111914 --
111915 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111916 (NVL(l_actual_upg_option, 'N') = 'O') OR
111917 (NVL(l_enc_upg_option, 'N') = 'O')
111918 )
111919 THEN
111920 NULL;
111921 --
111922 --
111923
111924 --
111925 --
111926 END IF;
111927 --
111928 -- Bug 4922099
111929 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111930 (NVL(l_enc_upg_option, 'N') = 'O')
111931 ) AND
111932 (l_bflow_method_code = 'PRIOR_ENTRY')
111933 )
111934 THEN
111935 IF
111936 --
111937 1 = 1
111938 --
111939 THEN
111940 xla_accounting_err_pkg.build_message
111941 (p_appli_s_name => 'XLA'
111942 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111943 ,p_token_1 => 'LINE_NUMBER'
111944 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
111945 ,p_token_2 => 'LINE_TYPE_NAME'
111946 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
111947 l_component_type
111948 ,l_component_code
111949 ,l_component_type_code
111950 ,l_component_appl_id
111951 ,l_amb_context_code
111955 ,p_token_3 => 'OWNER'
111952 ,l_entity_code
111953 ,l_event_class_code
111954 )
111956 ,p_value_3 => xla_lookups_pkg.get_meaning(
111957 p_lookup_type => 'XLA_OWNER_TYPE'
111958 ,p_lookup_code => l_component_type_code
111959 )
111960 ,p_token_4 => 'PRODUCT_NAME'
111961 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111962 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111963 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111964 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111965 ,p_ae_header_id => NULL
111966 );
111967
111968 IF (C_LEVEL_ERROR>= g_log_level) THEN
111969 trace
111970 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111971 ,p_level => C_LEVEL_ERROR
111972 ,p_module => l_log_module);
111973 END IF;
111974 END IF;
111975 END IF;
111976 --
111977 --
111978 ------------------------------------------------------------------------------------------------
111979 -- 4219869 Business Flow
111980 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111981 -- Prior Entry. Currently, the following code is always generated.
111982 ------------------------------------------------------------------------------------------------
111983 -- No ValidateCurrentLine for business flow method of Prior Entry
111984
111985 ------------------------------------------------------------------------------------
111986 -- 4219869 Business Flow
111987 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111988 ------------------------------------------------------------------------------------
111989 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111990
111991 ----------------------------------------------------------------------------------
111992 -- 4219869 Business Flow
111993 -- Update journal entry status -- Need to generate this within IF <condition>
111994 ----------------------------------------------------------------------------------
111995 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111996 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111997 ,p_balance_type_code => l_balance_type_code
111998 );
111999
112000 -------------------------------------------------------------------------------------------
112001 -- 4262811 - Generate the Accrual Reversal lines
112002 -------------------------------------------------------------------------------------------
112003 BEGIN
112004 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112005 (g_array_event(p_event_id).array_value_num('header_index'));
112006 IF l_acc_rev_flag IS NULL THEN
112007 l_acc_rev_flag := 'N';
112008 END IF;
112009 EXCEPTION
112010 WHEN OTHERS THEN
112011 l_acc_rev_flag := 'N';
112012 END;
112013 --
112014 IF (l_acc_rev_flag = 'Y') THEN
112015
112016 -- 4645092 ------------------------------------------------------------------------------
112017 -- To allow MPA report to determine if it should generate report process
112018 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112019 ------------------------------------------------------------------------------------------
112020
112021 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112022 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112023 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
112024 -- call ADRs
112025 -- Bug 4922099
112026 --
112027 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112028 (NVL(l_actual_upg_option, 'N') = 'O') OR
112029 (NVL(l_enc_upg_option, 'N') = 'O')
112030 )
112031 THEN
112032 NULL;
112033 --
112034 --
112035
112036 --
112037 --
112038 END IF;
112039
112040 --
112041 -- Update the line information that should be overwritten
112042 --
112043 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112044 p_header_num => 1);
112045 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
112046
112047 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112048
112049 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
112050 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112051 END IF;
112052
112053 --
112057 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
112054 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112055 --
112056 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112058 ELSE
112059 ---------------------------------------------------------------------------------------------------
112060 -- 4262811a Switch Sign
112061 ---------------------------------------------------------------------------------------------------
112062 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
112063 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112064 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112065 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112066 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112067 -- 5132302
112068 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112069 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112070
112071 END IF;
112072
112073 -- 4955764
112074 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112075 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112076
112077
112078 XLA_AE_LINES_PKG.ValidateCurrentLine;
112079 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112080
112081 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112082 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112083 ,p_balance_type_code => l_balance_type_code);
112084
112085 END IF;
112086
112087 -----------------------------------------------------------------------------------------
112088 -- 4262811 Multiperiod Accounting
112089 -----------------------------------------------------------------------------------------
112090 -- No MPA option is assigned.
112091
112092
112093 END IF;
112094 END IF;
112095 --
112096
112097 --
112098 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112099 trace
112100 (p_msg => 'END of AcctLineType_195'
112101 ,p_level => C_LEVEL_PROCEDURE
112102 ,p_module => l_log_module);
112103 END IF;
112104 --
112105 EXCEPTION
112106 WHEN xla_exceptions_pkg.application_exception THEN
112107 RAISE;
112108 WHEN OTHERS THEN
112109 xla_exceptions_pkg.raise_message
112110 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_195');
112111 END AcctLineType_195;
112112 --
112113
112114 ---------------------------------------
112115 --
112116 -- PRIVATE FUNCTION
112117 -- AcctLineType_196
112118 --
112119 ---------------------------------------
112120 PROCEDURE AcctLineType_196 (
112121 p_application_id IN NUMBER
112122 ,p_event_id IN NUMBER
112123 ,p_calculate_acctd_flag IN VARCHAR2
112124 ,p_calculate_g_l_flag IN VARCHAR2
112125 ,p_actual_flag IN OUT VARCHAR2
112126 ,p_balance_type_code OUT VARCHAR2
112127 ,p_gain_or_loss_ref OUT VARCHAR2
112128
112129 --Automatic Offsets Value
112130 , p_source_4 IN VARCHAR2
112131 , p_source_4_meaning IN VARCHAR2
112132 --Purchase Order Rate Variance Gain Account
112133 , p_source_5 IN NUMBER
112134 --Invoice Distribution Ledger Amount
112135 , p_source_6 IN NUMBER
112136 --Destination Type of the PO Distribution
112137 , p_source_7 IN VARCHAR2
112138 , p_source_7_meaning IN VARCHAR2
112139 --Purchase Order Rate Variance Loss Account
112140 , p_source_8 IN NUMBER
112141 --Invoice Distribution Account
112142 , p_source_17 IN NUMBER
112143 --Automatic Offsets Flag
112144 , p_source_30 IN VARCHAR2
112145 , p_source_30_meaning IN VARCHAR2
112146 --When to Account for Payment Option
112147 , p_source_38 IN VARCHAR2
112148 --Accounting Reversal Indicator
112149 , p_source_40 IN VARCHAR2
112150 --Business Flow Accounts Payable Application Identifier
112151 , p_source_42 IN NUMBER
112152 --Distribution Link Type
112153 , p_source_48 IN VARCHAR2
112154 --Override Accounted Amount Indicator
112155 , p_source_53 IN VARCHAR2
112156 , p_source_53_meaning IN VARCHAR2
112157 --Third Party Type
112158 , p_source_56 IN VARCHAR2
112159 --Invoice Distribution Tax Line Identifier
112160 , p_source_58 IN NUMBER
112161 --Invoice Distribution Summary Tax Line Identifier
112162 , p_source_59 IN NUMBER
112163 --Invoice Distribution Tax Distribution Identifier from Tax
112164 , p_source_66 IN NUMBER
112165 --Prepayment Distribution Type
112166 , p_source_67 IN VARCHAR2
112167 --Recipient Invoice Distribution Type
112168 , p_source_68 IN VARCHAR2
112169 , p_source_68_meaning IN VARCHAR2
112170 --Prepayment Application Distribution Identifier
112171 , p_source_71 IN NUMBER
112172 --Invoice Identifier
112173 , p_source_72 IN NUMBER
112174 --Business Flow Prepayment Invoice Distribution Type
112175 , p_source_73 IN VARCHAR2
112179 , p_source_75 IN NUMBER
112176 --Business Flow Prepayment Invoice Entity Code
112177 , p_source_74 IN VARCHAR2
112178 --Business Flow Prepayment Invoice Distribution Identifier
112180 --Business Flow Prepayment Invoice Identifier
112181 , p_source_76 IN NUMBER
112182 --Upgrade Encumbrance Credit Account Class
112183 , p_source_77 IN VARCHAR2
112184 --Payables Encumbrance Upgrade Credit Account
112185 , p_source_78 IN NUMBER
112186 --Payables Encumbrance Upgrade Credit Amount
112187 , p_source_79 IN NUMBER
112188 --Invoice Currency Code
112189 , p_source_80 IN VARCHAR2
112190 --Payables Encumbrance Upgrade Credit Base Amount
112191 , p_source_81 IN NUMBER
112192 --Upgrade Encumbrance Debit Account Class
112193 , p_source_82 IN VARCHAR2
112194 --Payables Encumbrance Upgrade Debit Account
112195 , p_source_83 IN NUMBER
112196 --Payables Encumbrance Upgrade Debit Amount
112197 , p_source_84 IN NUMBER
112198 --Payables Encumbrance Upgrade Debit Base Amount
112199 , p_source_85 IN NUMBER
112200 --Payables Encumbrance Upgrade Option
112201 , p_source_86 IN VARCHAR2
112202 --Prepayment Distribution Amount
112203 , p_source_87 IN NUMBER
112204 --Prepayment Clearing Currency Code
112205 , p_source_88 IN VARCHAR2
112206 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
112207 , p_source_89 IN NUMBER
112208 --Deferred Accounting End Date
112209 , p_source_90 IN DATE
112210 --Deferred Accounting Option
112211 , p_source_91 IN VARCHAR2
112212 --Deferred Accounting Start Date
112213 , p_source_92 IN DATE
112214 --Invoice Supplier Identifier
112215 , p_source_93 IN NUMBER
112216 --Invoice Supplier Site Identifier
112217 , p_source_94 IN NUMBER
112218 --Identifier of the Prepayment Application Reversed
112219 , p_source_95 IN NUMBER
112220 --Payables Upgrade Credit Encumbrance Type Identifier
112221 , p_source_96 IN NUMBER
112222 --Payables Upgrade Debit Encumbrance Type Identifier
112223 , p_source_97 IN NUMBER
112224 --Accrue on Receipt Option
112225 , p_source_100 IN VARCHAR2
112226 , p_source_100_meaning IN VARCHAR2
112227 --Prepayment Clearing Exchange Date
112228 , p_source_118 IN DATE
112229 --Prepayment Clearing Exchange Rate
112230 , p_source_119 IN NUMBER
112231 --Prepayment Clearing Exchange Rate Type
112232 , p_source_120 IN VARCHAR2
112233 )
112234 IS
112235
112236 l_component_type VARCHAR2(80);
112237 l_component_code VARCHAR2(30);
112238 l_component_type_code VARCHAR2(1);
112239 l_component_appl_id INTEGER;
112240 l_amb_context_code VARCHAR2(30);
112241 l_entity_code VARCHAR2(30);
112242 l_event_class_code VARCHAR2(30);
112243 l_ae_header_id NUMBER;
112244 l_event_type_code VARCHAR2(30);
112245 l_line_definition_code VARCHAR2(30);
112246 l_line_definition_owner_code VARCHAR2(1);
112247 --
112248 -- adr variables
112249 l_segment VARCHAR2(30);
112250 l_ccid NUMBER;
112251 l_adr_transaction_coa_id NUMBER;
112252 l_adr_accounting_coa_id NUMBER;
112253 l_adr_flexfield_segment_code VARCHAR2(30);
112254 l_adr_flex_value_set_id NUMBER;
112255 l_adr_value_type_code VARCHAR2(30);
112256 l_adr_value_combination_id NUMBER;
112257 l_adr_value_segment_code VARCHAR2(30);
112258
112259 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
112260 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
112261 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
112262 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
112263
112264 -- 4262811 Variables ------------------------------------------------------------------------------------------
112265 l_entered_amt_idx NUMBER;
112266 l_accted_amt_idx NUMBER;
112267 l_acc_rev_flag VARCHAR2(1);
112268 l_accrual_line_num NUMBER;
112269 l_tmp_amt NUMBER;
112270 l_acc_rev_natural_side_code VARCHAR2(1);
112271
112272 l_num_entries NUMBER;
112273 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
112274 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
112275 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
112276 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
112277 l_recog_line_1 NUMBER;
112278 l_recog_line_2 NUMBER;
112279
112280 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
112281 l_bflow_applied_to_amt NUMBER; -- 5132302
112282 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
112283
112284 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112285
112286 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
112287 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
112288
112289 ---------------------------------------------------------------------------------------------------------------
112290
112291
112292 --
112293 -- bulk performance
112294 --
112295 l_balance_type_code VARCHAR2(1);
112299 --
112296 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
112297 l_log_module VARCHAR2(240);
112298
112300 -- Upgrade strategy
112301 --
112302 l_actual_upg_option VARCHAR2(1);
112303 l_enc_upg_option VARCHAR2(1);
112304
112305 --
112306 BEGIN
112307 --
112308 IF g_log_enabled THEN
112309 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_196';
112310 END IF;
112311 --
112312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112313
112314 trace
112315 (p_msg => 'BEGIN of AcctLineType_196'
112316 ,p_level => C_LEVEL_PROCEDURE
112317 ,p_module => l_log_module);
112318
112319 END IF;
112320 --
112321 l_component_type := 'AMB_JLT';
112322 l_component_code := 'AP_TERV_CLR_RATE_APP';
112323 l_component_type_code := 'S';
112324 l_component_appl_id := 200;
112325 l_amb_context_code := 'DEFAULT';
112326 l_entity_code := 'AP_INVOICES';
112327 l_event_class_code := 'PREPAYMENT APPLICATIONS';
112328 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
112329 l_line_definition_owner_code := 'S';
112330 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
112331 --
112332 l_balance_type_code := 'A';
112333 l_segment := NULL;
112334 l_ccid := NULL;
112335 l_adr_transaction_coa_id := NULL;
112336 l_adr_accounting_coa_id := NULL;
112337 l_adr_flexfield_segment_code := NULL;
112338 l_adr_flex_value_set_id := NULL;
112339 l_adr_value_type_code := NULL;
112340 l_adr_value_combination_id := NULL;
112341 l_adr_value_segment_code := NULL;
112342
112343 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
112344 l_bflow_class_code := ''; -- 4219869 Business Flow
112345 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
112346 l_budgetary_control_flag := 'N';
112347
112348 l_bflow_applied_to_amt_idx := NULL; -- 5132302
112349 l_bflow_applied_to_amt := NULL; -- 5132302
112350 l_entered_amt_idx := NULL; -- 4262811
112351 l_accted_amt_idx := NULL; -- 4262811
112352 l_acc_rev_flag := NULL; -- 4262811
112353 l_accrual_line_num := NULL; -- 4262811
112354 l_tmp_amt := NULL; -- 4262811
112355 --
112356 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
112357 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
112358 return;
112359 END IF;
112360
112361 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112362 l_balance_type_code <> 'B' THEN
112363 IF NVL(p_source_38,'
112364 ') = 'CLEAR_CLEAR' AND
112365 (NVL(p_source_67,'
112366 ') = 'PREPAY APPL' OR
112367 NVL(p_source_67,'
112368 ') = 'PREPAY APPL NONREC TAX' OR
112369 NVL(p_source_67,'
112370 ') = 'PREPAY APPL REC TAX') AND
112371 NVL(p_source_68,'
112372 ') = 'TERV' AND
112373 NVL(p_source_100,'
112374 ') = 'Y'
112375 THEN
112376
112377 --
112378 XLA_AE_LINES_PKG.SetNewLine;
112379
112380 p_balance_type_code := l_balance_type_code;
112381 -- set the flag so later we will know whether the gain loss line needs to be created
112382
112383 IF(l_balance_type_code = 'A' ) THEN
112384 p_actual_flag :='G';
112385 END IF;
112386
112387 --
112388 -- bulk performance
112389 --
112390 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112391 p_header_num => 0); -- 4262811
112392 --
112393 -- set accounting line options
112394 --
112395 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112396 p_natural_side_code => 'C'
112397 , p_gain_or_loss_flag => 'Y'
112398 , p_gl_transfer_mode_code => 'S'
112399 , p_acct_entry_type_code => 'A'
112400 , p_switch_side_flag => 'Y'
112401 , p_merge_duplicate_code => 'A'
112402 );
112403 --
112404 l_acc_rev_natural_side_code := 'D'; -- 4262811
112405 --
112406 --
112407 -- set accounting line type info
112408 --
112409 xla_ae_lines_pkg.SetAcctLineType
112410 (p_component_type => l_component_type
112411 ,p_event_type_code => l_event_type_code
112412 ,p_line_definition_owner_code => l_line_definition_owner_code
112413 ,p_line_definition_code => l_line_definition_code
112414 ,p_accounting_line_code => l_component_code
112415 ,p_accounting_line_type_code => l_component_type_code
112416 ,p_accounting_line_appl_id => l_component_appl_id
112417 ,p_amb_context_code => l_amb_context_code
112418 ,p_entity_code => l_entity_code
112419 ,p_event_class_code => l_event_class_code);
112420 --
112421 -- set accounting class
112422 --
112423 xla_ae_lines_pkg.SetAcctClass(
112424 p_accounting_class_code => 'TERV'
112425 , p_ae_header_id => l_ae_header_id
112426 );
112427
112428 --
112429 -- set rounding class
112430 --
112431 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112432 'TERV';
112436 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112433
112434 --
112435 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112437 --
112438 -- bulk performance
112439 --
112440 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112441
112442 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112443 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112444
112445 -- 4955764
112446 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112447 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112448
112449 -- 4458381 Public Sector Enh
112450
112451 --
112452 -- set accounting attributes for the line type
112453 --
112454 l_entered_amt_idx := 25;
112455 l_accted_amt_idx := 30;
112456 l_bflow_applied_to_amt_idx := NULL; -- 5132302
112457 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112458 l_rec_acct_attrs.array_char_value(1) := p_source_40;
112459 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112460 l_rec_acct_attrs.array_num_value(2) :=
112461 xla_ae_sources_pkg.GetSystemSourceNum(
112462 p_source_code => 'XLA_EVENT_APPL_ID'
112463 , p_source_type_code => 'Y'
112464 , p_source_application_id => 602
112465 );
112466 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112467 l_rec_acct_attrs.array_char_value(3) := p_source_48;
112468 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112469 l_rec_acct_attrs.array_char_value(4) :=
112470 xla_ae_sources_pkg.GetSystemSourceChar(
112471 p_source_code => 'XLA_ENTITY_CODE'
112472 , p_source_type_code => 'Y'
112473 , p_source_application_id => 602
112474 );
112475 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112476 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
112477 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112478 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
112479 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
112480 l_rec_acct_attrs.array_num_value(7) := p_source_42;
112481 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112482 l_rec_acct_attrs.array_char_value(8) := p_source_73;
112483 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
112484 l_rec_acct_attrs.array_char_value(9) := p_source_74;
112485 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
112486 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
112487 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112488 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
112489 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
112490 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
112491 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
112492 l_rec_acct_attrs.array_char_value(13) := p_source_48;
112493 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
112494 l_rec_acct_attrs.array_char_value(14) := p_source_77;
112495 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
112496 l_rec_acct_attrs.array_num_value(15) := p_source_78;
112497 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
112498 l_rec_acct_attrs.array_num_value(16) := p_source_79;
112499 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
112500 l_rec_acct_attrs.array_char_value(17) := p_source_80;
112501 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
112502 l_rec_acct_attrs.array_num_value(18) := p_source_81;
112503 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
112504 l_rec_acct_attrs.array_char_value(19) := p_source_82;
112505 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
112506 l_rec_acct_attrs.array_num_value(20) := p_source_83;
112507 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
112508 l_rec_acct_attrs.array_num_value(21) := p_source_84;
112509 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
112510 l_rec_acct_attrs.array_char_value(22) := p_source_80;
112511 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
112512 l_rec_acct_attrs.array_num_value(23) := p_source_85;
112513 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
112514 l_rec_acct_attrs.array_char_value(24) := p_source_86;
112515 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
112516 l_rec_acct_attrs.array_num_value(25) := p_source_87;
112517 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
112518 l_rec_acct_attrs.array_char_value(26) := p_source_88;
112519 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
112520 l_rec_acct_attrs.array_date_value(27) := p_source_118;
112521 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
112522 l_rec_acct_attrs.array_num_value(28) := p_source_119;
112523 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
112524 l_rec_acct_attrs.array_char_value(29) := p_source_120;
112525 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
112526 l_rec_acct_attrs.array_num_value(30) := p_source_89;
112530 l_rec_acct_attrs.array_char_value(32) := p_source_91;
112527 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
112528 l_rec_acct_attrs.array_date_value(31) := p_source_90;
112529 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
112531 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
112532 l_rec_acct_attrs.array_date_value(33) := p_source_92;
112533 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
112534 l_rec_acct_attrs.array_char_value(34) := p_source_53;
112535 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
112536 l_rec_acct_attrs.array_num_value(35) := p_source_93;
112537 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
112538 l_rec_acct_attrs.array_num_value(36) := p_source_94;
112539 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
112540 l_rec_acct_attrs.array_char_value(37) := p_source_56;
112541 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
112542 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
112543 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
112544 l_rec_acct_attrs.array_char_value(39) := p_source_48;
112545 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
112546 l_rec_acct_attrs.array_num_value(40) := p_source_58;
112547 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
112548 l_rec_acct_attrs.array_num_value(41) := p_source_66;
112549 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
112550 l_rec_acct_attrs.array_num_value(42) := p_source_59;
112551 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
112552 l_rec_acct_attrs.array_num_value(43) := p_source_96;
112553 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
112554 l_rec_acct_attrs.array_num_value(44) := p_source_97;
112555
112556 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112557 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112558
112559 ---------------------------------------------------------------------------------------------------------------
112560 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
112561 ---------------------------------------------------------------------------------------------------------------
112562 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
112563
112564 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112565 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112566
112567 IF xla_accounting_cache_pkg.GetValueChar
112568 (p_source_code => 'LEDGER_CATEGORY_CODE'
112569 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
112570 AND l_bflow_method_code = 'PRIOR_ENTRY'
112571 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
112572 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
112573 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
112574 )
112575 THEN
112576 xla_ae_lines_pkg.BflowUpgEntry
112577 (p_business_method_code => l_bflow_method_code
112578 ,p_business_class_code => l_bflow_class_code
112579 ,p_balance_type => l_balance_type_code);
112580 ELSE
112581 NULL;
112582 -- No business flow processing for business flow method of NONE.
112583 END IF;
112584
112585 --
112586 -- call analytical criteria
112587 --
112588
112589 --
112590 -- call description
112591 --
112592 -- No description or it is inherited.
112593 --
112594 -- call ADRs
112595 -- Bug 4922099
112596 --
112597 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112598 (NVL(l_actual_upg_option, 'N') = 'O') OR
112599 (NVL(l_enc_upg_option, 'N') = 'O')
112600 )
112601 THEN
112602 NULL;
112603 --
112604 --
112605
112606 l_ccid := AcctDerRule_23(
112607 p_application_id => p_application_id
112608 , p_ae_header_id => l_ae_header_id
112609 , p_source_4 => p_source_4
112610 , p_source_4_meaning => p_source_4_meaning
112611 , p_source_5 => p_source_5
112612 , p_source_6 => p_source_6
112613 , p_source_7 => p_source_7
112614 , p_source_7_meaning => p_source_7_meaning
112615 , p_source_8 => p_source_8
112616 , p_source_17 => p_source_17
112617 , p_source_30 => p_source_30
112618 , p_source_30_meaning => p_source_30_meaning
112619 , x_transaction_coa_id => l_adr_transaction_coa_id
112620 , x_accounting_coa_id => l_adr_accounting_coa_id
112621 , x_value_type_code => l_adr_value_type_code
112622 , p_side => 'NA'
112623 );
112624
112625 xla_ae_lines_pkg.set_ccid(
112626 p_code_combination_id => l_ccid
112627 , p_value_type_code => l_adr_value_type_code
112628 , p_transaction_coa_id => l_adr_transaction_coa_id
112629 , p_accounting_coa_id => l_adr_accounting_coa_id
112630 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
112631 , p_adr_type_code => 'S'
112632 , p_component_type => l_component_type
112633 , p_component_code => l_component_code
112634 , p_component_type_code => l_component_type_code
112638 );
112635 , p_component_appl_id => l_component_appl_id
112636 , p_amb_context_code => l_amb_context_code
112637 , p_side => 'NA'
112639
112640
112641 l_segment := AcctDerRule_3(
112642 p_application_id => p_application_id
112643 , p_ae_header_id => l_ae_header_id
112644 , p_source_4 => p_source_4
112645 , p_source_4_meaning => p_source_4_meaning
112646 , p_source_5 => p_source_5
112647 , p_source_6 => p_source_6
112648 , p_source_7 => p_source_7
112649 , p_source_7_meaning => p_source_7_meaning
112650 , p_source_8 => p_source_8
112651 , x_transaction_coa_id => l_adr_transaction_coa_id
112652 , x_accounting_coa_id => l_adr_accounting_coa_id
112653 , x_flexfield_segment_code => l_adr_flexfield_segment_code
112654 , x_flex_value_set_id => l_adr_flex_value_set_id
112655 , x_value_type_code => l_adr_value_type_code
112656 , x_value_combination_id => l_adr_value_combination_id
112657 , x_value_segment_code => l_adr_value_segment_code
112658 , p_side => 'NA'
112659 , p_override_seg_flag => 'Y'
112660 );
112661
112662 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
112663
112664 xla_ae_lines_pkg.set_segment(
112665 p_to_segment_code => 'GL_ACCOUNT'
112666 , p_segment_value => l_segment
112667 , p_from_segment_code => l_adr_value_segment_code
112668 , p_from_combination_id => l_adr_value_combination_id
112669 , p_value_type_code => l_adr_value_type_code
112670 , p_transaction_coa_id => l_adr_transaction_coa_id
112671 , p_accounting_coa_id => l_adr_accounting_coa_id
112672 , p_flexfield_segment_code => l_adr_flexfield_segment_code
112673 , p_flex_value_set_id => l_adr_flex_value_set_id
112674 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
112675 , p_adr_type_code => 'S'
112676 , p_component_type => l_component_type
112677 , p_component_code => l_component_code
112678 , p_component_type_code => l_component_type_code
112679 , p_component_appl_id => l_component_appl_id
112680 , p_amb_context_code => l_amb_context_code
112681 , p_entity_code => 'AP_INVOICES'
112682 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
112683 , p_side => 'NA'
112684 );
112685
112686 END IF;
112687
112688 l_segment := AcctDerRule_15(
112689 p_application_id => p_application_id
112690 , p_ae_header_id => l_ae_header_id
112691 , p_source_4 => p_source_4
112692 , p_source_4_meaning => p_source_4_meaning
112693 , p_source_7 => p_source_7
112694 , p_source_7_meaning => p_source_7_meaning
112695 , p_source_17 => p_source_17
112696 , x_transaction_coa_id => l_adr_transaction_coa_id
112697 , x_accounting_coa_id => l_adr_accounting_coa_id
112698 , x_flexfield_segment_code => l_adr_flexfield_segment_code
112699 , x_flex_value_set_id => l_adr_flex_value_set_id
112700 , x_value_type_code => l_adr_value_type_code
112701 , x_value_combination_id => l_adr_value_combination_id
112702 , x_value_segment_code => l_adr_value_segment_code
112703 , p_side => 'NA'
112704 , p_override_seg_flag => 'Y'
112705 );
112706
112707 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
112708
112709 xla_ae_lines_pkg.set_segment(
112710 p_to_segment_code => 'GL_BALANCING'
112711 , p_segment_value => l_segment
112712 , p_from_segment_code => l_adr_value_segment_code
112713 , p_from_combination_id => l_adr_value_combination_id
112714 , p_value_type_code => l_adr_value_type_code
112715 , p_transaction_coa_id => l_adr_transaction_coa_id
112716 , p_accounting_coa_id => l_adr_accounting_coa_id
112717 , p_flexfield_segment_code => l_adr_flexfield_segment_code
112718 , p_flex_value_set_id => l_adr_flex_value_set_id
112719 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
112720 , p_adr_type_code => 'S'
112721 , p_component_type => l_component_type
112722 , p_component_code => l_component_code
112723 , p_component_type_code => l_component_type_code
112724 , p_component_appl_id => l_component_appl_id
112725 , p_amb_context_code => l_amb_context_code
112726 , p_entity_code => 'AP_INVOICES'
112727 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
112728 , p_side => 'NA'
112729 );
112730
112731 END IF;
112732
112733 --
112734 --
112735 END IF;
112736 --
112737 -- Bug 4922099
112738 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112739 (NVL(l_enc_upg_option, 'N') = 'O')
112740 ) AND
112741 (l_bflow_method_code = 'PRIOR_ENTRY')
112742 )
112743 THEN
112744 IF
112745 --
112746 1 = 2
112747 --
112748 THEN
112749 xla_accounting_err_pkg.build_message
112750 (p_appli_s_name => 'XLA'
112754 ,p_token_2 => 'LINE_TYPE_NAME'
112751 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112752 ,p_token_1 => 'LINE_NUMBER'
112753 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
112755 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
112756 l_component_type
112757 ,l_component_code
112758 ,l_component_type_code
112759 ,l_component_appl_id
112760 ,l_amb_context_code
112761 ,l_entity_code
112762 ,l_event_class_code
112763 )
112764 ,p_token_3 => 'OWNER'
112765 ,p_value_3 => xla_lookups_pkg.get_meaning(
112766 p_lookup_type => 'XLA_OWNER_TYPE'
112767 ,p_lookup_code => l_component_type_code
112768 )
112769 ,p_token_4 => 'PRODUCT_NAME'
112770 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112771 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112772 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112773 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112774 ,p_ae_header_id => NULL
112775 );
112776
112777 IF (C_LEVEL_ERROR>= g_log_level) THEN
112778 trace
112779 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112780 ,p_level => C_LEVEL_ERROR
112781 ,p_module => l_log_module);
112782 END IF;
112783 END IF;
112784 END IF;
112785 --
112786 --
112787 ------------------------------------------------------------------------------------------------
112788 -- 4219869 Business Flow
112789 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112790 -- Prior Entry. Currently, the following code is always generated.
112791 ------------------------------------------------------------------------------------------------
112792 XLA_AE_LINES_PKG.ValidateCurrentLine;
112793
112794 ------------------------------------------------------------------------------------
112795 -- 4219869 Business Flow
112796 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112797 ------------------------------------------------------------------------------------
112798 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112799
112800 ----------------------------------------------------------------------------------
112801 -- 4219869 Business Flow
112802 -- Update journal entry status -- Need to generate this within IF <condition>
112803 ----------------------------------------------------------------------------------
112804 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112805 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112806 ,p_balance_type_code => l_balance_type_code
112807 );
112808
112809 -------------------------------------------------------------------------------------------
112810 -- 4262811 - Generate the Accrual Reversal lines
112811 -------------------------------------------------------------------------------------------
112812 BEGIN
112813 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112814 (g_array_event(p_event_id).array_value_num('header_index'));
112815 IF l_acc_rev_flag IS NULL THEN
112816 l_acc_rev_flag := 'N';
112817 END IF;
112818 EXCEPTION
112819 WHEN OTHERS THEN
112820 l_acc_rev_flag := 'N';
112821 END;
112822 --
112823 IF (l_acc_rev_flag = 'Y') THEN
112824
112825 -- 4645092 ------------------------------------------------------------------------------
112826 -- To allow MPA report to determine if it should generate report process
112827 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112828 ------------------------------------------------------------------------------------------
112829
112830 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112831 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112832 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
112833 -- call ADRs
112834 -- Bug 4922099
112835 --
112836 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112840 THEN
112837 (NVL(l_actual_upg_option, 'N') = 'O') OR
112838 (NVL(l_enc_upg_option, 'N') = 'O')
112839 )
112841 NULL;
112842 --
112843 --
112844
112845 l_ccid := AcctDerRule_23(
112846 p_application_id => p_application_id
112847 , p_ae_header_id => l_ae_header_id
112848 , p_source_4 => p_source_4
112849 , p_source_4_meaning => p_source_4_meaning
112850 , p_source_5 => p_source_5
112851 , p_source_6 => p_source_6
112852 , p_source_7 => p_source_7
112853 , p_source_7_meaning => p_source_7_meaning
112854 , p_source_8 => p_source_8
112855 , p_source_17 => p_source_17
112856 , p_source_30 => p_source_30
112857 , p_source_30_meaning => p_source_30_meaning
112858 , x_transaction_coa_id => l_adr_transaction_coa_id
112859 , x_accounting_coa_id => l_adr_accounting_coa_id
112860 , x_value_type_code => l_adr_value_type_code
112861 , p_side => 'NA'
112862 );
112863
112864 xla_ae_lines_pkg.set_ccid(
112865 p_code_combination_id => l_ccid
112866 , p_value_type_code => l_adr_value_type_code
112867 , p_transaction_coa_id => l_adr_transaction_coa_id
112868 , p_accounting_coa_id => l_adr_accounting_coa_id
112869 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
112870 , p_adr_type_code => 'S'
112871 , p_component_type => l_component_type
112872 , p_component_code => l_component_code
112873 , p_component_type_code => l_component_type_code
112874 , p_component_appl_id => l_component_appl_id
112875 , p_amb_context_code => l_amb_context_code
112876 , p_side => 'NA'
112877 );
112878
112879
112880 l_segment := AcctDerRule_3(
112881 p_application_id => p_application_id
112882 , p_ae_header_id => l_ae_header_id
112883 , p_source_4 => p_source_4
112884 , p_source_4_meaning => p_source_4_meaning
112885 , p_source_5 => p_source_5
112886 , p_source_6 => p_source_6
112887 , p_source_7 => p_source_7
112888 , p_source_7_meaning => p_source_7_meaning
112889 , p_source_8 => p_source_8
112890 , x_transaction_coa_id => l_adr_transaction_coa_id
112891 , x_accounting_coa_id => l_adr_accounting_coa_id
112892 , x_flexfield_segment_code => l_adr_flexfield_segment_code
112893 , x_flex_value_set_id => l_adr_flex_value_set_id
112894 , x_value_type_code => l_adr_value_type_code
112895 , x_value_combination_id => l_adr_value_combination_id
112896 , x_value_segment_code => l_adr_value_segment_code
112897 , p_side => 'NA'
112898 , p_override_seg_flag => 'Y'
112899 );
112900
112901 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
112902
112903 xla_ae_lines_pkg.set_segment(
112904 p_to_segment_code => 'GL_ACCOUNT'
112905 , p_segment_value => l_segment
112906 , p_from_segment_code => l_adr_value_segment_code
112907 , p_from_combination_id => l_adr_value_combination_id
112908 , p_value_type_code => l_adr_value_type_code
112909 , p_transaction_coa_id => l_adr_transaction_coa_id
112910 , p_accounting_coa_id => l_adr_accounting_coa_id
112911 , p_flexfield_segment_code => l_adr_flexfield_segment_code
112912 , p_flex_value_set_id => l_adr_flex_value_set_id
112913 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
112914 , p_adr_type_code => 'S'
112915 , p_component_type => l_component_type
112916 , p_component_code => l_component_code
112917 , p_component_type_code => l_component_type_code
112918 , p_component_appl_id => l_component_appl_id
112919 , p_amb_context_code => l_amb_context_code
112920 , p_entity_code => 'AP_INVOICES'
112921 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
112922 , p_side => 'NA'
112923 );
112924
112925 END IF;
112926
112927 l_segment := AcctDerRule_15(
112928 p_application_id => p_application_id
112929 , p_ae_header_id => l_ae_header_id
112930 , p_source_4 => p_source_4
112931 , p_source_4_meaning => p_source_4_meaning
112932 , p_source_7 => p_source_7
112933 , p_source_7_meaning => p_source_7_meaning
112934 , p_source_17 => p_source_17
112935 , x_transaction_coa_id => l_adr_transaction_coa_id
112936 , x_accounting_coa_id => l_adr_accounting_coa_id
112937 , x_flexfield_segment_code => l_adr_flexfield_segment_code
112938 , x_flex_value_set_id => l_adr_flex_value_set_id
112939 , x_value_type_code => l_adr_value_type_code
112940 , x_value_combination_id => l_adr_value_combination_id
112941 , x_value_segment_code => l_adr_value_segment_code
112942 , p_side => 'NA'
112943 , p_override_seg_flag => 'Y'
112944 );
112945
112946 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
112947
112948 xla_ae_lines_pkg.set_segment(
112949 p_to_segment_code => 'GL_BALANCING'
112950 , p_segment_value => l_segment
112951 , p_from_segment_code => l_adr_value_segment_code
112952 , p_from_combination_id => l_adr_value_combination_id
112956 , p_flexfield_segment_code => l_adr_flexfield_segment_code
112953 , p_value_type_code => l_adr_value_type_code
112954 , p_transaction_coa_id => l_adr_transaction_coa_id
112955 , p_accounting_coa_id => l_adr_accounting_coa_id
112957 , p_flex_value_set_id => l_adr_flex_value_set_id
112958 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
112959 , p_adr_type_code => 'S'
112960 , p_component_type => l_component_type
112961 , p_component_code => l_component_code
112962 , p_component_type_code => l_component_type_code
112963 , p_component_appl_id => l_component_appl_id
112964 , p_amb_context_code => l_amb_context_code
112965 , p_entity_code => 'AP_INVOICES'
112966 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
112967 , p_side => 'NA'
112968 );
112969
112970 END IF;
112971
112972 --
112973 --
112974 END IF;
112975
112976 --
112977 -- Update the line information that should be overwritten
112978 --
112979 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112980 p_header_num => 1);
112981 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
112982
112983 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112984
112985 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
112986 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112987 END IF;
112988
112989 --
112990 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112991 --
112992 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112993 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
112994 ELSE
112995 ---------------------------------------------------------------------------------------------------
112996 -- 4262811a Switch Sign
112997 ---------------------------------------------------------------------------------------------------
112998 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
112999 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113000 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113001 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113002 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113003 -- 5132302
113004 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113005 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113006
113007 END IF;
113008
113009 -- 4955764
113010 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113011 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113012
113013
113014 XLA_AE_LINES_PKG.ValidateCurrentLine;
113015 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113016
113017 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113018 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113019 ,p_balance_type_code => l_balance_type_code);
113020
113021 END IF;
113022
113023 -----------------------------------------------------------------------------------------
113024 -- 4262811 Multiperiod Accounting
113025 -----------------------------------------------------------------------------------------
113026 -- No MPA option is assigned.
113027
113028
113029 END IF;
113030 END IF;
113031 --
113032
113033 --
113034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113035 trace
113036 (p_msg => 'END of AcctLineType_196'
113037 ,p_level => C_LEVEL_PROCEDURE
113038 ,p_module => l_log_module);
113039 END IF;
113040 --
113041 EXCEPTION
113042 WHEN xla_exceptions_pkg.application_exception THEN
113043 RAISE;
113044 WHEN OTHERS THEN
113045 xla_exceptions_pkg.raise_message
113046 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_196');
113047 END AcctLineType_196;
113048 --
113049
113050 ---------------------------------------
113051 --
113052 -- PRIVATE FUNCTION
113053 -- AcctLineType_197
113054 --
113055 ---------------------------------------
113056 PROCEDURE AcctLineType_197 (
113057 p_application_id IN NUMBER
113058 ,p_event_id IN NUMBER
113059 ,p_calculate_acctd_flag IN VARCHAR2
113060 ,p_calculate_g_l_flag IN VARCHAR2
113061 ,p_actual_flag IN OUT VARCHAR2
113062 ,p_balance_type_code OUT VARCHAR2
113063 ,p_gain_or_loss_ref OUT VARCHAR2
113064
113065 --Automatic Offsets Value
113066 , p_source_4 IN VARCHAR2
113067 , p_source_4_meaning IN VARCHAR2
113068 --Purchase Order Rate Variance Gain Account
113069 , p_source_5 IN NUMBER
113070 --Invoice Distribution Ledger Amount
113071 , p_source_6 IN NUMBER
113072 --Destination Type of the PO Distribution
113073 , p_source_7 IN VARCHAR2
113077 --Invoice Distribution Account
113074 , p_source_7_meaning IN VARCHAR2
113075 --Purchase Order Rate Variance Loss Account
113076 , p_source_8 IN NUMBER
113078 , p_source_17 IN NUMBER
113079 --Automatic Offsets Flag
113080 , p_source_30 IN VARCHAR2
113081 , p_source_30_meaning IN VARCHAR2
113082 --When to Account for Payment Option
113083 , p_source_38 IN VARCHAR2
113084 --Accounting Reversal Indicator
113085 , p_source_40 IN VARCHAR2
113086 --Business Flow Accounts Payable Application Identifier
113087 , p_source_42 IN NUMBER
113088 --Distribution Link Type
113089 , p_source_48 IN VARCHAR2
113090 --Override Accounted Amount Indicator
113091 , p_source_53 IN VARCHAR2
113092 , p_source_53_meaning IN VARCHAR2
113093 --Third Party Type
113094 , p_source_56 IN VARCHAR2
113095 --Invoice Distribution Tax Line Identifier
113096 , p_source_58 IN NUMBER
113097 --Invoice Distribution Summary Tax Line Identifier
113098 , p_source_59 IN NUMBER
113099 --Invoice Distribution Tax Distribution Identifier from Tax
113100 , p_source_66 IN NUMBER
113101 --Prepayment Distribution Type
113102 , p_source_67 IN VARCHAR2
113103 --Recipient Invoice Distribution Type
113104 , p_source_68 IN VARCHAR2
113105 , p_source_68_meaning IN VARCHAR2
113106 --Prepayment Application Distribution Identifier
113107 , p_source_71 IN NUMBER
113108 --Invoice Identifier
113109 , p_source_72 IN NUMBER
113110 --Business Flow Prepayment Invoice Distribution Type
113111 , p_source_73 IN VARCHAR2
113112 --Business Flow Prepayment Invoice Entity Code
113113 , p_source_74 IN VARCHAR2
113114 --Business Flow Prepayment Invoice Distribution Identifier
113115 , p_source_75 IN NUMBER
113116 --Business Flow Prepayment Invoice Identifier
113117 , p_source_76 IN NUMBER
113118 --Upgrade Encumbrance Credit Account Class
113119 , p_source_77 IN VARCHAR2
113120 --Payables Encumbrance Upgrade Credit Account
113121 , p_source_78 IN NUMBER
113122 --Payables Encumbrance Upgrade Credit Amount
113123 , p_source_79 IN NUMBER
113124 --Invoice Currency Code
113125 , p_source_80 IN VARCHAR2
113126 --Payables Encumbrance Upgrade Credit Base Amount
113127 , p_source_81 IN NUMBER
113128 --Upgrade Encumbrance Debit Account Class
113129 , p_source_82 IN VARCHAR2
113130 --Payables Encumbrance Upgrade Debit Account
113131 , p_source_83 IN NUMBER
113132 --Payables Encumbrance Upgrade Debit Amount
113133 , p_source_84 IN NUMBER
113134 --Payables Encumbrance Upgrade Debit Base Amount
113135 , p_source_85 IN NUMBER
113136 --Payables Encumbrance Upgrade Option
113137 , p_source_86 IN VARCHAR2
113138 --Prepayment Distribution Amount
113139 , p_source_87 IN NUMBER
113140 --Deferred Accounting End Date
113141 , p_source_90 IN DATE
113142 --Deferred Accounting Option
113143 , p_source_91 IN VARCHAR2
113144 --Deferred Accounting Start Date
113145 , p_source_92 IN DATE
113146 --Invoice Supplier Identifier
113147 , p_source_93 IN NUMBER
113148 --Invoice Supplier Site Identifier
113149 , p_source_94 IN NUMBER
113150 --Identifier of the Prepayment Application Reversed
113151 , p_source_95 IN NUMBER
113152 --Payables Upgrade Credit Encumbrance Type Identifier
113153 , p_source_96 IN NUMBER
113154 --Payables Upgrade Debit Encumbrance Type Identifier
113155 , p_source_97 IN NUMBER
113156 --Prepayment Payment Currency Code
113157 , p_source_98 IN VARCHAR2
113158 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
113159 , p_source_99 IN NUMBER
113160 --Accrue on Receipt Option
113161 , p_source_100 IN VARCHAR2
113162 , p_source_100_meaning IN VARCHAR2
113163 --Prepayment Payment Exchange Date
113164 , p_source_121 IN DATE
113165 --Prepayment Payment Exchange Rate
113166 , p_source_122 IN NUMBER
113167 --Prepayment Payment Exchange Rate Type
113168 , p_source_123 IN VARCHAR2
113169 )
113170 IS
113171
113172 l_component_type VARCHAR2(80);
113173 l_component_code VARCHAR2(30);
113174 l_component_type_code VARCHAR2(1);
113175 l_component_appl_id INTEGER;
113176 l_amb_context_code VARCHAR2(30);
113177 l_entity_code VARCHAR2(30);
113178 l_event_class_code VARCHAR2(30);
113179 l_ae_header_id NUMBER;
113180 l_event_type_code VARCHAR2(30);
113181 l_line_definition_code VARCHAR2(30);
113182 l_line_definition_owner_code VARCHAR2(1);
113183 --
113184 -- adr variables
113185 l_segment VARCHAR2(30);
113186 l_ccid NUMBER;
113187 l_adr_transaction_coa_id NUMBER;
113188 l_adr_accounting_coa_id NUMBER;
113189 l_adr_flexfield_segment_code VARCHAR2(30);
113190 l_adr_flex_value_set_id NUMBER;
113191 l_adr_value_type_code VARCHAR2(30);
113192 l_adr_value_combination_id NUMBER;
113193 l_adr_value_segment_code VARCHAR2(30);
113194
113195 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
113196 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
113197 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
113198 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
113199
113203 l_acc_rev_flag VARCHAR2(1);
113200 -- 4262811 Variables ------------------------------------------------------------------------------------------
113201 l_entered_amt_idx NUMBER;
113202 l_accted_amt_idx NUMBER;
113204 l_accrual_line_num NUMBER;
113205 l_tmp_amt NUMBER;
113206 l_acc_rev_natural_side_code VARCHAR2(1);
113207
113208 l_num_entries NUMBER;
113209 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
113210 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
113211 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
113212 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
113213 l_recog_line_1 NUMBER;
113214 l_recog_line_2 NUMBER;
113215
113216 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
113217 l_bflow_applied_to_amt NUMBER; -- 5132302
113218 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
113219
113220 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113221
113222 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
113223 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
113224
113225 ---------------------------------------------------------------------------------------------------------------
113226
113227
113228 --
113229 -- bulk performance
113230 --
113231 l_balance_type_code VARCHAR2(1);
113232 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
113233 l_log_module VARCHAR2(240);
113234
113235 --
113236 -- Upgrade strategy
113237 --
113238 l_actual_upg_option VARCHAR2(1);
113239 l_enc_upg_option VARCHAR2(1);
113240
113241 --
113242 BEGIN
113243 --
113244 IF g_log_enabled THEN
113245 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_197';
113246 END IF;
113247 --
113248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113249
113250 trace
113251 (p_msg => 'BEGIN of AcctLineType_197'
113252 ,p_level => C_LEVEL_PROCEDURE
113253 ,p_module => l_log_module);
113254
113255 END IF;
113256 --
113257 l_component_type := 'AMB_JLT';
113258 l_component_code := 'AP_TERV_PREPAY_PAY_RATE';
113259 l_component_type_code := 'S';
113260 l_component_appl_id := 200;
113261 l_amb_context_code := 'DEFAULT';
113262 l_entity_code := 'AP_INVOICES';
113263 l_event_class_code := 'PREPAYMENT APPLICATIONS';
113264 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
113265 l_line_definition_owner_code := 'S';
113266 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
113267 --
113268 l_balance_type_code := 'A';
113269 l_segment := NULL;
113270 l_ccid := NULL;
113271 l_adr_transaction_coa_id := NULL;
113272 l_adr_accounting_coa_id := NULL;
113273 l_adr_flexfield_segment_code := NULL;
113274 l_adr_flex_value_set_id := NULL;
113275 l_adr_value_type_code := NULL;
113276 l_adr_value_combination_id := NULL;
113277 l_adr_value_segment_code := NULL;
113278
113279 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
113280 l_bflow_class_code := ''; -- 4219869 Business Flow
113281 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
113282 l_budgetary_control_flag := 'N';
113283
113284 l_bflow_applied_to_amt_idx := NULL; -- 5132302
113285 l_bflow_applied_to_amt := NULL; -- 5132302
113286 l_entered_amt_idx := NULL; -- 4262811
113287 l_accted_amt_idx := NULL; -- 4262811
113288 l_acc_rev_flag := NULL; -- 4262811
113289 l_accrual_line_num := NULL; -- 4262811
113290 l_tmp_amt := NULL; -- 4262811
113291 --
113292 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
113293 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
113294 return;
113295 END IF;
113296
113297 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113298 l_balance_type_code <> 'B' THEN
113299 IF NVL(p_source_38,'
113300 ') <> 'CLEAR_CLEAR' AND
113301 (NVL(p_source_67,'
113302 ') = 'PREPAY APPL' OR
113303 NVL(p_source_67,'
113304 ') = 'PREPAY APPL NONREC TAX' OR
113305 NVL(p_source_67,'
113306 ') = 'PREPAY APPL REC TAX') AND
113307 NVL(p_source_68,'
113308 ') = 'TERV' AND
113309 NVL(p_source_100,'
113310 ') = 'Y'
113311 THEN
113312
113313 --
113314 XLA_AE_LINES_PKG.SetNewLine;
113315
113316 p_balance_type_code := l_balance_type_code;
113317 -- set the flag so later we will know whether the gain loss line needs to be created
113318
113319 IF(l_balance_type_code = 'A' ) THEN
113320 p_actual_flag :='G';
113321 END IF;
113322
113323 --
113324 -- bulk performance
113325 --
113326 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113327 p_header_num => 0); -- 4262811
113328 --
113329 -- set accounting line options
113330 --
113334 , p_gl_transfer_mode_code => 'S'
113331 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113332 p_natural_side_code => 'C'
113333 , p_gain_or_loss_flag => 'Y'
113335 , p_acct_entry_type_code => 'A'
113336 , p_switch_side_flag => 'Y'
113337 , p_merge_duplicate_code => 'A'
113338 );
113339 --
113340 l_acc_rev_natural_side_code := 'D'; -- 4262811
113341 --
113342 --
113343 -- set accounting line type info
113344 --
113345 xla_ae_lines_pkg.SetAcctLineType
113346 (p_component_type => l_component_type
113347 ,p_event_type_code => l_event_type_code
113348 ,p_line_definition_owner_code => l_line_definition_owner_code
113349 ,p_line_definition_code => l_line_definition_code
113350 ,p_accounting_line_code => l_component_code
113351 ,p_accounting_line_type_code => l_component_type_code
113352 ,p_accounting_line_appl_id => l_component_appl_id
113353 ,p_amb_context_code => l_amb_context_code
113354 ,p_entity_code => l_entity_code
113355 ,p_event_class_code => l_event_class_code);
113356 --
113357 -- set accounting class
113358 --
113359 xla_ae_lines_pkg.SetAcctClass(
113360 p_accounting_class_code => 'TERV'
113361 , p_ae_header_id => l_ae_header_id
113362 );
113363
113364 --
113365 -- set rounding class
113366 --
113367 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113368 'TERV';
113369
113370 --
113371 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113372 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113373 --
113374 -- bulk performance
113375 --
113376 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113377
113378 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113379 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113380
113381 -- 4955764
113382 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113383 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113384
113385 -- 4458381 Public Sector Enh
113386
113387 --
113388 -- set accounting attributes for the line type
113389 --
113390 l_entered_amt_idx := 25;
113391 l_accted_amt_idx := 30;
113392 l_bflow_applied_to_amt_idx := NULL; -- 5132302
113393 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113394 l_rec_acct_attrs.array_char_value(1) := p_source_40;
113395 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113396 l_rec_acct_attrs.array_num_value(2) :=
113397 xla_ae_sources_pkg.GetSystemSourceNum(
113398 p_source_code => 'XLA_EVENT_APPL_ID'
113399 , p_source_type_code => 'Y'
113400 , p_source_application_id => 602
113401 );
113402 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113403 l_rec_acct_attrs.array_char_value(3) := p_source_48;
113404 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113405 l_rec_acct_attrs.array_char_value(4) :=
113406 xla_ae_sources_pkg.GetSystemSourceChar(
113407 p_source_code => 'XLA_ENTITY_CODE'
113408 , p_source_type_code => 'Y'
113409 , p_source_application_id => 602
113410 );
113411 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113412 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
113413 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113414 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
113415 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
113416 l_rec_acct_attrs.array_num_value(7) := p_source_42;
113417 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113418 l_rec_acct_attrs.array_char_value(8) := p_source_73;
113419 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
113420 l_rec_acct_attrs.array_char_value(9) := p_source_74;
113421 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
113422 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
113423 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113424 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
113425 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
113426 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
113427 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
113428 l_rec_acct_attrs.array_char_value(13) := p_source_48;
113429 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
113430 l_rec_acct_attrs.array_char_value(14) := p_source_77;
113431 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
113432 l_rec_acct_attrs.array_num_value(15) := p_source_78;
113433 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
113434 l_rec_acct_attrs.array_num_value(16) := p_source_79;
113435 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
113436 l_rec_acct_attrs.array_char_value(17) := p_source_80;
113437 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
113441 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
113438 l_rec_acct_attrs.array_num_value(18) := p_source_81;
113439 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
113440 l_rec_acct_attrs.array_char_value(19) := p_source_82;
113442 l_rec_acct_attrs.array_num_value(20) := p_source_83;
113443 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
113444 l_rec_acct_attrs.array_num_value(21) := p_source_84;
113445 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
113446 l_rec_acct_attrs.array_char_value(22) := p_source_80;
113447 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
113448 l_rec_acct_attrs.array_num_value(23) := p_source_85;
113449 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
113450 l_rec_acct_attrs.array_char_value(24) := p_source_86;
113451 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
113452 l_rec_acct_attrs.array_num_value(25) := p_source_87;
113453 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
113454 l_rec_acct_attrs.array_char_value(26) := p_source_98;
113455 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
113456 l_rec_acct_attrs.array_date_value(27) := p_source_121;
113457 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
113458 l_rec_acct_attrs.array_num_value(28) := p_source_122;
113459 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
113460 l_rec_acct_attrs.array_char_value(29) := p_source_123;
113461 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
113462 l_rec_acct_attrs.array_num_value(30) := p_source_99;
113463 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
113464 l_rec_acct_attrs.array_date_value(31) := p_source_90;
113465 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
113466 l_rec_acct_attrs.array_char_value(32) := p_source_91;
113467 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
113468 l_rec_acct_attrs.array_date_value(33) := p_source_92;
113469 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
113470 l_rec_acct_attrs.array_char_value(34) := p_source_53;
113471 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
113472 l_rec_acct_attrs.array_num_value(35) := p_source_93;
113473 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
113474 l_rec_acct_attrs.array_num_value(36) := p_source_94;
113475 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
113476 l_rec_acct_attrs.array_char_value(37) := p_source_56;
113477 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
113478 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
113479 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
113480 l_rec_acct_attrs.array_char_value(39) := p_source_48;
113481 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
113482 l_rec_acct_attrs.array_num_value(40) := p_source_58;
113483 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
113484 l_rec_acct_attrs.array_num_value(41) := p_source_66;
113485 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
113486 l_rec_acct_attrs.array_num_value(42) := p_source_59;
113487 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
113488 l_rec_acct_attrs.array_num_value(43) := p_source_96;
113489 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
113490 l_rec_acct_attrs.array_num_value(44) := p_source_97;
113491
113492 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113493 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113494
113495 ---------------------------------------------------------------------------------------------------------------
113496 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113497 ---------------------------------------------------------------------------------------------------------------
113498 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113499
113500 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113501 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113502
113503 IF xla_accounting_cache_pkg.GetValueChar
113504 (p_source_code => 'LEDGER_CATEGORY_CODE'
113505 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113506 AND l_bflow_method_code = 'PRIOR_ENTRY'
113507 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113508 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113509 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113510 )
113511 THEN
113512 xla_ae_lines_pkg.BflowUpgEntry
113513 (p_business_method_code => l_bflow_method_code
113514 ,p_business_class_code => l_bflow_class_code
113515 ,p_balance_type => l_balance_type_code);
113516 ELSE
113517 NULL;
113518 -- No business flow processing for business flow method of NONE.
113519 END IF;
113520
113521 --
113522 -- call analytical criteria
113523 --
113524
113525 --
113526 -- call description
113527 --
113528 -- No description or it is inherited.
113529 --
113533 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113530 -- call ADRs
113531 -- Bug 4922099
113532 --
113534 (NVL(l_actual_upg_option, 'N') = 'O') OR
113535 (NVL(l_enc_upg_option, 'N') = 'O')
113536 )
113537 THEN
113538 NULL;
113539 --
113540 --
113541
113542 l_ccid := AcctDerRule_23(
113543 p_application_id => p_application_id
113544 , p_ae_header_id => l_ae_header_id
113545 , p_source_4 => p_source_4
113546 , p_source_4_meaning => p_source_4_meaning
113547 , p_source_5 => p_source_5
113548 , p_source_6 => p_source_6
113549 , p_source_7 => p_source_7
113550 , p_source_7_meaning => p_source_7_meaning
113551 , p_source_8 => p_source_8
113552 , p_source_17 => p_source_17
113553 , p_source_30 => p_source_30
113554 , p_source_30_meaning => p_source_30_meaning
113555 , x_transaction_coa_id => l_adr_transaction_coa_id
113556 , x_accounting_coa_id => l_adr_accounting_coa_id
113557 , x_value_type_code => l_adr_value_type_code
113558 , p_side => 'NA'
113559 );
113560
113561 xla_ae_lines_pkg.set_ccid(
113562 p_code_combination_id => l_ccid
113563 , p_value_type_code => l_adr_value_type_code
113564 , p_transaction_coa_id => l_adr_transaction_coa_id
113565 , p_accounting_coa_id => l_adr_accounting_coa_id
113566 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
113567 , p_adr_type_code => 'S'
113568 , p_component_type => l_component_type
113569 , p_component_code => l_component_code
113570 , p_component_type_code => l_component_type_code
113571 , p_component_appl_id => l_component_appl_id
113572 , p_amb_context_code => l_amb_context_code
113573 , p_side => 'NA'
113574 );
113575
113576
113577 l_segment := AcctDerRule_3(
113578 p_application_id => p_application_id
113579 , p_ae_header_id => l_ae_header_id
113580 , p_source_4 => p_source_4
113581 , p_source_4_meaning => p_source_4_meaning
113582 , p_source_5 => p_source_5
113583 , p_source_6 => p_source_6
113584 , p_source_7 => p_source_7
113585 , p_source_7_meaning => p_source_7_meaning
113586 , p_source_8 => p_source_8
113587 , x_transaction_coa_id => l_adr_transaction_coa_id
113588 , x_accounting_coa_id => l_adr_accounting_coa_id
113589 , x_flexfield_segment_code => l_adr_flexfield_segment_code
113590 , x_flex_value_set_id => l_adr_flex_value_set_id
113591 , x_value_type_code => l_adr_value_type_code
113592 , x_value_combination_id => l_adr_value_combination_id
113593 , x_value_segment_code => l_adr_value_segment_code
113594 , p_side => 'NA'
113595 , p_override_seg_flag => 'Y'
113596 );
113597
113598 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
113599
113600 xla_ae_lines_pkg.set_segment(
113601 p_to_segment_code => 'GL_ACCOUNT'
113602 , p_segment_value => l_segment
113603 , p_from_segment_code => l_adr_value_segment_code
113604 , p_from_combination_id => l_adr_value_combination_id
113605 , p_value_type_code => l_adr_value_type_code
113606 , p_transaction_coa_id => l_adr_transaction_coa_id
113607 , p_accounting_coa_id => l_adr_accounting_coa_id
113608 , p_flexfield_segment_code => l_adr_flexfield_segment_code
113609 , p_flex_value_set_id => l_adr_flex_value_set_id
113610 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
113611 , p_adr_type_code => 'S'
113612 , p_component_type => l_component_type
113613 , p_component_code => l_component_code
113614 , p_component_type_code => l_component_type_code
113615 , p_component_appl_id => l_component_appl_id
113616 , p_amb_context_code => l_amb_context_code
113617 , p_entity_code => 'AP_INVOICES'
113618 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
113619 , p_side => 'NA'
113620 );
113621
113622 END IF;
113623
113624 l_segment := AcctDerRule_15(
113625 p_application_id => p_application_id
113626 , p_ae_header_id => l_ae_header_id
113627 , p_source_4 => p_source_4
113628 , p_source_4_meaning => p_source_4_meaning
113629 , p_source_7 => p_source_7
113630 , p_source_7_meaning => p_source_7_meaning
113631 , p_source_17 => p_source_17
113632 , x_transaction_coa_id => l_adr_transaction_coa_id
113633 , x_accounting_coa_id => l_adr_accounting_coa_id
113634 , x_flexfield_segment_code => l_adr_flexfield_segment_code
113635 , x_flex_value_set_id => l_adr_flex_value_set_id
113636 , x_value_type_code => l_adr_value_type_code
113637 , x_value_combination_id => l_adr_value_combination_id
113638 , x_value_segment_code => l_adr_value_segment_code
113639 , p_side => 'NA'
113640 , p_override_seg_flag => 'Y'
113641 );
113642
113643 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
113644
113645 xla_ae_lines_pkg.set_segment(
113646 p_to_segment_code => 'GL_BALANCING'
113647 , p_segment_value => l_segment
113651 , p_transaction_coa_id => l_adr_transaction_coa_id
113648 , p_from_segment_code => l_adr_value_segment_code
113649 , p_from_combination_id => l_adr_value_combination_id
113650 , p_value_type_code => l_adr_value_type_code
113652 , p_accounting_coa_id => l_adr_accounting_coa_id
113653 , p_flexfield_segment_code => l_adr_flexfield_segment_code
113654 , p_flex_value_set_id => l_adr_flex_value_set_id
113655 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
113656 , p_adr_type_code => 'S'
113657 , p_component_type => l_component_type
113658 , p_component_code => l_component_code
113659 , p_component_type_code => l_component_type_code
113660 , p_component_appl_id => l_component_appl_id
113661 , p_amb_context_code => l_amb_context_code
113662 , p_entity_code => 'AP_INVOICES'
113663 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
113664 , p_side => 'NA'
113665 );
113666
113667 END IF;
113668
113669 --
113670 --
113671 END IF;
113672 --
113673 -- Bug 4922099
113674 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113675 (NVL(l_enc_upg_option, 'N') = 'O')
113676 ) AND
113677 (l_bflow_method_code = 'PRIOR_ENTRY')
113678 )
113679 THEN
113680 IF
113681 --
113682 1 = 2
113683 --
113684 THEN
113685 xla_accounting_err_pkg.build_message
113686 (p_appli_s_name => 'XLA'
113687 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113688 ,p_token_1 => 'LINE_NUMBER'
113689 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
113690 ,p_token_2 => 'LINE_TYPE_NAME'
113691 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
113692 l_component_type
113693 ,l_component_code
113694 ,l_component_type_code
113695 ,l_component_appl_id
113696 ,l_amb_context_code
113697 ,l_entity_code
113698 ,l_event_class_code
113699 )
113700 ,p_token_3 => 'OWNER'
113701 ,p_value_3 => xla_lookups_pkg.get_meaning(
113702 p_lookup_type => 'XLA_OWNER_TYPE'
113703 ,p_lookup_code => l_component_type_code
113704 )
113705 ,p_token_4 => 'PRODUCT_NAME'
113706 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113707 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113708 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113709 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113710 ,p_ae_header_id => NULL
113711 );
113712
113713 IF (C_LEVEL_ERROR>= g_log_level) THEN
113714 trace
113715 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113716 ,p_level => C_LEVEL_ERROR
113717 ,p_module => l_log_module);
113718 END IF;
113719 END IF;
113720 END IF;
113721 --
113722 --
113723 ------------------------------------------------------------------------------------------------
113724 -- 4219869 Business Flow
113725 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113726 -- Prior Entry. Currently, the following code is always generated.
113727 ------------------------------------------------------------------------------------------------
113728 XLA_AE_LINES_PKG.ValidateCurrentLine;
113729
113730 ------------------------------------------------------------------------------------
113731 -- 4219869 Business Flow
113732 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113733 ------------------------------------------------------------------------------------
113734 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113735
113736 ----------------------------------------------------------------------------------
113737 -- 4219869 Business Flow
113738 -- Update journal entry status -- Need to generate this within IF <condition>
113739 ----------------------------------------------------------------------------------
113740 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113741 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113745 -------------------------------------------------------------------------------------------
113742 ,p_balance_type_code => l_balance_type_code
113743 );
113744
113746 -- 4262811 - Generate the Accrual Reversal lines
113747 -------------------------------------------------------------------------------------------
113748 BEGIN
113749 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113750 (g_array_event(p_event_id).array_value_num('header_index'));
113751 IF l_acc_rev_flag IS NULL THEN
113752 l_acc_rev_flag := 'N';
113753 END IF;
113754 EXCEPTION
113755 WHEN OTHERS THEN
113756 l_acc_rev_flag := 'N';
113757 END;
113758 --
113759 IF (l_acc_rev_flag = 'Y') THEN
113760
113761 -- 4645092 ------------------------------------------------------------------------------
113762 -- To allow MPA report to determine if it should generate report process
113763 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113764 ------------------------------------------------------------------------------------------
113765
113766 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113767 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113768 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
113769 -- call ADRs
113770 -- Bug 4922099
113771 --
113772 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113773 (NVL(l_actual_upg_option, 'N') = 'O') OR
113774 (NVL(l_enc_upg_option, 'N') = 'O')
113775 )
113776 THEN
113777 NULL;
113778 --
113779 --
113780
113781 l_ccid := AcctDerRule_23(
113782 p_application_id => p_application_id
113783 , p_ae_header_id => l_ae_header_id
113784 , p_source_4 => p_source_4
113785 , p_source_4_meaning => p_source_4_meaning
113786 , p_source_5 => p_source_5
113787 , p_source_6 => p_source_6
113788 , p_source_7 => p_source_7
113789 , p_source_7_meaning => p_source_7_meaning
113790 , p_source_8 => p_source_8
113791 , p_source_17 => p_source_17
113792 , p_source_30 => p_source_30
113793 , p_source_30_meaning => p_source_30_meaning
113794 , x_transaction_coa_id => l_adr_transaction_coa_id
113795 , x_accounting_coa_id => l_adr_accounting_coa_id
113796 , x_value_type_code => l_adr_value_type_code
113797 , p_side => 'NA'
113798 );
113799
113800 xla_ae_lines_pkg.set_ccid(
113801 p_code_combination_id => l_ccid
113802 , p_value_type_code => l_adr_value_type_code
113803 , p_transaction_coa_id => l_adr_transaction_coa_id
113804 , p_accounting_coa_id => l_adr_accounting_coa_id
113805 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
113806 , p_adr_type_code => 'S'
113807 , p_component_type => l_component_type
113808 , p_component_code => l_component_code
113809 , p_component_type_code => l_component_type_code
113810 , p_component_appl_id => l_component_appl_id
113811 , p_amb_context_code => l_amb_context_code
113812 , p_side => 'NA'
113813 );
113814
113815
113816 l_segment := AcctDerRule_3(
113817 p_application_id => p_application_id
113818 , p_ae_header_id => l_ae_header_id
113819 , p_source_4 => p_source_4
113820 , p_source_4_meaning => p_source_4_meaning
113821 , p_source_5 => p_source_5
113822 , p_source_6 => p_source_6
113823 , p_source_7 => p_source_7
113824 , p_source_7_meaning => p_source_7_meaning
113825 , p_source_8 => p_source_8
113826 , x_transaction_coa_id => l_adr_transaction_coa_id
113827 , x_accounting_coa_id => l_adr_accounting_coa_id
113828 , x_flexfield_segment_code => l_adr_flexfield_segment_code
113829 , x_flex_value_set_id => l_adr_flex_value_set_id
113830 , x_value_type_code => l_adr_value_type_code
113831 , x_value_combination_id => l_adr_value_combination_id
113832 , x_value_segment_code => l_adr_value_segment_code
113833 , p_side => 'NA'
113834 , p_override_seg_flag => 'Y'
113835 );
113836
113837 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
113838
113839 xla_ae_lines_pkg.set_segment(
113840 p_to_segment_code => 'GL_ACCOUNT'
113841 , p_segment_value => l_segment
113842 , p_from_segment_code => l_adr_value_segment_code
113843 , p_from_combination_id => l_adr_value_combination_id
113844 , p_value_type_code => l_adr_value_type_code
113845 , p_transaction_coa_id => l_adr_transaction_coa_id
113846 , p_accounting_coa_id => l_adr_accounting_coa_id
113847 , p_flexfield_segment_code => l_adr_flexfield_segment_code
113848 , p_flex_value_set_id => l_adr_flex_value_set_id
113849 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
113850 , p_adr_type_code => 'S'
113851 , p_component_type => l_component_type
113852 , p_component_code => l_component_code
113853 , p_component_type_code => l_component_type_code
113854 , p_component_appl_id => l_component_appl_id
113855 , p_amb_context_code => l_amb_context_code
113856 , p_entity_code => 'AP_INVOICES'
113860
113857 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
113858 , p_side => 'NA'
113859 );
113861 END IF;
113862
113863 l_segment := AcctDerRule_15(
113864 p_application_id => p_application_id
113865 , p_ae_header_id => l_ae_header_id
113866 , p_source_4 => p_source_4
113867 , p_source_4_meaning => p_source_4_meaning
113868 , p_source_7 => p_source_7
113869 , p_source_7_meaning => p_source_7_meaning
113870 , p_source_17 => p_source_17
113871 , x_transaction_coa_id => l_adr_transaction_coa_id
113872 , x_accounting_coa_id => l_adr_accounting_coa_id
113873 , x_flexfield_segment_code => l_adr_flexfield_segment_code
113874 , x_flex_value_set_id => l_adr_flex_value_set_id
113875 , x_value_type_code => l_adr_value_type_code
113876 , x_value_combination_id => l_adr_value_combination_id
113877 , x_value_segment_code => l_adr_value_segment_code
113878 , p_side => 'NA'
113879 , p_override_seg_flag => 'Y'
113880 );
113881
113882 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
113883
113884 xla_ae_lines_pkg.set_segment(
113885 p_to_segment_code => 'GL_BALANCING'
113886 , p_segment_value => l_segment
113887 , p_from_segment_code => l_adr_value_segment_code
113888 , p_from_combination_id => l_adr_value_combination_id
113889 , p_value_type_code => l_adr_value_type_code
113890 , p_transaction_coa_id => l_adr_transaction_coa_id
113891 , p_accounting_coa_id => l_adr_accounting_coa_id
113892 , p_flexfield_segment_code => l_adr_flexfield_segment_code
113893 , p_flex_value_set_id => l_adr_flex_value_set_id
113894 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
113895 , p_adr_type_code => 'S'
113896 , p_component_type => l_component_type
113897 , p_component_code => l_component_code
113898 , p_component_type_code => l_component_type_code
113899 , p_component_appl_id => l_component_appl_id
113900 , p_amb_context_code => l_amb_context_code
113901 , p_entity_code => 'AP_INVOICES'
113902 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
113903 , p_side => 'NA'
113904 );
113905
113906 END IF;
113907
113908 --
113909 --
113910 END IF;
113911
113912 --
113913 -- Update the line information that should be overwritten
113914 --
113915 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113916 p_header_num => 1);
113917 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
113918
113919 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113920
113921 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
113922 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113923 END IF;
113924
113925 --
113926 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113927 --
113928 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113929 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
113930 ELSE
113931 ---------------------------------------------------------------------------------------------------
113932 -- 4262811a Switch Sign
113933 ---------------------------------------------------------------------------------------------------
113934 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
113935 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113936 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113937 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113938 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113939 -- 5132302
113940 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113941 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113942
113943 END IF;
113944
113945 -- 4955764
113946 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113947 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113948
113949
113950 XLA_AE_LINES_PKG.ValidateCurrentLine;
113951 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113952
113953 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113954 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113955 ,p_balance_type_code => l_balance_type_code);
113956
113957 END IF;
113958
113959 -----------------------------------------------------------------------------------------
113960 -- 4262811 Multiperiod Accounting
113961 -----------------------------------------------------------------------------------------
113965 END IF;
113962 -- No MPA option is assigned.
113963
113964
113966 END IF;
113967 --
113968
113969 --
113970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113971 trace
113972 (p_msg => 'END of AcctLineType_197'
113973 ,p_level => C_LEVEL_PROCEDURE
113974 ,p_module => l_log_module);
113975 END IF;
113976 --
113977 EXCEPTION
113978 WHEN xla_exceptions_pkg.application_exception THEN
113979 RAISE;
113980 WHEN OTHERS THEN
113981 xla_exceptions_pkg.raise_message
113982 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_197');
113983 END AcctLineType_197;
113984 --
113985
113986 ---------------------------------------
113987 --
113988 -- PRIVATE FUNCTION
113989 -- AcctLineType_198
113990 --
113991 ---------------------------------------
113992 PROCEDURE AcctLineType_198 (
113993 p_application_id IN NUMBER
113994 ,p_event_id IN NUMBER
113995 ,p_calculate_acctd_flag IN VARCHAR2
113996 ,p_calculate_g_l_flag IN VARCHAR2
113997 ,p_actual_flag IN OUT VARCHAR2
113998 ,p_balance_type_code OUT VARCHAR2
113999 ,p_gain_or_loss_ref OUT VARCHAR2
114000
114001 --Recipient Invoice Distribution Account
114002 , p_source_36 IN NUMBER
114003 --When to Account for Payment Option
114004 , p_source_38 IN VARCHAR2
114005 --Accounting Reversal Indicator
114006 , p_source_40 IN VARCHAR2
114007 --Business Flow Accounts Payable Application Identifier
114008 , p_source_42 IN NUMBER
114009 --Distribution Link Type
114010 , p_source_48 IN VARCHAR2
114011 --Override Accounted Amount Indicator
114012 , p_source_53 IN VARCHAR2
114013 , p_source_53_meaning IN VARCHAR2
114014 --Third Party Type
114015 , p_source_56 IN VARCHAR2
114016 --Invoice Distribution Tax Line Identifier
114017 , p_source_58 IN NUMBER
114018 --Invoice Distribution Summary Tax Line Identifier
114019 , p_source_59 IN NUMBER
114020 --Invoice Distribution Tax Distribution Identifier from Tax
114021 , p_source_66 IN NUMBER
114022 --Prepayment Distribution Type
114023 , p_source_67 IN VARCHAR2
114024 --Recipient Invoice Distribution Type
114025 , p_source_68 IN VARCHAR2
114026 , p_source_68_meaning IN VARCHAR2
114027 --Prepayment Application Distribution Identifier
114028 , p_source_71 IN NUMBER
114029 --Invoice Identifier
114030 , p_source_72 IN NUMBER
114031 --Business Flow Prepayment Invoice Distribution Type
114032 , p_source_73 IN VARCHAR2
114033 --Business Flow Prepayment Invoice Entity Code
114034 , p_source_74 IN VARCHAR2
114035 --Business Flow Prepayment Invoice Distribution Identifier
114036 , p_source_75 IN NUMBER
114037 --Business Flow Prepayment Invoice Identifier
114038 , p_source_76 IN NUMBER
114039 --Upgrade Encumbrance Credit Account Class
114040 , p_source_77 IN VARCHAR2
114041 --Payables Encumbrance Upgrade Credit Account
114042 , p_source_78 IN NUMBER
114043 --Payables Encumbrance Upgrade Credit Amount
114044 , p_source_79 IN NUMBER
114045 --Invoice Currency Code
114046 , p_source_80 IN VARCHAR2
114047 --Payables Encumbrance Upgrade Credit Base Amount
114048 , p_source_81 IN NUMBER
114049 --Upgrade Encumbrance Debit Account Class
114050 , p_source_82 IN VARCHAR2
114051 --Payables Encumbrance Upgrade Debit Account
114052 , p_source_83 IN NUMBER
114053 --Payables Encumbrance Upgrade Debit Amount
114054 , p_source_84 IN NUMBER
114055 --Payables Encumbrance Upgrade Debit Base Amount
114056 , p_source_85 IN NUMBER
114057 --Payables Encumbrance Upgrade Option
114058 , p_source_86 IN VARCHAR2
114059 --Prepayment Distribution Amount
114060 , p_source_87 IN NUMBER
114061 --Prepayment Clearing Currency Code
114062 , p_source_88 IN VARCHAR2
114063 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
114064 , p_source_89 IN NUMBER
114065 --Deferred Accounting End Date
114066 , p_source_90 IN DATE
114067 --Deferred Accounting Option
114068 , p_source_91 IN VARCHAR2
114069 --Deferred Accounting Start Date
114070 , p_source_92 IN DATE
114071 --Invoice Supplier Identifier
114072 , p_source_93 IN NUMBER
114073 --Invoice Supplier Site Identifier
114074 , p_source_94 IN NUMBER
114075 --Identifier of the Prepayment Application Reversed
114076 , p_source_95 IN NUMBER
114077 --Payables Upgrade Credit Encumbrance Type Identifier
114078 , p_source_96 IN NUMBER
114079 --Payables Upgrade Debit Encumbrance Type Identifier
114080 , p_source_97 IN NUMBER
114081 --Accrue on Receipt Option
114082 , p_source_100 IN VARCHAR2
114083 , p_source_100_meaning IN VARCHAR2
114084 --Prepayment Clearing Exchange Date
114085 , p_source_118 IN DATE
114086 --Prepayment Clearing Exchange Rate
114087 , p_source_119 IN NUMBER
114088 --Prepayment Clearing Exchange Rate Type
114089 , p_source_120 IN VARCHAR2
114090 )
114091 IS
114092
114093 l_component_type VARCHAR2(80);
114094 l_component_code VARCHAR2(30);
114095 l_component_type_code VARCHAR2(1);
114096 l_component_appl_id INTEGER;
114097 l_amb_context_code VARCHAR2(30);
114101 l_event_type_code VARCHAR2(30);
114098 l_entity_code VARCHAR2(30);
114099 l_event_class_code VARCHAR2(30);
114100 l_ae_header_id NUMBER;
114102 l_line_definition_code VARCHAR2(30);
114103 l_line_definition_owner_code VARCHAR2(1);
114104 --
114105 -- adr variables
114106 l_segment VARCHAR2(30);
114107 l_ccid NUMBER;
114108 l_adr_transaction_coa_id NUMBER;
114109 l_adr_accounting_coa_id NUMBER;
114110 l_adr_flexfield_segment_code VARCHAR2(30);
114111 l_adr_flex_value_set_id NUMBER;
114112 l_adr_value_type_code VARCHAR2(30);
114113 l_adr_value_combination_id NUMBER;
114114 l_adr_value_segment_code VARCHAR2(30);
114115
114116 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
114117 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
114118 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
114119 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
114120
114121 -- 4262811 Variables ------------------------------------------------------------------------------------------
114122 l_entered_amt_idx NUMBER;
114123 l_accted_amt_idx NUMBER;
114124 l_acc_rev_flag VARCHAR2(1);
114125 l_accrual_line_num NUMBER;
114126 l_tmp_amt NUMBER;
114127 l_acc_rev_natural_side_code VARCHAR2(1);
114128
114129 l_num_entries NUMBER;
114130 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
114131 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
114132 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
114133 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
114134 l_recog_line_1 NUMBER;
114135 l_recog_line_2 NUMBER;
114136
114137 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
114138 l_bflow_applied_to_amt NUMBER; -- 5132302
114139 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
114140
114141 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114142
114143 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
114144 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
114145
114146 ---------------------------------------------------------------------------------------------------------------
114147
114148
114149 --
114150 -- bulk performance
114151 --
114152 l_balance_type_code VARCHAR2(1);
114153 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
114154 l_log_module VARCHAR2(240);
114155
114156 --
114157 -- Upgrade strategy
114158 --
114159 l_actual_upg_option VARCHAR2(1);
114160 l_enc_upg_option VARCHAR2(1);
114161
114162 --
114163 BEGIN
114164 --
114165 IF g_log_enabled THEN
114166 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_198';
114167 END IF;
114168 --
114169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114170
114171 trace
114172 (p_msg => 'BEGIN of AcctLineType_198'
114173 ,p_level => C_LEVEL_PROCEDURE
114174 ,p_module => l_log_module);
114175
114176 END IF;
114177 --
114178 l_component_type := 'AMB_JLT';
114179 l_component_code := 'AP_TIPV_PREPAY_CLR_RATE_APP';
114180 l_component_type_code := 'S';
114181 l_component_appl_id := 200;
114182 l_amb_context_code := 'DEFAULT';
114183 l_entity_code := 'AP_INVOICES';
114184 l_event_class_code := 'PREPAYMENT APPLICATIONS';
114185 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
114186 l_line_definition_owner_code := 'S';
114187 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
114188 --
114189 l_balance_type_code := 'A';
114190 l_segment := NULL;
114191 l_ccid := NULL;
114192 l_adr_transaction_coa_id := NULL;
114193 l_adr_accounting_coa_id := NULL;
114194 l_adr_flexfield_segment_code := NULL;
114195 l_adr_flex_value_set_id := NULL;
114196 l_adr_value_type_code := NULL;
114197 l_adr_value_combination_id := NULL;
114198 l_adr_value_segment_code := NULL;
114199
114200 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
114201 l_bflow_class_code := ''; -- 4219869 Business Flow
114202 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
114203 l_budgetary_control_flag := 'N';
114204
114205 l_bflow_applied_to_amt_idx := NULL; -- 5132302
114206 l_bflow_applied_to_amt := NULL; -- 5132302
114207 l_entered_amt_idx := NULL; -- 4262811
114208 l_accted_amt_idx := NULL; -- 4262811
114209 l_acc_rev_flag := NULL; -- 4262811
114210 l_accrual_line_num := NULL; -- 4262811
114211 l_tmp_amt := NULL; -- 4262811
114212 --
114213
114214 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114215 l_balance_type_code <> 'B' THEN
114216 IF NVL(p_source_38,'
114217 ') = 'CLEAR_CLEAR' AND
114218 (NVL(p_source_67,'
114219 ') = 'PREPAY APPL' OR
114220 NVL(p_source_67,'
114221 ') = 'PREPAY APPL NONREC TAX' OR
114222 NVL(p_source_67,'
114223 ') = 'PREPAY APPL REC TAX') AND
114224 NVL(p_source_68,'
114225 ') = 'TIPV' AND
114229
114226 NVL(p_source_100,'
114227 ') = 'Y'
114228 THEN
114230 --
114231 XLA_AE_LINES_PKG.SetNewLine;
114232
114233 p_balance_type_code := l_balance_type_code;
114234 -- set the flag so later we will know whether the gain loss line needs to be created
114235
114236 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114237 p_actual_flag :='A';
114238 END IF;
114239
114240 --
114241 -- bulk performance
114242 --
114243 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114244 p_header_num => 0); -- 4262811
114245 --
114246 -- set accounting line options
114247 --
114248 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114249 p_natural_side_code => 'C'
114250 , p_gain_or_loss_flag => 'N'
114251 , p_gl_transfer_mode_code => 'S'
114252 , p_acct_entry_type_code => 'A'
114253 , p_switch_side_flag => 'Y'
114254 , p_merge_duplicate_code => 'A'
114255 );
114256 --
114257 l_acc_rev_natural_side_code := 'D'; -- 4262811
114258 --
114259 --
114260 -- set accounting line type info
114261 --
114262 xla_ae_lines_pkg.SetAcctLineType
114263 (p_component_type => l_component_type
114264 ,p_event_type_code => l_event_type_code
114265 ,p_line_definition_owner_code => l_line_definition_owner_code
114266 ,p_line_definition_code => l_line_definition_code
114267 ,p_accounting_line_code => l_component_code
114268 ,p_accounting_line_type_code => l_component_type_code
114269 ,p_accounting_line_appl_id => l_component_appl_id
114270 ,p_amb_context_code => l_amb_context_code
114271 ,p_entity_code => l_entity_code
114272 ,p_event_class_code => l_event_class_code);
114273 --
114274 -- set accounting class
114275 --
114276 xla_ae_lines_pkg.SetAcctClass(
114277 p_accounting_class_code => 'TIPV'
114278 , p_ae_header_id => l_ae_header_id
114279 );
114280
114281 --
114282 -- set rounding class
114283 --
114284 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114285 'TIPV';
114286
114287 --
114288 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114289 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114290 --
114291 -- bulk performance
114292 --
114293 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114294
114295 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114296 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114297
114298 -- 4955764
114299 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114300 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114301
114302 -- 4458381 Public Sector Enh
114303
114304 --
114305 -- set accounting attributes for the line type
114306 --
114307 l_entered_amt_idx := 25;
114308 l_accted_amt_idx := 30;
114309 l_bflow_applied_to_amt_idx := NULL; -- 5132302
114310 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114311 l_rec_acct_attrs.array_char_value(1) := p_source_40;
114312 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114313 l_rec_acct_attrs.array_num_value(2) :=
114314 xla_ae_sources_pkg.GetSystemSourceNum(
114315 p_source_code => 'XLA_EVENT_APPL_ID'
114316 , p_source_type_code => 'Y'
114317 , p_source_application_id => 602
114318 );
114319 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114320 l_rec_acct_attrs.array_char_value(3) := p_source_48;
114321 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114322 l_rec_acct_attrs.array_char_value(4) :=
114323 xla_ae_sources_pkg.GetSystemSourceChar(
114324 p_source_code => 'XLA_ENTITY_CODE'
114325 , p_source_type_code => 'Y'
114326 , p_source_application_id => 602
114327 );
114328 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114329 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
114330 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114331 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
114332 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
114333 l_rec_acct_attrs.array_num_value(7) := p_source_42;
114334 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114335 l_rec_acct_attrs.array_char_value(8) := p_source_73;
114336 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
114337 l_rec_acct_attrs.array_char_value(9) := p_source_74;
114338 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
114339 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
114340 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114341 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
114342 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
114343 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
114344 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
114348 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
114345 l_rec_acct_attrs.array_char_value(13) := p_source_48;
114346 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
114347 l_rec_acct_attrs.array_char_value(14) := p_source_77;
114349 l_rec_acct_attrs.array_num_value(15) := p_source_78;
114350 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
114351 l_rec_acct_attrs.array_num_value(16) := p_source_79;
114352 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
114353 l_rec_acct_attrs.array_char_value(17) := p_source_80;
114354 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
114355 l_rec_acct_attrs.array_num_value(18) := p_source_81;
114356 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
114357 l_rec_acct_attrs.array_char_value(19) := p_source_82;
114358 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
114359 l_rec_acct_attrs.array_num_value(20) := p_source_83;
114360 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
114361 l_rec_acct_attrs.array_num_value(21) := p_source_84;
114362 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
114363 l_rec_acct_attrs.array_char_value(22) := p_source_80;
114364 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
114365 l_rec_acct_attrs.array_num_value(23) := p_source_85;
114366 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
114367 l_rec_acct_attrs.array_char_value(24) := p_source_86;
114368 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
114369 l_rec_acct_attrs.array_num_value(25) := p_source_87;
114370 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
114371 l_rec_acct_attrs.array_char_value(26) := p_source_88;
114372 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
114373 l_rec_acct_attrs.array_date_value(27) := p_source_118;
114374 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
114375 l_rec_acct_attrs.array_num_value(28) := p_source_119;
114376 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
114377 l_rec_acct_attrs.array_char_value(29) := p_source_120;
114378 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
114379 l_rec_acct_attrs.array_num_value(30) := p_source_89;
114380 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
114381 l_rec_acct_attrs.array_date_value(31) := p_source_90;
114382 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
114383 l_rec_acct_attrs.array_char_value(32) := p_source_91;
114384 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
114385 l_rec_acct_attrs.array_date_value(33) := p_source_92;
114386 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
114387 l_rec_acct_attrs.array_char_value(34) := p_source_53;
114388 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
114389 l_rec_acct_attrs.array_num_value(35) := p_source_93;
114390 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
114391 l_rec_acct_attrs.array_num_value(36) := p_source_94;
114392 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
114393 l_rec_acct_attrs.array_char_value(37) := p_source_56;
114394 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
114395 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
114396 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
114397 l_rec_acct_attrs.array_char_value(39) := p_source_48;
114398 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
114399 l_rec_acct_attrs.array_num_value(40) := p_source_58;
114400 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
114401 l_rec_acct_attrs.array_num_value(41) := p_source_66;
114402 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
114403 l_rec_acct_attrs.array_num_value(42) := p_source_59;
114404 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
114405 l_rec_acct_attrs.array_num_value(43) := p_source_96;
114406 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
114407 l_rec_acct_attrs.array_num_value(44) := p_source_97;
114408
114409 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114410 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114411
114412 ---------------------------------------------------------------------------------------------------------------
114413 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114414 ---------------------------------------------------------------------------------------------------------------
114415 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114416
114417 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114418 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114419
114420 IF xla_accounting_cache_pkg.GetValueChar
114421 (p_source_code => 'LEDGER_CATEGORY_CODE'
114422 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114423 AND l_bflow_method_code = 'PRIOR_ENTRY'
114424 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114425 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114426 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114427 )
114428 THEN
114429 xla_ae_lines_pkg.BflowUpgEntry
114430 (p_business_method_code => l_bflow_method_code
114434 NULL;
114431 ,p_business_class_code => l_bflow_class_code
114432 ,p_balance_type => l_balance_type_code);
114433 ELSE
114435 -- No business flow processing for business flow method of NONE.
114436 END IF;
114437
114438 --
114439 -- call analytical criteria
114440 --
114441
114442 --
114443 -- call description
114444 --
114445 -- No description or it is inherited.
114446 --
114447 -- call ADRs
114448 -- Bug 4922099
114449 --
114450 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114451 (NVL(l_actual_upg_option, 'N') = 'O') OR
114452 (NVL(l_enc_upg_option, 'N') = 'O')
114453 )
114454 THEN
114455 NULL;
114456 --
114457 --
114458
114459 l_ccid := AcctDerRule_33(
114460 p_application_id => p_application_id
114461 , p_ae_header_id => l_ae_header_id
114462 , p_source_36 => p_source_36
114463 , x_transaction_coa_id => l_adr_transaction_coa_id
114464 , x_accounting_coa_id => l_adr_accounting_coa_id
114465 , x_value_type_code => l_adr_value_type_code
114466 , p_side => 'NA'
114467 );
114468
114469 xla_ae_lines_pkg.set_ccid(
114470 p_code_combination_id => l_ccid
114471 , p_value_type_code => l_adr_value_type_code
114472 , p_transaction_coa_id => l_adr_transaction_coa_id
114473 , p_accounting_coa_id => l_adr_accounting_coa_id
114474 , p_adr_code => 'AP_RECP_INV_DIST'
114475 , p_adr_type_code => 'S'
114476 , p_component_type => l_component_type
114477 , p_component_code => l_component_code
114478 , p_component_type_code => l_component_type_code
114479 , p_component_appl_id => l_component_appl_id
114480 , p_amb_context_code => l_amb_context_code
114481 , p_side => 'NA'
114482 );
114483
114484
114485 --
114486 --
114487 END IF;
114488 --
114489 -- Bug 4922099
114490 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114491 (NVL(l_enc_upg_option, 'N') = 'O')
114492 ) AND
114493 (l_bflow_method_code = 'PRIOR_ENTRY')
114494 )
114495 THEN
114496 IF
114497 --
114498 1 = 2
114499 --
114500 THEN
114501 xla_accounting_err_pkg.build_message
114502 (p_appli_s_name => 'XLA'
114503 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114504 ,p_token_1 => 'LINE_NUMBER'
114505 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
114506 ,p_token_2 => 'LINE_TYPE_NAME'
114507 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
114508 l_component_type
114509 ,l_component_code
114510 ,l_component_type_code
114511 ,l_component_appl_id
114512 ,l_amb_context_code
114513 ,l_entity_code
114514 ,l_event_class_code
114515 )
114516 ,p_token_3 => 'OWNER'
114517 ,p_value_3 => xla_lookups_pkg.get_meaning(
114518 p_lookup_type => 'XLA_OWNER_TYPE'
114519 ,p_lookup_code => l_component_type_code
114520 )
114521 ,p_token_4 => 'PRODUCT_NAME'
114522 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
114523 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
114524 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
114525 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
114526 ,p_ae_header_id => NULL
114527 );
114528
114529 IF (C_LEVEL_ERROR>= g_log_level) THEN
114530 trace
114531 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114532 ,p_level => C_LEVEL_ERROR
114533 ,p_module => l_log_module);
114534 END IF;
114535 END IF;
114536 END IF;
114537 --
114538 --
114539 ------------------------------------------------------------------------------------------------
114540 -- 4219869 Business Flow
114544 XLA_AE_LINES_PKG.ValidateCurrentLine;
114541 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
114542 -- Prior Entry. Currently, the following code is always generated.
114543 ------------------------------------------------------------------------------------------------
114545
114546 ------------------------------------------------------------------------------------
114547 -- 4219869 Business Flow
114548 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
114549 ------------------------------------------------------------------------------------
114550 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114551
114552 ----------------------------------------------------------------------------------
114553 -- 4219869 Business Flow
114554 -- Update journal entry status -- Need to generate this within IF <condition>
114555 ----------------------------------------------------------------------------------
114556 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114557 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
114558 ,p_balance_type_code => l_balance_type_code
114559 );
114560
114561 -------------------------------------------------------------------------------------------
114562 -- 4262811 - Generate the Accrual Reversal lines
114563 -------------------------------------------------------------------------------------------
114564 BEGIN
114565 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
114566 (g_array_event(p_event_id).array_value_num('header_index'));
114567 IF l_acc_rev_flag IS NULL THEN
114568 l_acc_rev_flag := 'N';
114569 END IF;
114570 EXCEPTION
114571 WHEN OTHERS THEN
114572 l_acc_rev_flag := 'N';
114573 END;
114574 --
114575 IF (l_acc_rev_flag = 'Y') THEN
114576
114577 -- 4645092 ------------------------------------------------------------------------------
114578 -- To allow MPA report to determine if it should generate report process
114579 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
114580 ------------------------------------------------------------------------------------------
114581
114582 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
114583 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
114584 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
114585 -- call ADRs
114586 -- Bug 4922099
114587 --
114588 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114589 (NVL(l_actual_upg_option, 'N') = 'O') OR
114590 (NVL(l_enc_upg_option, 'N') = 'O')
114591 )
114592 THEN
114593 NULL;
114594 --
114595 --
114596
114597 l_ccid := AcctDerRule_33(
114598 p_application_id => p_application_id
114599 , p_ae_header_id => l_ae_header_id
114600 , p_source_36 => p_source_36
114601 , x_transaction_coa_id => l_adr_transaction_coa_id
114602 , x_accounting_coa_id => l_adr_accounting_coa_id
114603 , x_value_type_code => l_adr_value_type_code
114604 , p_side => 'NA'
114605 );
114606
114607 xla_ae_lines_pkg.set_ccid(
114608 p_code_combination_id => l_ccid
114609 , p_value_type_code => l_adr_value_type_code
114610 , p_transaction_coa_id => l_adr_transaction_coa_id
114611 , p_accounting_coa_id => l_adr_accounting_coa_id
114612 , p_adr_code => 'AP_RECP_INV_DIST'
114613 , p_adr_type_code => 'S'
114614 , p_component_type => l_component_type
114615 , p_component_code => l_component_code
114616 , p_component_type_code => l_component_type_code
114617 , p_component_appl_id => l_component_appl_id
114618 , p_amb_context_code => l_amb_context_code
114619 , p_side => 'NA'
114620 );
114621
114622
114623 --
114624 --
114625 END IF;
114626
114627 --
114628 -- Update the line information that should be overwritten
114629 --
114630 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114631 p_header_num => 1);
114632 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
114633
114634 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114635
114636 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
114637 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114638 END IF;
114639
114640 --
114641 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114642 --
114643 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114644 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
114645 ELSE
114646 ---------------------------------------------------------------------------------------------------
114647 -- 4262811a Switch Sign
114648 ---------------------------------------------------------------------------------------------------
114652 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114649 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
114650 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114651 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114653 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114654 -- 5132302
114655 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114656 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114657
114658 END IF;
114659
114660 -- 4955764
114661 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114662 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114663
114664
114665 XLA_AE_LINES_PKG.ValidateCurrentLine;
114666 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114667
114668 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114669 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114670 ,p_balance_type_code => l_balance_type_code);
114671
114672 END IF;
114673
114674 -----------------------------------------------------------------------------------------
114675 -- 4262811 Multiperiod Accounting
114676 -----------------------------------------------------------------------------------------
114677 -- No MPA option is assigned.
114678
114679
114680 END IF;
114681 END IF;
114682 --
114683
114684 --
114685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114686 trace
114687 (p_msg => 'END of AcctLineType_198'
114688 ,p_level => C_LEVEL_PROCEDURE
114689 ,p_module => l_log_module);
114690 END IF;
114691 --
114692 EXCEPTION
114693 WHEN xla_exceptions_pkg.application_exception THEN
114694 RAISE;
114695 WHEN OTHERS THEN
114696 xla_exceptions_pkg.raise_message
114697 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_198');
114698 END AcctLineType_198;
114699 --
114700
114701 ---------------------------------------
114702 --
114703 -- PRIVATE FUNCTION
114704 -- AcctLineType_199
114705 --
114706 ---------------------------------------
114707 PROCEDURE AcctLineType_199 (
114708 p_application_id IN NUMBER
114709 ,p_event_id IN NUMBER
114710 ,p_calculate_acctd_flag IN VARCHAR2
114711 ,p_calculate_g_l_flag IN VARCHAR2
114712 ,p_actual_flag IN OUT VARCHAR2
114713 ,p_balance_type_code OUT VARCHAR2
114714 ,p_gain_or_loss_ref OUT VARCHAR2
114715
114716 --Recipient Invoice Distribution Account
114717 , p_source_36 IN NUMBER
114718 --When to Account for Payment Option
114719 , p_source_38 IN VARCHAR2
114720 --Accounting Reversal Indicator
114721 , p_source_40 IN VARCHAR2
114722 --Business Flow Accounts Payable Application Identifier
114723 , p_source_42 IN NUMBER
114724 --Distribution Link Type
114725 , p_source_48 IN VARCHAR2
114726 --Override Accounted Amount Indicator
114727 , p_source_53 IN VARCHAR2
114728 , p_source_53_meaning IN VARCHAR2
114729 --Third Party Type
114730 , p_source_56 IN VARCHAR2
114731 --Invoice Distribution Tax Line Identifier
114732 , p_source_58 IN NUMBER
114733 --Invoice Distribution Summary Tax Line Identifier
114734 , p_source_59 IN NUMBER
114735 --Invoice Distribution Tax Distribution Identifier from Tax
114736 , p_source_66 IN NUMBER
114737 --Prepayment Distribution Type
114738 , p_source_67 IN VARCHAR2
114739 --Recipient Invoice Distribution Type
114740 , p_source_68 IN VARCHAR2
114741 , p_source_68_meaning IN VARCHAR2
114742 --Prepayment Application Distribution Identifier
114743 , p_source_71 IN NUMBER
114744 --Invoice Identifier
114745 , p_source_72 IN NUMBER
114746 --Business Flow Prepayment Invoice Distribution Type
114747 , p_source_73 IN VARCHAR2
114748 --Business Flow Prepayment Invoice Entity Code
114749 , p_source_74 IN VARCHAR2
114750 --Business Flow Prepayment Invoice Distribution Identifier
114751 , p_source_75 IN NUMBER
114752 --Business Flow Prepayment Invoice Identifier
114753 , p_source_76 IN NUMBER
114754 --Upgrade Encumbrance Credit Account Class
114755 , p_source_77 IN VARCHAR2
114756 --Payables Encumbrance Upgrade Credit Account
114757 , p_source_78 IN NUMBER
114758 --Payables Encumbrance Upgrade Credit Amount
114759 , p_source_79 IN NUMBER
114760 --Invoice Currency Code
114761 , p_source_80 IN VARCHAR2
114762 --Payables Encumbrance Upgrade Credit Base Amount
114763 , p_source_81 IN NUMBER
114764 --Upgrade Encumbrance Debit Account Class
114765 , p_source_82 IN VARCHAR2
114766 --Payables Encumbrance Upgrade Debit Account
114767 , p_source_83 IN NUMBER
114768 --Payables Encumbrance Upgrade Debit Amount
114769 , p_source_84 IN NUMBER
114770 --Payables Encumbrance Upgrade Debit Base Amount
114771 , p_source_85 IN NUMBER
114772 --Payables Encumbrance Upgrade Option
114773 , p_source_86 IN VARCHAR2
114774 --Prepayment Distribution Amount
114775 , p_source_87 IN NUMBER
114776 --Deferred Accounting End Date
114780 --Deferred Accounting Start Date
114777 , p_source_90 IN DATE
114778 --Deferred Accounting Option
114779 , p_source_91 IN VARCHAR2
114781 , p_source_92 IN DATE
114782 --Invoice Supplier Identifier
114783 , p_source_93 IN NUMBER
114784 --Invoice Supplier Site Identifier
114785 , p_source_94 IN NUMBER
114786 --Identifier of the Prepayment Application Reversed
114787 , p_source_95 IN NUMBER
114788 --Payables Upgrade Credit Encumbrance Type Identifier
114789 , p_source_96 IN NUMBER
114790 --Payables Upgrade Debit Encumbrance Type Identifier
114791 , p_source_97 IN NUMBER
114792 --Prepayment Payment Currency Code
114793 , p_source_98 IN VARCHAR2
114794 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
114795 , p_source_99 IN NUMBER
114796 --Accrue on Receipt Option
114797 , p_source_100 IN VARCHAR2
114798 , p_source_100_meaning IN VARCHAR2
114799 --Prepayment Payment Exchange Date
114800 , p_source_121 IN DATE
114801 --Prepayment Payment Exchange Rate
114802 , p_source_122 IN NUMBER
114803 --Prepayment Payment Exchange Rate Type
114804 , p_source_123 IN VARCHAR2
114805 )
114806 IS
114807
114808 l_component_type VARCHAR2(80);
114809 l_component_code VARCHAR2(30);
114810 l_component_type_code VARCHAR2(1);
114811 l_component_appl_id INTEGER;
114812 l_amb_context_code VARCHAR2(30);
114813 l_entity_code VARCHAR2(30);
114814 l_event_class_code VARCHAR2(30);
114815 l_ae_header_id NUMBER;
114816 l_event_type_code VARCHAR2(30);
114817 l_line_definition_code VARCHAR2(30);
114818 l_line_definition_owner_code VARCHAR2(1);
114819 --
114820 -- adr variables
114821 l_segment VARCHAR2(30);
114822 l_ccid NUMBER;
114823 l_adr_transaction_coa_id NUMBER;
114824 l_adr_accounting_coa_id NUMBER;
114825 l_adr_flexfield_segment_code VARCHAR2(30);
114826 l_adr_flex_value_set_id NUMBER;
114827 l_adr_value_type_code VARCHAR2(30);
114828 l_adr_value_combination_id NUMBER;
114829 l_adr_value_segment_code VARCHAR2(30);
114830
114831 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
114832 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
114833 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
114834 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
114835
114836 -- 4262811 Variables ------------------------------------------------------------------------------------------
114837 l_entered_amt_idx NUMBER;
114838 l_accted_amt_idx NUMBER;
114839 l_acc_rev_flag VARCHAR2(1);
114840 l_accrual_line_num NUMBER;
114841 l_tmp_amt NUMBER;
114842 l_acc_rev_natural_side_code VARCHAR2(1);
114843
114844 l_num_entries NUMBER;
114845 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
114846 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
114847 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
114848 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
114849 l_recog_line_1 NUMBER;
114850 l_recog_line_2 NUMBER;
114851
114852 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
114853 l_bflow_applied_to_amt NUMBER; -- 5132302
114854 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
114855
114856 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114857
114858 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
114859 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
114860
114861 ---------------------------------------------------------------------------------------------------------------
114862
114863
114864 --
114865 -- bulk performance
114866 --
114867 l_balance_type_code VARCHAR2(1);
114868 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
114869 l_log_module VARCHAR2(240);
114870
114871 --
114872 -- Upgrade strategy
114873 --
114874 l_actual_upg_option VARCHAR2(1);
114875 l_enc_upg_option VARCHAR2(1);
114876
114877 --
114878 BEGIN
114879 --
114880 IF g_log_enabled THEN
114881 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_199';
114882 END IF;
114883 --
114884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114885
114886 trace
114887 (p_msg => 'BEGIN of AcctLineType_199'
114888 ,p_level => C_LEVEL_PROCEDURE
114889 ,p_module => l_log_module);
114890
114891 END IF;
114892 --
114893 l_component_type := 'AMB_JLT';
114894 l_component_code := 'AP_TIPV_PREPAY_PAY_RATE_APP';
114895 l_component_type_code := 'S';
114896 l_component_appl_id := 200;
114897 l_amb_context_code := 'DEFAULT';
114898 l_entity_code := 'AP_INVOICES';
114899 l_event_class_code := 'PREPAYMENT APPLICATIONS';
114900 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
114901 l_line_definition_owner_code := 'S';
114902 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
114903 --
114904 l_balance_type_code := 'A';
114905 l_segment := NULL;
114909 l_adr_flexfield_segment_code := NULL;
114906 l_ccid := NULL;
114907 l_adr_transaction_coa_id := NULL;
114908 l_adr_accounting_coa_id := NULL;
114910 l_adr_flex_value_set_id := NULL;
114911 l_adr_value_type_code := NULL;
114912 l_adr_value_combination_id := NULL;
114913 l_adr_value_segment_code := NULL;
114914
114915 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
114916 l_bflow_class_code := ''; -- 4219869 Business Flow
114917 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
114918 l_budgetary_control_flag := 'N';
114919
114920 l_bflow_applied_to_amt_idx := NULL; -- 5132302
114921 l_bflow_applied_to_amt := NULL; -- 5132302
114922 l_entered_amt_idx := NULL; -- 4262811
114923 l_accted_amt_idx := NULL; -- 4262811
114924 l_acc_rev_flag := NULL; -- 4262811
114925 l_accrual_line_num := NULL; -- 4262811
114926 l_tmp_amt := NULL; -- 4262811
114927 --
114928
114929 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114930 l_balance_type_code <> 'B' THEN
114931 IF NVL(p_source_38,'
114932 ') <> 'CLEAR_CLEAR' AND
114933 (NVL(p_source_67,'
114934 ') = 'PREPAY APPL' OR
114935 NVL(p_source_67,'
114936 ') = 'PREPAY APPL NONREC TAX' OR
114937 NVL(p_source_67,'
114938 ') = 'PREPAY APPL REC TAX') AND
114939 NVL(p_source_68,'
114940 ') = 'TIPV' AND
114941 NVL(p_source_100,'
114942 ') = 'Y'
114943 THEN
114944
114945 --
114946 XLA_AE_LINES_PKG.SetNewLine;
114947
114948 p_balance_type_code := l_balance_type_code;
114949 -- set the flag so later we will know whether the gain loss line needs to be created
114950
114951 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114952 p_actual_flag :='A';
114953 END IF;
114954
114955 --
114956 -- bulk performance
114957 --
114958 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114959 p_header_num => 0); -- 4262811
114960 --
114961 -- set accounting line options
114962 --
114963 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114964 p_natural_side_code => 'C'
114965 , p_gain_or_loss_flag => 'N'
114966 , p_gl_transfer_mode_code => 'S'
114967 , p_acct_entry_type_code => 'A'
114968 , p_switch_side_flag => 'Y'
114969 , p_merge_duplicate_code => 'A'
114970 );
114971 --
114972 l_acc_rev_natural_side_code := 'D'; -- 4262811
114973 --
114974 --
114975 -- set accounting line type info
114976 --
114977 xla_ae_lines_pkg.SetAcctLineType
114978 (p_component_type => l_component_type
114979 ,p_event_type_code => l_event_type_code
114980 ,p_line_definition_owner_code => l_line_definition_owner_code
114981 ,p_line_definition_code => l_line_definition_code
114982 ,p_accounting_line_code => l_component_code
114983 ,p_accounting_line_type_code => l_component_type_code
114984 ,p_accounting_line_appl_id => l_component_appl_id
114985 ,p_amb_context_code => l_amb_context_code
114986 ,p_entity_code => l_entity_code
114987 ,p_event_class_code => l_event_class_code);
114988 --
114989 -- set accounting class
114990 --
114991 xla_ae_lines_pkg.SetAcctClass(
114992 p_accounting_class_code => 'TIPV'
114993 , p_ae_header_id => l_ae_header_id
114994 );
114995
114996 --
114997 -- set rounding class
114998 --
114999 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115000 'TIPV';
115001
115002 --
115003 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115004 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115005 --
115006 -- bulk performance
115007 --
115008 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115009
115010 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115011 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115012
115013 -- 4955764
115014 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115015 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115016
115017 -- 4458381 Public Sector Enh
115018
115019 --
115020 -- set accounting attributes for the line type
115021 --
115022 l_entered_amt_idx := 25;
115023 l_accted_amt_idx := 30;
115024 l_bflow_applied_to_amt_idx := NULL; -- 5132302
115025 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115026 l_rec_acct_attrs.array_char_value(1) := p_source_40;
115027 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115028 l_rec_acct_attrs.array_num_value(2) :=
115029 xla_ae_sources_pkg.GetSystemSourceNum(
115030 p_source_code => 'XLA_EVENT_APPL_ID'
115031 , p_source_type_code => 'Y'
115032 , p_source_application_id => 602
115033 );
115034 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115038 xla_ae_sources_pkg.GetSystemSourceChar(
115035 l_rec_acct_attrs.array_char_value(3) := p_source_48;
115036 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115037 l_rec_acct_attrs.array_char_value(4) :=
115039 p_source_code => 'XLA_ENTITY_CODE'
115040 , p_source_type_code => 'Y'
115041 , p_source_application_id => 602
115042 );
115043 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115044 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
115045 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115046 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
115047 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
115048 l_rec_acct_attrs.array_num_value(7) := p_source_42;
115049 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115050 l_rec_acct_attrs.array_char_value(8) := p_source_73;
115051 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
115052 l_rec_acct_attrs.array_char_value(9) := p_source_74;
115053 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
115054 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
115055 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115056 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
115057 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
115058 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
115059 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
115060 l_rec_acct_attrs.array_char_value(13) := p_source_48;
115061 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
115062 l_rec_acct_attrs.array_char_value(14) := p_source_77;
115063 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
115064 l_rec_acct_attrs.array_num_value(15) := p_source_78;
115065 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
115066 l_rec_acct_attrs.array_num_value(16) := p_source_79;
115067 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
115068 l_rec_acct_attrs.array_char_value(17) := p_source_80;
115069 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
115070 l_rec_acct_attrs.array_num_value(18) := p_source_81;
115071 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
115072 l_rec_acct_attrs.array_char_value(19) := p_source_82;
115073 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
115074 l_rec_acct_attrs.array_num_value(20) := p_source_83;
115075 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
115076 l_rec_acct_attrs.array_num_value(21) := p_source_84;
115077 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
115078 l_rec_acct_attrs.array_char_value(22) := p_source_80;
115079 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
115080 l_rec_acct_attrs.array_num_value(23) := p_source_85;
115081 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
115082 l_rec_acct_attrs.array_char_value(24) := p_source_86;
115083 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
115084 l_rec_acct_attrs.array_num_value(25) := p_source_87;
115085 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
115086 l_rec_acct_attrs.array_char_value(26) := p_source_98;
115087 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
115088 l_rec_acct_attrs.array_date_value(27) := p_source_121;
115089 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
115090 l_rec_acct_attrs.array_num_value(28) := p_source_122;
115091 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
115092 l_rec_acct_attrs.array_char_value(29) := p_source_123;
115093 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
115094 l_rec_acct_attrs.array_num_value(30) := p_source_99;
115095 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
115096 l_rec_acct_attrs.array_date_value(31) := p_source_90;
115097 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
115098 l_rec_acct_attrs.array_char_value(32) := p_source_91;
115099 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
115100 l_rec_acct_attrs.array_date_value(33) := p_source_92;
115101 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
115102 l_rec_acct_attrs.array_char_value(34) := p_source_53;
115103 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
115104 l_rec_acct_attrs.array_num_value(35) := p_source_93;
115105 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
115106 l_rec_acct_attrs.array_num_value(36) := p_source_94;
115107 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
115108 l_rec_acct_attrs.array_char_value(37) := p_source_56;
115109 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
115110 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
115111 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
115112 l_rec_acct_attrs.array_char_value(39) := p_source_48;
115113 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
115114 l_rec_acct_attrs.array_num_value(40) := p_source_58;
115115 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
115116 l_rec_acct_attrs.array_num_value(41) := p_source_66;
115117 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
115118 l_rec_acct_attrs.array_num_value(42) := p_source_59;
115122 l_rec_acct_attrs.array_num_value(44) := p_source_97;
115119 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
115120 l_rec_acct_attrs.array_num_value(43) := p_source_96;
115121 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
115123
115124 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115125 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115126
115127 ---------------------------------------------------------------------------------------------------------------
115128 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115129 ---------------------------------------------------------------------------------------------------------------
115130 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115131
115132 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115133 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115134
115135 IF xla_accounting_cache_pkg.GetValueChar
115136 (p_source_code => 'LEDGER_CATEGORY_CODE'
115137 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115138 AND l_bflow_method_code = 'PRIOR_ENTRY'
115139 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115140 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115141 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115142 )
115143 THEN
115144 xla_ae_lines_pkg.BflowUpgEntry
115145 (p_business_method_code => l_bflow_method_code
115146 ,p_business_class_code => l_bflow_class_code
115147 ,p_balance_type => l_balance_type_code);
115148 ELSE
115149 NULL;
115150 -- No business flow processing for business flow method of NONE.
115151 END IF;
115152
115153 --
115154 -- call analytical criteria
115155 --
115156
115157 --
115158 -- call description
115159 --
115160 -- No description or it is inherited.
115161 --
115162 -- call ADRs
115163 -- Bug 4922099
115164 --
115165 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115166 (NVL(l_actual_upg_option, 'N') = 'O') OR
115167 (NVL(l_enc_upg_option, 'N') = 'O')
115168 )
115169 THEN
115170 NULL;
115171 --
115172 --
115173
115174 l_ccid := AcctDerRule_33(
115175 p_application_id => p_application_id
115176 , p_ae_header_id => l_ae_header_id
115177 , p_source_36 => p_source_36
115178 , x_transaction_coa_id => l_adr_transaction_coa_id
115179 , x_accounting_coa_id => l_adr_accounting_coa_id
115180 , x_value_type_code => l_adr_value_type_code
115181 , p_side => 'NA'
115182 );
115183
115184 xla_ae_lines_pkg.set_ccid(
115185 p_code_combination_id => l_ccid
115186 , p_value_type_code => l_adr_value_type_code
115187 , p_transaction_coa_id => l_adr_transaction_coa_id
115188 , p_accounting_coa_id => l_adr_accounting_coa_id
115189 , p_adr_code => 'AP_RECP_INV_DIST'
115190 , p_adr_type_code => 'S'
115191 , p_component_type => l_component_type
115192 , p_component_code => l_component_code
115193 , p_component_type_code => l_component_type_code
115194 , p_component_appl_id => l_component_appl_id
115195 , p_amb_context_code => l_amb_context_code
115196 , p_side => 'NA'
115197 );
115198
115199
115200 --
115201 --
115202 END IF;
115203 --
115204 -- Bug 4922099
115205 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115206 (NVL(l_enc_upg_option, 'N') = 'O')
115207 ) AND
115208 (l_bflow_method_code = 'PRIOR_ENTRY')
115209 )
115210 THEN
115211 IF
115212 --
115213 1 = 2
115214 --
115215 THEN
115216 xla_accounting_err_pkg.build_message
115217 (p_appli_s_name => 'XLA'
115218 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115219 ,p_token_1 => 'LINE_NUMBER'
115220 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
115221 ,p_token_2 => 'LINE_TYPE_NAME'
115222 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
115223 l_component_type
115224 ,l_component_code
115225 ,l_component_type_code
115226 ,l_component_appl_id
115227 ,l_amb_context_code
115228 ,l_entity_code
115229 ,l_event_class_code
115233 p_lookup_type => 'XLA_OWNER_TYPE'
115230 )
115231 ,p_token_3 => 'OWNER'
115232 ,p_value_3 => xla_lookups_pkg.get_meaning(
115234 ,p_lookup_code => l_component_type_code
115235 )
115236 ,p_token_4 => 'PRODUCT_NAME'
115237 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115238 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115239 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115240 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115241 ,p_ae_header_id => NULL
115242 );
115243
115244 IF (C_LEVEL_ERROR>= g_log_level) THEN
115245 trace
115246 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115247 ,p_level => C_LEVEL_ERROR
115248 ,p_module => l_log_module);
115249 END IF;
115250 END IF;
115251 END IF;
115252 --
115253 --
115254 ------------------------------------------------------------------------------------------------
115255 -- 4219869 Business Flow
115256 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115257 -- Prior Entry. Currently, the following code is always generated.
115258 ------------------------------------------------------------------------------------------------
115259 XLA_AE_LINES_PKG.ValidateCurrentLine;
115260
115261 ------------------------------------------------------------------------------------
115262 -- 4219869 Business Flow
115263 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115264 ------------------------------------------------------------------------------------
115265 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115266
115267 ----------------------------------------------------------------------------------
115268 -- 4219869 Business Flow
115269 -- Update journal entry status -- Need to generate this within IF <condition>
115270 ----------------------------------------------------------------------------------
115271 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115272 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115273 ,p_balance_type_code => l_balance_type_code
115274 );
115275
115276 -------------------------------------------------------------------------------------------
115277 -- 4262811 - Generate the Accrual Reversal lines
115278 -------------------------------------------------------------------------------------------
115279 BEGIN
115280 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115281 (g_array_event(p_event_id).array_value_num('header_index'));
115282 IF l_acc_rev_flag IS NULL THEN
115283 l_acc_rev_flag := 'N';
115284 END IF;
115285 EXCEPTION
115286 WHEN OTHERS THEN
115287 l_acc_rev_flag := 'N';
115288 END;
115289 --
115290 IF (l_acc_rev_flag = 'Y') THEN
115291
115292 -- 4645092 ------------------------------------------------------------------------------
115293 -- To allow MPA report to determine if it should generate report process
115294 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115295 ------------------------------------------------------------------------------------------
115296
115297 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115298 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115299 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
115300 -- call ADRs
115301 -- Bug 4922099
115302 --
115303 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115304 (NVL(l_actual_upg_option, 'N') = 'O') OR
115305 (NVL(l_enc_upg_option, 'N') = 'O')
115306 )
115307 THEN
115308 NULL;
115309 --
115310 --
115311
115312 l_ccid := AcctDerRule_33(
115313 p_application_id => p_application_id
115314 , p_ae_header_id => l_ae_header_id
115315 , p_source_36 => p_source_36
115316 , x_transaction_coa_id => l_adr_transaction_coa_id
115317 , x_accounting_coa_id => l_adr_accounting_coa_id
115318 , x_value_type_code => l_adr_value_type_code
115319 , p_side => 'NA'
115320 );
115321
115322 xla_ae_lines_pkg.set_ccid(
115323 p_code_combination_id => l_ccid
115324 , p_value_type_code => l_adr_value_type_code
115325 , p_transaction_coa_id => l_adr_transaction_coa_id
115326 , p_accounting_coa_id => l_adr_accounting_coa_id
115327 , p_adr_code => 'AP_RECP_INV_DIST'
115328 , p_adr_type_code => 'S'
115329 , p_component_type => l_component_type
115330 , p_component_code => l_component_code
115331 , p_component_type_code => l_component_type_code
115332 , p_component_appl_id => l_component_appl_id
115336
115333 , p_amb_context_code => l_amb_context_code
115334 , p_side => 'NA'
115335 );
115337
115338 --
115339 --
115340 END IF;
115341
115342 --
115343 -- Update the line information that should be overwritten
115344 --
115345 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115346 p_header_num => 1);
115347 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
115348
115349 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115350
115351 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
115352 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115353 END IF;
115354
115355 --
115356 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115357 --
115358 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115359 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
115360 ELSE
115361 ---------------------------------------------------------------------------------------------------
115362 -- 4262811a Switch Sign
115363 ---------------------------------------------------------------------------------------------------
115364 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
115365 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115366 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115367 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115368 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115369 -- 5132302
115370 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115371 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115372
115373 END IF;
115374
115375 -- 4955764
115376 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115377 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115378
115379
115380 XLA_AE_LINES_PKG.ValidateCurrentLine;
115381 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115382
115383 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115384 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115385 ,p_balance_type_code => l_balance_type_code);
115386
115387 END IF;
115388
115389 -----------------------------------------------------------------------------------------
115390 -- 4262811 Multiperiod Accounting
115391 -----------------------------------------------------------------------------------------
115392 -- No MPA option is assigned.
115393
115394
115395 END IF;
115396 END IF;
115397 --
115398
115399 --
115400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115401 trace
115402 (p_msg => 'END of AcctLineType_199'
115403 ,p_level => C_LEVEL_PROCEDURE
115404 ,p_module => l_log_module);
115405 END IF;
115406 --
115407 EXCEPTION
115408 WHEN xla_exceptions_pkg.application_exception THEN
115409 RAISE;
115410 WHEN OTHERS THEN
115411 xla_exceptions_pkg.raise_message
115412 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_199');
115413 END AcctLineType_199;
115414 --
115415
115416 ---------------------------------------
115417 --
115418 -- PRIVATE FUNCTION
115419 -- AcctLineType_200
115420 --
115421 ---------------------------------------
115422 PROCEDURE AcctLineType_200 (
115423 p_application_id IN NUMBER
115424 ,p_event_id IN NUMBER
115425 ,p_calculate_acctd_flag IN VARCHAR2
115426 ,p_calculate_g_l_flag IN VARCHAR2
115427 ,p_actual_flag IN OUT VARCHAR2
115428 ,p_balance_type_code OUT VARCHAR2
115429 ,p_gain_or_loss_ref OUT VARCHAR2
115430
115431 --Recipient Invoice Distribution Account
115432 , p_source_36 IN NUMBER
115433 --When to Account for Payment Option
115434 , p_source_38 IN VARCHAR2
115435 --Accounting Reversal Indicator
115436 , p_source_40 IN VARCHAR2
115437 --Business Flow Accounts Payable Application Identifier
115438 , p_source_42 IN NUMBER
115439 --Distribution Link Type
115440 , p_source_48 IN VARCHAR2
115441 --Override Accounted Amount Indicator
115442 , p_source_53 IN VARCHAR2
115443 , p_source_53_meaning IN VARCHAR2
115444 --Third Party Type
115445 , p_source_56 IN VARCHAR2
115446 --Invoice Distribution Tax Line Identifier
115447 , p_source_58 IN NUMBER
115448 --Invoice Distribution Summary Tax Line Identifier
115449 , p_source_59 IN NUMBER
115450 --Invoice Distribution Tax Distribution Identifier from Tax
115451 , p_source_66 IN NUMBER
115452 --Prepayment Distribution Type
115453 , p_source_67 IN VARCHAR2
115454 --Recipient Invoice Distribution Type
115455 , p_source_68 IN VARCHAR2
115456 , p_source_68_meaning IN VARCHAR2
115457 --Prepayment Application Distribution Identifier
115461 --Business Flow Prepayment Invoice Distribution Type
115458 , p_source_71 IN NUMBER
115459 --Invoice Identifier
115460 , p_source_72 IN NUMBER
115462 , p_source_73 IN VARCHAR2
115463 --Business Flow Prepayment Invoice Entity Code
115464 , p_source_74 IN VARCHAR2
115465 --Business Flow Prepayment Invoice Distribution Identifier
115466 , p_source_75 IN NUMBER
115467 --Business Flow Prepayment Invoice Identifier
115468 , p_source_76 IN NUMBER
115469 --Upgrade Encumbrance Credit Account Class
115470 , p_source_77 IN VARCHAR2
115471 --Payables Encumbrance Upgrade Credit Account
115472 , p_source_78 IN NUMBER
115473 --Payables Encumbrance Upgrade Credit Amount
115474 , p_source_79 IN NUMBER
115475 --Invoice Currency Code
115476 , p_source_80 IN VARCHAR2
115477 --Payables Encumbrance Upgrade Credit Base Amount
115478 , p_source_81 IN NUMBER
115479 --Upgrade Encumbrance Debit Account Class
115480 , p_source_82 IN VARCHAR2
115481 --Payables Encumbrance Upgrade Debit Account
115482 , p_source_83 IN NUMBER
115483 --Payables Encumbrance Upgrade Debit Amount
115484 , p_source_84 IN NUMBER
115485 --Payables Encumbrance Upgrade Debit Base Amount
115486 , p_source_85 IN NUMBER
115487 --Payables Encumbrance Upgrade Option
115488 , p_source_86 IN VARCHAR2
115489 --Prepayment Distribution Amount
115490 , p_source_87 IN NUMBER
115491 --Prepayment Clearing Currency Code
115492 , p_source_88 IN VARCHAR2
115493 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
115494 , p_source_89 IN NUMBER
115495 --Deferred Accounting End Date
115496 , p_source_90 IN DATE
115497 --Deferred Accounting Option
115498 , p_source_91 IN VARCHAR2
115499 --Deferred Accounting Start Date
115500 , p_source_92 IN DATE
115501 --Invoice Supplier Identifier
115502 , p_source_93 IN NUMBER
115503 --Invoice Supplier Site Identifier
115504 , p_source_94 IN NUMBER
115505 --Identifier of the Prepayment Application Reversed
115506 , p_source_95 IN NUMBER
115507 --Payables Upgrade Credit Encumbrance Type Identifier
115508 , p_source_96 IN NUMBER
115509 --Payables Upgrade Debit Encumbrance Type Identifier
115510 , p_source_97 IN NUMBER
115511 --Accrue on Receipt Option
115512 , p_source_100 IN VARCHAR2
115513 , p_source_100_meaning IN VARCHAR2
115514 --Prepayment Clearing Exchange Date
115515 , p_source_118 IN DATE
115516 --Prepayment Clearing Exchange Rate
115517 , p_source_119 IN NUMBER
115518 --Prepayment Clearing Exchange Rate Type
115519 , p_source_120 IN VARCHAR2
115520 )
115521 IS
115522
115523 l_component_type VARCHAR2(80);
115524 l_component_code VARCHAR2(30);
115525 l_component_type_code VARCHAR2(1);
115526 l_component_appl_id INTEGER;
115527 l_amb_context_code VARCHAR2(30);
115528 l_entity_code VARCHAR2(30);
115529 l_event_class_code VARCHAR2(30);
115530 l_ae_header_id NUMBER;
115531 l_event_type_code VARCHAR2(30);
115532 l_line_definition_code VARCHAR2(30);
115533 l_line_definition_owner_code VARCHAR2(1);
115534 --
115535 -- adr variables
115536 l_segment VARCHAR2(30);
115537 l_ccid NUMBER;
115538 l_adr_transaction_coa_id NUMBER;
115539 l_adr_accounting_coa_id NUMBER;
115540 l_adr_flexfield_segment_code VARCHAR2(30);
115541 l_adr_flex_value_set_id NUMBER;
115542 l_adr_value_type_code VARCHAR2(30);
115543 l_adr_value_combination_id NUMBER;
115544 l_adr_value_segment_code VARCHAR2(30);
115545
115546 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
115547 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
115548 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
115549 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
115550
115551 -- 4262811 Variables ------------------------------------------------------------------------------------------
115552 l_entered_amt_idx NUMBER;
115553 l_accted_amt_idx NUMBER;
115554 l_acc_rev_flag VARCHAR2(1);
115555 l_accrual_line_num NUMBER;
115556 l_tmp_amt NUMBER;
115557 l_acc_rev_natural_side_code VARCHAR2(1);
115558
115559 l_num_entries NUMBER;
115560 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
115561 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
115562 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
115563 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
115564 l_recog_line_1 NUMBER;
115565 l_recog_line_2 NUMBER;
115566
115567 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
115568 l_bflow_applied_to_amt NUMBER; -- 5132302
115569 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
115570
115571 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
115572
115573 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
115574 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
115575
115579 --
115576 ---------------------------------------------------------------------------------------------------------------
115577
115578
115580 -- bulk performance
115581 --
115582 l_balance_type_code VARCHAR2(1);
115583 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
115584 l_log_module VARCHAR2(240);
115585
115586 --
115587 -- Upgrade strategy
115588 --
115589 l_actual_upg_option VARCHAR2(1);
115590 l_enc_upg_option VARCHAR2(1);
115591
115592 --
115593 BEGIN
115594 --
115595 IF g_log_enabled THEN
115596 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_200';
115597 END IF;
115598 --
115599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115600
115601 trace
115602 (p_msg => 'BEGIN of AcctLineType_200'
115603 ,p_level => C_LEVEL_PROCEDURE
115604 ,p_module => l_log_module);
115605
115606 END IF;
115607 --
115608 l_component_type := 'AMB_JLT';
115609 l_component_code := 'AP_TRV_PREPAY_CLR_RATE_APP';
115610 l_component_type_code := 'S';
115611 l_component_appl_id := 200;
115612 l_amb_context_code := 'DEFAULT';
115613 l_entity_code := 'AP_INVOICES';
115614 l_event_class_code := 'PREPAYMENT APPLICATIONS';
115615 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
115616 l_line_definition_owner_code := 'S';
115617 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
115618 --
115619 l_balance_type_code := 'A';
115620 l_segment := NULL;
115621 l_ccid := NULL;
115622 l_adr_transaction_coa_id := NULL;
115623 l_adr_accounting_coa_id := NULL;
115624 l_adr_flexfield_segment_code := NULL;
115625 l_adr_flex_value_set_id := NULL;
115626 l_adr_value_type_code := NULL;
115627 l_adr_value_combination_id := NULL;
115628 l_adr_value_segment_code := NULL;
115629
115630 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
115631 l_bflow_class_code := ''; -- 4219869 Business Flow
115632 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
115633 l_budgetary_control_flag := 'N';
115634
115635 l_bflow_applied_to_amt_idx := NULL; -- 5132302
115636 l_bflow_applied_to_amt := NULL; -- 5132302
115637 l_entered_amt_idx := NULL; -- 4262811
115638 l_accted_amt_idx := NULL; -- 4262811
115639 l_acc_rev_flag := NULL; -- 4262811
115640 l_accrual_line_num := NULL; -- 4262811
115641 l_tmp_amt := NULL; -- 4262811
115642 --
115643
115644 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115645 l_balance_type_code <> 'B' THEN
115646 IF NVL(p_source_38,'
115647 ') = 'CLEAR_CLEAR' AND
115648 (NVL(p_source_67,'
115649 ') = 'PREPAY APPL' OR
115650 NVL(p_source_67,'
115651 ') = 'PREPAY APPL REC TAX' OR
115652 NVL(p_source_67,'
115653 ') = 'PREPAY APPL NONREC TAX') AND
115654 NVL(p_source_68,'
115655 ') = 'TRV' AND
115656 NVL(p_source_100,'
115657 ') = 'Y'
115658 THEN
115659
115660 --
115661 XLA_AE_LINES_PKG.SetNewLine;
115662
115663 p_balance_type_code := l_balance_type_code;
115664 -- set the flag so later we will know whether the gain loss line needs to be created
115665
115666 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115667 p_actual_flag :='A';
115668 END IF;
115669
115670 --
115671 -- bulk performance
115672 --
115673 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115674 p_header_num => 0); -- 4262811
115675 --
115676 -- set accounting line options
115677 --
115678 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115679 p_natural_side_code => 'C'
115680 , p_gain_or_loss_flag => 'N'
115681 , p_gl_transfer_mode_code => 'S'
115682 , p_acct_entry_type_code => 'A'
115683 , p_switch_side_flag => 'Y'
115684 , p_merge_duplicate_code => 'A'
115685 );
115686 --
115687 l_acc_rev_natural_side_code := 'D'; -- 4262811
115688 --
115689 --
115690 -- set accounting line type info
115691 --
115692 xla_ae_lines_pkg.SetAcctLineType
115693 (p_component_type => l_component_type
115694 ,p_event_type_code => l_event_type_code
115695 ,p_line_definition_owner_code => l_line_definition_owner_code
115696 ,p_line_definition_code => l_line_definition_code
115697 ,p_accounting_line_code => l_component_code
115698 ,p_accounting_line_type_code => l_component_type_code
115699 ,p_accounting_line_appl_id => l_component_appl_id
115700 ,p_amb_context_code => l_amb_context_code
115701 ,p_entity_code => l_entity_code
115702 ,p_event_class_code => l_event_class_code);
115703 --
115704 -- set accounting class
115705 --
115706 xla_ae_lines_pkg.SetAcctClass(
115707 p_accounting_class_code => 'TRV'
115708 , p_ae_header_id => l_ae_header_id
115709 );
115710
115711 --
115712 -- set rounding class
115713 --
115714 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115718 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115715 'TRV';
115716
115717 --
115719 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115720 --
115721 -- bulk performance
115722 --
115723 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115724
115725 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115726 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115727
115728 -- 4955764
115729 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115730 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115731
115732 -- 4458381 Public Sector Enh
115733
115734 --
115735 -- set accounting attributes for the line type
115736 --
115737 l_entered_amt_idx := 25;
115738 l_accted_amt_idx := 30;
115739 l_bflow_applied_to_amt_idx := NULL; -- 5132302
115740 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115741 l_rec_acct_attrs.array_char_value(1) := p_source_40;
115742 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115743 l_rec_acct_attrs.array_num_value(2) :=
115744 xla_ae_sources_pkg.GetSystemSourceNum(
115745 p_source_code => 'XLA_EVENT_APPL_ID'
115746 , p_source_type_code => 'Y'
115747 , p_source_application_id => 602
115748 );
115749 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115750 l_rec_acct_attrs.array_char_value(3) := p_source_48;
115751 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115752 l_rec_acct_attrs.array_char_value(4) :=
115753 xla_ae_sources_pkg.GetSystemSourceChar(
115754 p_source_code => 'XLA_ENTITY_CODE'
115755 , p_source_type_code => 'Y'
115756 , p_source_application_id => 602
115757 );
115758 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115759 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
115760 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115761 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
115762 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
115763 l_rec_acct_attrs.array_num_value(7) := p_source_42;
115764 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115765 l_rec_acct_attrs.array_char_value(8) := p_source_73;
115766 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
115767 l_rec_acct_attrs.array_char_value(9) := p_source_74;
115768 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
115769 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
115770 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115771 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
115772 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
115773 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
115774 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
115775 l_rec_acct_attrs.array_char_value(13) := p_source_48;
115776 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
115777 l_rec_acct_attrs.array_char_value(14) := p_source_77;
115778 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
115779 l_rec_acct_attrs.array_num_value(15) := p_source_78;
115780 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
115781 l_rec_acct_attrs.array_num_value(16) := p_source_79;
115782 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
115783 l_rec_acct_attrs.array_char_value(17) := p_source_80;
115784 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
115785 l_rec_acct_attrs.array_num_value(18) := p_source_81;
115786 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
115787 l_rec_acct_attrs.array_char_value(19) := p_source_82;
115788 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
115789 l_rec_acct_attrs.array_num_value(20) := p_source_83;
115790 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
115791 l_rec_acct_attrs.array_num_value(21) := p_source_84;
115792 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
115793 l_rec_acct_attrs.array_char_value(22) := p_source_80;
115794 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
115795 l_rec_acct_attrs.array_num_value(23) := p_source_85;
115796 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
115797 l_rec_acct_attrs.array_char_value(24) := p_source_86;
115798 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
115799 l_rec_acct_attrs.array_num_value(25) := p_source_87;
115800 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
115801 l_rec_acct_attrs.array_char_value(26) := p_source_88;
115802 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
115803 l_rec_acct_attrs.array_date_value(27) := p_source_118;
115804 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
115805 l_rec_acct_attrs.array_num_value(28) := p_source_119;
115806 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
115807 l_rec_acct_attrs.array_char_value(29) := p_source_120;
115808 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
115809 l_rec_acct_attrs.array_num_value(30) := p_source_89;
115813 l_rec_acct_attrs.array_char_value(32) := p_source_91;
115810 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
115811 l_rec_acct_attrs.array_date_value(31) := p_source_90;
115812 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
115814 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
115815 l_rec_acct_attrs.array_date_value(33) := p_source_92;
115816 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
115817 l_rec_acct_attrs.array_char_value(34) := p_source_53;
115818 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
115819 l_rec_acct_attrs.array_num_value(35) := p_source_93;
115820 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
115821 l_rec_acct_attrs.array_num_value(36) := p_source_94;
115822 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
115823 l_rec_acct_attrs.array_char_value(37) := p_source_56;
115824 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
115825 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
115826 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
115827 l_rec_acct_attrs.array_char_value(39) := p_source_48;
115828 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
115829 l_rec_acct_attrs.array_num_value(40) := p_source_58;
115830 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
115831 l_rec_acct_attrs.array_num_value(41) := p_source_66;
115832 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
115833 l_rec_acct_attrs.array_num_value(42) := p_source_59;
115834 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
115835 l_rec_acct_attrs.array_num_value(43) := p_source_96;
115836 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
115837 l_rec_acct_attrs.array_num_value(44) := p_source_97;
115838
115839 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115840 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115841
115842 ---------------------------------------------------------------------------------------------------------------
115843 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115844 ---------------------------------------------------------------------------------------------------------------
115845 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115846
115847 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115848 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115849
115850 IF xla_accounting_cache_pkg.GetValueChar
115851 (p_source_code => 'LEDGER_CATEGORY_CODE'
115852 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115853 AND l_bflow_method_code = 'PRIOR_ENTRY'
115854 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115855 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115856 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115857 )
115858 THEN
115859 xla_ae_lines_pkg.BflowUpgEntry
115860 (p_business_method_code => l_bflow_method_code
115861 ,p_business_class_code => l_bflow_class_code
115862 ,p_balance_type => l_balance_type_code);
115863 ELSE
115864 NULL;
115865 -- No business flow processing for business flow method of NONE.
115866 END IF;
115867
115868 --
115869 -- call analytical criteria
115870 --
115871
115872 --
115873 -- call description
115874 --
115875 -- No description or it is inherited.
115876 --
115877 -- call ADRs
115878 -- Bug 4922099
115879 --
115880 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115881 (NVL(l_actual_upg_option, 'N') = 'O') OR
115882 (NVL(l_enc_upg_option, 'N') = 'O')
115883 )
115884 THEN
115885 NULL;
115886 --
115887 --
115888
115889 l_ccid := AcctDerRule_33(
115890 p_application_id => p_application_id
115891 , p_ae_header_id => l_ae_header_id
115892 , p_source_36 => p_source_36
115893 , x_transaction_coa_id => l_adr_transaction_coa_id
115894 , x_accounting_coa_id => l_adr_accounting_coa_id
115895 , x_value_type_code => l_adr_value_type_code
115896 , p_side => 'NA'
115897 );
115898
115899 xla_ae_lines_pkg.set_ccid(
115900 p_code_combination_id => l_ccid
115901 , p_value_type_code => l_adr_value_type_code
115902 , p_transaction_coa_id => l_adr_transaction_coa_id
115903 , p_accounting_coa_id => l_adr_accounting_coa_id
115904 , p_adr_code => 'AP_RECP_INV_DIST'
115905 , p_adr_type_code => 'S'
115906 , p_component_type => l_component_type
115907 , p_component_code => l_component_code
115908 , p_component_type_code => l_component_type_code
115909 , p_component_appl_id => l_component_appl_id
115910 , p_amb_context_code => l_amb_context_code
115911 , p_side => 'NA'
115912 );
115913
115914
115915 --
115916 --
115917 END IF;
115918 --
115919 -- Bug 4922099
115920 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115924 )
115921 (NVL(l_enc_upg_option, 'N') = 'O')
115922 ) AND
115923 (l_bflow_method_code = 'PRIOR_ENTRY')
115925 THEN
115926 IF
115927 --
115928 1 = 2
115929 --
115930 THEN
115931 xla_accounting_err_pkg.build_message
115932 (p_appli_s_name => 'XLA'
115933 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115934 ,p_token_1 => 'LINE_NUMBER'
115935 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
115936 ,p_token_2 => 'LINE_TYPE_NAME'
115937 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
115938 l_component_type
115939 ,l_component_code
115940 ,l_component_type_code
115941 ,l_component_appl_id
115942 ,l_amb_context_code
115943 ,l_entity_code
115944 ,l_event_class_code
115945 )
115946 ,p_token_3 => 'OWNER'
115947 ,p_value_3 => xla_lookups_pkg.get_meaning(
115948 p_lookup_type => 'XLA_OWNER_TYPE'
115949 ,p_lookup_code => l_component_type_code
115950 )
115951 ,p_token_4 => 'PRODUCT_NAME'
115952 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115953 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115954 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115955 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115956 ,p_ae_header_id => NULL
115957 );
115958
115959 IF (C_LEVEL_ERROR>= g_log_level) THEN
115960 trace
115961 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115962 ,p_level => C_LEVEL_ERROR
115963 ,p_module => l_log_module);
115964 END IF;
115965 END IF;
115966 END IF;
115967 --
115968 --
115969 ------------------------------------------------------------------------------------------------
115970 -- 4219869 Business Flow
115971 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115972 -- Prior Entry. Currently, the following code is always generated.
115973 ------------------------------------------------------------------------------------------------
115974 XLA_AE_LINES_PKG.ValidateCurrentLine;
115975
115976 ------------------------------------------------------------------------------------
115977 -- 4219869 Business Flow
115978 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115979 ------------------------------------------------------------------------------------
115980 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115981
115982 ----------------------------------------------------------------------------------
115983 -- 4219869 Business Flow
115984 -- Update journal entry status -- Need to generate this within IF <condition>
115985 ----------------------------------------------------------------------------------
115986 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115987 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115988 ,p_balance_type_code => l_balance_type_code
115989 );
115990
115991 -------------------------------------------------------------------------------------------
115992 -- 4262811 - Generate the Accrual Reversal lines
115993 -------------------------------------------------------------------------------------------
115994 BEGIN
115995 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115996 (g_array_event(p_event_id).array_value_num('header_index'));
115997 IF l_acc_rev_flag IS NULL THEN
115998 l_acc_rev_flag := 'N';
115999 END IF;
116000 EXCEPTION
116001 WHEN OTHERS THEN
116002 l_acc_rev_flag := 'N';
116003 END;
116004 --
116005 IF (l_acc_rev_flag = 'Y') THEN
116006
116007 -- 4645092 ------------------------------------------------------------------------------
116008 -- To allow MPA report to determine if it should generate report process
116009 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116010 ------------------------------------------------------------------------------------------
116011
116012 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116013 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116017 --
116014 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
116015 -- call ADRs
116016 -- Bug 4922099
116018 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116019 (NVL(l_actual_upg_option, 'N') = 'O') OR
116020 (NVL(l_enc_upg_option, 'N') = 'O')
116021 )
116022 THEN
116023 NULL;
116024 --
116025 --
116026
116027 l_ccid := AcctDerRule_33(
116028 p_application_id => p_application_id
116029 , p_ae_header_id => l_ae_header_id
116030 , p_source_36 => p_source_36
116031 , x_transaction_coa_id => l_adr_transaction_coa_id
116032 , x_accounting_coa_id => l_adr_accounting_coa_id
116033 , x_value_type_code => l_adr_value_type_code
116034 , p_side => 'NA'
116035 );
116036
116037 xla_ae_lines_pkg.set_ccid(
116038 p_code_combination_id => l_ccid
116039 , p_value_type_code => l_adr_value_type_code
116040 , p_transaction_coa_id => l_adr_transaction_coa_id
116041 , p_accounting_coa_id => l_adr_accounting_coa_id
116042 , p_adr_code => 'AP_RECP_INV_DIST'
116043 , p_adr_type_code => 'S'
116044 , p_component_type => l_component_type
116045 , p_component_code => l_component_code
116046 , p_component_type_code => l_component_type_code
116047 , p_component_appl_id => l_component_appl_id
116048 , p_amb_context_code => l_amb_context_code
116049 , p_side => 'NA'
116050 );
116051
116052
116053 --
116054 --
116055 END IF;
116056
116057 --
116058 -- Update the line information that should be overwritten
116059 --
116060 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116061 p_header_num => 1);
116062 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
116063
116064 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116065
116066 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
116067 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116068 END IF;
116069
116070 --
116071 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116072 --
116073 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116074 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
116075 ELSE
116076 ---------------------------------------------------------------------------------------------------
116077 -- 4262811a Switch Sign
116078 ---------------------------------------------------------------------------------------------------
116079 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
116080 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116081 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116082 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116083 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116084 -- 5132302
116085 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116086 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116087
116088 END IF;
116089
116090 -- 4955764
116091 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116092 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116093
116094
116095 XLA_AE_LINES_PKG.ValidateCurrentLine;
116096 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116097
116098 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116099 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116100 ,p_balance_type_code => l_balance_type_code);
116101
116102 END IF;
116103
116104 -----------------------------------------------------------------------------------------
116105 -- 4262811 Multiperiod Accounting
116106 -----------------------------------------------------------------------------------------
116107 -- No MPA option is assigned.
116108
116109
116110 END IF;
116111 END IF;
116112 --
116113
116114 --
116115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116116 trace
116117 (p_msg => 'END of AcctLineType_200'
116118 ,p_level => C_LEVEL_PROCEDURE
116119 ,p_module => l_log_module);
116120 END IF;
116121 --
116122 EXCEPTION
116123 WHEN xla_exceptions_pkg.application_exception THEN
116124 RAISE;
116125 WHEN OTHERS THEN
116126 xla_exceptions_pkg.raise_message
116127 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_200');
116128 END AcctLineType_200;
116129 --
116130
116131 ---------------------------------------
116132 --
116133 -- PRIVATE FUNCTION
116134 -- AcctLineType_201
116135 --
116136 ---------------------------------------
116137 PROCEDURE AcctLineType_201 (
116141 ,p_calculate_g_l_flag IN VARCHAR2
116138 p_application_id IN NUMBER
116139 ,p_event_id IN NUMBER
116140 ,p_calculate_acctd_flag IN VARCHAR2
116142 ,p_actual_flag IN OUT VARCHAR2
116143 ,p_balance_type_code OUT VARCHAR2
116144 ,p_gain_or_loss_ref OUT VARCHAR2
116145
116146 --Recipient Invoice Distribution Account
116147 , p_source_36 IN NUMBER
116148 --When to Account for Payment Option
116149 , p_source_38 IN VARCHAR2
116150 --Accounting Reversal Indicator
116151 , p_source_40 IN VARCHAR2
116152 --Business Flow Accounts Payable Application Identifier
116153 , p_source_42 IN NUMBER
116154 --Distribution Link Type
116155 , p_source_48 IN VARCHAR2
116156 --Override Accounted Amount Indicator
116157 , p_source_53 IN VARCHAR2
116158 , p_source_53_meaning IN VARCHAR2
116159 --Third Party Type
116160 , p_source_56 IN VARCHAR2
116161 --Invoice Distribution Tax Line Identifier
116162 , p_source_58 IN NUMBER
116163 --Invoice Distribution Summary Tax Line Identifier
116164 , p_source_59 IN NUMBER
116165 --Invoice Distribution Tax Distribution Identifier from Tax
116166 , p_source_66 IN NUMBER
116167 --Prepayment Distribution Type
116168 , p_source_67 IN VARCHAR2
116169 --Recipient Invoice Distribution Type
116170 , p_source_68 IN VARCHAR2
116171 , p_source_68_meaning IN VARCHAR2
116172 --Prepayment Application Distribution Identifier
116173 , p_source_71 IN NUMBER
116174 --Invoice Identifier
116175 , p_source_72 IN NUMBER
116176 --Business Flow Prepayment Invoice Distribution Type
116177 , p_source_73 IN VARCHAR2
116178 --Business Flow Prepayment Invoice Entity Code
116179 , p_source_74 IN VARCHAR2
116180 --Business Flow Prepayment Invoice Distribution Identifier
116181 , p_source_75 IN NUMBER
116182 --Business Flow Prepayment Invoice Identifier
116183 , p_source_76 IN NUMBER
116184 --Upgrade Encumbrance Credit Account Class
116185 , p_source_77 IN VARCHAR2
116186 --Payables Encumbrance Upgrade Credit Account
116187 , p_source_78 IN NUMBER
116188 --Payables Encumbrance Upgrade Credit Amount
116189 , p_source_79 IN NUMBER
116190 --Invoice Currency Code
116191 , p_source_80 IN VARCHAR2
116192 --Payables Encumbrance Upgrade Credit Base Amount
116193 , p_source_81 IN NUMBER
116194 --Upgrade Encumbrance Debit Account Class
116195 , p_source_82 IN VARCHAR2
116196 --Payables Encumbrance Upgrade Debit Account
116197 , p_source_83 IN NUMBER
116198 --Payables Encumbrance Upgrade Debit Amount
116199 , p_source_84 IN NUMBER
116200 --Payables Encumbrance Upgrade Debit Base Amount
116201 , p_source_85 IN NUMBER
116202 --Payables Encumbrance Upgrade Option
116203 , p_source_86 IN VARCHAR2
116204 --Prepayment Distribution Amount
116205 , p_source_87 IN NUMBER
116206 --Deferred Accounting End Date
116207 , p_source_90 IN DATE
116208 --Deferred Accounting Option
116209 , p_source_91 IN VARCHAR2
116210 --Deferred Accounting Start Date
116211 , p_source_92 IN DATE
116212 --Invoice Supplier Identifier
116213 , p_source_93 IN NUMBER
116214 --Invoice Supplier Site Identifier
116215 , p_source_94 IN NUMBER
116216 --Identifier of the Prepayment Application Reversed
116217 , p_source_95 IN NUMBER
116218 --Payables Upgrade Credit Encumbrance Type Identifier
116219 , p_source_96 IN NUMBER
116220 --Payables Upgrade Debit Encumbrance Type Identifier
116221 , p_source_97 IN NUMBER
116222 --Prepayment Payment Currency Code
116223 , p_source_98 IN VARCHAR2
116224 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
116225 , p_source_99 IN NUMBER
116226 --Accrue on Receipt Option
116227 , p_source_100 IN VARCHAR2
116228 , p_source_100_meaning IN VARCHAR2
116229 --Prepayment Payment Exchange Date
116230 , p_source_121 IN DATE
116231 --Prepayment Payment Exchange Rate
116232 , p_source_122 IN NUMBER
116233 --Prepayment Payment Exchange Rate Type
116234 , p_source_123 IN VARCHAR2
116235 )
116236 IS
116237
116238 l_component_type VARCHAR2(80);
116239 l_component_code VARCHAR2(30);
116240 l_component_type_code VARCHAR2(1);
116241 l_component_appl_id INTEGER;
116242 l_amb_context_code VARCHAR2(30);
116243 l_entity_code VARCHAR2(30);
116244 l_event_class_code VARCHAR2(30);
116245 l_ae_header_id NUMBER;
116246 l_event_type_code VARCHAR2(30);
116247 l_line_definition_code VARCHAR2(30);
116248 l_line_definition_owner_code VARCHAR2(1);
116249 --
116250 -- adr variables
116251 l_segment VARCHAR2(30);
116252 l_ccid NUMBER;
116253 l_adr_transaction_coa_id NUMBER;
116254 l_adr_accounting_coa_id NUMBER;
116255 l_adr_flexfield_segment_code VARCHAR2(30);
116256 l_adr_flex_value_set_id NUMBER;
116257 l_adr_value_type_code VARCHAR2(30);
116258 l_adr_value_combination_id NUMBER;
116259 l_adr_value_segment_code VARCHAR2(30);
116260
116261 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
116262 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
116263 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
116267 l_entered_amt_idx NUMBER;
116264 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
116265
116266 -- 4262811 Variables ------------------------------------------------------------------------------------------
116268 l_accted_amt_idx NUMBER;
116269 l_acc_rev_flag VARCHAR2(1);
116270 l_accrual_line_num NUMBER;
116271 l_tmp_amt NUMBER;
116272 l_acc_rev_natural_side_code VARCHAR2(1);
116273
116274 l_num_entries NUMBER;
116275 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
116276 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
116277 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
116278 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
116279 l_recog_line_1 NUMBER;
116280 l_recog_line_2 NUMBER;
116281
116282 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
116283 l_bflow_applied_to_amt NUMBER; -- 5132302
116284 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
116285
116286 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116287
116288 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
116289 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
116290
116291 ---------------------------------------------------------------------------------------------------------------
116292
116293
116294 --
116295 -- bulk performance
116296 --
116297 l_balance_type_code VARCHAR2(1);
116298 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
116299 l_log_module VARCHAR2(240);
116300
116301 --
116302 -- Upgrade strategy
116303 --
116304 l_actual_upg_option VARCHAR2(1);
116305 l_enc_upg_option VARCHAR2(1);
116306
116307 --
116308 BEGIN
116309 --
116310 IF g_log_enabled THEN
116311 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_201';
116312 END IF;
116313 --
116314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116315
116316 trace
116317 (p_msg => 'BEGIN of AcctLineType_201'
116318 ,p_level => C_LEVEL_PROCEDURE
116319 ,p_module => l_log_module);
116320
116321 END IF;
116322 --
116323 l_component_type := 'AMB_JLT';
116324 l_component_code := 'AP_TRV_PREPAY_PAY_RATE_APP';
116325 l_component_type_code := 'S';
116326 l_component_appl_id := 200;
116327 l_amb_context_code := 'DEFAULT';
116328 l_entity_code := 'AP_INVOICES';
116329 l_event_class_code := 'PREPAYMENT APPLICATIONS';
116330 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
116331 l_line_definition_owner_code := 'S';
116332 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
116333 --
116334 l_balance_type_code := 'A';
116335 l_segment := NULL;
116336 l_ccid := NULL;
116337 l_adr_transaction_coa_id := NULL;
116338 l_adr_accounting_coa_id := NULL;
116339 l_adr_flexfield_segment_code := NULL;
116340 l_adr_flex_value_set_id := NULL;
116341 l_adr_value_type_code := NULL;
116342 l_adr_value_combination_id := NULL;
116343 l_adr_value_segment_code := NULL;
116344
116345 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
116346 l_bflow_class_code := ''; -- 4219869 Business Flow
116347 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
116348 l_budgetary_control_flag := 'N';
116349
116350 l_bflow_applied_to_amt_idx := NULL; -- 5132302
116351 l_bflow_applied_to_amt := NULL; -- 5132302
116352 l_entered_amt_idx := NULL; -- 4262811
116353 l_accted_amt_idx := NULL; -- 4262811
116354 l_acc_rev_flag := NULL; -- 4262811
116355 l_accrual_line_num := NULL; -- 4262811
116356 l_tmp_amt := NULL; -- 4262811
116357 --
116358
116359 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116360 l_balance_type_code <> 'B' THEN
116361 IF NVL(p_source_38,'
116362 ') <> 'CLEAR_CLEAR' AND
116363 (NVL(p_source_67,'
116364 ') = 'PREPAY APPL' OR
116365 NVL(p_source_67,'
116366 ') = 'PREPAY APPL REC TAX' OR
116367 NVL(p_source_67,'
116368 ') = 'PREPAY APPL NONREC TAX') AND
116369 NVL(p_source_68,'
116370 ') = 'TRV' AND
116371 NVL(p_source_100,'
116372 ') = 'Y'
116373 THEN
116374
116375 --
116376 XLA_AE_LINES_PKG.SetNewLine;
116377
116378 p_balance_type_code := l_balance_type_code;
116379 -- set the flag so later we will know whether the gain loss line needs to be created
116380
116381 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116382 p_actual_flag :='A';
116383 END IF;
116384
116385 --
116386 -- bulk performance
116387 --
116388 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116389 p_header_num => 0); -- 4262811
116390 --
116391 -- set accounting line options
116392 --
116393 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116394 p_natural_side_code => 'C'
116395 , p_gain_or_loss_flag => 'N'
116399 , p_merge_duplicate_code => 'A'
116396 , p_gl_transfer_mode_code => 'S'
116397 , p_acct_entry_type_code => 'A'
116398 , p_switch_side_flag => 'Y'
116400 );
116401 --
116402 l_acc_rev_natural_side_code := 'D'; -- 4262811
116403 --
116404 --
116405 -- set accounting line type info
116406 --
116407 xla_ae_lines_pkg.SetAcctLineType
116408 (p_component_type => l_component_type
116409 ,p_event_type_code => l_event_type_code
116410 ,p_line_definition_owner_code => l_line_definition_owner_code
116411 ,p_line_definition_code => l_line_definition_code
116412 ,p_accounting_line_code => l_component_code
116413 ,p_accounting_line_type_code => l_component_type_code
116414 ,p_accounting_line_appl_id => l_component_appl_id
116415 ,p_amb_context_code => l_amb_context_code
116416 ,p_entity_code => l_entity_code
116417 ,p_event_class_code => l_event_class_code);
116418 --
116419 -- set accounting class
116420 --
116421 xla_ae_lines_pkg.SetAcctClass(
116422 p_accounting_class_code => 'TRV'
116423 , p_ae_header_id => l_ae_header_id
116424 );
116425
116426 --
116427 -- set rounding class
116428 --
116429 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116430 'TRV';
116431
116432 --
116433 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116434 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116435 --
116436 -- bulk performance
116437 --
116438 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116439
116440 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116441 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116442
116443 -- 4955764
116444 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116445 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116446
116447 -- 4458381 Public Sector Enh
116448
116449 --
116450 -- set accounting attributes for the line type
116451 --
116452 l_entered_amt_idx := 25;
116453 l_accted_amt_idx := 30;
116454 l_bflow_applied_to_amt_idx := NULL; -- 5132302
116455 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116456 l_rec_acct_attrs.array_char_value(1) := p_source_40;
116457 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116458 l_rec_acct_attrs.array_num_value(2) :=
116459 xla_ae_sources_pkg.GetSystemSourceNum(
116460 p_source_code => 'XLA_EVENT_APPL_ID'
116461 , p_source_type_code => 'Y'
116462 , p_source_application_id => 602
116463 );
116464 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116465 l_rec_acct_attrs.array_char_value(3) := p_source_48;
116466 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116467 l_rec_acct_attrs.array_char_value(4) :=
116468 xla_ae_sources_pkg.GetSystemSourceChar(
116469 p_source_code => 'XLA_ENTITY_CODE'
116470 , p_source_type_code => 'Y'
116471 , p_source_application_id => 602
116472 );
116473 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116474 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_71);
116475 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116476 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_72);
116477 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
116478 l_rec_acct_attrs.array_num_value(7) := p_source_42;
116479 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116480 l_rec_acct_attrs.array_char_value(8) := p_source_73;
116481 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
116482 l_rec_acct_attrs.array_char_value(9) := p_source_74;
116483 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
116484 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_75);
116485 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116486 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_76);
116487 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
116488 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_71);
116489 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
116490 l_rec_acct_attrs.array_char_value(13) := p_source_48;
116491 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
116492 l_rec_acct_attrs.array_char_value(14) := p_source_77;
116493 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
116494 l_rec_acct_attrs.array_num_value(15) := p_source_78;
116495 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
116496 l_rec_acct_attrs.array_num_value(16) := p_source_79;
116497 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
116498 l_rec_acct_attrs.array_char_value(17) := p_source_80;
116499 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
116500 l_rec_acct_attrs.array_num_value(18) := p_source_81;
116504 l_rec_acct_attrs.array_num_value(20) := p_source_83;
116501 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
116502 l_rec_acct_attrs.array_char_value(19) := p_source_82;
116503 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
116505 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
116506 l_rec_acct_attrs.array_num_value(21) := p_source_84;
116507 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
116508 l_rec_acct_attrs.array_char_value(22) := p_source_80;
116509 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
116510 l_rec_acct_attrs.array_num_value(23) := p_source_85;
116511 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
116512 l_rec_acct_attrs.array_char_value(24) := p_source_86;
116513 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
116514 l_rec_acct_attrs.array_num_value(25) := p_source_87;
116515 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
116516 l_rec_acct_attrs.array_char_value(26) := p_source_98;
116517 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
116518 l_rec_acct_attrs.array_date_value(27) := p_source_121;
116519 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
116520 l_rec_acct_attrs.array_num_value(28) := p_source_122;
116521 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
116522 l_rec_acct_attrs.array_char_value(29) := p_source_123;
116523 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
116524 l_rec_acct_attrs.array_num_value(30) := p_source_99;
116525 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
116526 l_rec_acct_attrs.array_date_value(31) := p_source_90;
116527 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
116528 l_rec_acct_attrs.array_char_value(32) := p_source_91;
116529 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
116530 l_rec_acct_attrs.array_date_value(33) := p_source_92;
116531 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
116532 l_rec_acct_attrs.array_char_value(34) := p_source_53;
116533 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
116534 l_rec_acct_attrs.array_num_value(35) := p_source_93;
116535 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
116536 l_rec_acct_attrs.array_num_value(36) := p_source_94;
116537 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
116538 l_rec_acct_attrs.array_char_value(37) := p_source_56;
116539 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
116540 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_95);
116541 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
116542 l_rec_acct_attrs.array_char_value(39) := p_source_48;
116543 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
116544 l_rec_acct_attrs.array_num_value(40) := p_source_58;
116545 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
116546 l_rec_acct_attrs.array_num_value(41) := p_source_66;
116547 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
116548 l_rec_acct_attrs.array_num_value(42) := p_source_59;
116549 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
116550 l_rec_acct_attrs.array_num_value(43) := p_source_96;
116551 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
116552 l_rec_acct_attrs.array_num_value(44) := p_source_97;
116553
116554 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116555 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116556
116557 ---------------------------------------------------------------------------------------------------------------
116558 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116559 ---------------------------------------------------------------------------------------------------------------
116560 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116561
116562 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116563 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116564
116565 IF xla_accounting_cache_pkg.GetValueChar
116566 (p_source_code => 'LEDGER_CATEGORY_CODE'
116567 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116568 AND l_bflow_method_code = 'PRIOR_ENTRY'
116569 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116570 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116571 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116572 )
116573 THEN
116574 xla_ae_lines_pkg.BflowUpgEntry
116575 (p_business_method_code => l_bflow_method_code
116576 ,p_business_class_code => l_bflow_class_code
116577 ,p_balance_type => l_balance_type_code);
116578 ELSE
116579 NULL;
116580 -- No business flow processing for business flow method of NONE.
116581 END IF;
116582
116583 --
116584 -- call analytical criteria
116585 --
116586
116587 --
116588 -- call description
116589 --
116590 -- No description or it is inherited.
116591 --
116592 -- call ADRs
116593 -- Bug 4922099
116594 --
116595 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116596 (NVL(l_actual_upg_option, 'N') = 'O') OR
116600 NULL;
116597 (NVL(l_enc_upg_option, 'N') = 'O')
116598 )
116599 THEN
116601 --
116602 --
116603
116604 l_ccid := AcctDerRule_33(
116605 p_application_id => p_application_id
116606 , p_ae_header_id => l_ae_header_id
116607 , p_source_36 => p_source_36
116608 , x_transaction_coa_id => l_adr_transaction_coa_id
116609 , x_accounting_coa_id => l_adr_accounting_coa_id
116610 , x_value_type_code => l_adr_value_type_code
116611 , p_side => 'NA'
116612 );
116613
116614 xla_ae_lines_pkg.set_ccid(
116615 p_code_combination_id => l_ccid
116616 , p_value_type_code => l_adr_value_type_code
116617 , p_transaction_coa_id => l_adr_transaction_coa_id
116618 , p_accounting_coa_id => l_adr_accounting_coa_id
116619 , p_adr_code => 'AP_RECP_INV_DIST'
116620 , p_adr_type_code => 'S'
116621 , p_component_type => l_component_type
116622 , p_component_code => l_component_code
116623 , p_component_type_code => l_component_type_code
116624 , p_component_appl_id => l_component_appl_id
116625 , p_amb_context_code => l_amb_context_code
116626 , p_side => 'NA'
116627 );
116628
116629
116630 --
116631 --
116632 END IF;
116633 --
116634 -- Bug 4922099
116635 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116636 (NVL(l_enc_upg_option, 'N') = 'O')
116637 ) AND
116638 (l_bflow_method_code = 'PRIOR_ENTRY')
116639 )
116640 THEN
116641 IF
116642 --
116643 1 = 2
116644 --
116645 THEN
116646 xla_accounting_err_pkg.build_message
116647 (p_appli_s_name => 'XLA'
116648 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116649 ,p_token_1 => 'LINE_NUMBER'
116650 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
116651 ,p_token_2 => 'LINE_TYPE_NAME'
116652 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
116653 l_component_type
116654 ,l_component_code
116655 ,l_component_type_code
116656 ,l_component_appl_id
116657 ,l_amb_context_code
116658 ,l_entity_code
116659 ,l_event_class_code
116660 )
116661 ,p_token_3 => 'OWNER'
116662 ,p_value_3 => xla_lookups_pkg.get_meaning(
116663 p_lookup_type => 'XLA_OWNER_TYPE'
116664 ,p_lookup_code => l_component_type_code
116665 )
116666 ,p_token_4 => 'PRODUCT_NAME'
116667 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116668 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116669 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116670 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116671 ,p_ae_header_id => NULL
116672 );
116673
116674 IF (C_LEVEL_ERROR>= g_log_level) THEN
116675 trace
116676 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116677 ,p_level => C_LEVEL_ERROR
116678 ,p_module => l_log_module);
116679 END IF;
116680 END IF;
116681 END IF;
116682 --
116683 --
116684 ------------------------------------------------------------------------------------------------
116685 -- 4219869 Business Flow
116686 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116687 -- Prior Entry. Currently, the following code is always generated.
116688 ------------------------------------------------------------------------------------------------
116689 XLA_AE_LINES_PKG.ValidateCurrentLine;
116690
116691 ------------------------------------------------------------------------------------
116692 -- 4219869 Business Flow
116693 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116694 ------------------------------------------------------------------------------------
116695 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116696
116697 ----------------------------------------------------------------------------------
116698 -- 4219869 Business Flow
116699 -- Update journal entry status -- Need to generate this within IF <condition>
116703 ,p_balance_type_code => l_balance_type_code
116700 ----------------------------------------------------------------------------------
116701 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116702 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116704 );
116705
116706 -------------------------------------------------------------------------------------------
116707 -- 4262811 - Generate the Accrual Reversal lines
116708 -------------------------------------------------------------------------------------------
116709 BEGIN
116710 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116711 (g_array_event(p_event_id).array_value_num('header_index'));
116712 IF l_acc_rev_flag IS NULL THEN
116713 l_acc_rev_flag := 'N';
116714 END IF;
116715 EXCEPTION
116716 WHEN OTHERS THEN
116717 l_acc_rev_flag := 'N';
116718 END;
116719 --
116720 IF (l_acc_rev_flag = 'Y') THEN
116721
116722 -- 4645092 ------------------------------------------------------------------------------
116723 -- To allow MPA report to determine if it should generate report process
116724 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116725 ------------------------------------------------------------------------------------------
116726
116727 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116728 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116729 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
116730 -- call ADRs
116731 -- Bug 4922099
116732 --
116733 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116734 (NVL(l_actual_upg_option, 'N') = 'O') OR
116735 (NVL(l_enc_upg_option, 'N') = 'O')
116736 )
116737 THEN
116738 NULL;
116739 --
116740 --
116741
116742 l_ccid := AcctDerRule_33(
116743 p_application_id => p_application_id
116744 , p_ae_header_id => l_ae_header_id
116745 , p_source_36 => p_source_36
116746 , x_transaction_coa_id => l_adr_transaction_coa_id
116747 , x_accounting_coa_id => l_adr_accounting_coa_id
116748 , x_value_type_code => l_adr_value_type_code
116749 , p_side => 'NA'
116750 );
116751
116752 xla_ae_lines_pkg.set_ccid(
116753 p_code_combination_id => l_ccid
116754 , p_value_type_code => l_adr_value_type_code
116755 , p_transaction_coa_id => l_adr_transaction_coa_id
116756 , p_accounting_coa_id => l_adr_accounting_coa_id
116757 , p_adr_code => 'AP_RECP_INV_DIST'
116758 , p_adr_type_code => 'S'
116759 , p_component_type => l_component_type
116760 , p_component_code => l_component_code
116761 , p_component_type_code => l_component_type_code
116762 , p_component_appl_id => l_component_appl_id
116763 , p_amb_context_code => l_amb_context_code
116764 , p_side => 'NA'
116765 );
116766
116767
116768 --
116769 --
116770 END IF;
116771
116772 --
116773 -- Update the line information that should be overwritten
116774 --
116775 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116776 p_header_num => 1);
116777 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
116778
116779 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116780
116781 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
116782 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116783 END IF;
116784
116785 --
116786 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116787 --
116788 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116789 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
116790 ELSE
116791 ---------------------------------------------------------------------------------------------------
116792 -- 4262811a Switch Sign
116793 ---------------------------------------------------------------------------------------------------
116794 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
116795 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116796 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116797 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116798 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116799 -- 5132302
116800 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116801 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116802
116803 END IF;
116804
116805 -- 4955764
116806 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116807 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116808
116809
116810 XLA_AE_LINES_PKG.ValidateCurrentLine;
116814 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116811 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116812
116813 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116815 ,p_balance_type_code => l_balance_type_code);
116816
116817 END IF;
116818
116819 -----------------------------------------------------------------------------------------
116820 -- 4262811 Multiperiod Accounting
116821 -----------------------------------------------------------------------------------------
116822 -- No MPA option is assigned.
116823
116824
116825 END IF;
116826 END IF;
116827 --
116828
116829 --
116830 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116831 trace
116832 (p_msg => 'END of AcctLineType_201'
116833 ,p_level => C_LEVEL_PROCEDURE
116834 ,p_module => l_log_module);
116835 END IF;
116836 --
116837 EXCEPTION
116838 WHEN xla_exceptions_pkg.application_exception THEN
116839 RAISE;
116840 WHEN OTHERS THEN
116841 xla_exceptions_pkg.raise_message
116842 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_201');
116843 END AcctLineType_201;
116844 --
116845
116846 ---------------------------------------
116847 --
116848 -- PRIVATE FUNCTION
116849 -- AcctLineType_202
116850 --
116851 ---------------------------------------
116852 PROCEDURE AcctLineType_202 (
116853 p_application_id IN NUMBER
116854 ,p_event_id IN NUMBER
116855 ,p_calculate_acctd_flag IN VARCHAR2
116856 ,p_calculate_g_l_flag IN VARCHAR2
116857 ,p_actual_flag IN OUT VARCHAR2
116858 ,p_balance_type_code OUT VARCHAR2
116859 ,p_gain_or_loss_ref OUT VARCHAR2
116860
116861 --Automatic Offsets Value
116862 , p_source_4 IN VARCHAR2
116863 , p_source_4_meaning IN VARCHAR2
116864 --Payment Distribution (Cleared Rate) Ledger Amount
116865 , p_source_10 IN NUMBER
116866 --Invoice Distribution Account
116867 , p_source_17 IN NUMBER
116868 --Withholding Related Distribution Account
116869 , p_source_24 IN NUMBER
116870 --When to Account for Payment Option
116871 , p_source_38 IN VARCHAR2
116872 --Payment Distribution Type
116873 , p_source_39 IN VARCHAR2
116874 , p_source_39_meaning IN VARCHAR2
116875 --Accounting Reversal Indicator
116876 , p_source_40 IN VARCHAR2
116877 --Payment Distribution Amount
116878 , p_source_41 IN NUMBER
116879 --Business Flow Accounts Payable Application Identifier
116880 , p_source_42 IN NUMBER
116881 --Business Flow Payment Distribution Type
116882 , p_source_43 IN VARCHAR2
116883 --Business Flow Payment Entity Code
116884 , p_source_44 IN VARCHAR2
116885 --Business Flow Payment Distribution Identifier
116886 , p_source_45 IN NUMBER
116887 --Business Flow Payment Identifier
116888 , p_source_46 IN NUMBER
116889 --Payment Distribution Identifier
116890 , p_source_47 IN NUMBER
116891 --Distribution Link Type
116892 , p_source_48 IN VARCHAR2
116893 --Override Accounted Amount Indicator
116894 , p_source_53 IN VARCHAR2
116895 , p_source_53_meaning IN VARCHAR2
116896 --Payment Supplier Identifier
116897 , p_source_54 IN NUMBER
116898 --Payment Supplier Site Identifier
116899 , p_source_55 IN NUMBER
116900 --Third Party Type
116901 , p_source_56 IN VARCHAR2
116902 --Payment Distribution Reversed Identifier
116903 , p_source_57 IN NUMBER
116904 --Invoice Distribution Tax Line Identifier
116905 , p_source_58 IN NUMBER
116906 --Invoice Distribution Summary Tax Line Identifier
116907 , p_source_59 IN NUMBER
116908 --Cleared Currency Code
116909 , p_source_106 IN VARCHAR2
116910 --Cleared Exchange Date
116911 , p_source_107 IN DATE
116912 --Cleared Exchange Rate
116913 , p_source_108 IN NUMBER
116914 --Cleared Exchange Rate Type
116915 , p_source_109 IN VARCHAR2
116916 --Withholding at Payment Indicator
116917 , p_source_151 IN VARCHAR2
116918 , p_source_151_meaning IN VARCHAR2
116919 )
116920 IS
116921
116922 l_component_type VARCHAR2(80);
116923 l_component_code VARCHAR2(30);
116924 l_component_type_code VARCHAR2(1);
116925 l_component_appl_id INTEGER;
116926 l_amb_context_code VARCHAR2(30);
116927 l_entity_code VARCHAR2(30);
116928 l_event_class_code VARCHAR2(30);
116929 l_ae_header_id NUMBER;
116930 l_event_type_code VARCHAR2(30);
116931 l_line_definition_code VARCHAR2(30);
116932 l_line_definition_owner_code VARCHAR2(1);
116933 --
116934 -- adr variables
116935 l_segment VARCHAR2(30);
116936 l_ccid NUMBER;
116937 l_adr_transaction_coa_id NUMBER;
116938 l_adr_accounting_coa_id NUMBER;
116939 l_adr_flexfield_segment_code VARCHAR2(30);
116940 l_adr_flex_value_set_id NUMBER;
116941 l_adr_value_type_code VARCHAR2(30);
116942 l_adr_value_combination_id NUMBER;
116943 l_adr_value_segment_code VARCHAR2(30);
116944
116945 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
116946 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
116947 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
116948 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
116949
116953 l_acc_rev_flag VARCHAR2(1);
116950 -- 4262811 Variables ------------------------------------------------------------------------------------------
116951 l_entered_amt_idx NUMBER;
116952 l_accted_amt_idx NUMBER;
116954 l_accrual_line_num NUMBER;
116955 l_tmp_amt NUMBER;
116956 l_acc_rev_natural_side_code VARCHAR2(1);
116957
116958 l_num_entries NUMBER;
116959 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
116960 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
116961 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
116962 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
116963 l_recog_line_1 NUMBER;
116964 l_recog_line_2 NUMBER;
116965
116966 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
116967 l_bflow_applied_to_amt NUMBER; -- 5132302
116968 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
116969
116970 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116971
116972 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
116973 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
116974
116975 ---------------------------------------------------------------------------------------------------------------
116976
116977
116978 --
116979 -- bulk performance
116980 --
116981 l_balance_type_code VARCHAR2(1);
116982 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
116983 l_log_module VARCHAR2(240);
116984
116985 --
116986 -- Upgrade strategy
116987 --
116988 l_actual_upg_option VARCHAR2(1);
116989 l_enc_upg_option VARCHAR2(1);
116990
116991 --
116992 BEGIN
116993 --
116994 IF g_log_enabled THEN
116995 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_202';
116996 END IF;
116997 --
116998 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116999
117000 trace
117001 (p_msg => 'BEGIN of AcctLineType_202'
117002 ,p_level => C_LEVEL_PROCEDURE
117003 ,p_module => l_log_module);
117004
117005 END IF;
117006 --
117007 l_component_type := 'AMB_JLT';
117008 l_component_code := 'AP_WITHHOLD_TAX_CASH_CLEAR';
117009 l_component_type_code := 'S';
117010 l_component_appl_id := 200;
117011 l_amb_context_code := 'DEFAULT';
117012 l_entity_code := 'AP_PAYMENTS';
117013 l_event_class_code := 'RECONCILED PAYMENTS';
117014 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
117015 l_line_definition_owner_code := 'S';
117016 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
117017 --
117018 l_balance_type_code := 'A';
117019 l_segment := NULL;
117020 l_ccid := NULL;
117021 l_adr_transaction_coa_id := NULL;
117022 l_adr_accounting_coa_id := NULL;
117023 l_adr_flexfield_segment_code := NULL;
117024 l_adr_flex_value_set_id := NULL;
117025 l_adr_value_type_code := NULL;
117026 l_adr_value_combination_id := NULL;
117027 l_adr_value_segment_code := NULL;
117028
117029 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
117030 l_bflow_class_code := ''; -- 4219869 Business Flow
117031 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
117032 l_budgetary_control_flag := 'N';
117033
117034 l_bflow_applied_to_amt_idx := NULL; -- 5132302
117035 l_bflow_applied_to_amt := NULL; -- 5132302
117036 l_entered_amt_idx := NULL; -- 4262811
117037 l_accted_amt_idx := NULL; -- 4262811
117038 l_acc_rev_flag := NULL; -- 4262811
117039 l_accrual_line_num := NULL; -- 4262811
117040 l_tmp_amt := NULL; -- 4262811
117041 --
117042
117043 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117044 l_balance_type_code <> 'B' THEN
117045 IF NVL(p_source_38,'
117046 ') = 'CLEAR_CLEAR' AND
117047 NVL(p_source_39,'
117048 ') = 'AWT' AND
117049 NVL(p_source_151,'
117050 ') = 'Y'
117051 THEN
117052
117053 --
117054 XLA_AE_LINES_PKG.SetNewLine;
117055
117056 p_balance_type_code := l_balance_type_code;
117057 -- set the flag so later we will know whether the gain loss line needs to be created
117058
117059 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117060 p_actual_flag :='A';
117061 END IF;
117062
117063 --
117064 -- bulk performance
117065 --
117066 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117067 p_header_num => 0); -- 4262811
117068 --
117069 -- set accounting line options
117070 --
117071 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117072 p_natural_side_code => 'C'
117073 , p_gain_or_loss_flag => 'N'
117074 , p_gl_transfer_mode_code => 'S'
117075 , p_acct_entry_type_code => 'A'
117076 , p_switch_side_flag => 'Y'
117077 , p_merge_duplicate_code => 'A'
117078 );
117079 --
117080 l_acc_rev_natural_side_code := 'D'; -- 4262811
117081 --
117085 xla_ae_lines_pkg.SetAcctLineType
117082 --
117083 -- set accounting line type info
117084 --
117086 (p_component_type => l_component_type
117087 ,p_event_type_code => l_event_type_code
117088 ,p_line_definition_owner_code => l_line_definition_owner_code
117089 ,p_line_definition_code => l_line_definition_code
117090 ,p_accounting_line_code => l_component_code
117091 ,p_accounting_line_type_code => l_component_type_code
117092 ,p_accounting_line_appl_id => l_component_appl_id
117093 ,p_amb_context_code => l_amb_context_code
117094 ,p_entity_code => l_entity_code
117095 ,p_event_class_code => l_event_class_code);
117096 --
117097 -- set accounting class
117098 --
117099 xla_ae_lines_pkg.SetAcctClass(
117100 p_accounting_class_code => 'AWT'
117101 , p_ae_header_id => l_ae_header_id
117102 );
117103
117104 --
117105 -- set rounding class
117106 --
117107 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117108 'AWT';
117109
117110 --
117111 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117112 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117113 --
117114 -- bulk performance
117115 --
117116 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117117
117118 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117119 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117120
117121 -- 4955764
117122 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117123 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117124
117125 -- 4458381 Public Sector Enh
117126
117127 --
117128 -- set accounting attributes for the line type
117129 --
117130 l_entered_amt_idx := 10;
117131 l_accted_amt_idx := 15;
117132 l_bflow_applied_to_amt_idx := 2; -- 5132302
117133 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117134 l_rec_acct_attrs.array_char_value(1) := p_source_40;
117135 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
117136 l_rec_acct_attrs.array_num_value(2) := p_source_41;
117137 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
117138 l_rec_acct_attrs.array_num_value(3) := p_source_42;
117139 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117140 l_rec_acct_attrs.array_char_value(4) := p_source_43;
117141 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
117142 l_rec_acct_attrs.array_char_value(5) := p_source_44;
117143 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
117144 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_45);
117145 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117146 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_46);
117147 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
117148 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
117149 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
117150 l_rec_acct_attrs.array_char_value(9) := p_source_48;
117151 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
117152 l_rec_acct_attrs.array_num_value(10) := p_source_41;
117153 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
117154 l_rec_acct_attrs.array_char_value(11) := p_source_106;
117155 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
117156 l_rec_acct_attrs.array_date_value(12) := p_source_107;
117157 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
117158 l_rec_acct_attrs.array_num_value(13) := p_source_108;
117159 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
117160 l_rec_acct_attrs.array_char_value(14) := p_source_109;
117161 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
117162 l_rec_acct_attrs.array_num_value(15) := p_source_10;
117163 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
117164 l_rec_acct_attrs.array_char_value(16) := p_source_53;
117165 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
117166 l_rec_acct_attrs.array_num_value(17) := p_source_54;
117167 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
117168 l_rec_acct_attrs.array_num_value(18) := p_source_55;
117169 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
117170 l_rec_acct_attrs.array_char_value(19) := p_source_56;
117171 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
117172 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
117173 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
117174 l_rec_acct_attrs.array_char_value(21) := p_source_48;
117175 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
117176 l_rec_acct_attrs.array_num_value(22) := p_source_58;
117177 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
117178 l_rec_acct_attrs.array_num_value(23) := p_source_58;
117179 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
117180 l_rec_acct_attrs.array_num_value(24) := p_source_59;
117181
117185 ---------------------------------------------------------------------------------------------------------------
117182 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117183 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117184
117186 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117187 ---------------------------------------------------------------------------------------------------------------
117188 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117189
117190 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117191 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117192
117193 IF xla_accounting_cache_pkg.GetValueChar
117194 (p_source_code => 'LEDGER_CATEGORY_CODE'
117195 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117196 AND l_bflow_method_code = 'PRIOR_ENTRY'
117197 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117198 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117199 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117200 )
117201 THEN
117202 xla_ae_lines_pkg.BflowUpgEntry
117203 (p_business_method_code => l_bflow_method_code
117204 ,p_business_class_code => l_bflow_class_code
117205 ,p_balance_type => l_balance_type_code);
117206 ELSE
117207 NULL;
117208 -- No business flow processing for business flow method of NONE.
117209 END IF;
117210
117211 --
117212 -- call analytical criteria
117213 --
117214
117215 --
117216 -- call description
117217 --
117218 -- No description or it is inherited.
117219 --
117220 -- call ADRs
117221 -- Bug 4922099
117222 --
117223 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117224 (NVL(l_actual_upg_option, 'N') = 'O') OR
117225 (NVL(l_enc_upg_option, 'N') = 'O')
117226 )
117227 THEN
117228 NULL;
117229 --
117230 --
117231
117232 l_ccid := AcctDerRule_36(
117233 p_application_id => p_application_id
117234 , p_ae_header_id => l_ae_header_id
117235 , p_source_4 => p_source_4
117236 , p_source_4_meaning => p_source_4_meaning
117237 , p_source_17 => p_source_17
117238 , p_source_24 => p_source_24
117239 , x_transaction_coa_id => l_adr_transaction_coa_id
117240 , x_accounting_coa_id => l_adr_accounting_coa_id
117241 , x_value_type_code => l_adr_value_type_code
117242 , p_side => 'NA'
117243 );
117244
117245 xla_ae_lines_pkg.set_ccid(
117246 p_code_combination_id => l_ccid
117247 , p_value_type_code => l_adr_value_type_code
117248 , p_transaction_coa_id => l_adr_transaction_coa_id
117249 , p_accounting_coa_id => l_adr_accounting_coa_id
117250 , p_adr_code => 'AP_WH_DIST_ACCT'
117251 , p_adr_type_code => 'S'
117252 , p_component_type => l_component_type
117253 , p_component_code => l_component_code
117254 , p_component_type_code => l_component_type_code
117255 , p_component_appl_id => l_component_appl_id
117256 , p_amb_context_code => l_amb_context_code
117257 , p_side => 'NA'
117258 );
117259
117260
117261 l_segment := AcctDerRule_10(
117262 p_application_id => p_application_id
117263 , p_ae_header_id => l_ae_header_id
117264 , p_source_4 => p_source_4
117265 , p_source_4_meaning => p_source_4_meaning
117266 , p_source_17 => p_source_17
117267 , x_transaction_coa_id => l_adr_transaction_coa_id
117268 , x_accounting_coa_id => l_adr_accounting_coa_id
117269 , x_flexfield_segment_code => l_adr_flexfield_segment_code
117270 , x_flex_value_set_id => l_adr_flex_value_set_id
117271 , x_value_type_code => l_adr_value_type_code
117272 , x_value_combination_id => l_adr_value_combination_id
117273 , x_value_segment_code => l_adr_value_segment_code
117274 , p_side => 'NA'
117275 , p_override_seg_flag => 'Y'
117276 );
117277
117278 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
117279
117280 xla_ae_lines_pkg.set_segment(
117281 p_to_segment_code => 'GL_ACCOUNT'
117282 , p_segment_value => l_segment
117283 , p_from_segment_code => l_adr_value_segment_code
117284 , p_from_combination_id => l_adr_value_combination_id
117285 , p_value_type_code => l_adr_value_type_code
117286 , p_transaction_coa_id => l_adr_transaction_coa_id
117287 , p_accounting_coa_id => l_adr_accounting_coa_id
117288 , p_flexfield_segment_code => l_adr_flexfield_segment_code
117289 , p_flex_value_set_id => l_adr_flex_value_set_id
117290 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
117291 , p_adr_type_code => 'S'
117292 , p_component_type => l_component_type
117293 , p_component_code => l_component_code
117294 , p_component_type_code => l_component_type_code
117298 , p_event_class_code => 'RECONCILED PAYMENTS'
117295 , p_component_appl_id => l_component_appl_id
117296 , p_amb_context_code => l_amb_context_code
117297 , p_entity_code => 'AP_PAYMENTS'
117299 , p_side => 'NA'
117300 );
117301
117302 END IF;
117303
117304 l_segment := AcctDerRule_17(
117305 p_application_id => p_application_id
117306 , p_ae_header_id => l_ae_header_id
117307 , p_source_4 => p_source_4
117308 , p_source_4_meaning => p_source_4_meaning
117309 , p_source_24 => p_source_24
117310 , x_transaction_coa_id => l_adr_transaction_coa_id
117311 , x_accounting_coa_id => l_adr_accounting_coa_id
117312 , x_flexfield_segment_code => l_adr_flexfield_segment_code
117313 , x_flex_value_set_id => l_adr_flex_value_set_id
117314 , x_value_type_code => l_adr_value_type_code
117315 , x_value_combination_id => l_adr_value_combination_id
117316 , x_value_segment_code => l_adr_value_segment_code
117317 , p_side => 'NA'
117318 , p_override_seg_flag => 'Y'
117319 );
117320
117321 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
117322
117323 xla_ae_lines_pkg.set_segment(
117324 p_to_segment_code => 'GL_BALANCING'
117325 , p_segment_value => l_segment
117326 , p_from_segment_code => l_adr_value_segment_code
117327 , p_from_combination_id => l_adr_value_combination_id
117328 , p_value_type_code => l_adr_value_type_code
117329 , p_transaction_coa_id => l_adr_transaction_coa_id
117330 , p_accounting_coa_id => l_adr_accounting_coa_id
117331 , p_flexfield_segment_code => l_adr_flexfield_segment_code
117332 , p_flex_value_set_id => l_adr_flex_value_set_id
117333 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
117334 , p_adr_type_code => 'S'
117335 , p_component_type => l_component_type
117336 , p_component_code => l_component_code
117337 , p_component_type_code => l_component_type_code
117338 , p_component_appl_id => l_component_appl_id
117339 , p_amb_context_code => l_amb_context_code
117340 , p_entity_code => 'AP_PAYMENTS'
117341 , p_event_class_code => 'RECONCILED PAYMENTS'
117342 , p_side => 'NA'
117343 );
117344
117345 END IF;
117346
117347 --
117348 --
117349 END IF;
117350 --
117351 -- Bug 4922099
117352 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117353 (NVL(l_enc_upg_option, 'N') = 'O')
117354 ) AND
117355 (l_bflow_method_code = 'PRIOR_ENTRY')
117356 )
117357 THEN
117358 IF
117359 --
117360 1 = 2
117361 --
117362 THEN
117363 xla_accounting_err_pkg.build_message
117364 (p_appli_s_name => 'XLA'
117365 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117366 ,p_token_1 => 'LINE_NUMBER'
117367 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
117368 ,p_token_2 => 'LINE_TYPE_NAME'
117369 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
117370 l_component_type
117371 ,l_component_code
117372 ,l_component_type_code
117373 ,l_component_appl_id
117374 ,l_amb_context_code
117375 ,l_entity_code
117376 ,l_event_class_code
117377 )
117378 ,p_token_3 => 'OWNER'
117379 ,p_value_3 => xla_lookups_pkg.get_meaning(
117380 p_lookup_type => 'XLA_OWNER_TYPE'
117381 ,p_lookup_code => l_component_type_code
117382 )
117383 ,p_token_4 => 'PRODUCT_NAME'
117384 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117385 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117386 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117387 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117388 ,p_ae_header_id => NULL
117389 );
117390
117391 IF (C_LEVEL_ERROR>= g_log_level) THEN
117392 trace
117393 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117397 END IF;
117394 ,p_level => C_LEVEL_ERROR
117395 ,p_module => l_log_module);
117396 END IF;
117398 END IF;
117399 --
117400 --
117401 ------------------------------------------------------------------------------------------------
117402 -- 4219869 Business Flow
117403 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117404 -- Prior Entry. Currently, the following code is always generated.
117405 ------------------------------------------------------------------------------------------------
117406 XLA_AE_LINES_PKG.ValidateCurrentLine;
117407
117408 ------------------------------------------------------------------------------------
117409 -- 4219869 Business Flow
117410 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117411 ------------------------------------------------------------------------------------
117412 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117413
117414 ----------------------------------------------------------------------------------
117415 -- 4219869 Business Flow
117416 -- Update journal entry status -- Need to generate this within IF <condition>
117417 ----------------------------------------------------------------------------------
117418 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117419 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117420 ,p_balance_type_code => l_balance_type_code
117421 );
117422
117423 -------------------------------------------------------------------------------------------
117424 -- 4262811 - Generate the Accrual Reversal lines
117425 -------------------------------------------------------------------------------------------
117426 BEGIN
117427 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117428 (g_array_event(p_event_id).array_value_num('header_index'));
117429 IF l_acc_rev_flag IS NULL THEN
117430 l_acc_rev_flag := 'N';
117431 END IF;
117432 EXCEPTION
117433 WHEN OTHERS THEN
117434 l_acc_rev_flag := 'N';
117435 END;
117436 --
117437 IF (l_acc_rev_flag = 'Y') THEN
117438
117439 -- 4645092 ------------------------------------------------------------------------------
117440 -- To allow MPA report to determine if it should generate report process
117441 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117442 ------------------------------------------------------------------------------------------
117443
117444 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117445 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117446 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
117447 -- call ADRs
117448 -- Bug 4922099
117449 --
117450 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117451 (NVL(l_actual_upg_option, 'N') = 'O') OR
117452 (NVL(l_enc_upg_option, 'N') = 'O')
117453 )
117454 THEN
117455 NULL;
117456 --
117457 --
117458
117459 l_ccid := AcctDerRule_36(
117460 p_application_id => p_application_id
117461 , p_ae_header_id => l_ae_header_id
117462 , p_source_4 => p_source_4
117463 , p_source_4_meaning => p_source_4_meaning
117464 , p_source_17 => p_source_17
117465 , p_source_24 => p_source_24
117466 , x_transaction_coa_id => l_adr_transaction_coa_id
117467 , x_accounting_coa_id => l_adr_accounting_coa_id
117468 , x_value_type_code => l_adr_value_type_code
117469 , p_side => 'NA'
117470 );
117471
117472 xla_ae_lines_pkg.set_ccid(
117473 p_code_combination_id => l_ccid
117474 , p_value_type_code => l_adr_value_type_code
117475 , p_transaction_coa_id => l_adr_transaction_coa_id
117476 , p_accounting_coa_id => l_adr_accounting_coa_id
117477 , p_adr_code => 'AP_WH_DIST_ACCT'
117478 , p_adr_type_code => 'S'
117479 , p_component_type => l_component_type
117480 , p_component_code => l_component_code
117481 , p_component_type_code => l_component_type_code
117482 , p_component_appl_id => l_component_appl_id
117483 , p_amb_context_code => l_amb_context_code
117484 , p_side => 'NA'
117485 );
117486
117487
117488 l_segment := AcctDerRule_10(
117489 p_application_id => p_application_id
117490 , p_ae_header_id => l_ae_header_id
117491 , p_source_4 => p_source_4
117492 , p_source_4_meaning => p_source_4_meaning
117493 , p_source_17 => p_source_17
117494 , x_transaction_coa_id => l_adr_transaction_coa_id
117495 , x_accounting_coa_id => l_adr_accounting_coa_id
117496 , x_flexfield_segment_code => l_adr_flexfield_segment_code
117497 , x_flex_value_set_id => l_adr_flex_value_set_id
117498 , x_value_type_code => l_adr_value_type_code
117499 , x_value_combination_id => l_adr_value_combination_id
117500 , x_value_segment_code => l_adr_value_segment_code
117501 , p_side => 'NA'
117502 , p_override_seg_flag => 'Y'
117503 );
117504
117505 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
117506
117507 xla_ae_lines_pkg.set_segment(
117508 p_to_segment_code => 'GL_ACCOUNT'
117512 , p_value_type_code => l_adr_value_type_code
117509 , p_segment_value => l_segment
117510 , p_from_segment_code => l_adr_value_segment_code
117511 , p_from_combination_id => l_adr_value_combination_id
117513 , p_transaction_coa_id => l_adr_transaction_coa_id
117514 , p_accounting_coa_id => l_adr_accounting_coa_id
117515 , p_flexfield_segment_code => l_adr_flexfield_segment_code
117516 , p_flex_value_set_id => l_adr_flex_value_set_id
117517 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
117518 , p_adr_type_code => 'S'
117519 , p_component_type => l_component_type
117520 , p_component_code => l_component_code
117521 , p_component_type_code => l_component_type_code
117522 , p_component_appl_id => l_component_appl_id
117523 , p_amb_context_code => l_amb_context_code
117524 , p_entity_code => 'AP_PAYMENTS'
117525 , p_event_class_code => 'RECONCILED PAYMENTS'
117526 , p_side => 'NA'
117527 );
117528
117529 END IF;
117530
117531 l_segment := AcctDerRule_17(
117532 p_application_id => p_application_id
117533 , p_ae_header_id => l_ae_header_id
117534 , p_source_4 => p_source_4
117535 , p_source_4_meaning => p_source_4_meaning
117536 , p_source_24 => p_source_24
117537 , x_transaction_coa_id => l_adr_transaction_coa_id
117538 , x_accounting_coa_id => l_adr_accounting_coa_id
117539 , x_flexfield_segment_code => l_adr_flexfield_segment_code
117540 , x_flex_value_set_id => l_adr_flex_value_set_id
117541 , x_value_type_code => l_adr_value_type_code
117542 , x_value_combination_id => l_adr_value_combination_id
117543 , x_value_segment_code => l_adr_value_segment_code
117544 , p_side => 'NA'
117545 , p_override_seg_flag => 'Y'
117546 );
117547
117548 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
117549
117550 xla_ae_lines_pkg.set_segment(
117551 p_to_segment_code => 'GL_BALANCING'
117552 , p_segment_value => l_segment
117553 , p_from_segment_code => l_adr_value_segment_code
117554 , p_from_combination_id => l_adr_value_combination_id
117555 , p_value_type_code => l_adr_value_type_code
117556 , p_transaction_coa_id => l_adr_transaction_coa_id
117557 , p_accounting_coa_id => l_adr_accounting_coa_id
117558 , p_flexfield_segment_code => l_adr_flexfield_segment_code
117559 , p_flex_value_set_id => l_adr_flex_value_set_id
117560 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
117561 , p_adr_type_code => 'S'
117562 , p_component_type => l_component_type
117563 , p_component_code => l_component_code
117564 , p_component_type_code => l_component_type_code
117565 , p_component_appl_id => l_component_appl_id
117566 , p_amb_context_code => l_amb_context_code
117567 , p_entity_code => 'AP_PAYMENTS'
117568 , p_event_class_code => 'RECONCILED PAYMENTS'
117569 , p_side => 'NA'
117570 );
117571
117572 END IF;
117573
117574 --
117575 --
117576 END IF;
117577
117578 --
117579 -- Update the line information that should be overwritten
117580 --
117581 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117582 p_header_num => 1);
117583 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
117584
117585 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117586
117587 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
117588 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117589 END IF;
117590
117591 --
117592 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117593 --
117594 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117595 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
117596 ELSE
117597 ---------------------------------------------------------------------------------------------------
117598 -- 4262811a Switch Sign
117599 ---------------------------------------------------------------------------------------------------
117600 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
117601 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117602 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117603 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117604 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117605 -- 5132302
117606 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117610
117607 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117608
117609 END IF;
117611 -- 4955764
117612 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117613 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117614
117615
117616 XLA_AE_LINES_PKG.ValidateCurrentLine;
117617 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117618
117619 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117620 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117621 ,p_balance_type_code => l_balance_type_code);
117622
117623 END IF;
117624
117625 -----------------------------------------------------------------------------------------
117626 -- 4262811 Multiperiod Accounting
117627 -----------------------------------------------------------------------------------------
117628 -- No MPA option is assigned.
117629
117630
117631 END IF;
117632 END IF;
117633 --
117634
117635 --
117636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117637 trace
117638 (p_msg => 'END of AcctLineType_202'
117639 ,p_level => C_LEVEL_PROCEDURE
117640 ,p_module => l_log_module);
117641 END IF;
117642 --
117643 EXCEPTION
117644 WHEN xla_exceptions_pkg.application_exception THEN
117645 RAISE;
117646 WHEN OTHERS THEN
117647 xla_exceptions_pkg.raise_message
117648 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_202');
117649 END AcctLineType_202;
117650 --
117651
117652 ---------------------------------------
117653 --
117654 -- PRIVATE FUNCTION
117655 -- AcctLineType_203
117656 --
117657 ---------------------------------------
117658 PROCEDURE AcctLineType_203 (
117659 p_application_id IN NUMBER
117660 ,p_event_id IN NUMBER
117661 ,p_calculate_acctd_flag IN VARCHAR2
117662 ,p_calculate_g_l_flag IN VARCHAR2
117663 ,p_actual_flag IN OUT VARCHAR2
117664 ,p_balance_type_code OUT VARCHAR2
117665 ,p_gain_or_loss_ref OUT VARCHAR2
117666
117667 --Automatic Offsets Value
117668 , p_source_4 IN VARCHAR2
117669 , p_source_4_meaning IN VARCHAR2
117670 --Payment Distribution (Payment Rate) Ledger Amount
117671 , p_source_9 IN NUMBER
117672 --Invoice Distribution Account
117673 , p_source_17 IN NUMBER
117674 --Withholding Related Distribution Account
117675 , p_source_24 IN NUMBER
117676 --When to Account for Payment Option
117677 , p_source_38 IN VARCHAR2
117678 --Payment Distribution Type
117679 , p_source_39 IN VARCHAR2
117680 , p_source_39_meaning IN VARCHAR2
117681 --Accounting Reversal Indicator
117682 , p_source_40 IN VARCHAR2
117683 --Payment Distribution Amount
117684 , p_source_41 IN NUMBER
117685 --Business Flow Accounts Payable Application Identifier
117686 , p_source_42 IN NUMBER
117687 --Payment Distribution Identifier
117688 , p_source_47 IN NUMBER
117689 --Distribution Link Type
117690 , p_source_48 IN VARCHAR2
117691 --Payment Currency Code
117692 , p_source_49 IN VARCHAR2
117693 --Override Accounted Amount Indicator
117694 , p_source_53 IN VARCHAR2
117695 , p_source_53_meaning IN VARCHAR2
117696 --Payment Supplier Identifier
117697 , p_source_54 IN NUMBER
117698 --Payment Supplier Site Identifier
117699 , p_source_55 IN NUMBER
117700 --Third Party Type
117701 , p_source_56 IN VARCHAR2
117702 --Payment Distribution Reversed Identifier
117703 , p_source_57 IN NUMBER
117704 --Invoice Distribution Tax Line Identifier
117705 , p_source_58 IN NUMBER
117706 --Invoice Distribution Summary Tax Line Identifier
117707 , p_source_59 IN NUMBER
117708 --Payment Type
117709 , p_source_60 IN VARCHAR2
117710 , p_source_60_meaning IN VARCHAR2
117711 --Invoice Distribution Amount of the Payment Distribution
117712 , p_source_61 IN NUMBER
117713 --Business Flow Invoice Distribution Type
117714 , p_source_62 IN VARCHAR2
117715 --Business Flow Invoice Entity Code
117716 , p_source_63 IN VARCHAR2
117717 --Business Flow Invoice Distribution Identifier
117718 , p_source_64 IN NUMBER
117719 --Business Flow Invoice Identifier
117720 , p_source_65 IN NUMBER
117721 --Invoice Distribution Tax Distribution Identifier from Tax
117722 , p_source_66 IN NUMBER
117723 --Payment Exchange Date
117724 , p_source_114 IN DATE
117725 --Payment Exchange Rate
117726 , p_source_115 IN NUMBER
117727 --Payment Exchange Rate Type
117728 , p_source_116 IN VARCHAR2
117729 )
117730 IS
117731
117732 l_component_type VARCHAR2(80);
117733 l_component_code VARCHAR2(30);
117734 l_component_type_code VARCHAR2(1);
117735 l_component_appl_id INTEGER;
117736 l_amb_context_code VARCHAR2(30);
117737 l_entity_code VARCHAR2(30);
117738 l_event_class_code VARCHAR2(30);
117739 l_ae_header_id NUMBER;
117740 l_event_type_code VARCHAR2(30);
117741 l_line_definition_code VARCHAR2(30);
117742 l_line_definition_owner_code VARCHAR2(1);
117743 --
117747 l_adr_transaction_coa_id NUMBER;
117744 -- adr variables
117745 l_segment VARCHAR2(30);
117746 l_ccid NUMBER;
117748 l_adr_accounting_coa_id NUMBER;
117749 l_adr_flexfield_segment_code VARCHAR2(30);
117750 l_adr_flex_value_set_id NUMBER;
117751 l_adr_value_type_code VARCHAR2(30);
117752 l_adr_value_combination_id NUMBER;
117753 l_adr_value_segment_code VARCHAR2(30);
117754
117755 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
117756 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
117757 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
117758 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
117759
117760 -- 4262811 Variables ------------------------------------------------------------------------------------------
117761 l_entered_amt_idx NUMBER;
117762 l_accted_amt_idx NUMBER;
117763 l_acc_rev_flag VARCHAR2(1);
117764 l_accrual_line_num NUMBER;
117765 l_tmp_amt NUMBER;
117766 l_acc_rev_natural_side_code VARCHAR2(1);
117767
117768 l_num_entries NUMBER;
117769 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
117770 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
117771 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
117772 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
117773 l_recog_line_1 NUMBER;
117774 l_recog_line_2 NUMBER;
117775
117776 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
117777 l_bflow_applied_to_amt NUMBER; -- 5132302
117778 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
117779
117780 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117781
117782 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
117783 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
117784
117785 ---------------------------------------------------------------------------------------------------------------
117786
117787
117788 --
117789 -- bulk performance
117790 --
117791 l_balance_type_code VARCHAR2(1);
117792 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
117793 l_log_module VARCHAR2(240);
117794
117795 --
117796 -- Upgrade strategy
117797 --
117798 l_actual_upg_option VARCHAR2(1);
117799 l_enc_upg_option VARCHAR2(1);
117800
117801 --
117802 BEGIN
117803 --
117804 IF g_log_enabled THEN
117805 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_203';
117806 END IF;
117807 --
117808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117809
117810 trace
117811 (p_msg => 'BEGIN of AcctLineType_203'
117812 ,p_level => C_LEVEL_PROCEDURE
117813 ,p_module => l_log_module);
117814
117815 END IF;
117816 --
117817 l_component_type := 'AMB_JLT';
117818 l_component_code := 'AP_WITHHOLD_TAX_CASH_PMT';
117819 l_component_type_code := 'S';
117820 l_component_appl_id := 200;
117821 l_amb_context_code := 'DEFAULT';
117822 l_entity_code := 'AP_PAYMENTS';
117823 l_event_class_code := 'PAYMENTS';
117824 l_event_type_code := 'PAYMENTS_ALL';
117825 l_line_definition_owner_code := 'S';
117826 l_line_definition_code := 'CASH_PAYMENTS_ALL';
117827 --
117828 l_balance_type_code := 'A';
117829 l_segment := NULL;
117830 l_ccid := NULL;
117831 l_adr_transaction_coa_id := NULL;
117832 l_adr_accounting_coa_id := NULL;
117833 l_adr_flexfield_segment_code := NULL;
117834 l_adr_flex_value_set_id := NULL;
117835 l_adr_value_type_code := NULL;
117836 l_adr_value_combination_id := NULL;
117837 l_adr_value_segment_code := NULL;
117838
117839 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
117840 l_bflow_class_code := ''; -- 4219869 Business Flow
117841 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
117842 l_budgetary_control_flag := 'N';
117843
117844 l_bflow_applied_to_amt_idx := NULL; -- 5132302
117845 l_bflow_applied_to_amt := NULL; -- 5132302
117846 l_entered_amt_idx := NULL; -- 4262811
117847 l_accted_amt_idx := NULL; -- 4262811
117848 l_acc_rev_flag := NULL; -- 4262811
117849 l_accrual_line_num := NULL; -- 4262811
117850 l_tmp_amt := NULL; -- 4262811
117851 --
117852
117853 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117854 l_balance_type_code <> 'B' THEN
117855 IF NVL(p_source_38,'
117856 ') <> 'CLEAR_CLEAR' AND
117857 NVL(p_source_39,'
117858 ') = 'AWT' AND
117859 NVL(p_source_60,'
117860 ') <> 'R'
117861 THEN
117862
117863 --
117864 XLA_AE_LINES_PKG.SetNewLine;
117865
117866 p_balance_type_code := l_balance_type_code;
117867 -- set the flag so later we will know whether the gain loss line needs to be created
117868
117869 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117870 p_actual_flag :='A';
117871 END IF;
117872
117873 --
117874 -- bulk performance
117878 --
117875 --
117876 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117877 p_header_num => 0); -- 4262811
117879 -- set accounting line options
117880 --
117881 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117882 p_natural_side_code => 'C'
117883 , p_gain_or_loss_flag => 'N'
117884 , p_gl_transfer_mode_code => 'S'
117885 , p_acct_entry_type_code => 'A'
117886 , p_switch_side_flag => 'Y'
117887 , p_merge_duplicate_code => 'A'
117888 );
117889 --
117890 l_acc_rev_natural_side_code := 'D'; -- 4262811
117891 --
117892 --
117893 -- set accounting line type info
117894 --
117895 xla_ae_lines_pkg.SetAcctLineType
117896 (p_component_type => l_component_type
117897 ,p_event_type_code => l_event_type_code
117898 ,p_line_definition_owner_code => l_line_definition_owner_code
117899 ,p_line_definition_code => l_line_definition_code
117900 ,p_accounting_line_code => l_component_code
117901 ,p_accounting_line_type_code => l_component_type_code
117902 ,p_accounting_line_appl_id => l_component_appl_id
117903 ,p_amb_context_code => l_amb_context_code
117904 ,p_entity_code => l_entity_code
117905 ,p_event_class_code => l_event_class_code);
117906 --
117907 -- set accounting class
117908 --
117909 xla_ae_lines_pkg.SetAcctClass(
117910 p_accounting_class_code => 'AWT'
117911 , p_ae_header_id => l_ae_header_id
117912 );
117913
117914 --
117915 -- set rounding class
117916 --
117917 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117918 'AWT';
117919
117920 --
117921 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117922 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117923 --
117924 -- bulk performance
117925 --
117926 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117927
117928 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117929 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117930
117931 -- 4955764
117932 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117933 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117934
117935 -- 4458381 Public Sector Enh
117936
117937 --
117938 -- set accounting attributes for the line type
117939 --
117940 l_entered_amt_idx := 10;
117941 l_accted_amt_idx := 15;
117942 l_bflow_applied_to_amt_idx := 2; -- 5132302
117943 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117944 l_rec_acct_attrs.array_char_value(1) := p_source_40;
117945 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
117946 l_rec_acct_attrs.array_num_value(2) := p_source_61;
117947 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
117948 l_rec_acct_attrs.array_num_value(3) := p_source_42;
117949 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117950 l_rec_acct_attrs.array_char_value(4) := p_source_62;
117951 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
117952 l_rec_acct_attrs.array_char_value(5) := p_source_63;
117953 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
117954 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_64);
117955 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117956 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_65);
117957 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
117958 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_47);
117959 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
117960 l_rec_acct_attrs.array_char_value(9) := p_source_48;
117961 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
117962 l_rec_acct_attrs.array_num_value(10) := p_source_41;
117963 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
117964 l_rec_acct_attrs.array_char_value(11) := p_source_49;
117965 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
117966 l_rec_acct_attrs.array_date_value(12) := p_source_114;
117967 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
117968 l_rec_acct_attrs.array_num_value(13) := p_source_115;
117969 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
117970 l_rec_acct_attrs.array_char_value(14) := p_source_116;
117971 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
117972 l_rec_acct_attrs.array_num_value(15) := p_source_9;
117973 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
117974 l_rec_acct_attrs.array_char_value(16) := p_source_53;
117975 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
117976 l_rec_acct_attrs.array_num_value(17) := p_source_54;
117977 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
117978 l_rec_acct_attrs.array_num_value(18) := p_source_55;
117979 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
117980 l_rec_acct_attrs.array_char_value(19) := p_source_56;
117984 l_rec_acct_attrs.array_char_value(21) := p_source_48;
117981 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
117982 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_57);
117983 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
117985 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
117986 l_rec_acct_attrs.array_num_value(22) := p_source_58;
117987 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
117988 l_rec_acct_attrs.array_num_value(23) := p_source_66;
117989 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
117990 l_rec_acct_attrs.array_num_value(24) := p_source_59;
117991
117992 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117993 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117994
117995 ---------------------------------------------------------------------------------------------------------------
117996 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117997 ---------------------------------------------------------------------------------------------------------------
117998 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117999
118000 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118001 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118002
118003 IF xla_accounting_cache_pkg.GetValueChar
118004 (p_source_code => 'LEDGER_CATEGORY_CODE'
118005 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118006 AND l_bflow_method_code = 'PRIOR_ENTRY'
118007 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118008 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118009 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118010 )
118011 THEN
118012 xla_ae_lines_pkg.BflowUpgEntry
118013 (p_business_method_code => l_bflow_method_code
118014 ,p_business_class_code => l_bflow_class_code
118015 ,p_balance_type => l_balance_type_code);
118016 ELSE
118017 NULL;
118018 -- No business flow processing for business flow method of NONE.
118019 END IF;
118020
118021 --
118022 -- call analytical criteria
118023 --
118024
118025 --
118026 -- call description
118027 --
118028 -- No description or it is inherited.
118029 --
118030 -- call ADRs
118031 -- Bug 4922099
118032 --
118033 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118034 (NVL(l_actual_upg_option, 'N') = 'O') OR
118035 (NVL(l_enc_upg_option, 'N') = 'O')
118036 )
118037 THEN
118038 NULL;
118039 --
118040 --
118041
118042 l_ccid := AcctDerRule_36(
118043 p_application_id => p_application_id
118044 , p_ae_header_id => l_ae_header_id
118045 , p_source_4 => p_source_4
118046 , p_source_4_meaning => p_source_4_meaning
118047 , p_source_17 => p_source_17
118048 , p_source_24 => p_source_24
118049 , x_transaction_coa_id => l_adr_transaction_coa_id
118050 , x_accounting_coa_id => l_adr_accounting_coa_id
118051 , x_value_type_code => l_adr_value_type_code
118052 , p_side => 'NA'
118053 );
118054
118055 xla_ae_lines_pkg.set_ccid(
118056 p_code_combination_id => l_ccid
118057 , p_value_type_code => l_adr_value_type_code
118058 , p_transaction_coa_id => l_adr_transaction_coa_id
118059 , p_accounting_coa_id => l_adr_accounting_coa_id
118060 , p_adr_code => 'AP_WH_DIST_ACCT'
118061 , p_adr_type_code => 'S'
118062 , p_component_type => l_component_type
118063 , p_component_code => l_component_code
118064 , p_component_type_code => l_component_type_code
118065 , p_component_appl_id => l_component_appl_id
118066 , p_amb_context_code => l_amb_context_code
118067 , p_side => 'NA'
118068 );
118069
118070
118071 l_segment := AcctDerRule_10(
118072 p_application_id => p_application_id
118073 , p_ae_header_id => l_ae_header_id
118074 , p_source_4 => p_source_4
118075 , p_source_4_meaning => p_source_4_meaning
118076 , p_source_17 => p_source_17
118077 , x_transaction_coa_id => l_adr_transaction_coa_id
118078 , x_accounting_coa_id => l_adr_accounting_coa_id
118079 , x_flexfield_segment_code => l_adr_flexfield_segment_code
118080 , x_flex_value_set_id => l_adr_flex_value_set_id
118081 , x_value_type_code => l_adr_value_type_code
118082 , x_value_combination_id => l_adr_value_combination_id
118083 , x_value_segment_code => l_adr_value_segment_code
118084 , p_side => 'NA'
118085 , p_override_seg_flag => 'Y'
118086 );
118087
118088 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
118089
118090 xla_ae_lines_pkg.set_segment(
118091 p_to_segment_code => 'GL_ACCOUNT'
118092 , p_segment_value => l_segment
118093 , p_from_segment_code => l_adr_value_segment_code
118094 , p_from_combination_id => l_adr_value_combination_id
118098 , p_flexfield_segment_code => l_adr_flexfield_segment_code
118095 , p_value_type_code => l_adr_value_type_code
118096 , p_transaction_coa_id => l_adr_transaction_coa_id
118097 , p_accounting_coa_id => l_adr_accounting_coa_id
118099 , p_flex_value_set_id => l_adr_flex_value_set_id
118100 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
118101 , p_adr_type_code => 'S'
118102 , p_component_type => l_component_type
118103 , p_component_code => l_component_code
118104 , p_component_type_code => l_component_type_code
118105 , p_component_appl_id => l_component_appl_id
118106 , p_amb_context_code => l_amb_context_code
118107 , p_entity_code => 'AP_PAYMENTS'
118108 , p_event_class_code => 'PAYMENTS'
118109 , p_side => 'NA'
118110 );
118111
118112 END IF;
118113
118114 l_segment := AcctDerRule_17(
118115 p_application_id => p_application_id
118116 , p_ae_header_id => l_ae_header_id
118117 , p_source_4 => p_source_4
118118 , p_source_4_meaning => p_source_4_meaning
118119 , p_source_24 => p_source_24
118120 , x_transaction_coa_id => l_adr_transaction_coa_id
118121 , x_accounting_coa_id => l_adr_accounting_coa_id
118122 , x_flexfield_segment_code => l_adr_flexfield_segment_code
118123 , x_flex_value_set_id => l_adr_flex_value_set_id
118124 , x_value_type_code => l_adr_value_type_code
118125 , x_value_combination_id => l_adr_value_combination_id
118126 , x_value_segment_code => l_adr_value_segment_code
118127 , p_side => 'NA'
118128 , p_override_seg_flag => 'Y'
118129 );
118130
118131 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
118132
118133 xla_ae_lines_pkg.set_segment(
118134 p_to_segment_code => 'GL_BALANCING'
118135 , p_segment_value => l_segment
118136 , p_from_segment_code => l_adr_value_segment_code
118137 , p_from_combination_id => l_adr_value_combination_id
118138 , p_value_type_code => l_adr_value_type_code
118139 , p_transaction_coa_id => l_adr_transaction_coa_id
118140 , p_accounting_coa_id => l_adr_accounting_coa_id
118141 , p_flexfield_segment_code => l_adr_flexfield_segment_code
118142 , p_flex_value_set_id => l_adr_flex_value_set_id
118143 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
118144 , p_adr_type_code => 'S'
118145 , p_component_type => l_component_type
118146 , p_component_code => l_component_code
118147 , p_component_type_code => l_component_type_code
118148 , p_component_appl_id => l_component_appl_id
118149 , p_amb_context_code => l_amb_context_code
118150 , p_entity_code => 'AP_PAYMENTS'
118151 , p_event_class_code => 'PAYMENTS'
118152 , p_side => 'NA'
118153 );
118154
118155 END IF;
118156
118157 --
118158 --
118159 END IF;
118160 --
118161 -- Bug 4922099
118162 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118163 (NVL(l_enc_upg_option, 'N') = 'O')
118164 ) AND
118165 (l_bflow_method_code = 'PRIOR_ENTRY')
118166 )
118167 THEN
118168 IF
118169 --
118170 1 = 2
118171 --
118172 THEN
118173 xla_accounting_err_pkg.build_message
118174 (p_appli_s_name => 'XLA'
118175 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118176 ,p_token_1 => 'LINE_NUMBER'
118177 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
118178 ,p_token_2 => 'LINE_TYPE_NAME'
118179 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
118180 l_component_type
118181 ,l_component_code
118182 ,l_component_type_code
118183 ,l_component_appl_id
118184 ,l_amb_context_code
118185 ,l_entity_code
118186 ,l_event_class_code
118187 )
118188 ,p_token_3 => 'OWNER'
118189 ,p_value_3 => xla_lookups_pkg.get_meaning(
118190 p_lookup_type => 'XLA_OWNER_TYPE'
118191 ,p_lookup_code => l_component_type_code
118192 )
118193 ,p_token_4 => 'PRODUCT_NAME'
118197 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118194 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118195 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118196 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118198 ,p_ae_header_id => NULL
118199 );
118200
118201 IF (C_LEVEL_ERROR>= g_log_level) THEN
118202 trace
118203 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118204 ,p_level => C_LEVEL_ERROR
118205 ,p_module => l_log_module);
118206 END IF;
118207 END IF;
118208 END IF;
118209 --
118210 --
118211 ------------------------------------------------------------------------------------------------
118212 -- 4219869 Business Flow
118213 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118214 -- Prior Entry. Currently, the following code is always generated.
118215 ------------------------------------------------------------------------------------------------
118216 XLA_AE_LINES_PKG.ValidateCurrentLine;
118217
118218 ------------------------------------------------------------------------------------
118219 -- 4219869 Business Flow
118220 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118221 ------------------------------------------------------------------------------------
118222 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118223
118224 ----------------------------------------------------------------------------------
118225 -- 4219869 Business Flow
118226 -- Update journal entry status -- Need to generate this within IF <condition>
118227 ----------------------------------------------------------------------------------
118228 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118229 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118230 ,p_balance_type_code => l_balance_type_code
118231 );
118232
118233 -------------------------------------------------------------------------------------------
118234 -- 4262811 - Generate the Accrual Reversal lines
118235 -------------------------------------------------------------------------------------------
118236 BEGIN
118237 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118238 (g_array_event(p_event_id).array_value_num('header_index'));
118239 IF l_acc_rev_flag IS NULL THEN
118240 l_acc_rev_flag := 'N';
118241 END IF;
118242 EXCEPTION
118243 WHEN OTHERS THEN
118244 l_acc_rev_flag := 'N';
118245 END;
118246 --
118247 IF (l_acc_rev_flag = 'Y') THEN
118248
118249 -- 4645092 ------------------------------------------------------------------------------
118250 -- To allow MPA report to determine if it should generate report process
118251 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118252 ------------------------------------------------------------------------------------------
118253
118254 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118255 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118256 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
118257 -- call ADRs
118258 -- Bug 4922099
118259 --
118260 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118261 (NVL(l_actual_upg_option, 'N') = 'O') OR
118262 (NVL(l_enc_upg_option, 'N') = 'O')
118263 )
118264 THEN
118265 NULL;
118266 --
118267 --
118268
118269 l_ccid := AcctDerRule_36(
118270 p_application_id => p_application_id
118271 , p_ae_header_id => l_ae_header_id
118272 , p_source_4 => p_source_4
118273 , p_source_4_meaning => p_source_4_meaning
118274 , p_source_17 => p_source_17
118275 , p_source_24 => p_source_24
118276 , x_transaction_coa_id => l_adr_transaction_coa_id
118277 , x_accounting_coa_id => l_adr_accounting_coa_id
118278 , x_value_type_code => l_adr_value_type_code
118279 , p_side => 'NA'
118280 );
118281
118282 xla_ae_lines_pkg.set_ccid(
118283 p_code_combination_id => l_ccid
118284 , p_value_type_code => l_adr_value_type_code
118285 , p_transaction_coa_id => l_adr_transaction_coa_id
118286 , p_accounting_coa_id => l_adr_accounting_coa_id
118287 , p_adr_code => 'AP_WH_DIST_ACCT'
118288 , p_adr_type_code => 'S'
118289 , p_component_type => l_component_type
118290 , p_component_code => l_component_code
118291 , p_component_type_code => l_component_type_code
118292 , p_component_appl_id => l_component_appl_id
118293 , p_amb_context_code => l_amb_context_code
118294 , p_side => 'NA'
118295 );
118296
118297
118298 l_segment := AcctDerRule_10(
118299 p_application_id => p_application_id
118300 , p_ae_header_id => l_ae_header_id
118301 , p_source_4 => p_source_4
118302 , p_source_4_meaning => p_source_4_meaning
118306 , x_flexfield_segment_code => l_adr_flexfield_segment_code
118303 , p_source_17 => p_source_17
118304 , x_transaction_coa_id => l_adr_transaction_coa_id
118305 , x_accounting_coa_id => l_adr_accounting_coa_id
118307 , x_flex_value_set_id => l_adr_flex_value_set_id
118308 , x_value_type_code => l_adr_value_type_code
118309 , x_value_combination_id => l_adr_value_combination_id
118310 , x_value_segment_code => l_adr_value_segment_code
118311 , p_side => 'NA'
118312 , p_override_seg_flag => 'Y'
118313 );
118314
118315 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
118316
118317 xla_ae_lines_pkg.set_segment(
118318 p_to_segment_code => 'GL_ACCOUNT'
118319 , p_segment_value => l_segment
118320 , p_from_segment_code => l_adr_value_segment_code
118321 , p_from_combination_id => l_adr_value_combination_id
118322 , p_value_type_code => l_adr_value_type_code
118323 , p_transaction_coa_id => l_adr_transaction_coa_id
118324 , p_accounting_coa_id => l_adr_accounting_coa_id
118325 , p_flexfield_segment_code => l_adr_flexfield_segment_code
118326 , p_flex_value_set_id => l_adr_flex_value_set_id
118327 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
118328 , p_adr_type_code => 'S'
118329 , p_component_type => l_component_type
118330 , p_component_code => l_component_code
118331 , p_component_type_code => l_component_type_code
118332 , p_component_appl_id => l_component_appl_id
118333 , p_amb_context_code => l_amb_context_code
118334 , p_entity_code => 'AP_PAYMENTS'
118335 , p_event_class_code => 'PAYMENTS'
118336 , p_side => 'NA'
118337 );
118338
118339 END IF;
118340
118341 l_segment := AcctDerRule_17(
118342 p_application_id => p_application_id
118343 , p_ae_header_id => l_ae_header_id
118344 , p_source_4 => p_source_4
118345 , p_source_4_meaning => p_source_4_meaning
118346 , p_source_24 => p_source_24
118347 , x_transaction_coa_id => l_adr_transaction_coa_id
118348 , x_accounting_coa_id => l_adr_accounting_coa_id
118349 , x_flexfield_segment_code => l_adr_flexfield_segment_code
118350 , x_flex_value_set_id => l_adr_flex_value_set_id
118351 , x_value_type_code => l_adr_value_type_code
118352 , x_value_combination_id => l_adr_value_combination_id
118353 , x_value_segment_code => l_adr_value_segment_code
118354 , p_side => 'NA'
118355 , p_override_seg_flag => 'Y'
118356 );
118357
118358 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
118359
118360 xla_ae_lines_pkg.set_segment(
118361 p_to_segment_code => 'GL_BALANCING'
118362 , p_segment_value => l_segment
118363 , p_from_segment_code => l_adr_value_segment_code
118364 , p_from_combination_id => l_adr_value_combination_id
118365 , p_value_type_code => l_adr_value_type_code
118366 , p_transaction_coa_id => l_adr_transaction_coa_id
118367 , p_accounting_coa_id => l_adr_accounting_coa_id
118368 , p_flexfield_segment_code => l_adr_flexfield_segment_code
118369 , p_flex_value_set_id => l_adr_flex_value_set_id
118370 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
118371 , p_adr_type_code => 'S'
118372 , p_component_type => l_component_type
118373 , p_component_code => l_component_code
118374 , p_component_type_code => l_component_type_code
118375 , p_component_appl_id => l_component_appl_id
118376 , p_amb_context_code => l_amb_context_code
118377 , p_entity_code => 'AP_PAYMENTS'
118378 , p_event_class_code => 'PAYMENTS'
118379 , p_side => 'NA'
118380 );
118381
118382 END IF;
118383
118384 --
118385 --
118386 END IF;
118387
118388 --
118389 -- Update the line information that should be overwritten
118390 --
118391 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118392 p_header_num => 1);
118393 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
118394
118395 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118396
118397 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
118398 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118399 END IF;
118400
118401 --
118402 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118403 --
118404 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118405 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
118406 ELSE
118407 ---------------------------------------------------------------------------------------------------
118408 -- 4262811a Switch Sign
118412 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118409 ---------------------------------------------------------------------------------------------------
118410 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
118411 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118413 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118414 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118415 -- 5132302
118416 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118417 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118418
118419 END IF;
118420
118421 -- 4955764
118422 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118423 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118424
118425
118426 XLA_AE_LINES_PKG.ValidateCurrentLine;
118427 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118428
118429 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118430 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118431 ,p_balance_type_code => l_balance_type_code);
118432
118433 END IF;
118434
118435 -----------------------------------------------------------------------------------------
118436 -- 4262811 Multiperiod Accounting
118437 -----------------------------------------------------------------------------------------
118438 -- No MPA option is assigned.
118439
118440
118441 END IF;
118442 END IF;
118443 --
118444
118445 --
118446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118447 trace
118448 (p_msg => 'END of AcctLineType_203'
118449 ,p_level => C_LEVEL_PROCEDURE
118450 ,p_module => l_log_module);
118451 END IF;
118452 --
118453 EXCEPTION
118454 WHEN xla_exceptions_pkg.application_exception THEN
118455 RAISE;
118456 WHEN OTHERS THEN
118457 xla_exceptions_pkg.raise_message
118458 (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_203');
118459 END AcctLineType_203;
118460 --
118461
118462 ---------------------------------------
118463 --
118464 -- PRIVATE PROCEDURE
118465 -- insert_sources_204
118466 --
118467 ----------------------------------------
118468 --
118469 PROCEDURE insert_sources_204(
118470 p_target_ledger_id IN NUMBER
118471 , p_language IN VARCHAR2
118472 , p_sla_ledger_id IN NUMBER
118473 , p_pad_start_date IN DATE
118474 , p_pad_end_date IN DATE
118475 )
118476 IS
118477
118478 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS_ALL';
118479 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS';
118480 p_apps_owner VARCHAR2(30);
118481 l_log_module VARCHAR2(240);
118482 BEGIN
118483 IF g_log_enabled THEN
118484 l_log_module := C_DEFAULT_MODULE||'.insert_sources_204';
118485 END IF;
118486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118487
118488 trace
118489 (p_msg => 'BEGIN of insert_sources_204'
118490 ,p_level => C_LEVEL_PROCEDURE
118491 ,p_module => l_log_module);
118492
118493 END IF;
118494
118495 -- select APPS owner
118496 SELECT oracle_username
118497 INTO p_apps_owner
118498 FROM fnd_oracle_userid
118499 WHERE read_only_flag = 'U'
118500 ;
118501
118502 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
118503 trace
118504 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
118505 ' - p_language = '||p_language||
118506 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
118507 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
118508 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
118509 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
118510 ,p_level => C_LEVEL_STATEMENT
118511 ,p_module => l_log_module);
118512 END IF;
118513
118514
118515 --
118516 INSERT INTO xla_diag_sources --hdr2
118517 (
118518 event_id
118519 , ledger_id
118520 , sla_ledger_id
118521 , description_language
118522 , object_name
118523 , object_type_code
118524 , line_number
118525 , source_application_id
118526 , source_type_code
118527 , source_code
118528 , source_value
118529 , source_meaning
118530 , created_by
118531 , creation_date
118532 , last_update_date
118533 , last_updated_by
118534 , last_update_login
118535 , program_update_date
118536 , program_application_id
118537 , program_id
118538 , request_id
118539 )
118540 SELECT
118541 event_id
118542 , p_target_ledger_id
118543 , p_sla_ledger_id
118544 , p_language
118545 , object_name
118546 , object_type_code
118547 , line_number
118548 , source_application_id
118549 , source_type_code
118550 , source_code
118554 , TRUNC(SYSDATE)
118551 , SUBSTR(source_value ,1,1996)
118552 , SUBSTR(source_meaning ,1,200)
118553 , xla_environment_pkg.g_Usr_Id
118555 , TRUNC(SYSDATE)
118556 , xla_environment_pkg.g_Usr_Id
118557 , xla_environment_pkg.g_Login_Id
118558 , TRUNC(SYSDATE)
118559 , xla_environment_pkg.g_Prog_Appl_Id
118560 , xla_environment_pkg.g_Prog_Id
118561 , xla_environment_pkg.g_Req_Id
118562 FROM (
118563 SELECT xet.event_id event_id
118564 , 0 line_number
118565 , CASE r
118566 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
118567 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
118568 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
118569 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
118570 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
118571
118572 ELSE null
118573 END object_name
118574 , CASE r
118575 WHEN 1 THEN 'HEADER'
118576 WHEN 2 THEN 'HEADER'
118577 WHEN 3 THEN 'HEADER'
118578 WHEN 4 THEN 'HEADER'
118579 WHEN 5 THEN 'HEADER'
118580
118581 ELSE null
118582 END object_type_code
118583 , CASE r
118584 WHEN 1 THEN '200'
118585 WHEN 2 THEN '200'
118586 WHEN 3 THEN '200'
118587 WHEN 4 THEN '200'
118588 WHEN 5 THEN '200'
118589
118590 ELSE null
118591 END source_application_id
118592 , 'S' source_type_code
118593 , CASE r
118594 WHEN 1 THEN 'THIRD_PARTY_TYPE'
118595 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
118596 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY'
118597 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
118598 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE'
118599
118600 ELSE null
118601 END source_code
118602 , CASE r
118603 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
118604 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
118605 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
118606 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
118607 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
118608
118609 ELSE null
118610 END source_value
118611 , null source_meaning
118612 FROM xla_events_gt xet
118613 , AP_INVOICE_EXTRACT_HEADER_V h2
118614 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
118615 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
118616 AND xet.event_class_code = C_EVENT_CLASS_CODE
118617 AND h2.event_id = xet.event_id
118618
118619 )
118620 ;
118621 --
118622 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
118623
118624 trace
118625 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
118626 ,p_level => C_LEVEL_STATEMENT
118627 ,p_module => l_log_module);
118628
118629 END IF;
118630 --
118631
118632
118633
118634 --
118635 INSERT INTO xla_diag_sources --line2
118636 (
118637 event_id
118638 , ledger_id
118639 , sla_ledger_id
118640 , description_language
118641 , object_name
118642 , object_type_code
118643 , line_number
118644 , source_application_id
118645 , source_type_code
118646 , source_code
118647 , source_value
118648 , source_meaning
118649 , created_by
118650 , creation_date
118651 , last_update_date
118652 , last_updated_by
118653 , last_update_login
118654 , program_update_date
118655 , program_application_id
118656 , program_id
118657 , request_id
118658 )
118659 SELECT event_id
118660 , p_target_ledger_id
118661 , p_sla_ledger_id
118662 , p_language
118663 , object_name
118664 , object_type_code
118665 , line_number
118666 , source_application_id
118667 , source_type_code
118668 , source_code
118669 , SUBSTR(source_value,1,1996)
118670 , SUBSTR(source_meaning ,1,200)
118671 , xla_environment_pkg.g_Usr_Id
118672 , TRUNC(SYSDATE)
118673 , TRUNC(SYSDATE)
118674 , xla_environment_pkg.g_Usr_Id
118675 , xla_environment_pkg.g_Login_Id
118676 , TRUNC(SYSDATE)
118677 , xla_environment_pkg.g_Prog_Appl_Id
118678 , xla_environment_pkg.g_Prog_Id
118679 , xla_environment_pkg.g_Req_Id
118680 FROM (
118681 SELECT xet.event_id event_id
118682 , l1.line_number line_number
118683 , CASE r
118684 WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118685 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118686 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
118687 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118688 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
118689 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118693 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118690 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118691 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118692 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118694 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118695 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118696 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118697 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118698 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118699 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
118700
118701 ELSE null
118702 END object_name
118703 , CASE r
118704 WHEN 1 THEN 'LINE'
118705 WHEN 2 THEN 'LINE'
118706 WHEN 3 THEN 'LINE'
118707 WHEN 4 THEN 'LINE'
118708 WHEN 5 THEN 'LINE'
118709 WHEN 6 THEN 'LINE'
118710 WHEN 7 THEN 'LINE'
118711 WHEN 8 THEN 'LINE'
118712 WHEN 9 THEN 'LINE'
118713 WHEN 10 THEN 'LINE'
118714 WHEN 11 THEN 'LINE'
118715 WHEN 12 THEN 'LINE'
118716 WHEN 13 THEN 'LINE'
118717 WHEN 14 THEN 'LINE'
118718 WHEN 15 THEN 'LINE'
118719 WHEN 16 THEN 'LINE'
118720
118721 ELSE null
118722 END object_type_code
118723 , CASE r
118724 WHEN 1 THEN '200'
118725 WHEN 2 THEN '200'
118726 WHEN 3 THEN '200'
118727 WHEN 4 THEN '200'
118728 WHEN 5 THEN '200'
118729 WHEN 6 THEN '200'
118730 WHEN 7 THEN '200'
118731 WHEN 8 THEN '200'
118732 WHEN 9 THEN '200'
118733 WHEN 10 THEN '200'
118734 WHEN 11 THEN '200'
118735 WHEN 12 THEN '200'
118736 WHEN 13 THEN '200'
118737 WHEN 14 THEN '200'
118738 WHEN 15 THEN '200'
118739 WHEN 16 THEN '200'
118740
118741 ELSE null
118742 END source_application_id
118743 , 'S' source_type_code
118744 , CASE r
118745 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
118746 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE'
118747 WHEN 3 THEN 'TAX_LINE_ID'
118748 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID'
118749 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID'
118750 WHEN 6 THEN 'UPG_ENC_CR_CCID'
118751 WHEN 7 THEN 'UPG_ENC_CR_AMT'
118752 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT'
118753 WHEN 9 THEN 'UPG_ENC_DR_CCID'
118754 WHEN 10 THEN 'UPG_ENC_DR_AMT'
118755 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT'
118756 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION'
118757 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID'
118758 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID'
118759 WHEN 15 THEN 'AID_INVOICE_DIST_ID'
118760 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID'
118761
118762 ELSE null
118763 END source_code
118764 , CASE r
118765 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
118766 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
118767 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
118768 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
118769 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
118770 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
118771 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
118772 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
118773 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
118774 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
118775 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
118776 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
118777 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
118778 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
118779 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
118780 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
118781
118782 ELSE null
118783 END source_value
118784 , null source_meaning
118785 FROM xla_events_gt xet
118786 , AP_INVOICE_EXTRACT_DETAILS_V l1
118787 , ZX_AP_DEF_TAX_EXTRACT_V l3
118788 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
118789 , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
118790 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
118791 AND xet.event_class_code = C_EVENT_CLASS_CODE
118792 AND l1.event_id = xet.event_id
118793 AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)
118794 )
118795 ;
118796 --
118797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
118798
118799 trace
118800 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
118804 END IF;
118801 ,p_level => C_LEVEL_STATEMENT
118802 ,p_module => l_log_module);
118803
118805
118806
118807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118808 trace
118809 (p_msg => 'END of insert_sources_204'
118810 ,p_level => C_LEVEL_PROCEDURE
118811 ,p_module => l_log_module);
118812 END IF;
118813 EXCEPTION
118814 WHEN xla_exceptions_pkg.application_exception THEN
118815 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
118816 trace
118817 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
118818 ,p_level => C_LEVEL_EXCEPTION
118819 ,p_module => l_log_module);
118820 END IF;
118821 RAISE;
118822 WHEN OTHERS THEN
118823 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
118824 trace
118825 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
118826 ,p_level => C_LEVEL_EXCEPTION
118827 ,p_module => l_log_module);
118828 END IF;
118829 xla_exceptions_pkg.raise_message
118830 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_204');
118831 END insert_sources_204;
118832 --
118833
118834 ---------------------------------------
118835 --
118836 -- PRIVATE FUNCTION
118837 -- EventClass_204
118838 --
118839 ----------------------------------------
118840 --
118841 FUNCTION EventClass_204
118842 (p_application_id IN NUMBER
118843 ,p_base_ledger_id IN NUMBER
118844 ,p_target_ledger_id IN NUMBER
118845 ,p_language IN VARCHAR2
118846 ,p_currency_code IN VARCHAR2
118847 ,p_sla_ledger_id IN NUMBER
118848 ,p_pad_start_date IN DATE
118849 ,p_pad_end_date IN DATE
118850 ,p_primary_ledger_id IN NUMBER)
118851 RETURN BOOLEAN IS
118852 --
118853 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS_ALL';
118854 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS';
118855
118856 l_calculate_acctd_flag VARCHAR2(1) :='N';
118857 l_calculate_g_l_flag VARCHAR2(1) :='N';
118858 --
118859 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118860 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118861 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118862 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118863 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118864 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118865 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118866 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118867 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118868 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118869 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118870 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118871 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118872 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118873 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118874 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118875 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118876 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118877 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118878 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118879 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118880 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118881 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
118882 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118883 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
118884 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
118885
118886 l_event_id NUMBER;
118887 l_previous_event_id NUMBER;
118888 l_first_event_id NUMBER;
118889 l_last_event_id NUMBER;
118890
118891 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
118892 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
118893 --
118894 --
118895 l_result BOOLEAN := TRUE;
118896 l_rows NUMBER := 1000;
118897 l_event_type_name VARCHAR2(80) := 'All';
118898 l_event_class_name VARCHAR2(80) := 'Credit Memos';
118899 l_description VARCHAR2(4000);
118900 l_transaction_reversal NUMBER;
118901 l_ae_header_id NUMBER;
118902 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
118903 l_log_module VARCHAR2(240);
118904 --
118905 l_acct_reversal_source VARCHAR2(30);
118906 l_trx_reversal_source VARCHAR2(30);
118907
118908 l_continue_with_lines BOOLEAN := TRUE;
118909 --
118910 l_acc_rev_gl_date_source DATE; -- 4262811
118911 --
118912 type t_array_event_id is table of number index by binary_integer;
118913
118917 l_actual_flag VARCHAR2(1) := NULL;
118914 l_rec_array_event t_rec_array_event;
118915 l_null_rec_array_event t_rec_array_event;
118916 l_array_ae_header_id xla_number_array_type;
118918 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
118919 l_balance_type_code VARCHAR2(1) :=NULL;
118920 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
118921
118922 --
118923 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
118924 --
118925
118926 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
118927 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
118928 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
118929 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
118930 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
118931
118932 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
118933 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
118934 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
118935 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
118936 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
118937 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
118938 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
118939 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
118940 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
118941 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
118942 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
118943 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
118944 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
118945 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
118946 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
118947 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
118948
118949 l_array_source_56 t_array_source_56;
118950 l_array_source_80 t_array_source_80;
118951 l_array_source_152 t_array_source_152;
118952 l_array_source_153 t_array_source_153;
118953 l_array_source_154 t_array_source_154;
118954
118955 l_array_source_40 t_array_source_40;
118956 l_array_source_48 t_array_source_48;
118957 l_array_source_58 t_array_source_58;
118958 l_array_source_59 t_array_source_59;
118959 l_array_source_66 t_array_source_66;
118960 l_array_source_78 t_array_source_78;
118961 l_array_source_79 t_array_source_79;
118962 l_array_source_81 t_array_source_81;
118963 l_array_source_83 t_array_source_83;
118964 l_array_source_84 t_array_source_84;
118965 l_array_source_85 t_array_source_85;
118966 l_array_source_86 t_array_source_86;
118967 l_array_source_96 t_array_source_96;
118968 l_array_source_97 t_array_source_97;
118969 l_array_source_156 t_array_source_156;
118970 l_array_source_157 t_array_source_157;
118971
118972 --
118973 CURSOR header_cur
118974 IS
118975 SELECT /*+ leading(xet) cardinality(xet,1) */
118976 -- Event Class Code: CREDIT MEMOS
118977 xet.entity_id
118978 ,xet.legal_entity_id
118979 ,xet.entity_code
118980 ,xet.transaction_number
118981 ,xet.event_id
118982 ,xet.event_class_code
118983 ,xet.event_type_code
118984 ,xet.event_number
118985 ,xet.event_date
118986 ,xet.transaction_date
118987 ,xet.reference_num_1
118988 ,xet.reference_num_2
118989 ,xet.reference_num_3
118990 ,xet.reference_num_4
118991 ,xet.reference_char_1
118992 ,xet.reference_char_2
118993 ,xet.reference_char_3
118994 ,xet.reference_char_4
118995 ,xet.reference_date_1
118996 ,xet.reference_date_2
118997 ,xet.reference_date_3
118998 ,xet.reference_date_4
118999 ,xet.event_created_by
119000 ,xet.budgetary_control_flag
119001 , h2.THIRD_PARTY_TYPE source_56
119002 , h2.AI_INVOICE_CURRENCY_CODE source_80
119003 , h2.INV_DOC_SEQUENCE_CATEGORY source_152
119004 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_153
119005 , h2.INV_DOC_SEQUENCE_VALUE source_154
119006 FROM xla_events_gt xet
119007 , AP_INVOICE_EXTRACT_HEADER_V h2
119008 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
119009 and xet.event_class_code = C_EVENT_CLASS_CODE
119010 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
119011
119012 ORDER BY event_id
119013 ;
119014
119015
119016 --
119017 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
119018 IS
119022 ,xet.legal_entity_id
119019 SELECT /*+ leading(xet) cardinality(xet,1) */
119020 -- Event Class Code: CREDIT MEMOS
119021 xet.entity_id
119023 ,xet.entity_code
119024 ,xet.transaction_number
119025 ,xet.event_id
119026 ,xet.event_class_code
119027 ,xet.event_type_code
119028 ,xet.event_number
119029 ,xet.event_date
119030 ,xet.transaction_date
119031 ,xet.reference_num_1
119032 ,xet.reference_num_2
119033 ,xet.reference_num_3
119034 ,xet.reference_num_4
119035 ,xet.reference_char_1
119036 ,xet.reference_char_2
119037 ,xet.reference_char_3
119038 ,xet.reference_char_4
119039 ,xet.reference_date_1
119040 ,xet.reference_date_2
119041 ,xet.reference_date_3
119042 ,xet.reference_date_4
119043 ,xet.event_created_by
119044 ,xet.budgetary_control_flag
119045 , l1.LINE_NUMBER
119046 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
119047 , l1.DISTRIBUTION_LINK_TYPE source_48
119048 , l3.TAX_LINE_ID source_58
119049 , l1.SUMMARY_TAX_LINE_ID source_59
119050 , l4.REC_NREC_TAX_DIST_ID source_66
119051 , l1.UPG_ENC_CR_CCID source_78
119052 , l1.UPG_ENC_CR_AMT source_79
119053 , l1.UPG_ENC_CR_BASE_AMT source_81
119054 , l1.UPG_ENC_DR_CCID source_83
119055 , l1.UPG_ENC_DR_AMT source_84
119056 , l1.UPG_ENC_DR_BASE_AMT source_85
119057 , l1.UPG_AP_ENCUM_OPTION source_86
119058 , l1.UPG_CR_ENC_TYPE_ID source_96
119059 , l1.UPG_DR_ENC_TYPE_ID source_97
119060 , l1.AID_INVOICE_DIST_ID source_156
119061 , l1.AID_PARENT_REVERSAL_ID source_157
119062 FROM xla_events_gt xet
119063 , AP_INVOICE_EXTRACT_DETAILS_V l1
119064 , ZX_AP_DEF_TAX_EXTRACT_V l3
119065 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
119066 WHERE xet.event_id between x_first_event_id and x_last_event_id
119067 and xet.event_date between p_pad_start_date and p_pad_end_date
119068 and xet.event_class_code = C_EVENT_CLASS_CODE
119069 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
119070 AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
119071
119072 --
119073 BEGIN
119074 IF g_log_enabled THEN
119075 l_log_module := C_DEFAULT_MODULE||'.EventClass_204';
119076 END IF;
119077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119078 trace
119079 (p_msg => 'BEGIN of EventClass_204'
119080 ,p_level => C_LEVEL_PROCEDURE
119081 ,p_module => l_log_module);
119082 END IF;
119083
119084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119085 trace
119086 (p_msg => 'p_application_id = '||p_application_id||
119087 ' - p_base_ledger_id = '||p_base_ledger_id||
119088 ' - p_target_ledger_id = '||p_target_ledger_id||
119089 ' - p_language = '||p_language||
119090 ' - p_currency_code = '||p_currency_code||
119091 ' - p_sla_ledger_id = '||p_sla_ledger_id
119092 ,p_level => C_LEVEL_STATEMENT
119093 ,p_module => l_log_module);
119094 END IF;
119095 --
119096 -- initialze arrays
119097 --
119098 g_array_event.DELETE;
119099 l_rec_array_event := l_null_rec_array_event;
119100 --
119101 --------------------------------------
119102 -- 4262811 Initialze MPA Line Number
119103 --------------------------------------
119104 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
119105
119106 --
119107
119108 --
119109 OPEN header_cur;
119110 --
119111 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119112 trace
119113 (p_msg => 'SQL - FETCH header_cur'
119114 ,p_level => C_LEVEL_STATEMENT
119115 ,p_module => l_log_module);
119116 END IF;
119117 --
119118 LOOP
119119 FETCH header_cur BULK COLLECT INTO
119120 l_array_entity_id
119121 , l_array_legal_entity_id
119122 , l_array_entity_code
119123 , l_array_transaction_num
119124 , l_array_event_id
119125 , l_array_class_code
119126 , l_array_event_type
119127 , l_array_event_number
119128 , l_array_event_date
119129 , l_array_transaction_date
119130 , l_array_reference_num_1
119131 , l_array_reference_num_2
119132 , l_array_reference_num_3
119133 , l_array_reference_num_4
119134 , l_array_reference_char_1
119135 , l_array_reference_char_2
119136 , l_array_reference_char_3
119137 , l_array_reference_char_4
119138 , l_array_reference_date_1
119139 , l_array_reference_date_2
119140 , l_array_reference_date_3
119141 , l_array_reference_date_4
119142 , l_array_event_created_by
119143 , l_array_budgetary_control_flag
119144 , l_array_source_56
119145 , l_array_source_80
119146 , l_array_source_152
119147 , l_array_source_153
119148 , l_array_source_154
119149 LIMIT l_rows;
119150 --
119151 IF (C_LEVEL_EVENT >= g_log_level) THEN
119152 trace
119153 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
119154 ,p_level => C_LEVEL_EVENT
119155 ,p_module => l_log_module);
119156 END IF;
119157 --
119158 EXIT WHEN l_array_entity_id.COUNT = 0;
119159
119160 -- initialize arrays
119161 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
119162 XLA_AE_LINES_PKG.g_rec_lines := NULL;
119163
119164 --
119165 -- Bug 4458708
119166 --
119167 XLA_AE_LINES_PKG.g_LineNumber := 0;
119168
119169
119173 -- loop for the headers. Each iteration is for each header extract row
119170 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
119171 g_last_hdr_idx := l_array_event_id.LAST;
119172 --
119174 -- fetched in header cursor
119175 --
119176 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
119177
119178 --
119179 -- set event info as cache for other routines to refer event attributes
119180 --
119181 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
119182 (p_application_id => p_application_id
119183 ,p_primary_ledger_id => p_primary_ledger_id
119184 ,p_base_ledger_id => p_base_ledger_id
119185 ,p_target_ledger_id => p_target_ledger_id
119186 ,p_entity_id => l_array_entity_id(hdr_idx)
119187 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
119188 ,p_entity_code => l_array_entity_code(hdr_idx)
119189 ,p_transaction_num => l_array_transaction_num(hdr_idx)
119190 ,p_event_id => l_array_event_id(hdr_idx)
119191 ,p_event_class_code => l_array_class_code(hdr_idx)
119192 ,p_event_type_code => l_array_event_type(hdr_idx)
119193 ,p_event_number => l_array_event_number(hdr_idx)
119194 ,p_event_date => l_array_event_date(hdr_idx)
119195 ,p_transaction_date => l_array_transaction_date(hdr_idx)
119196 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
119197 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
119198 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
119199 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
119200 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
119201 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
119202 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
119203 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
119204 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
119205 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
119206 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
119207 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
119208 ,p_event_created_by => l_array_event_created_by(hdr_idx)
119209 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
119210
119211 --
119212 -- set the status of entry to C_VALID (0)
119213 --
119214 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
119215
119216 --
119217 -- initialize a row for ae header
119218 --
119219 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
119220
119221 l_event_id := l_array_event_id(hdr_idx);
119222
119223 --
119224 -- storing the hdr_idx for event. May be used by line cursor.
119225 --
119226 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
119227
119228 --
119229 -- store sources from header extract. This can be improved to
119230 -- store only those sources from header extract that may be used in lines
119231 --
119232
119233 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
119234 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
119235 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
119236 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
119237 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
119238
119239 --
119240 -- initilaize the status of ae headers for diffrent balance types
119241 -- the status is initialised to C_NOT_CREATED (2)
119242 --
119243 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
119244 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
119245 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
119246
119247 --
119248 -- call api to validate and store accounting attributes for header
119249 --
119250
119251 ------------------------------------------------------------
119252 -- Accrual Reversal : to get date for Standard Source (NONE)
119253 ------------------------------------------------------------
119254 l_acc_rev_gl_date_source := NULL;
119255
119256 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
119257 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
119258 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
119259 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
119260 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
119261 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
119262 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
119263 l_rec_acct_attrs.array_date_value(4) :=
119264 xla_ae_sources_pkg.GetSystemSourceDate(
119265 p_source_code => 'XLA_EVENT_DATE'
119266 , p_source_type_code => 'Y'
119267 , p_source_application_id => 602
119268 );
119269
119270
119271 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
119272
119273 XLA_AE_HEADER_PKG.SetJeCategoryName;
119274
119275 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
119276 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
119277 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
119281
119278 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
119279 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
119280
119282 -- No header level analytical criteria
119283
119284 --
119285 --accounting attribute enhancement, bug 3612931
119286 --
119287 l_trx_reversal_source := SUBSTR(NULL, 1,30);
119288
119289 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
119290 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
119291
119292 xla_accounting_err_pkg.build_message
119293 (p_appli_s_name => 'XLA'
119294 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
119295 ,p_token_1 => 'ACCT_ATTR_NAME'
119296 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
119297 ,p_token_2 => 'PRODUCT_NAME'
119298 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
119299 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
119300 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
119301 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
119302
119303 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
119304 --
119305 -- following sets the accounting attributes needed to reverse
119306 -- accounting for a distributeion
119307 --
119308 xla_ae_lines_pkg.SetTrxReversalAttrs
119309 (p_event_id => l_event_id
119310 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
119311 ,p_trx_reversal_source => l_trx_reversal_source);
119312
119313 END IF;
119314
119315
119316 ----------------------------------------------------------------
119317 -- 4262811 - update the header statuses to invalid in need be
119318 ----------------------------------------------------------------
119319 --
119320 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
119321
119322
119323 -----------------------------------------------
119324 -- No accrual reversal for the event class/type
119325 -----------------------------------------------
119326 ----------------------------------------------------------------
119327
119328 --
119329 -- this ends the header loop iteration for one bulk fetch
119330 --
119331 END LOOP;
119332
119333 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
119334 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
119335
119336 --
119337 -- insert dummy rows into lines gt table that were created due to
119338 -- transaction reversals
119339 --
119340 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
119341 l_result := XLA_AE_LINES_PKG.InsertLines;
119342 END IF;
119343
119344 --
119345 -- reset the temp_line_num for each set of events fetched from header
119346 -- cursor rather than doing it for each new event in line cursor
119347 -- Bug 3939231
119348 --
119349 xla_ae_lines_pkg.g_temp_line_num := 0;
119350
119351
119352
119353 --
119354 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
119355 --
119356 --
119357 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119358
119359 trace
119360 (p_msg => 'SQL - FETCH line_cur'
119361 ,p_level => C_LEVEL_STATEMENT
119362 ,p_module => l_log_module);
119363
119364 END IF;
119365 --
119366 --
119367 LOOP
119368 --
119369 FETCH line_cur BULK COLLECT INTO
119370 l_array_entity_id
119371 , l_array_legal_entity_id
119372 , l_array_entity_code
119373 , l_array_transaction_num
119374 , l_array_event_id
119375 , l_array_class_code
119376 , l_array_event_type
119377 , l_array_event_number
119378 , l_array_event_date
119379 , l_array_transaction_date
119380 , l_array_reference_num_1
119381 , l_array_reference_num_2
119382 , l_array_reference_num_3
119383 , l_array_reference_num_4
119384 , l_array_reference_char_1
119385 , l_array_reference_char_2
119386 , l_array_reference_char_3
119387 , l_array_reference_char_4
119388 , l_array_reference_date_1
119389 , l_array_reference_date_2
119390 , l_array_reference_date_3
119391 , l_array_reference_date_4
119392 , l_array_event_created_by
119393 , l_array_budgetary_control_flag
119394 , l_array_extract_line_num
119395 , l_array_source_40
119396 , l_array_source_48
119397 , l_array_source_58
119398 , l_array_source_59
119399 , l_array_source_66
119400 , l_array_source_78
119401 , l_array_source_79
119402 , l_array_source_81
119403 , l_array_source_83
119404 , l_array_source_84
119405 , l_array_source_85
119406 , l_array_source_86
119407 , l_array_source_96
119408 , l_array_source_97
119409 , l_array_source_156
119410 , l_array_source_157
119411 LIMIT l_rows;
119412
119413 --
119414 IF (C_LEVEL_EVENT >= g_log_level) THEN
119415 trace
119416 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
119417 ,p_level => C_LEVEL_EVENT
119421 EXIT WHEN l_array_entity_id.count = 0;
119418 ,p_module => l_log_module);
119419 END IF;
119420 --
119422
119423 XLA_AE_LINES_PKG.g_rec_lines := null;
119424
119425 --
119426 -- Bug 4458708
119427 --
119428 XLA_AE_LINES_PKG.g_LineNumber := 0;
119429 --
119430 --
119431
119432 FOR Idx IN 1..l_array_event_id.count LOOP
119433 --
119434 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
119435 --
119436 l_event_id := l_array_event_id(idx); -- 5648433
119437
119438 --
119439 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
119440 --
119441
119442 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
119443 (g_array_event(l_event_id).array_value_num('header_index'))
119444 ,'N'
119445 ) <> 'Y'
119446 THEN
119447 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119448 trace
119449 (p_msg => 'Trancaction revesal option is not Y '
119450 ,p_level => C_LEVEL_STATEMENT
119451 ,p_module => l_log_module);
119452 END IF;
119453
119454 --
119455 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
119456 --
119457 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
119458 --
119459 -- set event info as cache for other routines to refer event attributes
119460 --
119461
119462 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
119463 l_previous_event_id := l_event_id;
119464
119465 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
119466 (p_application_id => p_application_id
119467 ,p_primary_ledger_id => p_primary_ledger_id
119468 ,p_base_ledger_id => p_base_ledger_id
119469 ,p_target_ledger_id => p_target_ledger_id
119470 ,p_entity_id => l_array_entity_id(Idx)
119471 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
119472 ,p_entity_code => l_array_entity_code(Idx)
119473 ,p_transaction_num => l_array_transaction_num(Idx)
119474 ,p_event_id => l_array_event_id(Idx)
119475 ,p_event_class_code => l_array_class_code(Idx)
119476 ,p_event_type_code => l_array_event_type(Idx)
119477 ,p_event_number => l_array_event_number(Idx)
119478 ,p_event_date => l_array_event_date(Idx)
119479 ,p_transaction_date => l_array_transaction_date(Idx)
119480 ,p_reference_num_1 => l_array_reference_num_1(Idx)
119481 ,p_reference_num_2 => l_array_reference_num_2(Idx)
119482 ,p_reference_num_3 => l_array_reference_num_3(Idx)
119483 ,p_reference_num_4 => l_array_reference_num_4(Idx)
119484 ,p_reference_char_1 => l_array_reference_char_1(Idx)
119485 ,p_reference_char_2 => l_array_reference_char_2(Idx)
119486 ,p_reference_char_3 => l_array_reference_char_3(Idx)
119487 ,p_reference_char_4 => l_array_reference_char_4(Idx)
119488 ,p_reference_date_1 => l_array_reference_date_1(Idx)
119489 ,p_reference_date_2 => l_array_reference_date_2(Idx)
119490 ,p_reference_date_3 => l_array_reference_date_3(Idx)
119491 ,p_reference_date_4 => l_array_reference_date_4(Idx)
119492 ,p_event_created_by => l_array_event_created_by(Idx)
119493 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
119494 --
119495 END IF;
119496
119497
119498
119499 --
119500 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
119501
119502 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
119503
119504 IF l_continue_with_lines THEN
119505 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
119506 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
119507
119508 xla_accounting_err_pkg.build_message
119509 (p_appli_s_name => 'XLA'
119510 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
119511 ,p_token_1 => 'LINE_NUMBER'
119512 ,p_value_1 => l_array_extract_line_num(Idx)
119513 ,p_token_2 => 'PRODUCT_NAME'
119514 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
119515 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
119516 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
119517 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
119518
119519 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
119520 --
119521 -- following sets the accounting attributes needed to reverse
119522 -- accounting for a distributeion
119523 --
119524
119525 --
119526 -- 5217187
119527 --
119528 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
119529 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
119530 g_array_event(l_event_id).array_value_num('header_index'));
119531 --
119532 --
119533
119534 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
119535 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
119539 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
119536 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
119537 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
119538 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
119540 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
119541 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_78(Idx);
119542 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
119543 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_79(Idx);
119544 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
119545 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_80');
119546 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
119547 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_81(Idx);
119548 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
119549 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_83(Idx);
119550 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
119551 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_84(Idx);
119552 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
119553 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_80');
119554 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
119555 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_85(Idx);
119556 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
119557 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_86(Idx);
119558 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
119559 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_56');
119560 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
119561 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_157(Idx);
119562 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
119563 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_48(Idx);
119564 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
119565 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_58(Idx);
119566 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
119567 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_66(Idx);
119568 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
119569 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_59(Idx);
119570 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
119571 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_96(Idx);
119572 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
119573 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_97(Idx);
119574
119575
119576 xla_ae_lines_pkg.SetAcctReversalAttrs
119577 (p_event_id => l_event_id
119578 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
119579 ,p_calculate_acctd_flag => l_calculate_acctd_flag
119580 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
119581 END IF;
119582
119583 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
119584 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
119585 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
119586 -- or secondary ledger that has different currency with primary
119587 -- or alc that is calculated by sla
119588 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
119589 (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'))
119590
119591 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
119592 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
119593 AND (l_actual_flag = 'A')) THEN
119594 XLA_AE_LINES_PKG.CreateGainOrLossLines(
119595 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
119596 ,p_application_id => p_application_id
119597 ,p_amb_context_code => 'DEFAULT'
119598 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
119599 ,p_event_class_code => C_EVENT_CLASS_CODE
119600 ,p_event_type_code => C_EVENT_TYPE_CODE
119601
119602 ,p_gain_ccid => -1
119603 ,p_loss_ccid => -1
119604
119605 ,p_actual_flag => l_actual_flag
119606 ,p_enc_flag => null
119607 ,p_actual_g_l_ref => l_actual_gain_loss_ref
119608 ,p_enc_g_l_ref => null
119609 );
119610 END IF;
119611 END IF;
119612 END IF;
119613
119614 ELSE
119615 --
119616 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
119617 --
119618 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119619 trace
119620 (p_msg => 'Trancaction revesal option is Y'
119621 ,p_level => C_LEVEL_STATEMENT
119622 ,p_module => l_log_module);
119623 END IF;
119624 END IF;
119625
119626 END LOOP;
119627 l_result := XLA_AE_LINES_PKG.InsertLines ;
119628 end loop;
119629 close line_cur;
119630
119634 --
119631
119632 --
119633 -- insert headers into xla_ae_headers_gt table
119635 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
119636
119637 -- insert into errors table here.
119638
119639 END LOOP;
119640
119641 --
119642 -- 4865292
119643 --
119644 -- Compare g_hdr_extract_count with event count in
119645 -- CreateHeadersAndLines.
119646 --
119647 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
119648
119649 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119650 trace (p_msg => '# rows extracted from header extract objects '
119651 || ' (running total): '
119652 || g_hdr_extract_count
119653 ,p_level => C_LEVEL_STATEMENT
119654 ,p_module => l_log_module);
119655 END IF;
119656
119657 CLOSE header_cur;
119658 --
119659
119660 --
119661 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119662 trace
119663 (p_msg => 'END of EventClass_204'
119664 ,p_level => C_LEVEL_PROCEDURE
119665 ,p_module => l_log_module);
119666 END IF;
119667 --
119668 RETURN l_result;
119669 EXCEPTION
119670 WHEN xla_exceptions_pkg.application_exception THEN
119671
119672 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
119673
119674
119675 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
119676
119677 RAISE;
119678
119679 WHEN NO_DATA_FOUND THEN
119680
119681 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
119682 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
119683
119684 FOR header_record IN header_cur
119685 LOOP
119686 l_array_header_events(header_record.event_id) := header_record.event_id;
119687 END LOOP;
119688
119689 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
119690 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
119691
119692 fnd_file.put_line(fnd_file.LOG, ' ');
119693 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
119694 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
119695 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
119696
119697 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
119698 LOOP
119699 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
119700 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
119701 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
119702 END IF;
119703 END LOOP;
119704
119705 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
119706 fnd_file.put_line(fnd_file.LOG, ' ');
119707
119708
119709 xla_exceptions_pkg.raise_message
119710 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_204');
119711
119712
119713 WHEN OTHERS THEN
119714 xla_exceptions_pkg.raise_message
119715 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_204');
119716 END EventClass_204;
119717 --
119718
119719 ---------------------------------------
119720 --
119721 -- PRIVATE PROCEDURE
119722 -- insert_sources_205
119723 --
119724 ----------------------------------------
119725 --
119726 PROCEDURE insert_sources_205(
119727 p_target_ledger_id IN NUMBER
119728 , p_language IN VARCHAR2
119729 , p_sla_ledger_id IN NUMBER
119730 , p_pad_start_date IN DATE
119731 , p_pad_end_date IN DATE
119732 )
119733 IS
119734
119735 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS_ALL';
119736 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS';
119737 p_apps_owner VARCHAR2(30);
119738 l_log_module VARCHAR2(240);
119739 BEGIN
119740 IF g_log_enabled THEN
119741 l_log_module := C_DEFAULT_MODULE||'.insert_sources_205';
119742 END IF;
119743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119744
119745 trace
119746 (p_msg => 'BEGIN of insert_sources_205'
119747 ,p_level => C_LEVEL_PROCEDURE
119748 ,p_module => l_log_module);
119749
119750 END IF;
119751
119752 -- select APPS owner
119753 SELECT oracle_username
119754 INTO p_apps_owner
119755 FROM fnd_oracle_userid
119756 WHERE read_only_flag = 'U'
119757 ;
119758
119759 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119760 trace
119761 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
119762 ' - p_language = '||p_language||
119763 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
119764 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
119765 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
119766 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
119767 ,p_level => C_LEVEL_STATEMENT
119768 ,p_module => l_log_module);
119769 END IF;
119770
119771
119772 --
119773 INSERT INTO xla_diag_sources --hdr2
119774 (
119775 event_id
119776 , ledger_id
119777 , sla_ledger_id
119778 , description_language
119779 , object_name
119780 , object_type_code
119784 , source_code
119781 , line_number
119782 , source_application_id
119783 , source_type_code
119785 , source_value
119786 , source_meaning
119787 , created_by
119788 , creation_date
119789 , last_update_date
119790 , last_updated_by
119791 , last_update_login
119792 , program_update_date
119793 , program_application_id
119794 , program_id
119795 , request_id
119796 )
119797 SELECT
119798 event_id
119799 , p_target_ledger_id
119800 , p_sla_ledger_id
119801 , p_language
119802 , object_name
119803 , object_type_code
119804 , line_number
119805 , source_application_id
119806 , source_type_code
119807 , source_code
119808 , SUBSTR(source_value ,1,1996)
119809 , SUBSTR(source_meaning ,1,200)
119810 , xla_environment_pkg.g_Usr_Id
119811 , TRUNC(SYSDATE)
119812 , TRUNC(SYSDATE)
119813 , xla_environment_pkg.g_Usr_Id
119814 , xla_environment_pkg.g_Login_Id
119815 , TRUNC(SYSDATE)
119816 , xla_environment_pkg.g_Prog_Appl_Id
119817 , xla_environment_pkg.g_Prog_Id
119818 , xla_environment_pkg.g_Req_Id
119819 FROM (
119820 SELECT xet.event_id event_id
119821 , 0 line_number
119822 , CASE r
119823 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
119824 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
119825 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
119826 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
119827 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
119828
119829 ELSE null
119830 END object_name
119831 , CASE r
119832 WHEN 1 THEN 'HEADER'
119833 WHEN 2 THEN 'HEADER'
119834 WHEN 3 THEN 'HEADER'
119835 WHEN 4 THEN 'HEADER'
119836 WHEN 5 THEN 'HEADER'
119837
119838 ELSE null
119839 END object_type_code
119840 , CASE r
119841 WHEN 1 THEN '200'
119842 WHEN 2 THEN '200'
119843 WHEN 3 THEN '200'
119844 WHEN 4 THEN '200'
119845 WHEN 5 THEN '200'
119846
119847 ELSE null
119848 END source_application_id
119849 , 'S' source_type_code
119850 , CASE r
119851 WHEN 1 THEN 'THIRD_PARTY_TYPE'
119852 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
119853 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY'
119854 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
119855 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE'
119856
119857 ELSE null
119858 END source_code
119859 , CASE r
119860 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
119861 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
119862 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
119863 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
119864 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
119865
119866 ELSE null
119867 END source_value
119868 , null source_meaning
119869 FROM xla_events_gt xet
119870 , AP_INVOICE_EXTRACT_HEADER_V h2
119871 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
119872 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
119873 AND xet.event_class_code = C_EVENT_CLASS_CODE
119874 AND h2.event_id = xet.event_id
119875
119876 )
119877 ;
119878 --
119879 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119880
119881 trace
119882 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
119883 ,p_level => C_LEVEL_STATEMENT
119884 ,p_module => l_log_module);
119885
119886 END IF;
119887 --
119888
119889
119890
119891 --
119892 INSERT INTO xla_diag_sources --line2
119893 (
119894 event_id
119895 , ledger_id
119896 , sla_ledger_id
119897 , description_language
119898 , object_name
119899 , object_type_code
119900 , line_number
119901 , source_application_id
119902 , source_type_code
119903 , source_code
119904 , source_value
119905 , source_meaning
119906 , created_by
119907 , creation_date
119908 , last_update_date
119909 , last_updated_by
119910 , last_update_login
119911 , program_update_date
119912 , program_application_id
119913 , program_id
119914 , request_id
119915 )
119916 SELECT event_id
119917 , p_target_ledger_id
119918 , p_sla_ledger_id
119919 , p_language
119920 , object_name
119921 , object_type_code
119922 , line_number
119923 , source_application_id
119924 , source_type_code
119925 , source_code
119926 , SUBSTR(source_value,1,1996)
119927 , SUBSTR(source_meaning ,1,200)
119928 , xla_environment_pkg.g_Usr_Id
119932 , xla_environment_pkg.g_Login_Id
119929 , TRUNC(SYSDATE)
119930 , TRUNC(SYSDATE)
119931 , xla_environment_pkg.g_Usr_Id
119933 , TRUNC(SYSDATE)
119934 , xla_environment_pkg.g_Prog_Appl_Id
119935 , xla_environment_pkg.g_Prog_Id
119936 , xla_environment_pkg.g_Req_Id
119937 FROM (
119938 SELECT xet.event_id event_id
119939 , l1.line_number line_number
119940 , CASE r
119941 WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119942 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119943 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
119944 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119945 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
119946 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119947 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119948 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119949 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119950 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119951 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119952 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119953 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119954 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119955 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119956 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
119957
119958 ELSE null
119959 END object_name
119960 , CASE r
119961 WHEN 1 THEN 'LINE'
119962 WHEN 2 THEN 'LINE'
119963 WHEN 3 THEN 'LINE'
119964 WHEN 4 THEN 'LINE'
119965 WHEN 5 THEN 'LINE'
119966 WHEN 6 THEN 'LINE'
119967 WHEN 7 THEN 'LINE'
119968 WHEN 8 THEN 'LINE'
119969 WHEN 9 THEN 'LINE'
119970 WHEN 10 THEN 'LINE'
119971 WHEN 11 THEN 'LINE'
119972 WHEN 12 THEN 'LINE'
119973 WHEN 13 THEN 'LINE'
119974 WHEN 14 THEN 'LINE'
119975 WHEN 15 THEN 'LINE'
119976 WHEN 16 THEN 'LINE'
119977
119978 ELSE null
119979 END object_type_code
119980 , CASE r
119981 WHEN 1 THEN '200'
119982 WHEN 2 THEN '200'
119983 WHEN 3 THEN '200'
119984 WHEN 4 THEN '200'
119985 WHEN 5 THEN '200'
119986 WHEN 6 THEN '200'
119987 WHEN 7 THEN '200'
119988 WHEN 8 THEN '200'
119989 WHEN 9 THEN '200'
119990 WHEN 10 THEN '200'
119991 WHEN 11 THEN '200'
119992 WHEN 12 THEN '200'
119993 WHEN 13 THEN '200'
119994 WHEN 14 THEN '200'
119995 WHEN 15 THEN '200'
119996 WHEN 16 THEN '200'
119997
119998 ELSE null
119999 END source_application_id
120000 , 'S' source_type_code
120001 , CASE r
120002 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
120003 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE'
120004 WHEN 3 THEN 'TAX_LINE_ID'
120005 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID'
120006 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID'
120007 WHEN 6 THEN 'UPG_ENC_CR_CCID'
120008 WHEN 7 THEN 'UPG_ENC_CR_AMT'
120009 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT'
120010 WHEN 9 THEN 'UPG_ENC_DR_CCID'
120011 WHEN 10 THEN 'UPG_ENC_DR_AMT'
120012 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT'
120013 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION'
120014 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID'
120015 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID'
120016 WHEN 15 THEN 'AID_INVOICE_DIST_ID'
120017 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID'
120018
120019 ELSE null
120020 END source_code
120021 , CASE r
120022 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
120023 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
120024 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
120025 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
120026 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
120027 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
120028 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
120029 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
120030 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
120031 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
120032 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
120033 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
120034 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
120035 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
120036 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
120037 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
120038
120039 ELSE null
120040 END source_value
120041 , null source_meaning
120042 FROM xla_events_gt xet
120046 , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
120043 , AP_INVOICE_EXTRACT_DETAILS_V l1
120044 , ZX_AP_DEF_TAX_EXTRACT_V l3
120045 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
120047 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
120048 AND xet.event_class_code = C_EVENT_CLASS_CODE
120049 AND l1.event_id = xet.event_id
120050 AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)
120051 )
120052 ;
120053 --
120054 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120055
120056 trace
120057 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
120058 ,p_level => C_LEVEL_STATEMENT
120059 ,p_module => l_log_module);
120060
120061 END IF;
120062
120063
120064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120065 trace
120066 (p_msg => 'END of insert_sources_205'
120067 ,p_level => C_LEVEL_PROCEDURE
120068 ,p_module => l_log_module);
120069 END IF;
120070 EXCEPTION
120071 WHEN xla_exceptions_pkg.application_exception THEN
120072 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
120073 trace
120074 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
120075 ,p_level => C_LEVEL_EXCEPTION
120076 ,p_module => l_log_module);
120077 END IF;
120078 RAISE;
120079 WHEN OTHERS THEN
120080 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
120081 trace
120082 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
120083 ,p_level => C_LEVEL_EXCEPTION
120084 ,p_module => l_log_module);
120085 END IF;
120086 xla_exceptions_pkg.raise_message
120087 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_205');
120088 END insert_sources_205;
120089 --
120090
120091 ---------------------------------------
120092 --
120093 -- PRIVATE FUNCTION
120094 -- EventClass_205
120095 --
120096 ----------------------------------------
120097 --
120098 FUNCTION EventClass_205
120099 (p_application_id IN NUMBER
120100 ,p_base_ledger_id IN NUMBER
120101 ,p_target_ledger_id IN NUMBER
120102 ,p_language IN VARCHAR2
120103 ,p_currency_code IN VARCHAR2
120104 ,p_sla_ledger_id IN NUMBER
120105 ,p_pad_start_date IN DATE
120106 ,p_pad_end_date IN DATE
120107 ,p_primary_ledger_id IN NUMBER)
120108 RETURN BOOLEAN IS
120109 --
120110 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS_ALL';
120111 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS';
120112
120113 l_calculate_acctd_flag VARCHAR2(1) :='N';
120114 l_calculate_g_l_flag VARCHAR2(1) :='N';
120115 --
120116 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120117 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120118 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120119 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120120 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120121 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120122 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120123 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120124 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120125 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120126 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120127 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120128 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120129 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120130 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120131 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120132 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120133 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120134 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120135 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120136 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120137 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120138 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
120139 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120140 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
120141 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
120142
120143 l_event_id NUMBER;
120144 l_previous_event_id NUMBER;
120145 l_first_event_id NUMBER;
120146 l_last_event_id NUMBER;
120147
120148 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
120149 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
120150 --
120151 --
120152 l_result BOOLEAN := TRUE;
120153 l_rows NUMBER := 1000;
120154 l_event_type_name VARCHAR2(80) := 'All';
120158 l_ae_header_id NUMBER;
120155 l_event_class_name VARCHAR2(80) := 'Debit Memos';
120156 l_description VARCHAR2(4000);
120157 l_transaction_reversal NUMBER;
120159 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
120160 l_log_module VARCHAR2(240);
120161 --
120162 l_acct_reversal_source VARCHAR2(30);
120163 l_trx_reversal_source VARCHAR2(30);
120164
120165 l_continue_with_lines BOOLEAN := TRUE;
120166 --
120167 l_acc_rev_gl_date_source DATE; -- 4262811
120168 --
120169 type t_array_event_id is table of number index by binary_integer;
120170
120171 l_rec_array_event t_rec_array_event;
120172 l_null_rec_array_event t_rec_array_event;
120173 l_array_ae_header_id xla_number_array_type;
120174 l_actual_flag VARCHAR2(1) := NULL;
120175 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
120176 l_balance_type_code VARCHAR2(1) :=NULL;
120177 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
120178
120179 --
120180 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
120181 --
120182
120183 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
120184 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
120185 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
120186 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
120187 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
120188
120189 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
120190 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
120191 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
120192 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
120193 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
120194 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
120195 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
120196 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
120197 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
120198 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
120199 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
120200 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
120201 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
120202 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
120203 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
120204 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
120205
120206 l_array_source_56 t_array_source_56;
120207 l_array_source_80 t_array_source_80;
120208 l_array_source_152 t_array_source_152;
120209 l_array_source_153 t_array_source_153;
120210 l_array_source_154 t_array_source_154;
120211
120212 l_array_source_40 t_array_source_40;
120213 l_array_source_48 t_array_source_48;
120214 l_array_source_58 t_array_source_58;
120215 l_array_source_59 t_array_source_59;
120216 l_array_source_66 t_array_source_66;
120217 l_array_source_78 t_array_source_78;
120218 l_array_source_79 t_array_source_79;
120219 l_array_source_81 t_array_source_81;
120220 l_array_source_83 t_array_source_83;
120221 l_array_source_84 t_array_source_84;
120222 l_array_source_85 t_array_source_85;
120223 l_array_source_86 t_array_source_86;
120224 l_array_source_96 t_array_source_96;
120225 l_array_source_97 t_array_source_97;
120226 l_array_source_156 t_array_source_156;
120227 l_array_source_157 t_array_source_157;
120228
120229 --
120230 CURSOR header_cur
120231 IS
120232 SELECT /*+ leading(xet) cardinality(xet,1) */
120233 -- Event Class Code: DEBIT MEMOS
120234 xet.entity_id
120235 ,xet.legal_entity_id
120236 ,xet.entity_code
120237 ,xet.transaction_number
120238 ,xet.event_id
120239 ,xet.event_class_code
120240 ,xet.event_type_code
120241 ,xet.event_number
120242 ,xet.event_date
120243 ,xet.transaction_date
120244 ,xet.reference_num_1
120245 ,xet.reference_num_2
120246 ,xet.reference_num_3
120247 ,xet.reference_num_4
120248 ,xet.reference_char_1
120249 ,xet.reference_char_2
120250 ,xet.reference_char_3
120251 ,xet.reference_char_4
120252 ,xet.reference_date_1
120253 ,xet.reference_date_2
120254 ,xet.reference_date_3
120255 ,xet.reference_date_4
120256 ,xet.event_created_by
120260 , h2.INV_DOC_SEQUENCE_CATEGORY source_152
120257 ,xet.budgetary_control_flag
120258 , h2.THIRD_PARTY_TYPE source_56
120259 , h2.AI_INVOICE_CURRENCY_CODE source_80
120261 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_153
120262 , h2.INV_DOC_SEQUENCE_VALUE source_154
120263 FROM xla_events_gt xet
120264 , AP_INVOICE_EXTRACT_HEADER_V h2
120265 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
120266 and xet.event_class_code = C_EVENT_CLASS_CODE
120267 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
120268
120269 ORDER BY event_id
120270 ;
120271
120272
120273 --
120274 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
120275 IS
120276 SELECT /*+ leading(xet) cardinality(xet,1) */
120277 -- Event Class Code: DEBIT MEMOS
120278 xet.entity_id
120279 ,xet.legal_entity_id
120280 ,xet.entity_code
120281 ,xet.transaction_number
120282 ,xet.event_id
120283 ,xet.event_class_code
120284 ,xet.event_type_code
120285 ,xet.event_number
120286 ,xet.event_date
120287 ,xet.transaction_date
120288 ,xet.reference_num_1
120289 ,xet.reference_num_2
120290 ,xet.reference_num_3
120291 ,xet.reference_num_4
120292 ,xet.reference_char_1
120293 ,xet.reference_char_2
120294 ,xet.reference_char_3
120295 ,xet.reference_char_4
120296 ,xet.reference_date_1
120297 ,xet.reference_date_2
120298 ,xet.reference_date_3
120299 ,xet.reference_date_4
120300 ,xet.event_created_by
120301 ,xet.budgetary_control_flag
120302 , l1.LINE_NUMBER
120303 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
120304 , l1.DISTRIBUTION_LINK_TYPE source_48
120305 , l3.TAX_LINE_ID source_58
120306 , l1.SUMMARY_TAX_LINE_ID source_59
120307 , l4.REC_NREC_TAX_DIST_ID source_66
120308 , l1.UPG_ENC_CR_CCID source_78
120309 , l1.UPG_ENC_CR_AMT source_79
120310 , l1.UPG_ENC_CR_BASE_AMT source_81
120311 , l1.UPG_ENC_DR_CCID source_83
120312 , l1.UPG_ENC_DR_AMT source_84
120313 , l1.UPG_ENC_DR_BASE_AMT source_85
120314 , l1.UPG_AP_ENCUM_OPTION source_86
120315 , l1.UPG_CR_ENC_TYPE_ID source_96
120316 , l1.UPG_DR_ENC_TYPE_ID source_97
120317 , l1.AID_INVOICE_DIST_ID source_156
120318 , l1.AID_PARENT_REVERSAL_ID source_157
120319 FROM xla_events_gt xet
120320 , AP_INVOICE_EXTRACT_DETAILS_V l1
120321 , ZX_AP_DEF_TAX_EXTRACT_V l3
120322 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
120323 WHERE xet.event_id between x_first_event_id and x_last_event_id
120324 and xet.event_date between p_pad_start_date and p_pad_end_date
120325 and xet.event_class_code = C_EVENT_CLASS_CODE
120326 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
120327 AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
120328
120329 --
120330 BEGIN
120331 IF g_log_enabled THEN
120332 l_log_module := C_DEFAULT_MODULE||'.EventClass_205';
120333 END IF;
120334 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120335 trace
120336 (p_msg => 'BEGIN of EventClass_205'
120337 ,p_level => C_LEVEL_PROCEDURE
120338 ,p_module => l_log_module);
120339 END IF;
120340
120341 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120342 trace
120343 (p_msg => 'p_application_id = '||p_application_id||
120344 ' - p_base_ledger_id = '||p_base_ledger_id||
120345 ' - p_target_ledger_id = '||p_target_ledger_id||
120346 ' - p_language = '||p_language||
120347 ' - p_currency_code = '||p_currency_code||
120348 ' - p_sla_ledger_id = '||p_sla_ledger_id
120349 ,p_level => C_LEVEL_STATEMENT
120350 ,p_module => l_log_module);
120351 END IF;
120352 --
120353 -- initialze arrays
120354 --
120355 g_array_event.DELETE;
120356 l_rec_array_event := l_null_rec_array_event;
120357 --
120358 --------------------------------------
120359 -- 4262811 Initialze MPA Line Number
120360 --------------------------------------
120361 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
120362
120363 --
120364
120365 --
120366 OPEN header_cur;
120367 --
120368 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120369 trace
120370 (p_msg => 'SQL - FETCH header_cur'
120371 ,p_level => C_LEVEL_STATEMENT
120372 ,p_module => l_log_module);
120373 END IF;
120374 --
120375 LOOP
120376 FETCH header_cur BULK COLLECT INTO
120377 l_array_entity_id
120378 , l_array_legal_entity_id
120379 , l_array_entity_code
120380 , l_array_transaction_num
120381 , l_array_event_id
120382 , l_array_class_code
120383 , l_array_event_type
120384 , l_array_event_number
120385 , l_array_event_date
120386 , l_array_transaction_date
120387 , l_array_reference_num_1
120388 , l_array_reference_num_2
120389 , l_array_reference_num_3
120390 , l_array_reference_num_4
120391 , l_array_reference_char_1
120392 , l_array_reference_char_2
120393 , l_array_reference_char_3
120394 , l_array_reference_char_4
120395 , l_array_reference_date_1
120396 , l_array_reference_date_2
120397 , l_array_reference_date_3
120398 , l_array_reference_date_4
120399 , l_array_event_created_by
120400 , l_array_budgetary_control_flag
120401 , l_array_source_56
120405 , l_array_source_154
120402 , l_array_source_80
120403 , l_array_source_152
120404 , l_array_source_153
120406 LIMIT l_rows;
120407 --
120408 IF (C_LEVEL_EVENT >= g_log_level) THEN
120409 trace
120410 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
120411 ,p_level => C_LEVEL_EVENT
120412 ,p_module => l_log_module);
120413 END IF;
120414 --
120415 EXIT WHEN l_array_entity_id.COUNT = 0;
120416
120417 -- initialize arrays
120418 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
120419 XLA_AE_LINES_PKG.g_rec_lines := NULL;
120420
120421 --
120422 -- Bug 4458708
120423 --
120424 XLA_AE_LINES_PKG.g_LineNumber := 0;
120425
120426
120427 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
120428 g_last_hdr_idx := l_array_event_id.LAST;
120429 --
120430 -- loop for the headers. Each iteration is for each header extract row
120431 -- fetched in header cursor
120432 --
120433 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
120434
120435 --
120436 -- set event info as cache for other routines to refer event attributes
120437 --
120438 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
120439 (p_application_id => p_application_id
120440 ,p_primary_ledger_id => p_primary_ledger_id
120441 ,p_base_ledger_id => p_base_ledger_id
120442 ,p_target_ledger_id => p_target_ledger_id
120443 ,p_entity_id => l_array_entity_id(hdr_idx)
120444 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
120445 ,p_entity_code => l_array_entity_code(hdr_idx)
120446 ,p_transaction_num => l_array_transaction_num(hdr_idx)
120447 ,p_event_id => l_array_event_id(hdr_idx)
120448 ,p_event_class_code => l_array_class_code(hdr_idx)
120449 ,p_event_type_code => l_array_event_type(hdr_idx)
120450 ,p_event_number => l_array_event_number(hdr_idx)
120451 ,p_event_date => l_array_event_date(hdr_idx)
120452 ,p_transaction_date => l_array_transaction_date(hdr_idx)
120453 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
120454 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
120455 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
120456 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
120457 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
120458 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
120459 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
120460 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
120461 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
120462 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
120463 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
120464 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
120465 ,p_event_created_by => l_array_event_created_by(hdr_idx)
120466 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
120467
120468 --
120469 -- set the status of entry to C_VALID (0)
120470 --
120471 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
120472
120473 --
120474 -- initialize a row for ae header
120475 --
120476 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
120477
120478 l_event_id := l_array_event_id(hdr_idx);
120479
120480 --
120481 -- storing the hdr_idx for event. May be used by line cursor.
120482 --
120483 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
120484
120485 --
120486 -- store sources from header extract. This can be improved to
120487 -- store only those sources from header extract that may be used in lines
120488 --
120489
120490 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
120491 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
120492 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
120493 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
120494 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
120495
120496 --
120497 -- initilaize the status of ae headers for diffrent balance types
120498 -- the status is initialised to C_NOT_CREATED (2)
120499 --
120500 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
120501 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
120502 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
120503
120504 --
120505 -- call api to validate and store accounting attributes for header
120506 --
120507
120508 ------------------------------------------------------------
120509 -- Accrual Reversal : to get date for Standard Source (NONE)
120510 ------------------------------------------------------------
120511 l_acc_rev_gl_date_source := NULL;
120512
120513 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
120514 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
120515 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
120516 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
120517 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
120521 xla_ae_sources_pkg.GetSystemSourceDate(
120518 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
120519 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
120520 l_rec_acct_attrs.array_date_value(4) :=
120522 p_source_code => 'XLA_EVENT_DATE'
120523 , p_source_type_code => 'Y'
120524 , p_source_application_id => 602
120525 );
120526
120527
120528 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
120529
120530 XLA_AE_HEADER_PKG.SetJeCategoryName;
120531
120532 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
120533 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
120534 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
120535 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
120536 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
120537
120538
120539 -- No header level analytical criteria
120540
120541 --
120542 --accounting attribute enhancement, bug 3612931
120543 --
120544 l_trx_reversal_source := SUBSTR(NULL, 1,30);
120545
120546 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
120547 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
120548
120549 xla_accounting_err_pkg.build_message
120550 (p_appli_s_name => 'XLA'
120551 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
120552 ,p_token_1 => 'ACCT_ATTR_NAME'
120553 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
120554 ,p_token_2 => 'PRODUCT_NAME'
120555 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
120556 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
120557 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
120558 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
120559
120560 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
120561 --
120562 -- following sets the accounting attributes needed to reverse
120563 -- accounting for a distributeion
120564 --
120565 xla_ae_lines_pkg.SetTrxReversalAttrs
120566 (p_event_id => l_event_id
120567 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
120568 ,p_trx_reversal_source => l_trx_reversal_source);
120569
120570 END IF;
120571
120572
120573 ----------------------------------------------------------------
120574 -- 4262811 - update the header statuses to invalid in need be
120575 ----------------------------------------------------------------
120576 --
120577 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
120578
120579
120580 -----------------------------------------------
120581 -- No accrual reversal for the event class/type
120582 -----------------------------------------------
120583 ----------------------------------------------------------------
120584
120585 --
120586 -- this ends the header loop iteration for one bulk fetch
120587 --
120588 END LOOP;
120589
120590 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
120591 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
120592
120593 --
120594 -- insert dummy rows into lines gt table that were created due to
120595 -- transaction reversals
120596 --
120597 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
120598 l_result := XLA_AE_LINES_PKG.InsertLines;
120599 END IF;
120600
120601 --
120602 -- reset the temp_line_num for each set of events fetched from header
120603 -- cursor rather than doing it for each new event in line cursor
120604 -- Bug 3939231
120605 --
120606 xla_ae_lines_pkg.g_temp_line_num := 0;
120607
120608
120609
120610 --
120611 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
120612 --
120613 --
120614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120615
120616 trace
120617 (p_msg => 'SQL - FETCH line_cur'
120618 ,p_level => C_LEVEL_STATEMENT
120619 ,p_module => l_log_module);
120620
120621 END IF;
120622 --
120623 --
120624 LOOP
120625 --
120626 FETCH line_cur BULK COLLECT INTO
120627 l_array_entity_id
120628 , l_array_legal_entity_id
120629 , l_array_entity_code
120630 , l_array_transaction_num
120631 , l_array_event_id
120632 , l_array_class_code
120633 , l_array_event_type
120634 , l_array_event_number
120635 , l_array_event_date
120636 , l_array_transaction_date
120637 , l_array_reference_num_1
120638 , l_array_reference_num_2
120639 , l_array_reference_num_3
120640 , l_array_reference_num_4
120641 , l_array_reference_char_1
120642 , l_array_reference_char_2
120643 , l_array_reference_char_3
120644 , l_array_reference_char_4
120645 , l_array_reference_date_1
120646 , l_array_reference_date_2
120647 , l_array_reference_date_3
120648 , l_array_reference_date_4
120649 , l_array_event_created_by
120650 , l_array_budgetary_control_flag
120651 , l_array_extract_line_num
120652 , l_array_source_40
120653 , l_array_source_48
120654 , l_array_source_58
120655 , l_array_source_59
120659 , l_array_source_81
120656 , l_array_source_66
120657 , l_array_source_78
120658 , l_array_source_79
120660 , l_array_source_83
120661 , l_array_source_84
120662 , l_array_source_85
120663 , l_array_source_86
120664 , l_array_source_96
120665 , l_array_source_97
120666 , l_array_source_156
120667 , l_array_source_157
120668 LIMIT l_rows;
120669
120670 --
120671 IF (C_LEVEL_EVENT >= g_log_level) THEN
120672 trace
120673 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
120674 ,p_level => C_LEVEL_EVENT
120675 ,p_module => l_log_module);
120676 END IF;
120677 --
120678 EXIT WHEN l_array_entity_id.count = 0;
120679
120680 XLA_AE_LINES_PKG.g_rec_lines := null;
120681
120682 --
120683 -- Bug 4458708
120684 --
120685 XLA_AE_LINES_PKG.g_LineNumber := 0;
120686 --
120687 --
120688
120689 FOR Idx IN 1..l_array_event_id.count LOOP
120690 --
120691 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
120692 --
120693 l_event_id := l_array_event_id(idx); -- 5648433
120694
120695 --
120696 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
120697 --
120698
120699 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
120700 (g_array_event(l_event_id).array_value_num('header_index'))
120701 ,'N'
120702 ) <> 'Y'
120703 THEN
120704 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120705 trace
120706 (p_msg => 'Trancaction revesal option is not Y '
120707 ,p_level => C_LEVEL_STATEMENT
120708 ,p_module => l_log_module);
120709 END IF;
120710
120711 --
120712 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
120713 --
120714 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
120715 --
120716 -- set event info as cache for other routines to refer event attributes
120717 --
120718
120719 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
120720 l_previous_event_id := l_event_id;
120721
120722 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
120723 (p_application_id => p_application_id
120724 ,p_primary_ledger_id => p_primary_ledger_id
120725 ,p_base_ledger_id => p_base_ledger_id
120726 ,p_target_ledger_id => p_target_ledger_id
120727 ,p_entity_id => l_array_entity_id(Idx)
120728 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
120729 ,p_entity_code => l_array_entity_code(Idx)
120730 ,p_transaction_num => l_array_transaction_num(Idx)
120731 ,p_event_id => l_array_event_id(Idx)
120732 ,p_event_class_code => l_array_class_code(Idx)
120733 ,p_event_type_code => l_array_event_type(Idx)
120734 ,p_event_number => l_array_event_number(Idx)
120735 ,p_event_date => l_array_event_date(Idx)
120736 ,p_transaction_date => l_array_transaction_date(Idx)
120737 ,p_reference_num_1 => l_array_reference_num_1(Idx)
120738 ,p_reference_num_2 => l_array_reference_num_2(Idx)
120739 ,p_reference_num_3 => l_array_reference_num_3(Idx)
120740 ,p_reference_num_4 => l_array_reference_num_4(Idx)
120741 ,p_reference_char_1 => l_array_reference_char_1(Idx)
120742 ,p_reference_char_2 => l_array_reference_char_2(Idx)
120743 ,p_reference_char_3 => l_array_reference_char_3(Idx)
120744 ,p_reference_char_4 => l_array_reference_char_4(Idx)
120745 ,p_reference_date_1 => l_array_reference_date_1(Idx)
120746 ,p_reference_date_2 => l_array_reference_date_2(Idx)
120747 ,p_reference_date_3 => l_array_reference_date_3(Idx)
120748 ,p_reference_date_4 => l_array_reference_date_4(Idx)
120749 ,p_event_created_by => l_array_event_created_by(Idx)
120750 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
120751 --
120752 END IF;
120753
120754
120755
120756 --
120757 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
120758
120759 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
120760
120761 IF l_continue_with_lines THEN
120762 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
120763 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
120764
120765 xla_accounting_err_pkg.build_message
120766 (p_appli_s_name => 'XLA'
120767 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
120768 ,p_token_1 => 'LINE_NUMBER'
120769 ,p_value_1 => l_array_extract_line_num(Idx)
120770 ,p_token_2 => 'PRODUCT_NAME'
120771 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
120772 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
120773 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
120774 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
120775
120776 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
120777 --
120778 -- following sets the accounting attributes needed to reverse
120779 -- accounting for a distributeion
120783 -- 5217187
120780 --
120781
120782 --
120784 --
120785 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
120786 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
120787 g_array_event(l_event_id).array_value_num('header_index'));
120788 --
120789 --
120790
120791 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
120792 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
120793 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
120794 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
120795 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
120796 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
120797 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
120798 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_78(Idx);
120799 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
120800 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_79(Idx);
120801 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
120802 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_80');
120803 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
120804 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_81(Idx);
120805 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
120806 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_83(Idx);
120807 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
120808 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_84(Idx);
120809 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
120810 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_80');
120811 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
120812 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_85(Idx);
120813 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
120814 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_86(Idx);
120815 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
120816 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_56');
120817 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
120818 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_157(Idx);
120819 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
120820 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_48(Idx);
120821 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
120822 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_58(Idx);
120823 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
120824 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_66(Idx);
120825 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
120826 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_59(Idx);
120827 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
120828 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_96(Idx);
120829 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
120830 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_97(Idx);
120831
120832
120833 xla_ae_lines_pkg.SetAcctReversalAttrs
120834 (p_event_id => l_event_id
120835 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
120836 ,p_calculate_acctd_flag => l_calculate_acctd_flag
120837 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
120838 END IF;
120839
120840 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
120841 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
120842 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
120843 -- or secondary ledger that has different currency with primary
120844 -- or alc that is calculated by sla
120845 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
120846 (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'))
120847
120848 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
120849 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
120850 AND (l_actual_flag = 'A')) THEN
120851 XLA_AE_LINES_PKG.CreateGainOrLossLines(
120852 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
120853 ,p_application_id => p_application_id
120854 ,p_amb_context_code => 'DEFAULT'
120855 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
120856 ,p_event_class_code => C_EVENT_CLASS_CODE
120857 ,p_event_type_code => C_EVENT_TYPE_CODE
120858
120859 ,p_gain_ccid => -1
120860 ,p_loss_ccid => -1
120861
120862 ,p_actual_flag => l_actual_flag
120863 ,p_enc_flag => null
120864 ,p_actual_g_l_ref => l_actual_gain_loss_ref
120865 ,p_enc_g_l_ref => null
120866 );
120867 END IF;
120868 END IF;
120869 END IF;
120870
120871 ELSE
120872 --
120876 trace
120873 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
120874 --
120875 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120877 (p_msg => 'Trancaction revesal option is Y'
120878 ,p_level => C_LEVEL_STATEMENT
120879 ,p_module => l_log_module);
120880 END IF;
120881 END IF;
120882
120883 END LOOP;
120884 l_result := XLA_AE_LINES_PKG.InsertLines ;
120885 end loop;
120886 close line_cur;
120887
120888
120889 --
120890 -- insert headers into xla_ae_headers_gt table
120891 --
120892 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
120893
120894 -- insert into errors table here.
120895
120896 END LOOP;
120897
120898 --
120899 -- 4865292
120900 --
120901 -- Compare g_hdr_extract_count with event count in
120902 -- CreateHeadersAndLines.
120903 --
120904 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
120905
120906 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120907 trace (p_msg => '# rows extracted from header extract objects '
120908 || ' (running total): '
120909 || g_hdr_extract_count
120910 ,p_level => C_LEVEL_STATEMENT
120911 ,p_module => l_log_module);
120912 END IF;
120913
120914 CLOSE header_cur;
120915 --
120916
120917 --
120918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120919 trace
120920 (p_msg => 'END of EventClass_205'
120921 ,p_level => C_LEVEL_PROCEDURE
120922 ,p_module => l_log_module);
120923 END IF;
120924 --
120925 RETURN l_result;
120926 EXCEPTION
120927 WHEN xla_exceptions_pkg.application_exception THEN
120928
120929 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
120930
120931
120932 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
120933
120934 RAISE;
120935
120936 WHEN NO_DATA_FOUND THEN
120937
120938 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
120939 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
120940
120941 FOR header_record IN header_cur
120942 LOOP
120943 l_array_header_events(header_record.event_id) := header_record.event_id;
120944 END LOOP;
120945
120946 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
120947 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
120948
120949 fnd_file.put_line(fnd_file.LOG, ' ');
120950 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
120951 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
120952 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
120953
120954 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
120955 LOOP
120956 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
120957 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
120958 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
120959 END IF;
120960 END LOOP;
120961
120962 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
120963 fnd_file.put_line(fnd_file.LOG, ' ');
120964
120965
120966 xla_exceptions_pkg.raise_message
120967 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_205');
120968
120969
120970 WHEN OTHERS THEN
120971 xla_exceptions_pkg.raise_message
120972 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_205');
120973 END EventClass_205;
120974 --
120975
120976 ---------------------------------------
120977 --
120978 -- PRIVATE PROCEDURE
120979 -- insert_sources_206
120980 --
120981 ----------------------------------------
120982 --
120983 PROCEDURE insert_sources_206(
120984 p_target_ledger_id IN NUMBER
120985 , p_language IN VARCHAR2
120986 , p_sla_ledger_id IN NUMBER
120987 , p_pad_start_date IN DATE
120988 , p_pad_end_date IN DATE
120989 )
120990 IS
120991
120992 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS_ALL';
120993 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
120994 p_apps_owner VARCHAR2(30);
120995 l_log_module VARCHAR2(240);
120996 BEGIN
120997 IF g_log_enabled THEN
120998 l_log_module := C_DEFAULT_MODULE||'.insert_sources_206';
120999 END IF;
121000 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121001
121002 trace
121003 (p_msg => 'BEGIN of insert_sources_206'
121004 ,p_level => C_LEVEL_PROCEDURE
121005 ,p_module => l_log_module);
121006
121007 END IF;
121008
121009 -- select APPS owner
121010 SELECT oracle_username
121011 INTO p_apps_owner
121012 FROM fnd_oracle_userid
121013 WHERE read_only_flag = 'U'
121014 ;
121015
121016 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121017 trace
121018 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
121019 ' - p_language = '||p_language||
121023 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
121020 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
121021 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
121022 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
121024 ,p_level => C_LEVEL_STATEMENT
121025 ,p_module => l_log_module);
121026 END IF;
121027
121028
121029 --
121030 INSERT INTO xla_diag_sources --hdr2
121031 (
121032 event_id
121033 , ledger_id
121034 , sla_ledger_id
121035 , description_language
121036 , object_name
121037 , object_type_code
121038 , line_number
121039 , source_application_id
121040 , source_type_code
121041 , source_code
121042 , source_value
121043 , source_meaning
121044 , created_by
121045 , creation_date
121046 , last_update_date
121047 , last_updated_by
121048 , last_update_login
121049 , program_update_date
121050 , program_application_id
121051 , program_id
121052 , request_id
121053 )
121054 SELECT
121055 event_id
121056 , p_target_ledger_id
121057 , p_sla_ledger_id
121058 , p_language
121059 , object_name
121060 , object_type_code
121061 , line_number
121062 , source_application_id
121063 , source_type_code
121064 , source_code
121065 , SUBSTR(source_value ,1,1996)
121066 , SUBSTR(source_meaning ,1,200)
121067 , xla_environment_pkg.g_Usr_Id
121068 , TRUNC(SYSDATE)
121069 , TRUNC(SYSDATE)
121070 , xla_environment_pkg.g_Usr_Id
121071 , xla_environment_pkg.g_Login_Id
121072 , TRUNC(SYSDATE)
121073 , xla_environment_pkg.g_Prog_Appl_Id
121074 , xla_environment_pkg.g_Prog_Id
121075 , xla_environment_pkg.g_Req_Id
121076 FROM (
121077 SELECT xet.event_id event_id
121078 , 0 line_number
121079 , CASE r
121080 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121081 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
121082 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121083 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
121084 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121085 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
121086 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121087 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
121088 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
121089 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
121090 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121091 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121092 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121093 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121094 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121095 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121096 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121097 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121098 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121099 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121100 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121101 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
121102
121103 ELSE null
121104 END object_name
121105 , CASE r
121106 WHEN 1 THEN 'HEADER'
121107 WHEN 2 THEN 'HEADER'
121108 WHEN 3 THEN 'HEADER'
121109 WHEN 4 THEN 'HEADER'
121110 WHEN 5 THEN 'HEADER'
121111 WHEN 6 THEN 'HEADER'
121112 WHEN 7 THEN 'HEADER'
121113 WHEN 8 THEN 'HEADER'
121114 WHEN 9 THEN 'HEADER'
121115 WHEN 10 THEN 'HEADER'
121116 WHEN 11 THEN 'HEADER'
121117 WHEN 12 THEN 'HEADER'
121118 WHEN 13 THEN 'HEADER'
121119 WHEN 14 THEN 'HEADER'
121120 WHEN 15 THEN 'HEADER'
121121 WHEN 16 THEN 'HEADER'
121122 WHEN 17 THEN 'HEADER'
121123 WHEN 18 THEN 'HEADER'
121124 WHEN 19 THEN 'HEADER'
121125 WHEN 20 THEN 'HEADER'
121126 WHEN 21 THEN 'HEADER'
121127 WHEN 22 THEN 'HEADER'
121128
121129 ELSE null
121130 END object_type_code
121131 , CASE r
121132 WHEN 1 THEN '200'
121133 WHEN 2 THEN '200'
121134 WHEN 3 THEN '200'
121135 WHEN 4 THEN '200'
121136 WHEN 5 THEN '200'
121137 WHEN 6 THEN '200'
121138 WHEN 7 THEN '200'
121139 WHEN 8 THEN '200'
121140 WHEN 9 THEN '200'
121141 WHEN 10 THEN '200'
121142 WHEN 11 THEN '200'
121143 WHEN 12 THEN '200'
121144 WHEN 13 THEN '200'
121145 WHEN 14 THEN '200'
121146 WHEN 15 THEN '200'
121147 WHEN 16 THEN '200'
121148 WHEN 17 THEN '200'
121152 WHEN 21 THEN '200'
121149 WHEN 18 THEN '200'
121150 WHEN 19 THEN '200'
121151 WHEN 20 THEN '200'
121153 WHEN 22 THEN '200'
121154
121155 ELSE null
121156 END source_application_id
121157 , 'S' source_type_code
121158 , CASE r
121159 WHEN 1 THEN 'CGAC_AP_ASSET_CCID'
121160 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
121161 WHEN 3 THEN 'CGAC_CASH_CLEARING_CCID'
121162 WHEN 4 THEN 'ASP_AUTO_OFFSET_FLAG'
121163 WHEN 5 THEN 'CGAC_GAIN_CCID'
121164 WHEN 6 THEN 'ASP_GAIN_CCID'
121165 WHEN 7 THEN 'CGAC_LOSS_CCID'
121166 WHEN 8 THEN 'ASP_LOSS_CCID'
121167 WHEN 9 THEN 'ASP_ROUNDING_ERROR_CCID'
121168 WHEN 10 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
121169 WHEN 11 THEN 'AC_CURRENCY_CODE'
121170 WHEN 12 THEN 'AC_VENDOR_ID'
121171 WHEN 13 THEN 'AC_VENDOR_SITE_ID'
121172 WHEN 14 THEN 'THIRD_PARTY_TYPE'
121173 WHEN 15 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
121174 WHEN 16 THEN 'AC_FUTURE_PAY_DUE_DATE'
121175 WHEN 17 THEN 'AC_EXCHANGE_DATE'
121176 WHEN 18 THEN 'AC_EXCHANGE_RATE'
121177 WHEN 19 THEN 'AC_EXCHANGE_RATE_TYPE'
121178 WHEN 20 THEN 'AC_DOC_CATEGORY_CODE'
121179 WHEN 21 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
121180 WHEN 22 THEN 'AC_DOC_SEQUENCE_VALUE'
121181
121182 ELSE null
121183 END source_code
121184 , CASE r
121185 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
121186 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
121187 WHEN 3 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
121188 WHEN 4 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
121189 WHEN 5 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
121190 WHEN 6 THEN TO_CHAR(h3.ASP_GAIN_CCID)
121191 WHEN 7 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
121192 WHEN 8 THEN TO_CHAR(h3.ASP_LOSS_CCID)
121193 WHEN 9 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
121194 WHEN 10 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
121195 WHEN 11 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
121196 WHEN 12 THEN TO_CHAR(h2.AC_VENDOR_ID)
121197 WHEN 13 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
121198 WHEN 14 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
121199 WHEN 15 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
121200 WHEN 16 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
121201 WHEN 17 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
121202 WHEN 18 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
121203 WHEN 19 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
121204 WHEN 20 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
121205 WHEN 21 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
121206 WHEN 22 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
121207
121208 ELSE null
121209 END source_value
121210 , CASE r
121211 WHEN 2 THEN fvl4.meaning
121212 WHEN 4 THEN fvl30.meaning
121213 WHEN 15 THEN fvl110.meaning
121214
121215 ELSE null
121216 END source_meaning
121217 FROM xla_events_gt xet
121218 , AP_PAYMENT_EXTRACT_HEADER_V h2
121219 , AP_SYSTEM_PARAMETERS_EXTRACT_V h3
121220 , fnd_lookup_values fvl4
121221 , fnd_lookup_values fvl30
121222 , fnd_lookup_values fvl110
121223 ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
121224 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
121225 AND xet.event_class_code = C_EVENT_CLASS_CODE
121226 AND h2.event_id = xet.event_id
121227 AND h3.asp_org_id = h2.ac_org_id AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
121228 AND fvl4.lookup_code(+) = h3.ASP_AUTOMATIC_OFFSETS_VALUE
121229 AND fvl4.view_application_id(+) = 200
121230 AND fvl4.language(+) = USERENV('LANG')
121231 AND fvl30.lookup_type(+) = 'YES_NO'
121232 AND fvl30.lookup_code(+) = h3.ASP_AUTO_OFFSET_FLAG
121233 AND fvl30.view_application_id(+) = 0
121234 AND fvl30.language(+) = USERENV('LANG')
121235 AND fvl110.lookup_type(+) = 'YES_NO'
121236 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
121237 AND fvl110.view_application_id(+) = 0
121238 AND fvl110.language(+) = USERENV('LANG')
121239
121240 )
121241 ;
121242 --
121243 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121244
121245 trace
121246 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
121247 ,p_level => C_LEVEL_STATEMENT
121248 ,p_module => l_log_module);
121249
121250 END IF;
121251 --
121252
121253
121254
121255 --
121256 INSERT INTO xla_diag_sources --line2
121257 (
121258 event_id
121259 , ledger_id
121260 , sla_ledger_id
121261 , description_language
121262 , object_name
121263 , object_type_code
121264 , line_number
121268 , source_value
121265 , source_application_id
121266 , source_type_code
121267 , source_code
121269 , source_meaning
121270 , created_by
121271 , creation_date
121272 , last_update_date
121273 , last_updated_by
121274 , last_update_login
121275 , program_update_date
121276 , program_application_id
121277 , program_id
121278 , request_id
121279 )
121280 SELECT event_id
121281 , p_target_ledger_id
121282 , p_sla_ledger_id
121283 , p_language
121284 , object_name
121285 , object_type_code
121286 , line_number
121287 , source_application_id
121288 , source_type_code
121289 , source_code
121290 , SUBSTR(source_value,1,1996)
121291 , SUBSTR(source_meaning ,1,200)
121292 , xla_environment_pkg.g_Usr_Id
121293 , TRUNC(SYSDATE)
121294 , TRUNC(SYSDATE)
121295 , xla_environment_pkg.g_Usr_Id
121296 , xla_environment_pkg.g_Login_Id
121297 , TRUNC(SYSDATE)
121298 , xla_environment_pkg.g_Prog_Appl_Id
121299 , xla_environment_pkg.g_Prog_Id
121300 , xla_environment_pkg.g_Req_Id
121301 FROM (
121302 SELECT xet.event_id event_id
121303 , l1.line_number line_number
121304 , CASE r
121305 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121306 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121307 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121308 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121309 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121310 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121311 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121312 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121313 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121314 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121315 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121316 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121317 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121318 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121319 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121320 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121321 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
121322
121323 ELSE null
121324 END object_name
121325 , CASE r
121326 WHEN 1 THEN 'LINE'
121327 WHEN 2 THEN 'LINE'
121328 WHEN 3 THEN 'LINE'
121329 WHEN 4 THEN 'LINE'
121330 WHEN 5 THEN 'LINE'
121331 WHEN 6 THEN 'LINE'
121332 WHEN 7 THEN 'LINE'
121333 WHEN 8 THEN 'LINE'
121334 WHEN 9 THEN 'LINE'
121335 WHEN 10 THEN 'LINE'
121336 WHEN 11 THEN 'LINE'
121337 WHEN 12 THEN 'LINE'
121338 WHEN 13 THEN 'LINE'
121339 WHEN 14 THEN 'LINE'
121340 WHEN 15 THEN 'LINE'
121341 WHEN 16 THEN 'LINE'
121342 WHEN 17 THEN 'LINE'
121343
121344 ELSE null
121345 END object_type_code
121346 , CASE r
121347 WHEN 1 THEN '200'
121348 WHEN 2 THEN '200'
121349 WHEN 3 THEN '200'
121350 WHEN 4 THEN '200'
121351 WHEN 5 THEN '200'
121352 WHEN 6 THEN '200'
121353 WHEN 7 THEN '200'
121354 WHEN 8 THEN '200'
121355 WHEN 9 THEN '200'
121356 WHEN 10 THEN '200'
121357 WHEN 11 THEN '200'
121358 WHEN 12 THEN '200'
121359 WHEN 13 THEN '200'
121360 WHEN 14 THEN '200'
121361 WHEN 15 THEN '200'
121362 WHEN 16 THEN '200'
121363 WHEN 17 THEN '200'
121364
121365 ELSE null
121366 END source_application_id
121367 , 'S' source_type_code
121368 , CASE r
121369 WHEN 1 THEN 'APHD_PAYMENT_BASE_AMT'
121370 WHEN 2 THEN 'AID_DIST_CCID'
121371 WHEN 3 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
121372 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
121373 WHEN 5 THEN 'APHD_AMOUNT'
121374 WHEN 6 THEN 'BUS_FLOW_AP_APP_ID'
121375 WHEN 7 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE'
121376 WHEN 8 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE'
121377 WHEN 9 THEN 'BUS_FLOW_PAYMENT_DIST_ID'
121378 WHEN 10 THEN 'BUS_FLOW_PAYMENT_ID'
121379 WHEN 11 THEN 'APHD_PAYMENT_HIST_DIST_ID'
121380 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE'
121381 WHEN 13 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
121382 WHEN 14 THEN 'APHD_REV_PAY_HIST_DIST_ID'
121383 WHEN 15 THEN 'APHD_MATURED_BASE_AMOUNT'
121384 WHEN 16 THEN 'PMT_MAT_BASE_AMT_DIFF'
121385 WHEN 17 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR'
121386
121387 ELSE null
121388 END source_code
121389 , CASE r
121393 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
121390 WHEN 1 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
121391 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
121392 WHEN 3 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
121394 WHEN 5 THEN TO_CHAR(l1.APHD_AMOUNT)
121395 WHEN 6 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
121396 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
121397 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
121398 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
121399 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
121400 WHEN 11 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
121401 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
121402 WHEN 13 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
121403 WHEN 14 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
121404 WHEN 15 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
121405 WHEN 16 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
121406 WHEN 17 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
121407
121408 ELSE null
121409 END source_value
121410 , CASE r
121411 WHEN 3 THEN fvl39.meaning
121412 WHEN 13 THEN fvl53.meaning
121413
121414 ELSE null
121415 END source_meaning
121416 FROM xla_events_gt xet
121417 , AP_PAYMENT_EXTRACT_DETAILS_V l1
121418 , fnd_lookup_values fvl39
121419 , fnd_lookup_values fvl53
121420 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
121421 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
121422 AND xet.event_class_code = C_EVENT_CLASS_CODE
121423 AND l1.event_id = xet.event_id
121424 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
121425 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
121426 AND fvl39.view_application_id(+) = 200
121427 AND fvl39.language(+) = USERENV('LANG')
121428 AND fvl53.lookup_type(+) = 'YES_NO'
121429 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
121430 AND fvl53.view_application_id(+) = 0
121431 AND fvl53.language(+) = USERENV('LANG')
121432
121433 )
121434 ;
121435 --
121436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121437
121438 trace
121439 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
121440 ,p_level => C_LEVEL_STATEMENT
121441 ,p_module => l_log_module);
121442
121443 END IF;
121444
121445
121446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121447 trace
121448 (p_msg => 'END of insert_sources_206'
121449 ,p_level => C_LEVEL_PROCEDURE
121450 ,p_module => l_log_module);
121451 END IF;
121452 EXCEPTION
121453 WHEN xla_exceptions_pkg.application_exception THEN
121454 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
121455 trace
121456 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
121457 ,p_level => C_LEVEL_EXCEPTION
121458 ,p_module => l_log_module);
121459 END IF;
121460 RAISE;
121461 WHEN OTHERS THEN
121462 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
121463 trace
121464 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
121465 ,p_level => C_LEVEL_EXCEPTION
121466 ,p_module => l_log_module);
121467 END IF;
121468 xla_exceptions_pkg.raise_message
121469 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_206');
121470 END insert_sources_206;
121471 --
121472
121473 ---------------------------------------
121474 --
121475 -- PRIVATE FUNCTION
121476 -- EventClass_206
121477 --
121478 ----------------------------------------
121479 --
121480 FUNCTION EventClass_206
121481 (p_application_id IN NUMBER
121482 ,p_base_ledger_id IN NUMBER
121483 ,p_target_ledger_id IN NUMBER
121484 ,p_language IN VARCHAR2
121485 ,p_currency_code IN VARCHAR2
121486 ,p_sla_ledger_id IN NUMBER
121487 ,p_pad_start_date IN DATE
121488 ,p_pad_end_date IN DATE
121489 ,p_primary_ledger_id IN NUMBER)
121490 RETURN BOOLEAN IS
121491 --
121492 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS_ALL';
121493 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
121494
121495 l_calculate_acctd_flag VARCHAR2(1) :='N';
121496 l_calculate_g_l_flag VARCHAR2(1) :='N';
121497 --
121498 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121499 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121500 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121501 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121502 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121503 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121504 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121505 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121506 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121510 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121507 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121508 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121509 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121511 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121512 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121513 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121514 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121515 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121516 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121517 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121518 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121519 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121520 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
121521 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121522 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
121523 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
121524
121525 l_event_id NUMBER;
121526 l_previous_event_id NUMBER;
121527 l_first_event_id NUMBER;
121528 l_last_event_id NUMBER;
121529
121530 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
121531 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
121532 --
121533 --
121534 l_result BOOLEAN := TRUE;
121535 l_rows NUMBER := 1000;
121536 l_event_type_name VARCHAR2(80) := 'All';
121537 l_event_class_name VARCHAR2(80) := 'Future Dated Payments';
121538 l_description VARCHAR2(4000);
121539 l_transaction_reversal NUMBER;
121540 l_ae_header_id NUMBER;
121541 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
121542 l_log_module VARCHAR2(240);
121543 --
121544 l_acct_reversal_source VARCHAR2(30);
121545 l_trx_reversal_source VARCHAR2(30);
121546
121547 l_continue_with_lines BOOLEAN := TRUE;
121548 --
121549 l_acc_rev_gl_date_source DATE; -- 4262811
121550 --
121551 type t_array_event_id is table of number index by binary_integer;
121552
121553 l_rec_array_event t_rec_array_event;
121554 l_null_rec_array_event t_rec_array_event;
121555 l_array_ae_header_id xla_number_array_type;
121556 l_actual_flag VARCHAR2(1) := NULL;
121557 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
121558 l_balance_type_code VARCHAR2(1) :=NULL;
121559 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
121560
121561 --
121562 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
121563 --
121564
121565 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
121566 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
121567 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
121568 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
121569 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
121570 TYPE t_array_source_33 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
121571 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
121572 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
121573 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
121574 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
121575 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
121576 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
121577 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
121578 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
121579 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
121580 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
121581 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
121582 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
121583 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
121584 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
121585 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
121589 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
121586 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
121587
121588 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
121590 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
121591 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
121592 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
121593 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
121594 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
121595 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
121596 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
121597 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
121598 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
121599 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
121600 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
121601 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
121602 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
121603 TYPE t_array_source_128 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
121604 TYPE t_array_source_133 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
121605
121606 l_array_source_1 t_array_source_1;
121607 l_array_source_4 t_array_source_4;
121608 l_array_source_4_meaning t_array_lookup_meaning;
121609 l_array_source_21 t_array_source_21;
121610 l_array_source_30 t_array_source_30;
121611 l_array_source_30_meaning t_array_lookup_meaning;
121612 l_array_source_32 t_array_source_32;
121613 l_array_source_33 t_array_source_33;
121614 l_array_source_34 t_array_source_34;
121615 l_array_source_35 t_array_source_35;
121616 l_array_source_37 t_array_source_37;
121617 l_array_source_38 t_array_source_38;
121618 l_array_source_49 t_array_source_49;
121619 l_array_source_54 t_array_source_54;
121620 l_array_source_55 t_array_source_55;
121621 l_array_source_56 t_array_source_56;
121622 l_array_source_110 t_array_source_110;
121623 l_array_source_110_meaning t_array_lookup_meaning;
121624 l_array_source_111 t_array_source_111;
121625 l_array_source_114 t_array_source_114;
121626 l_array_source_115 t_array_source_115;
121627 l_array_source_116 t_array_source_116;
121628 l_array_source_158 t_array_source_158;
121629 l_array_source_159 t_array_source_159;
121630 l_array_source_160 t_array_source_160;
121631
121632 l_array_source_9 t_array_source_9;
121633 l_array_source_17 t_array_source_17;
121634 l_array_source_39 t_array_source_39;
121635 l_array_source_39_meaning t_array_lookup_meaning;
121636 l_array_source_40 t_array_source_40;
121637 l_array_source_41 t_array_source_41;
121638 l_array_source_42 t_array_source_42;
121639 l_array_source_43 t_array_source_43;
121640 l_array_source_44 t_array_source_44;
121641 l_array_source_45 t_array_source_45;
121642 l_array_source_46 t_array_source_46;
121643 l_array_source_47 t_array_source_47;
121644 l_array_source_48 t_array_source_48;
121645 l_array_source_53 t_array_source_53;
121646 l_array_source_53_meaning t_array_lookup_meaning;
121647 l_array_source_57 t_array_source_57;
121648 l_array_source_117 t_array_source_117;
121649 l_array_source_128 t_array_source_128;
121650 l_array_source_133 t_array_source_133;
121651
121652 --
121653 CURSOR header_cur
121654 IS
121655 SELECT /*+ leading(xet) cardinality(xet,1) */
121656 -- Event Class Code: FUTURE DATED PAYMENTS
121657 xet.entity_id
121658 ,xet.legal_entity_id
121659 ,xet.entity_code
121660 ,xet.transaction_number
121661 ,xet.event_id
121662 ,xet.event_class_code
121663 ,xet.event_type_code
121664 ,xet.event_number
121665 ,xet.event_date
121666 ,xet.transaction_date
121667 ,xet.reference_num_1
121668 ,xet.reference_num_2
121669 ,xet.reference_num_3
121670 ,xet.reference_num_4
121671 ,xet.reference_char_1
121672 ,xet.reference_char_2
121673 ,xet.reference_char_3
121674 ,xet.reference_char_4
121675 ,xet.reference_date_1
121676 ,xet.reference_date_2
121677 ,xet.reference_date_3
121678 ,xet.reference_date_4
121679 ,xet.event_created_by
121680 ,xet.budgetary_control_flag
121681 , h2.CGAC_AP_ASSET_CCID source_1
121682 , h3.ASP_AUTOMATIC_OFFSETS_VALUE source_4
121683 , fvl4.meaning source_4_meaning
121684 , h2.CGAC_CASH_CLEARING_CCID source_21
121685 , h3.ASP_AUTO_OFFSET_FLAG source_30
121686 , fvl30.meaning source_30_meaning
121687 , h2.CGAC_GAIN_CCID source_32
121691 , h3.ASP_ROUNDING_ERROR_CCID source_37
121688 , h3.ASP_GAIN_CCID source_33
121689 , h2.CGAC_LOSS_CCID source_34
121690 , h3.ASP_LOSS_CCID source_35
121692 , h3.ASP_WHEN_TO_ACCOUNT_PMT source_38
121693 , h2.AC_CURRENCY_CODE source_49
121694 , h2.AC_VENDOR_ID source_54
121695 , h2.AC_VENDOR_SITE_ID source_55
121696 , h2.THIRD_PARTY_TYPE source_56
121697 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_110
121698 , fvl110.meaning source_110_meaning
121699 , h2.AC_FUTURE_PAY_DUE_DATE source_111
121700 , h2.AC_EXCHANGE_DATE source_114
121701 , h2.AC_EXCHANGE_RATE source_115
121702 , h2.AC_EXCHANGE_RATE_TYPE source_116
121703 , h2.AC_DOC_CATEGORY_CODE source_158
121704 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_159
121705 , h2.AC_DOC_SEQUENCE_VALUE source_160
121706 FROM xla_events_gt xet
121707 , AP_PAYMENT_EXTRACT_HEADER_V h2
121708 , AP_SYSTEM_PARAMETERS_EXTRACT_V h3
121709 , fnd_lookup_values fvl4
121710 , fnd_lookup_values fvl30
121711 , fnd_lookup_values fvl110
121712 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
121713 and xet.event_class_code = C_EVENT_CLASS_CODE
121714 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
121715 AND h3.asp_org_id = h2.ac_org_id AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
121716 AND fvl4.lookup_code(+) = h3.ASP_AUTOMATIC_OFFSETS_VALUE
121717 AND fvl4.view_application_id(+) = 200
121718 AND fvl4.language(+) = USERENV('LANG')
121719 AND fvl30.lookup_type(+) = 'YES_NO'
121720 AND fvl30.lookup_code(+) = h3.ASP_AUTO_OFFSET_FLAG
121721 AND fvl30.view_application_id(+) = 0
121722 AND fvl30.language(+) = USERENV('LANG')
121723 AND fvl110.lookup_type(+) = 'YES_NO'
121724 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
121725 AND fvl110.view_application_id(+) = 0
121726 AND fvl110.language(+) = USERENV('LANG')
121727
121728 ORDER BY event_id
121729 ;
121730
121731
121732 --
121733 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
121734 IS
121735 SELECT /*+ leading(xet) cardinality(xet,1) */
121736 -- Event Class Code: FUTURE DATED PAYMENTS
121737 xet.entity_id
121738 ,xet.legal_entity_id
121739 ,xet.entity_code
121740 ,xet.transaction_number
121741 ,xet.event_id
121742 ,xet.event_class_code
121743 ,xet.event_type_code
121744 ,xet.event_number
121745 ,xet.event_date
121746 ,xet.transaction_date
121747 ,xet.reference_num_1
121748 ,xet.reference_num_2
121749 ,xet.reference_num_3
121750 ,xet.reference_num_4
121751 ,xet.reference_char_1
121752 ,xet.reference_char_2
121753 ,xet.reference_char_3
121754 ,xet.reference_char_4
121755 ,xet.reference_date_1
121756 ,xet.reference_date_2
121757 ,xet.reference_date_3
121758 ,xet.reference_date_4
121759 ,xet.event_created_by
121760 ,xet.budgetary_control_flag
121761 , l1.LINE_NUMBER
121762 , l1.APHD_PAYMENT_BASE_AMT source_9
121763 , l1.AID_DIST_CCID source_17
121764 , l1.APHD_PAY_DIST_LOOKUP_CODE source_39
121765 , fvl39.meaning source_39_meaning
121766 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
121767 , l1.APHD_AMOUNT source_41
121768 , l1.BUS_FLOW_AP_APP_ID source_42
121769 , l1.BUS_FLOW_PAYMENT_DIST_TYPE source_43
121770 , l1.BUS_FLOW_PAYMENT_ENTITY_CODE source_44
121771 , l1.BUS_FLOW_PAYMENT_DIST_ID source_45
121772 , l1.BUS_FLOW_PAYMENT_ID source_46
121773 , l1.APHD_PAYMENT_HIST_DIST_ID source_47
121774 , l1.DISTRIBUTION_LINK_TYPE source_48
121775 , l1.OVERRIDE_ACCTD_AMT_FLAG source_53
121776 , fvl53.meaning source_53_meaning
121777 , l1.APHD_REV_PAY_HIST_DIST_ID source_57
121778 , l1.APHD_MATURED_BASE_AMOUNT source_117
121779 , l1.PMT_MAT_BASE_AMT_DIFF source_128
121780 , l1.PMT_MAT_GAIN_LOSS_INDICATOR source_133
121781 FROM xla_events_gt xet
121782 , AP_PAYMENT_EXTRACT_DETAILS_V l1
121783 , fnd_lookup_values fvl39
121784 , fnd_lookup_values fvl53
121785 WHERE xet.event_id between x_first_event_id and x_last_event_id
121786 and xet.event_date between p_pad_start_date and p_pad_end_date
121787 and xet.event_class_code = C_EVENT_CLASS_CODE
121788 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
121789 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
121790 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
121791 AND fvl39.view_application_id(+) = 200
121792 AND fvl39.language(+) = USERENV('LANG')
121793 AND fvl53.lookup_type(+) = 'YES_NO'
121794 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
121795 AND fvl53.view_application_id(+) = 0
121796 AND fvl53.language(+) = USERENV('LANG')
121797 ;
121798
121799 --
121800 BEGIN
121801 IF g_log_enabled THEN
121802 l_log_module := C_DEFAULT_MODULE||'.EventClass_206';
121803 END IF;
121804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121805 trace
121806 (p_msg => 'BEGIN of EventClass_206'
121807 ,p_level => C_LEVEL_PROCEDURE
121808 ,p_module => l_log_module);
121809 END IF;
121810
121811 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121812 trace
121813 (p_msg => 'p_application_id = '||p_application_id||
121814 ' - p_base_ledger_id = '||p_base_ledger_id||
121818 ' - p_sla_ledger_id = '||p_sla_ledger_id
121815 ' - p_target_ledger_id = '||p_target_ledger_id||
121816 ' - p_language = '||p_language||
121817 ' - p_currency_code = '||p_currency_code||
121819 ,p_level => C_LEVEL_STATEMENT
121820 ,p_module => l_log_module);
121821 END IF;
121822 --
121823 -- initialze arrays
121824 --
121825 g_array_event.DELETE;
121826 l_rec_array_event := l_null_rec_array_event;
121827 --
121828 --------------------------------------
121829 -- 4262811 Initialze MPA Line Number
121830 --------------------------------------
121831 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
121832
121833 --
121834
121835 --
121836 OPEN header_cur;
121837 --
121838 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121839 trace
121840 (p_msg => 'SQL - FETCH header_cur'
121841 ,p_level => C_LEVEL_STATEMENT
121842 ,p_module => l_log_module);
121843 END IF;
121844 --
121845 LOOP
121846 FETCH header_cur BULK COLLECT INTO
121847 l_array_entity_id
121848 , l_array_legal_entity_id
121849 , l_array_entity_code
121850 , l_array_transaction_num
121851 , l_array_event_id
121852 , l_array_class_code
121853 , l_array_event_type
121854 , l_array_event_number
121855 , l_array_event_date
121856 , l_array_transaction_date
121857 , l_array_reference_num_1
121858 , l_array_reference_num_2
121859 , l_array_reference_num_3
121860 , l_array_reference_num_4
121861 , l_array_reference_char_1
121862 , l_array_reference_char_2
121863 , l_array_reference_char_3
121864 , l_array_reference_char_4
121865 , l_array_reference_date_1
121866 , l_array_reference_date_2
121867 , l_array_reference_date_3
121868 , l_array_reference_date_4
121869 , l_array_event_created_by
121870 , l_array_budgetary_control_flag
121871 , l_array_source_1
121872 , l_array_source_4
121873 , l_array_source_4_meaning
121874 , l_array_source_21
121875 , l_array_source_30
121876 , l_array_source_30_meaning
121877 , l_array_source_32
121878 , l_array_source_33
121879 , l_array_source_34
121880 , l_array_source_35
121881 , l_array_source_37
121882 , l_array_source_38
121883 , l_array_source_49
121884 , l_array_source_54
121885 , l_array_source_55
121886 , l_array_source_56
121887 , l_array_source_110
121888 , l_array_source_110_meaning
121889 , l_array_source_111
121890 , l_array_source_114
121891 , l_array_source_115
121892 , l_array_source_116
121893 , l_array_source_158
121894 , l_array_source_159
121895 , l_array_source_160
121896 LIMIT l_rows;
121897 --
121898 IF (C_LEVEL_EVENT >= g_log_level) THEN
121899 trace
121900 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
121901 ,p_level => C_LEVEL_EVENT
121902 ,p_module => l_log_module);
121903 END IF;
121904 --
121905 EXIT WHEN l_array_entity_id.COUNT = 0;
121906
121907 -- initialize arrays
121908 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
121909 XLA_AE_LINES_PKG.g_rec_lines := NULL;
121910
121911 --
121912 -- Bug 4458708
121913 --
121914 XLA_AE_LINES_PKG.g_LineNumber := 0;
121915
121916
121917 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
121918 g_last_hdr_idx := l_array_event_id.LAST;
121919 --
121920 -- loop for the headers. Each iteration is for each header extract row
121921 -- fetched in header cursor
121922 --
121923 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
121924
121925 --
121926 -- set event info as cache for other routines to refer event attributes
121927 --
121928 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
121929 (p_application_id => p_application_id
121930 ,p_primary_ledger_id => p_primary_ledger_id
121931 ,p_base_ledger_id => p_base_ledger_id
121932 ,p_target_ledger_id => p_target_ledger_id
121933 ,p_entity_id => l_array_entity_id(hdr_idx)
121934 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
121935 ,p_entity_code => l_array_entity_code(hdr_idx)
121936 ,p_transaction_num => l_array_transaction_num(hdr_idx)
121937 ,p_event_id => l_array_event_id(hdr_idx)
121938 ,p_event_class_code => l_array_class_code(hdr_idx)
121939 ,p_event_type_code => l_array_event_type(hdr_idx)
121940 ,p_event_number => l_array_event_number(hdr_idx)
121941 ,p_event_date => l_array_event_date(hdr_idx)
121942 ,p_transaction_date => l_array_transaction_date(hdr_idx)
121943 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
121944 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
121945 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
121946 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
121947 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
121948 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
121949 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
121950 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
121954 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
121951 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
121952 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
121953 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
121955 ,p_event_created_by => l_array_event_created_by(hdr_idx)
121956 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
121957
121958 --
121959 -- set the status of entry to C_VALID (0)
121960 --
121961 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
121962
121963 --
121964 -- initialize a row for ae header
121965 --
121966 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
121967
121968 l_event_id := l_array_event_id(hdr_idx);
121969
121970 --
121971 -- storing the hdr_idx for event. May be used by line cursor.
121972 --
121973 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
121974
121975 --
121976 -- store sources from header extract. This can be improved to
121977 -- store only those sources from header extract that may be used in lines
121978 --
121979
121980 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
121981 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
121982 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
121983 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
121984 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
121985 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
121986 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
121987 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
121988 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
121989 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
121990 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
121991 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
121992 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
121993 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
121994 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
121995 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
121996 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
121997 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
121998 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
121999 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
122000 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
122001 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
122002 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
122003 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
122004 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
122005
122006 --
122007 -- initilaize the status of ae headers for diffrent balance types
122008 -- the status is initialised to C_NOT_CREATED (2)
122009 --
122010 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
122011 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
122012 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
122013
122014 --
122015 -- call api to validate and store accounting attributes for header
122016 --
122017
122018 ------------------------------------------------------------
122019 -- Accrual Reversal : to get date for Standard Source (NONE)
122020 ------------------------------------------------------------
122021 l_acc_rev_gl_date_source := NULL;
122022
122023 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
122024 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
122025 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
122026 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
122027 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
122028 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
122029 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
122030 l_rec_acct_attrs.array_date_value(4) :=
122031 xla_ae_sources_pkg.GetSystemSourceDate(
122032 p_source_code => 'XLA_EVENT_DATE'
122033 , p_source_type_code => 'Y'
122034 , p_source_application_id => 602
122035 );
122036
122037
122038 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
122039
122040 XLA_AE_HEADER_PKG.SetJeCategoryName;
122041
122042 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
122043 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
122044 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
122045 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
122049 -- No header level analytical criteria
122046 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
122047
122048
122050
122051 --
122052 --accounting attribute enhancement, bug 3612931
122053 --
122054 l_trx_reversal_source := SUBSTR(NULL, 1,30);
122055
122056 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
122057 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
122058
122059 xla_accounting_err_pkg.build_message
122060 (p_appli_s_name => 'XLA'
122061 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
122062 ,p_token_1 => 'ACCT_ATTR_NAME'
122063 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
122064 ,p_token_2 => 'PRODUCT_NAME'
122065 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
122066 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
122067 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
122068 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
122069
122070 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
122071 --
122072 -- following sets the accounting attributes needed to reverse
122073 -- accounting for a distributeion
122074 --
122075 xla_ae_lines_pkg.SetTrxReversalAttrs
122076 (p_event_id => l_event_id
122077 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
122078 ,p_trx_reversal_source => l_trx_reversal_source);
122079
122080 END IF;
122081
122082
122083 ----------------------------------------------------------------
122084 -- 4262811 - update the header statuses to invalid in need be
122085 ----------------------------------------------------------------
122086 --
122087 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
122088
122089
122090 -----------------------------------------------
122091 -- No accrual reversal for the event class/type
122092 -----------------------------------------------
122093 ----------------------------------------------------------------
122094
122095 --
122096 -- this ends the header loop iteration for one bulk fetch
122097 --
122098 END LOOP;
122099
122100 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
122101 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
122102
122103 --
122104 -- insert dummy rows into lines gt table that were created due to
122105 -- transaction reversals
122106 --
122107 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
122108 l_result := XLA_AE_LINES_PKG.InsertLines;
122109 END IF;
122110
122111 --
122112 -- reset the temp_line_num for each set of events fetched from header
122113 -- cursor rather than doing it for each new event in line cursor
122114 -- Bug 3939231
122115 --
122116 xla_ae_lines_pkg.g_temp_line_num := 0;
122117
122118
122119
122120 --
122121 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
122122 --
122123 --
122124 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122125
122126 trace
122127 (p_msg => 'SQL - FETCH line_cur'
122128 ,p_level => C_LEVEL_STATEMENT
122129 ,p_module => l_log_module);
122130
122131 END IF;
122132 --
122133 --
122134 LOOP
122135 --
122136 FETCH line_cur BULK COLLECT INTO
122137 l_array_entity_id
122138 , l_array_legal_entity_id
122139 , l_array_entity_code
122140 , l_array_transaction_num
122141 , l_array_event_id
122142 , l_array_class_code
122143 , l_array_event_type
122144 , l_array_event_number
122145 , l_array_event_date
122146 , l_array_transaction_date
122147 , l_array_reference_num_1
122148 , l_array_reference_num_2
122149 , l_array_reference_num_3
122150 , l_array_reference_num_4
122151 , l_array_reference_char_1
122152 , l_array_reference_char_2
122153 , l_array_reference_char_3
122154 , l_array_reference_char_4
122155 , l_array_reference_date_1
122156 , l_array_reference_date_2
122157 , l_array_reference_date_3
122158 , l_array_reference_date_4
122159 , l_array_event_created_by
122160 , l_array_budgetary_control_flag
122161 , l_array_extract_line_num
122162 , l_array_source_9
122163 , l_array_source_17
122164 , l_array_source_39
122165 , l_array_source_39_meaning
122166 , l_array_source_40
122167 , l_array_source_41
122168 , l_array_source_42
122169 , l_array_source_43
122170 , l_array_source_44
122171 , l_array_source_45
122172 , l_array_source_46
122173 , l_array_source_47
122174 , l_array_source_48
122175 , l_array_source_53
122176 , l_array_source_53_meaning
122177 , l_array_source_57
122178 , l_array_source_117
122179 , l_array_source_128
122180 , l_array_source_133
122181 LIMIT l_rows;
122182
122183 --
122184 IF (C_LEVEL_EVENT >= g_log_level) THEN
122185 trace
122186 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
122187 ,p_level => C_LEVEL_EVENT
122188 ,p_module => l_log_module);
122189 END IF;
122190 --
122194
122191 EXIT WHEN l_array_entity_id.count = 0;
122192
122193 XLA_AE_LINES_PKG.g_rec_lines := null;
122195 --
122196 -- Bug 4458708
122197 --
122198 XLA_AE_LINES_PKG.g_LineNumber := 0;
122199 --
122200 --
122201
122202 FOR Idx IN 1..l_array_event_id.count LOOP
122203 --
122204 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
122205 --
122206 l_event_id := l_array_event_id(idx); -- 5648433
122207
122208 --
122209 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
122210 --
122211
122212 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
122213 (g_array_event(l_event_id).array_value_num('header_index'))
122214 ,'N'
122215 ) <> 'Y'
122216 THEN
122217 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122218 trace
122219 (p_msg => 'Trancaction revesal option is not Y '
122220 ,p_level => C_LEVEL_STATEMENT
122221 ,p_module => l_log_module);
122222 END IF;
122223
122224 --
122225 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
122226 --
122227 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
122228 --
122229 -- set event info as cache for other routines to refer event attributes
122230 --
122231
122232 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
122233 l_previous_event_id := l_event_id;
122234
122235 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
122236 (p_application_id => p_application_id
122237 ,p_primary_ledger_id => p_primary_ledger_id
122238 ,p_base_ledger_id => p_base_ledger_id
122239 ,p_target_ledger_id => p_target_ledger_id
122240 ,p_entity_id => l_array_entity_id(Idx)
122241 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
122242 ,p_entity_code => l_array_entity_code(Idx)
122243 ,p_transaction_num => l_array_transaction_num(Idx)
122244 ,p_event_id => l_array_event_id(Idx)
122245 ,p_event_class_code => l_array_class_code(Idx)
122246 ,p_event_type_code => l_array_event_type(Idx)
122247 ,p_event_number => l_array_event_number(Idx)
122248 ,p_event_date => l_array_event_date(Idx)
122249 ,p_transaction_date => l_array_transaction_date(Idx)
122250 ,p_reference_num_1 => l_array_reference_num_1(Idx)
122251 ,p_reference_num_2 => l_array_reference_num_2(Idx)
122252 ,p_reference_num_3 => l_array_reference_num_3(Idx)
122253 ,p_reference_num_4 => l_array_reference_num_4(Idx)
122254 ,p_reference_char_1 => l_array_reference_char_1(Idx)
122255 ,p_reference_char_2 => l_array_reference_char_2(Idx)
122256 ,p_reference_char_3 => l_array_reference_char_3(Idx)
122257 ,p_reference_char_4 => l_array_reference_char_4(Idx)
122258 ,p_reference_date_1 => l_array_reference_date_1(Idx)
122259 ,p_reference_date_2 => l_array_reference_date_2(Idx)
122260 ,p_reference_date_3 => l_array_reference_date_3(Idx)
122261 ,p_reference_date_4 => l_array_reference_date_4(Idx)
122262 ,p_event_created_by => l_array_event_created_by(Idx)
122263 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
122264 --
122265 END IF;
122266
122267
122268
122269 --
122270 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
122271
122272 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
122273
122274 IF l_continue_with_lines THEN
122275 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
122276 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
122277
122278 xla_accounting_err_pkg.build_message
122279 (p_appli_s_name => 'XLA'
122280 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
122281 ,p_token_1 => 'LINE_NUMBER'
122282 ,p_value_1 => l_array_extract_line_num(Idx)
122283 ,p_token_2 => 'PRODUCT_NAME'
122284 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
122285 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
122286 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
122287 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
122288
122289 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
122290 --
122291 -- following sets the accounting attributes needed to reverse
122292 -- accounting for a distributeion
122293 --
122294
122295 --
122296 -- 5217187
122297 --
122298 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
122299 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
122300 g_array_event(l_event_id).array_value_num('header_index'));
122301 --
122302 --
122303
122304 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
122305 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
122306 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
122307 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_47(Idx);
122311 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_56');
122308 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
122309 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
122310 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
122312 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
122313 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_57(Idx);
122314 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
122315 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_48(Idx);
122316
122317
122318 xla_ae_lines_pkg.SetAcctReversalAttrs
122319 (p_event_id => l_event_id
122320 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
122321 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122322 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
122323 END IF;
122324
122325 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
122326 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
122327
122328 --
122329 AcctLineType_63 (
122330 p_application_id => p_application_id
122331 ,p_event_id => l_event_id
122332 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122333 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122334 ,p_actual_flag => l_actual_flag
122335 ,p_balance_type_code => l_balance_type_code
122336 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122337
122338 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
122339 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
122340 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
122341 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122342 , p_source_39 => l_array_source_39(Idx)
122343 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122344 , p_source_40 => l_array_source_40(Idx)
122345 , p_source_41 => l_array_source_41(Idx)
122346 , p_source_42 => l_array_source_42(Idx)
122347 , p_source_43 => l_array_source_43(Idx)
122348 , p_source_44 => l_array_source_44(Idx)
122349 , p_source_45 => l_array_source_45(Idx)
122350 , p_source_46 => l_array_source_46(Idx)
122351 , p_source_47 => l_array_source_47(Idx)
122352 , p_source_48 => l_array_source_48(Idx)
122353 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122354 , p_source_53 => l_array_source_53(Idx)
122355 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122356 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122357 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122358 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122359 , p_source_57 => l_array_source_57(Idx)
122360 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122361 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122362 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122363 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122364 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122365 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122366 , p_source_117 => l_array_source_117(Idx)
122367 );
122368 If(l_balance_type_code = 'A') THEN
122369 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122370 END IF;
122371
122372 --
122373
122374
122375 --
122376 AcctLineType_64 (
122377 p_application_id => p_application_id
122378 ,p_event_id => l_event_id
122379 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122380 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122381 ,p_actual_flag => l_actual_flag
122382 ,p_balance_type_code => l_balance_type_code
122383 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122384
122385 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122386 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122387 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
122388 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122389 , p_source_39 => l_array_source_39(Idx)
122390 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122391 , p_source_40 => l_array_source_40(Idx)
122392 , p_source_41 => l_array_source_41(Idx)
122393 , p_source_42 => l_array_source_42(Idx)
122394 , p_source_43 => l_array_source_43(Idx)
122395 , p_source_44 => l_array_source_44(Idx)
122396 , p_source_45 => l_array_source_45(Idx)
122397 , p_source_46 => l_array_source_46(Idx)
122398 , p_source_47 => l_array_source_47(Idx)
122399 , p_source_48 => l_array_source_48(Idx)
122400 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122401 , p_source_53 => l_array_source_53(Idx)
122402 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122403 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122404 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122405 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122406 , p_source_57 => l_array_source_57(Idx)
122407 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122408 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122409 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122410 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122411 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122415 If(l_balance_type_code = 'A') THEN
122412 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122413 , p_source_117 => l_array_source_117(Idx)
122414 );
122416 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122417 END IF;
122418
122419 --
122420
122421
122422 --
122423 AcctLineType_65 (
122424 p_application_id => p_application_id
122425 ,p_event_id => l_event_id
122426 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122427 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122428 ,p_actual_flag => l_actual_flag
122429 ,p_balance_type_code => l_balance_type_code
122430 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122431
122432 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122433 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122434 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
122435 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122436 , p_source_39 => l_array_source_39(Idx)
122437 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122438 , p_source_40 => l_array_source_40(Idx)
122439 , p_source_41 => l_array_source_41(Idx)
122440 , p_source_42 => l_array_source_42(Idx)
122441 , p_source_43 => l_array_source_43(Idx)
122442 , p_source_44 => l_array_source_44(Idx)
122443 , p_source_45 => l_array_source_45(Idx)
122444 , p_source_46 => l_array_source_46(Idx)
122445 , p_source_47 => l_array_source_47(Idx)
122446 , p_source_48 => l_array_source_48(Idx)
122447 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122448 , p_source_53 => l_array_source_53(Idx)
122449 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122450 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122451 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122452 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122453 , p_source_57 => l_array_source_57(Idx)
122454 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122455 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122456 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122457 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122458 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122459 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122460 , p_source_117 => l_array_source_117(Idx)
122461 );
122462 If(l_balance_type_code = 'A') THEN
122463 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122464 END IF;
122465
122466 --
122467
122468
122469 --
122470 AcctLineType_72 (
122471 p_application_id => p_application_id
122472 ,p_event_id => l_event_id
122473 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122474 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122475 ,p_actual_flag => l_actual_flag
122476 ,p_balance_type_code => l_balance_type_code
122477 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122478
122479 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
122480 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
122481 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
122482 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122483 , p_source_39 => l_array_source_39(Idx)
122484 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122485 , p_source_40 => l_array_source_40(Idx)
122486 , p_source_41 => l_array_source_41(Idx)
122487 , p_source_42 => l_array_source_42(Idx)
122488 , p_source_43 => l_array_source_43(Idx)
122489 , p_source_44 => l_array_source_44(Idx)
122490 , p_source_45 => l_array_source_45(Idx)
122491 , p_source_46 => l_array_source_46(Idx)
122492 , p_source_47 => l_array_source_47(Idx)
122493 , p_source_48 => l_array_source_48(Idx)
122494 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122495 , p_source_53 => l_array_source_53(Idx)
122496 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122497 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122498 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122499 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122500 , p_source_57 => l_array_source_57(Idx)
122501 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122502 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122503 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122504 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122505 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122506 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122507 , p_source_117 => l_array_source_117(Idx)
122508 );
122509 If(l_balance_type_code = 'A') THEN
122510 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122511 END IF;
122512
122513 --
122514
122515
122516 --
122517 AcctLineType_73 (
122518 p_application_id => p_application_id
122519 ,p_event_id => l_event_id
122520 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122521 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122522 ,p_actual_flag => l_actual_flag
122523 ,p_balance_type_code => l_balance_type_code
122524 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122525
122526 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
122530 , p_source_39 => l_array_source_39(Idx)
122527 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122528 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122529 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122531 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122532 , p_source_40 => l_array_source_40(Idx)
122533 , p_source_41 => l_array_source_41(Idx)
122534 , p_source_42 => l_array_source_42(Idx)
122535 , p_source_43 => l_array_source_43(Idx)
122536 , p_source_44 => l_array_source_44(Idx)
122537 , p_source_45 => l_array_source_45(Idx)
122538 , p_source_46 => l_array_source_46(Idx)
122539 , p_source_47 => l_array_source_47(Idx)
122540 , p_source_48 => l_array_source_48(Idx)
122541 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122542 , p_source_53 => l_array_source_53(Idx)
122543 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122544 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122545 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122546 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122547 , p_source_57 => l_array_source_57(Idx)
122548 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122549 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122550 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122551 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122552 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122553 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122554 , p_source_117 => l_array_source_117(Idx)
122555 );
122556 If(l_balance_type_code = 'A') THEN
122557 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122558 END IF;
122559
122560 --
122561
122562
122563 --
122564 AcctLineType_74 (
122565 p_application_id => p_application_id
122566 ,p_event_id => l_event_id
122567 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122568 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122569 ,p_actual_flag => l_actual_flag
122570 ,p_balance_type_code => l_balance_type_code
122571 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122572
122573 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
122574 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122575 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122576 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122577 , p_source_39 => l_array_source_39(Idx)
122578 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122579 , p_source_40 => l_array_source_40(Idx)
122580 , p_source_41 => l_array_source_41(Idx)
122581 , p_source_42 => l_array_source_42(Idx)
122582 , p_source_43 => l_array_source_43(Idx)
122583 , p_source_44 => l_array_source_44(Idx)
122584 , p_source_45 => l_array_source_45(Idx)
122585 , p_source_46 => l_array_source_46(Idx)
122586 , p_source_47 => l_array_source_47(Idx)
122587 , p_source_48 => l_array_source_48(Idx)
122588 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122589 , p_source_53 => l_array_source_53(Idx)
122590 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122591 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122592 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122593 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122594 , p_source_57 => l_array_source_57(Idx)
122595 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122596 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122597 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122598 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122599 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122600 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122601 , p_source_117 => l_array_source_117(Idx)
122602 );
122603 If(l_balance_type_code = 'A') THEN
122604 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122605 END IF;
122606
122607 --
122608
122609
122610 --
122611 AcctLineType_100 (
122612 p_application_id => p_application_id
122613 ,p_event_id => l_event_id
122614 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122615 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122616 ,p_actual_flag => l_actual_flag
122617 ,p_balance_type_code => l_balance_type_code
122618 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122619
122620 , p_source_9 => l_array_source_9(Idx)
122621 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122622 , p_source_39 => l_array_source_39(Idx)
122623 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122624 , p_source_40 => l_array_source_40(Idx)
122625 , p_source_41 => l_array_source_41(Idx)
122626 , p_source_42 => l_array_source_42(Idx)
122627 , p_source_43 => l_array_source_43(Idx)
122628 , p_source_44 => l_array_source_44(Idx)
122629 , p_source_45 => l_array_source_45(Idx)
122630 , p_source_46 => l_array_source_46(Idx)
122631 , p_source_47 => l_array_source_47(Idx)
122632 , p_source_48 => l_array_source_48(Idx)
122633 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122634 , p_source_53 => l_array_source_53(Idx)
122635 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122639 );
122636 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122637 , p_source_57 => l_array_source_57(Idx)
122638 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122640 If(l_balance_type_code = 'A') THEN
122641 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122642 END IF;
122643
122644 --
122645
122646
122647 --
122648 AcctLineType_101 (
122649 p_application_id => p_application_id
122650 ,p_event_id => l_event_id
122651 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122652 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122653 ,p_actual_flag => l_actual_flag
122654 ,p_balance_type_code => l_balance_type_code
122655 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122656
122657 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122658 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122659 , p_source_9 => l_array_source_9(Idx)
122660 , p_source_17 => l_array_source_17(Idx)
122661 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
122662 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122663 , p_source_39 => l_array_source_39(Idx)
122664 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122665 , p_source_40 => l_array_source_40(Idx)
122666 , p_source_41 => l_array_source_41(Idx)
122667 , p_source_42 => l_array_source_42(Idx)
122668 , p_source_43 => l_array_source_43(Idx)
122669 , p_source_44 => l_array_source_44(Idx)
122670 , p_source_45 => l_array_source_45(Idx)
122671 , p_source_46 => l_array_source_46(Idx)
122672 , p_source_47 => l_array_source_47(Idx)
122673 , p_source_48 => l_array_source_48(Idx)
122674 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122675 , p_source_53 => l_array_source_53(Idx)
122676 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122677 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122678 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122679 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122680 , p_source_57 => l_array_source_57(Idx)
122681 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122682 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122683 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122684 );
122685 If(l_balance_type_code = 'A') THEN
122686 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122687 END IF;
122688
122689 --
122690
122691
122692 --
122693 AcctLineType_103 (
122694 p_application_id => p_application_id
122695 ,p_event_id => l_event_id
122696 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122697 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122698 ,p_actual_flag => l_actual_flag
122699 ,p_balance_type_code => l_balance_type_code
122700 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122701
122702 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122703 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122704 , p_source_17 => l_array_source_17(Idx)
122705 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
122706 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
122707 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
122708 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
122709 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122710 , p_source_39 => l_array_source_39(Idx)
122711 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122712 , p_source_40 => l_array_source_40(Idx)
122713 , p_source_42 => l_array_source_42(Idx)
122714 , p_source_43 => l_array_source_43(Idx)
122715 , p_source_44 => l_array_source_44(Idx)
122716 , p_source_45 => l_array_source_45(Idx)
122717 , p_source_46 => l_array_source_46(Idx)
122718 , p_source_47 => l_array_source_47(Idx)
122719 , p_source_48 => l_array_source_48(Idx)
122720 , p_source_53 => l_array_source_53(Idx)
122721 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122722 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122723 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122724 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122725 , p_source_57 => l_array_source_57(Idx)
122726 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122727 , p_source_128 => l_array_source_128(Idx)
122728 );
122729 If(l_balance_type_code = 'A') THEN
122730 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122731 END IF;
122732
122733 --
122734
122735
122736 --
122737 AcctLineType_106 (
122738 p_application_id => p_application_id
122739 ,p_event_id => l_event_id
122740 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122741 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122742 ,p_actual_flag => l_actual_flag
122743 ,p_balance_type_code => l_balance_type_code
122744 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122745
122746 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122747 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122748 , p_source_17 => l_array_source_17(Idx)
122749 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
122750 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
122751 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122752 , p_source_39 => l_array_source_39(Idx)
122756 , p_source_42 => l_array_source_42(Idx)
122753 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122754 , p_source_40 => l_array_source_40(Idx)
122755 , p_source_41 => l_array_source_41(Idx)
122757 , p_source_43 => l_array_source_43(Idx)
122758 , p_source_44 => l_array_source_44(Idx)
122759 , p_source_45 => l_array_source_45(Idx)
122760 , p_source_46 => l_array_source_46(Idx)
122761 , p_source_47 => l_array_source_47(Idx)
122762 , p_source_48 => l_array_source_48(Idx)
122763 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122764 , p_source_53 => l_array_source_53(Idx)
122765 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122766 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122767 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122768 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122769 , p_source_57 => l_array_source_57(Idx)
122770 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122771 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122772 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122773 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122774 , p_source_128 => l_array_source_128(Idx)
122775 , p_source_133 => l_array_source_133(Idx)
122776 );
122777 If(l_balance_type_code = 'A') THEN
122778 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122779 END IF;
122780
122781 --
122782
122783
122784 --
122785 AcctLineType_127 (
122786 p_application_id => p_application_id
122787 ,p_event_id => l_event_id
122788 ,p_calculate_acctd_flag => l_calculate_acctd_flag
122789 ,p_calculate_g_l_flag => l_calculate_g_l_flag
122790 ,p_actual_flag => l_actual_flag
122791 ,p_balance_type_code => l_balance_type_code
122792 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122793
122794 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122795 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122796 , p_source_17 => l_array_source_17(Idx)
122797 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
122798 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
122799 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122800 , p_source_39 => l_array_source_39(Idx)
122801 , p_source_39_meaning => l_array_source_39_meaning(Idx)
122802 , p_source_40 => l_array_source_40(Idx)
122803 , p_source_41 => l_array_source_41(Idx)
122804 , p_source_42 => l_array_source_42(Idx)
122805 , p_source_43 => l_array_source_43(Idx)
122806 , p_source_44 => l_array_source_44(Idx)
122807 , p_source_45 => l_array_source_45(Idx)
122808 , p_source_46 => l_array_source_46(Idx)
122809 , p_source_47 => l_array_source_47(Idx)
122810 , p_source_48 => l_array_source_48(Idx)
122811 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122812 , p_source_53 => l_array_source_53(Idx)
122813 , p_source_53_meaning => l_array_source_53_meaning(Idx)
122814 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122815 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122816 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122817 , p_source_57 => l_array_source_57(Idx)
122818 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122819 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122820 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122821 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122822 , p_source_128 => l_array_source_128(Idx)
122823 , p_source_133 => l_array_source_133(Idx)
122824 );
122825 If(l_balance_type_code = 'A') THEN
122826 l_actual_gain_loss_ref := l_gain_or_loss_ref;
122827 END IF;
122828
122829 --
122830
122831 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
122832 -- or secondary ledger that has different currency with primary
122833 -- or alc that is calculated by sla
122834 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
122835 (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'))
122836
122837 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
122838 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
122839 AND (l_actual_flag = 'A')) THEN
122840 XLA_AE_LINES_PKG.CreateGainOrLossLines(
122841 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
122842 ,p_application_id => p_application_id
122843 ,p_amb_context_code => 'DEFAULT'
122844 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
122845 ,p_event_class_code => C_EVENT_CLASS_CODE
122846 ,p_event_type_code => C_EVENT_TYPE_CODE
122847
122848 ,p_gain_ccid => -1
122849 ,p_loss_ccid => -1
122850
122851 ,p_actual_flag => l_actual_flag
122852 ,p_enc_flag => null
122853 ,p_actual_g_l_ref => l_actual_gain_loss_ref
122854 ,p_enc_g_l_ref => null
122855 );
122856 END IF;
122857 END IF;
122858 END IF;
122859
122860 ELSE
122861 --
122862 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
122863 --
122864 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122865 trace
122869 END IF;
122866 (p_msg => 'Trancaction revesal option is Y'
122867 ,p_level => C_LEVEL_STATEMENT
122868 ,p_module => l_log_module);
122870 END IF;
122871
122872 END LOOP;
122873 l_result := XLA_AE_LINES_PKG.InsertLines ;
122874 end loop;
122875 close line_cur;
122876
122877
122878 --
122879 -- insert headers into xla_ae_headers_gt table
122880 --
122881 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
122882
122883 -- insert into errors table here.
122884
122885 END LOOP;
122886
122887 --
122888 -- 4865292
122889 --
122890 -- Compare g_hdr_extract_count with event count in
122891 -- CreateHeadersAndLines.
122892 --
122893 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
122894
122895 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122896 trace (p_msg => '# rows extracted from header extract objects '
122897 || ' (running total): '
122898 || g_hdr_extract_count
122899 ,p_level => C_LEVEL_STATEMENT
122900 ,p_module => l_log_module);
122901 END IF;
122902
122903 CLOSE header_cur;
122904 --
122905
122906 --
122907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122908 trace
122909 (p_msg => 'END of EventClass_206'
122910 ,p_level => C_LEVEL_PROCEDURE
122911 ,p_module => l_log_module);
122912 END IF;
122913 --
122914 RETURN l_result;
122915 EXCEPTION
122916 WHEN xla_exceptions_pkg.application_exception THEN
122917
122918 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
122919
122920
122921 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
122922
122923 RAISE;
122924
122925 WHEN NO_DATA_FOUND THEN
122926
122927 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
122928 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
122929
122930 FOR header_record IN header_cur
122931 LOOP
122932 l_array_header_events(header_record.event_id) := header_record.event_id;
122933 END LOOP;
122934
122935 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
122936 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
122937
122938 fnd_file.put_line(fnd_file.LOG, ' ');
122939 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
122940 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
122941 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
122942
122943 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
122944 LOOP
122945 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
122946 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
122947 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
122948 END IF;
122949 END LOOP;
122950
122951 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
122952 fnd_file.put_line(fnd_file.LOG, ' ');
122953
122954
122955 xla_exceptions_pkg.raise_message
122956 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_206');
122957
122958
122959 WHEN OTHERS THEN
122960 xla_exceptions_pkg.raise_message
122961 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_206');
122962 END EventClass_206;
122963 --
122964
122965 ---------------------------------------
122966 --
122967 -- PRIVATE PROCEDURE
122968 -- insert_sources_207
122969 --
122970 ----------------------------------------
122971 --
122972 PROCEDURE insert_sources_207(
122973 p_target_ledger_id IN NUMBER
122974 , p_language IN VARCHAR2
122975 , p_sla_ledger_id IN NUMBER
122976 , p_pad_start_date IN DATE
122977 , p_pad_end_date IN DATE
122978 )
122979 IS
122980
122981 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICES_ALL';
122982 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICES';
122983 p_apps_owner VARCHAR2(30);
122984 l_log_module VARCHAR2(240);
122985 BEGIN
122986 IF g_log_enabled THEN
122987 l_log_module := C_DEFAULT_MODULE||'.insert_sources_207';
122988 END IF;
122989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122990
122991 trace
122992 (p_msg => 'BEGIN of insert_sources_207'
122993 ,p_level => C_LEVEL_PROCEDURE
122994 ,p_module => l_log_module);
122995
122996 END IF;
122997
122998 -- select APPS owner
122999 SELECT oracle_username
123000 INTO p_apps_owner
123001 FROM fnd_oracle_userid
123002 WHERE read_only_flag = 'U'
123003 ;
123004
123005 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123006 trace
123007 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
123008 ' - p_language = '||p_language||
123009 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
123010 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
123011 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
123012 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
123016
123013 ,p_level => C_LEVEL_STATEMENT
123014 ,p_module => l_log_module);
123015 END IF;
123017
123018 --
123019 INSERT INTO xla_diag_sources --hdr2
123020 (
123021 event_id
123022 , ledger_id
123023 , sla_ledger_id
123024 , description_language
123025 , object_name
123026 , object_type_code
123027 , line_number
123028 , source_application_id
123029 , source_type_code
123030 , source_code
123031 , source_value
123032 , source_meaning
123033 , created_by
123034 , creation_date
123035 , last_update_date
123036 , last_updated_by
123037 , last_update_login
123038 , program_update_date
123039 , program_application_id
123040 , program_id
123041 , request_id
123042 )
123043 SELECT
123044 event_id
123045 , p_target_ledger_id
123046 , p_sla_ledger_id
123047 , p_language
123048 , object_name
123049 , object_type_code
123050 , line_number
123051 , source_application_id
123052 , source_type_code
123053 , source_code
123054 , SUBSTR(source_value ,1,1996)
123055 , SUBSTR(source_meaning ,1,200)
123056 , xla_environment_pkg.g_Usr_Id
123057 , TRUNC(SYSDATE)
123058 , TRUNC(SYSDATE)
123059 , xla_environment_pkg.g_Usr_Id
123060 , xla_environment_pkg.g_Login_Id
123061 , TRUNC(SYSDATE)
123062 , xla_environment_pkg.g_Prog_Appl_Id
123063 , xla_environment_pkg.g_Prog_Id
123064 , xla_environment_pkg.g_Req_Id
123065 FROM (
123066 SELECT xet.event_id event_id
123067 , 0 line_number
123068 , CASE r
123069 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
123070 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
123071 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
123072 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
123073 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
123074
123075 ELSE null
123076 END object_name
123077 , CASE r
123078 WHEN 1 THEN 'HEADER'
123079 WHEN 2 THEN 'HEADER'
123080 WHEN 3 THEN 'HEADER'
123081 WHEN 4 THEN 'HEADER'
123082 WHEN 5 THEN 'HEADER'
123083
123084 ELSE null
123085 END object_type_code
123086 , CASE r
123087 WHEN 1 THEN '200'
123088 WHEN 2 THEN '200'
123089 WHEN 3 THEN '200'
123090 WHEN 4 THEN '200'
123091 WHEN 5 THEN '200'
123092
123093 ELSE null
123094 END source_application_id
123095 , 'S' source_type_code
123096 , CASE r
123097 WHEN 1 THEN 'THIRD_PARTY_TYPE'
123098 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
123099 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY'
123100 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
123101 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE'
123102
123103 ELSE null
123104 END source_code
123105 , CASE r
123106 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
123107 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
123108 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
123109 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
123110 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
123111
123112 ELSE null
123113 END source_value
123114 , null source_meaning
123115 FROM xla_events_gt xet
123116 , AP_INVOICE_EXTRACT_HEADER_V h2
123117 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
123118 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
123119 AND xet.event_class_code = C_EVENT_CLASS_CODE
123120 AND h2.event_id = xet.event_id
123121
123122 )
123123 ;
123124 --
123125 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123126
123127 trace
123128 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
123129 ,p_level => C_LEVEL_STATEMENT
123130 ,p_module => l_log_module);
123131
123132 END IF;
123133 --
123134
123135
123136
123137 --
123138 INSERT INTO xla_diag_sources --line2
123139 (
123140 event_id
123141 , ledger_id
123142 , sla_ledger_id
123143 , description_language
123144 , object_name
123145 , object_type_code
123146 , line_number
123147 , source_application_id
123148 , source_type_code
123149 , source_code
123150 , source_value
123151 , source_meaning
123152 , created_by
123153 , creation_date
123154 , last_update_date
123155 , last_updated_by
123156 , last_update_login
123157 , program_update_date
123158 , program_application_id
123159 , program_id
123160 , request_id
123161 )
123165 , p_language
123162 SELECT event_id
123163 , p_target_ledger_id
123164 , p_sla_ledger_id
123166 , object_name
123167 , object_type_code
123168 , line_number
123169 , source_application_id
123170 , source_type_code
123171 , source_code
123172 , SUBSTR(source_value,1,1996)
123173 , SUBSTR(source_meaning ,1,200)
123174 , xla_environment_pkg.g_Usr_Id
123175 , TRUNC(SYSDATE)
123176 , TRUNC(SYSDATE)
123177 , xla_environment_pkg.g_Usr_Id
123178 , xla_environment_pkg.g_Login_Id
123179 , TRUNC(SYSDATE)
123180 , xla_environment_pkg.g_Prog_Appl_Id
123181 , xla_environment_pkg.g_Prog_Id
123182 , xla_environment_pkg.g_Req_Id
123183 FROM (
123184 SELECT xet.event_id event_id
123185 , l1.line_number line_number
123186 , CASE r
123187 WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123188 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123189 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
123190 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123191 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
123192 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123193 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123194 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123195 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123196 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123197 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123198 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123199 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123200 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123201 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123202 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
123203
123204 ELSE null
123205 END object_name
123206 , CASE r
123207 WHEN 1 THEN 'LINE'
123208 WHEN 2 THEN 'LINE'
123209 WHEN 3 THEN 'LINE'
123210 WHEN 4 THEN 'LINE'
123211 WHEN 5 THEN 'LINE'
123212 WHEN 6 THEN 'LINE'
123213 WHEN 7 THEN 'LINE'
123214 WHEN 8 THEN 'LINE'
123215 WHEN 9 THEN 'LINE'
123216 WHEN 10 THEN 'LINE'
123217 WHEN 11 THEN 'LINE'
123218 WHEN 12 THEN 'LINE'
123219 WHEN 13 THEN 'LINE'
123220 WHEN 14 THEN 'LINE'
123221 WHEN 15 THEN 'LINE'
123222 WHEN 16 THEN 'LINE'
123223
123224 ELSE null
123225 END object_type_code
123226 , CASE r
123227 WHEN 1 THEN '200'
123228 WHEN 2 THEN '200'
123229 WHEN 3 THEN '200'
123230 WHEN 4 THEN '200'
123231 WHEN 5 THEN '200'
123232 WHEN 6 THEN '200'
123233 WHEN 7 THEN '200'
123234 WHEN 8 THEN '200'
123235 WHEN 9 THEN '200'
123236 WHEN 10 THEN '200'
123237 WHEN 11 THEN '200'
123238 WHEN 12 THEN '200'
123239 WHEN 13 THEN '200'
123240 WHEN 14 THEN '200'
123241 WHEN 15 THEN '200'
123242 WHEN 16 THEN '200'
123243
123244 ELSE null
123245 END source_application_id
123246 , 'S' source_type_code
123247 , CASE r
123248 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
123249 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE'
123250 WHEN 3 THEN 'TAX_LINE_ID'
123251 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID'
123252 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID'
123253 WHEN 6 THEN 'UPG_ENC_CR_CCID'
123254 WHEN 7 THEN 'UPG_ENC_CR_AMT'
123255 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT'
123256 WHEN 9 THEN 'UPG_ENC_DR_CCID'
123257 WHEN 10 THEN 'UPG_ENC_DR_AMT'
123258 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT'
123259 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION'
123260 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID'
123261 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID'
123262 WHEN 15 THEN 'AID_INVOICE_DIST_ID'
123263 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID'
123264
123265 ELSE null
123266 END source_code
123267 , CASE r
123268 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
123269 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
123270 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
123271 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
123272 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
123273 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
123274 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
123275 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
123276 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
123277 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
123278 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
123279 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
123280 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
123284
123281 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
123282 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
123283 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
123285 ELSE null
123286 END source_value
123287 , null source_meaning
123288 FROM xla_events_gt xet
123289 , AP_INVOICE_EXTRACT_DETAILS_V l1
123290 , ZX_AP_DEF_TAX_EXTRACT_V l3
123291 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
123292 , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
123293 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
123294 AND xet.event_class_code = C_EVENT_CLASS_CODE
123295 AND l1.event_id = xet.event_id
123296 AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)
123297 )
123298 ;
123299 --
123300 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123301
123302 trace
123303 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
123304 ,p_level => C_LEVEL_STATEMENT
123305 ,p_module => l_log_module);
123306
123307 END IF;
123308
123309
123310 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123311 trace
123312 (p_msg => 'END of insert_sources_207'
123313 ,p_level => C_LEVEL_PROCEDURE
123314 ,p_module => l_log_module);
123315 END IF;
123316 EXCEPTION
123317 WHEN xla_exceptions_pkg.application_exception THEN
123318 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
123319 trace
123320 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
123321 ,p_level => C_LEVEL_EXCEPTION
123322 ,p_module => l_log_module);
123323 END IF;
123324 RAISE;
123325 WHEN OTHERS THEN
123326 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
123327 trace
123328 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
123329 ,p_level => C_LEVEL_EXCEPTION
123330 ,p_module => l_log_module);
123331 END IF;
123332 xla_exceptions_pkg.raise_message
123333 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_207');
123334 END insert_sources_207;
123335 --
123336
123337 ---------------------------------------
123338 --
123339 -- PRIVATE FUNCTION
123340 -- EventClass_207
123341 --
123342 ----------------------------------------
123343 --
123344 FUNCTION EventClass_207
123345 (p_application_id IN NUMBER
123346 ,p_base_ledger_id IN NUMBER
123347 ,p_target_ledger_id IN NUMBER
123348 ,p_language IN VARCHAR2
123349 ,p_currency_code IN VARCHAR2
123350 ,p_sla_ledger_id IN NUMBER
123351 ,p_pad_start_date IN DATE
123352 ,p_pad_end_date IN DATE
123353 ,p_primary_ledger_id IN NUMBER)
123354 RETURN BOOLEAN IS
123355 --
123356 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICES_ALL';
123357 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICES';
123358
123359 l_calculate_acctd_flag VARCHAR2(1) :='N';
123360 l_calculate_g_l_flag VARCHAR2(1) :='N';
123361 --
123362 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123363 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123364 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123365 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123366 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123367 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123368 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123369 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123370 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123371 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123372 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123373 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123374 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123375 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123376 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123377 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123378 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123379 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123380 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123381 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123382 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123383 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123384 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
123385 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123386 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
123387 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
123388
123389 l_event_id NUMBER;
123390 l_previous_event_id NUMBER;
123394 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
123391 l_first_event_id NUMBER;
123392 l_last_event_id NUMBER;
123393
123395 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
123396 --
123397 --
123398 l_result BOOLEAN := TRUE;
123399 l_rows NUMBER := 1000;
123400 l_event_type_name VARCHAR2(80) := 'All';
123401 l_event_class_name VARCHAR2(80) := 'Invoices';
123402 l_description VARCHAR2(4000);
123403 l_transaction_reversal NUMBER;
123404 l_ae_header_id NUMBER;
123405 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
123406 l_log_module VARCHAR2(240);
123407 --
123408 l_acct_reversal_source VARCHAR2(30);
123409 l_trx_reversal_source VARCHAR2(30);
123410
123411 l_continue_with_lines BOOLEAN := TRUE;
123412 --
123413 l_acc_rev_gl_date_source DATE; -- 4262811
123414 --
123415 type t_array_event_id is table of number index by binary_integer;
123416
123417 l_rec_array_event t_rec_array_event;
123418 l_null_rec_array_event t_rec_array_event;
123419 l_array_ae_header_id xla_number_array_type;
123420 l_actual_flag VARCHAR2(1) := NULL;
123421 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
123422 l_balance_type_code VARCHAR2(1) :=NULL;
123423 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
123424
123425 --
123426 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
123427 --
123428
123429 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
123430 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
123431 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
123432 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
123433 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
123434
123435 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
123436 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
123437 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
123438 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
123439 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
123440 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
123441 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
123442 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
123443 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
123444 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
123445 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
123446 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
123447 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
123448 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
123449 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
123450 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
123451
123452 l_array_source_56 t_array_source_56;
123453 l_array_source_80 t_array_source_80;
123454 l_array_source_152 t_array_source_152;
123455 l_array_source_153 t_array_source_153;
123456 l_array_source_154 t_array_source_154;
123457
123458 l_array_source_40 t_array_source_40;
123459 l_array_source_48 t_array_source_48;
123460 l_array_source_58 t_array_source_58;
123461 l_array_source_59 t_array_source_59;
123462 l_array_source_66 t_array_source_66;
123463 l_array_source_78 t_array_source_78;
123464 l_array_source_79 t_array_source_79;
123465 l_array_source_81 t_array_source_81;
123466 l_array_source_83 t_array_source_83;
123467 l_array_source_84 t_array_source_84;
123468 l_array_source_85 t_array_source_85;
123469 l_array_source_86 t_array_source_86;
123470 l_array_source_96 t_array_source_96;
123471 l_array_source_97 t_array_source_97;
123472 l_array_source_156 t_array_source_156;
123473 l_array_source_157 t_array_source_157;
123474
123475 --
123476 CURSOR header_cur
123477 IS
123478 SELECT /*+ leading(xet) cardinality(xet,1) */
123479 -- Event Class Code: INVOICES
123480 xet.entity_id
123481 ,xet.legal_entity_id
123482 ,xet.entity_code
123483 ,xet.transaction_number
123484 ,xet.event_id
123485 ,xet.event_class_code
123486 ,xet.event_type_code
123487 ,xet.event_number
123491 ,xet.reference_num_2
123488 ,xet.event_date
123489 ,xet.transaction_date
123490 ,xet.reference_num_1
123492 ,xet.reference_num_3
123493 ,xet.reference_num_4
123494 ,xet.reference_char_1
123495 ,xet.reference_char_2
123496 ,xet.reference_char_3
123497 ,xet.reference_char_4
123498 ,xet.reference_date_1
123499 ,xet.reference_date_2
123500 ,xet.reference_date_3
123501 ,xet.reference_date_4
123502 ,xet.event_created_by
123503 ,xet.budgetary_control_flag
123504 , h2.THIRD_PARTY_TYPE source_56
123505 , h2.AI_INVOICE_CURRENCY_CODE source_80
123506 , h2.INV_DOC_SEQUENCE_CATEGORY source_152
123507 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_153
123508 , h2.INV_DOC_SEQUENCE_VALUE source_154
123509 FROM xla_events_gt xet
123510 , AP_INVOICE_EXTRACT_HEADER_V h2
123511 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
123512 and xet.event_class_code = C_EVENT_CLASS_CODE
123513 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
123514
123515 ORDER BY event_id
123516 ;
123517
123518
123519 --
123520 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
123521 IS
123522 SELECT /*+ leading(xet) cardinality(xet,1) */
123523 -- Event Class Code: INVOICES
123524 xet.entity_id
123525 ,xet.legal_entity_id
123526 ,xet.entity_code
123527 ,xet.transaction_number
123528 ,xet.event_id
123529 ,xet.event_class_code
123530 ,xet.event_type_code
123531 ,xet.event_number
123532 ,xet.event_date
123533 ,xet.transaction_date
123534 ,xet.reference_num_1
123535 ,xet.reference_num_2
123536 ,xet.reference_num_3
123537 ,xet.reference_num_4
123538 ,xet.reference_char_1
123539 ,xet.reference_char_2
123540 ,xet.reference_char_3
123541 ,xet.reference_char_4
123542 ,xet.reference_date_1
123543 ,xet.reference_date_2
123544 ,xet.reference_date_3
123545 ,xet.reference_date_4
123546 ,xet.event_created_by
123547 ,xet.budgetary_control_flag
123548 , l1.LINE_NUMBER
123549 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
123550 , l1.DISTRIBUTION_LINK_TYPE source_48
123551 , l3.TAX_LINE_ID source_58
123552 , l1.SUMMARY_TAX_LINE_ID source_59
123553 , l4.REC_NREC_TAX_DIST_ID source_66
123554 , l1.UPG_ENC_CR_CCID source_78
123555 , l1.UPG_ENC_CR_AMT source_79
123556 , l1.UPG_ENC_CR_BASE_AMT source_81
123557 , l1.UPG_ENC_DR_CCID source_83
123558 , l1.UPG_ENC_DR_AMT source_84
123559 , l1.UPG_ENC_DR_BASE_AMT source_85
123560 , l1.UPG_AP_ENCUM_OPTION source_86
123561 , l1.UPG_CR_ENC_TYPE_ID source_96
123562 , l1.UPG_DR_ENC_TYPE_ID source_97
123563 , l1.AID_INVOICE_DIST_ID source_156
123564 , l1.AID_PARENT_REVERSAL_ID source_157
123565 FROM xla_events_gt xet
123566 , AP_INVOICE_EXTRACT_DETAILS_V l1
123567 , ZX_AP_DEF_TAX_EXTRACT_V l3
123568 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
123569 WHERE xet.event_id between x_first_event_id and x_last_event_id
123570 and xet.event_date between p_pad_start_date and p_pad_end_date
123571 and xet.event_class_code = C_EVENT_CLASS_CODE
123572 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
123573 AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
123574
123575 --
123576 BEGIN
123577 IF g_log_enabled THEN
123578 l_log_module := C_DEFAULT_MODULE||'.EventClass_207';
123579 END IF;
123580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123581 trace
123582 (p_msg => 'BEGIN of EventClass_207'
123583 ,p_level => C_LEVEL_PROCEDURE
123584 ,p_module => l_log_module);
123585 END IF;
123586
123587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123588 trace
123589 (p_msg => 'p_application_id = '||p_application_id||
123590 ' - p_base_ledger_id = '||p_base_ledger_id||
123591 ' - p_target_ledger_id = '||p_target_ledger_id||
123592 ' - p_language = '||p_language||
123593 ' - p_currency_code = '||p_currency_code||
123594 ' - p_sla_ledger_id = '||p_sla_ledger_id
123595 ,p_level => C_LEVEL_STATEMENT
123596 ,p_module => l_log_module);
123597 END IF;
123598 --
123599 -- initialze arrays
123600 --
123601 g_array_event.DELETE;
123602 l_rec_array_event := l_null_rec_array_event;
123603 --
123604 --------------------------------------
123605 -- 4262811 Initialze MPA Line Number
123606 --------------------------------------
123607 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
123608
123609 --
123610
123611 --
123612 OPEN header_cur;
123613 --
123614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123615 trace
123616 (p_msg => 'SQL - FETCH header_cur'
123617 ,p_level => C_LEVEL_STATEMENT
123618 ,p_module => l_log_module);
123619 END IF;
123620 --
123621 LOOP
123622 FETCH header_cur BULK COLLECT INTO
123623 l_array_entity_id
123624 , l_array_legal_entity_id
123625 , l_array_entity_code
123626 , l_array_transaction_num
123627 , l_array_event_id
123628 , l_array_class_code
123629 , l_array_event_type
123630 , l_array_event_number
123631 , l_array_event_date
123632 , l_array_transaction_date
123633 , l_array_reference_num_1
123634 , l_array_reference_num_2
123635 , l_array_reference_num_3
123636 , l_array_reference_num_4
123640 , l_array_reference_char_4
123637 , l_array_reference_char_1
123638 , l_array_reference_char_2
123639 , l_array_reference_char_3
123641 , l_array_reference_date_1
123642 , l_array_reference_date_2
123643 , l_array_reference_date_3
123644 , l_array_reference_date_4
123645 , l_array_event_created_by
123646 , l_array_budgetary_control_flag
123647 , l_array_source_56
123648 , l_array_source_80
123649 , l_array_source_152
123650 , l_array_source_153
123651 , l_array_source_154
123652 LIMIT l_rows;
123653 --
123654 IF (C_LEVEL_EVENT >= g_log_level) THEN
123655 trace
123656 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
123657 ,p_level => C_LEVEL_EVENT
123658 ,p_module => l_log_module);
123659 END IF;
123660 --
123661 EXIT WHEN l_array_entity_id.COUNT = 0;
123662
123663 -- initialize arrays
123664 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
123665 XLA_AE_LINES_PKG.g_rec_lines := NULL;
123666
123667 --
123668 -- Bug 4458708
123669 --
123670 XLA_AE_LINES_PKG.g_LineNumber := 0;
123671
123672
123673 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
123674 g_last_hdr_idx := l_array_event_id.LAST;
123675 --
123676 -- loop for the headers. Each iteration is for each header extract row
123677 -- fetched in header cursor
123678 --
123679 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
123680
123681 --
123682 -- set event info as cache for other routines to refer event attributes
123683 --
123684 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
123685 (p_application_id => p_application_id
123686 ,p_primary_ledger_id => p_primary_ledger_id
123687 ,p_base_ledger_id => p_base_ledger_id
123688 ,p_target_ledger_id => p_target_ledger_id
123689 ,p_entity_id => l_array_entity_id(hdr_idx)
123690 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
123691 ,p_entity_code => l_array_entity_code(hdr_idx)
123692 ,p_transaction_num => l_array_transaction_num(hdr_idx)
123693 ,p_event_id => l_array_event_id(hdr_idx)
123694 ,p_event_class_code => l_array_class_code(hdr_idx)
123695 ,p_event_type_code => l_array_event_type(hdr_idx)
123696 ,p_event_number => l_array_event_number(hdr_idx)
123697 ,p_event_date => l_array_event_date(hdr_idx)
123698 ,p_transaction_date => l_array_transaction_date(hdr_idx)
123699 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
123700 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
123701 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
123702 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
123703 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
123704 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
123705 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
123706 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
123707 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
123708 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
123709 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
123710 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
123711 ,p_event_created_by => l_array_event_created_by(hdr_idx)
123712 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
123713
123714 --
123715 -- set the status of entry to C_VALID (0)
123716 --
123717 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
123718
123719 --
123720 -- initialize a row for ae header
123721 --
123722 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
123723
123724 l_event_id := l_array_event_id(hdr_idx);
123725
123726 --
123727 -- storing the hdr_idx for event. May be used by line cursor.
123728 --
123729 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
123730
123731 --
123732 -- store sources from header extract. This can be improved to
123733 -- store only those sources from header extract that may be used in lines
123734 --
123735
123736 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
123737 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
123738 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
123739 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
123740 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
123741
123742 --
123743 -- initilaize the status of ae headers for diffrent balance types
123744 -- the status is initialised to C_NOT_CREATED (2)
123745 --
123746 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
123747 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
123748 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
123749
123750 --
123751 -- call api to validate and store accounting attributes for header
123752 --
123753
123754 ------------------------------------------------------------
123755 -- Accrual Reversal : to get date for Standard Source (NONE)
123756 ------------------------------------------------------------
123757 l_acc_rev_gl_date_source := NULL;
123758
123762 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
123759 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
123760 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
123761 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
123763 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
123764 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
123765 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
123766 l_rec_acct_attrs.array_date_value(4) :=
123767 xla_ae_sources_pkg.GetSystemSourceDate(
123768 p_source_code => 'XLA_EVENT_DATE'
123769 , p_source_type_code => 'Y'
123770 , p_source_application_id => 602
123771 );
123772
123773
123774 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
123775
123776 XLA_AE_HEADER_PKG.SetJeCategoryName;
123777
123778 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
123779 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
123780 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
123781 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
123782 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
123783
123784
123785 -- No header level analytical criteria
123786
123787 --
123788 --accounting attribute enhancement, bug 3612931
123789 --
123790 l_trx_reversal_source := SUBSTR(NULL, 1,30);
123791
123792 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
123793 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
123794
123795 xla_accounting_err_pkg.build_message
123796 (p_appli_s_name => 'XLA'
123797 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
123798 ,p_token_1 => 'ACCT_ATTR_NAME'
123799 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
123800 ,p_token_2 => 'PRODUCT_NAME'
123801 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
123802 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
123803 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
123804 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
123805
123806 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
123807 --
123808 -- following sets the accounting attributes needed to reverse
123809 -- accounting for a distributeion
123810 --
123811 xla_ae_lines_pkg.SetTrxReversalAttrs
123812 (p_event_id => l_event_id
123813 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
123814 ,p_trx_reversal_source => l_trx_reversal_source);
123815
123816 END IF;
123817
123818
123819 ----------------------------------------------------------------
123820 -- 4262811 - update the header statuses to invalid in need be
123821 ----------------------------------------------------------------
123822 --
123823 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
123824
123825
123826 -----------------------------------------------
123827 -- No accrual reversal for the event class/type
123828 -----------------------------------------------
123829 ----------------------------------------------------------------
123830
123831 --
123832 -- this ends the header loop iteration for one bulk fetch
123833 --
123834 END LOOP;
123835
123836 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
123837 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
123838
123839 --
123840 -- insert dummy rows into lines gt table that were created due to
123841 -- transaction reversals
123842 --
123843 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
123844 l_result := XLA_AE_LINES_PKG.InsertLines;
123845 END IF;
123846
123847 --
123848 -- reset the temp_line_num for each set of events fetched from header
123849 -- cursor rather than doing it for each new event in line cursor
123850 -- Bug 3939231
123851 --
123852 xla_ae_lines_pkg.g_temp_line_num := 0;
123853
123854
123855
123856 --
123857 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
123858 --
123859 --
123860 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123861
123862 trace
123863 (p_msg => 'SQL - FETCH line_cur'
123864 ,p_level => C_LEVEL_STATEMENT
123865 ,p_module => l_log_module);
123866
123867 END IF;
123868 --
123869 --
123870 LOOP
123871 --
123872 FETCH line_cur BULK COLLECT INTO
123873 l_array_entity_id
123874 , l_array_legal_entity_id
123875 , l_array_entity_code
123876 , l_array_transaction_num
123877 , l_array_event_id
123878 , l_array_class_code
123879 , l_array_event_type
123880 , l_array_event_number
123881 , l_array_event_date
123882 , l_array_transaction_date
123883 , l_array_reference_num_1
123884 , l_array_reference_num_2
123885 , l_array_reference_num_3
123886 , l_array_reference_num_4
123887 , l_array_reference_char_1
123888 , l_array_reference_char_2
123889 , l_array_reference_char_3
123893 , l_array_reference_date_3
123890 , l_array_reference_char_4
123891 , l_array_reference_date_1
123892 , l_array_reference_date_2
123894 , l_array_reference_date_4
123895 , l_array_event_created_by
123896 , l_array_budgetary_control_flag
123897 , l_array_extract_line_num
123898 , l_array_source_40
123899 , l_array_source_48
123900 , l_array_source_58
123901 , l_array_source_59
123902 , l_array_source_66
123903 , l_array_source_78
123904 , l_array_source_79
123905 , l_array_source_81
123906 , l_array_source_83
123907 , l_array_source_84
123908 , l_array_source_85
123909 , l_array_source_86
123910 , l_array_source_96
123911 , l_array_source_97
123912 , l_array_source_156
123913 , l_array_source_157
123914 LIMIT l_rows;
123915
123916 --
123917 IF (C_LEVEL_EVENT >= g_log_level) THEN
123918 trace
123919 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
123920 ,p_level => C_LEVEL_EVENT
123921 ,p_module => l_log_module);
123922 END IF;
123923 --
123924 EXIT WHEN l_array_entity_id.count = 0;
123925
123926 XLA_AE_LINES_PKG.g_rec_lines := null;
123927
123928 --
123929 -- Bug 4458708
123930 --
123931 XLA_AE_LINES_PKG.g_LineNumber := 0;
123932 --
123933 --
123934
123935 FOR Idx IN 1..l_array_event_id.count LOOP
123936 --
123937 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
123938 --
123939 l_event_id := l_array_event_id(idx); -- 5648433
123940
123941 --
123942 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
123943 --
123944
123945 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
123946 (g_array_event(l_event_id).array_value_num('header_index'))
123947 ,'N'
123948 ) <> 'Y'
123949 THEN
123950 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123951 trace
123952 (p_msg => 'Trancaction revesal option is not Y '
123953 ,p_level => C_LEVEL_STATEMENT
123954 ,p_module => l_log_module);
123955 END IF;
123956
123957 --
123958 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
123959 --
123960 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
123961 --
123962 -- set event info as cache for other routines to refer event attributes
123963 --
123964
123965 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
123966 l_previous_event_id := l_event_id;
123967
123968 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
123969 (p_application_id => p_application_id
123970 ,p_primary_ledger_id => p_primary_ledger_id
123971 ,p_base_ledger_id => p_base_ledger_id
123972 ,p_target_ledger_id => p_target_ledger_id
123973 ,p_entity_id => l_array_entity_id(Idx)
123974 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
123975 ,p_entity_code => l_array_entity_code(Idx)
123976 ,p_transaction_num => l_array_transaction_num(Idx)
123977 ,p_event_id => l_array_event_id(Idx)
123978 ,p_event_class_code => l_array_class_code(Idx)
123979 ,p_event_type_code => l_array_event_type(Idx)
123980 ,p_event_number => l_array_event_number(Idx)
123981 ,p_event_date => l_array_event_date(Idx)
123982 ,p_transaction_date => l_array_transaction_date(Idx)
123983 ,p_reference_num_1 => l_array_reference_num_1(Idx)
123984 ,p_reference_num_2 => l_array_reference_num_2(Idx)
123985 ,p_reference_num_3 => l_array_reference_num_3(Idx)
123986 ,p_reference_num_4 => l_array_reference_num_4(Idx)
123987 ,p_reference_char_1 => l_array_reference_char_1(Idx)
123988 ,p_reference_char_2 => l_array_reference_char_2(Idx)
123989 ,p_reference_char_3 => l_array_reference_char_3(Idx)
123990 ,p_reference_char_4 => l_array_reference_char_4(Idx)
123991 ,p_reference_date_1 => l_array_reference_date_1(Idx)
123992 ,p_reference_date_2 => l_array_reference_date_2(Idx)
123993 ,p_reference_date_3 => l_array_reference_date_3(Idx)
123994 ,p_reference_date_4 => l_array_reference_date_4(Idx)
123995 ,p_event_created_by => l_array_event_created_by(Idx)
123996 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
123997 --
123998 END IF;
123999
124000
124001
124002 --
124003 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
124004
124005 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
124006
124007 IF l_continue_with_lines THEN
124008 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
124009 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
124010
124011 xla_accounting_err_pkg.build_message
124012 (p_appli_s_name => 'XLA'
124013 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
124014 ,p_token_1 => 'LINE_NUMBER'
124015 ,p_value_1 => l_array_extract_line_num(Idx)
124016 ,p_token_2 => 'PRODUCT_NAME'
124020 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
124017 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
124018 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
124019 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
124021
124022 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
124023 --
124024 -- following sets the accounting attributes needed to reverse
124025 -- accounting for a distributeion
124026 --
124027
124028 --
124029 -- 5217187
124030 --
124031 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
124032 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
124033 g_array_event(l_event_id).array_value_num('header_index'));
124034 --
124035 --
124036
124037 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
124038 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
124039 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
124040 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
124041 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
124042 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
124043 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
124044 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_78(Idx);
124045 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
124046 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_79(Idx);
124047 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
124048 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_80');
124049 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
124050 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_81(Idx);
124051 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
124052 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_83(Idx);
124053 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
124054 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_84(Idx);
124055 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
124056 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_80');
124057 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
124058 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_85(Idx);
124059 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
124060 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_86(Idx);
124061 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
124062 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_56');
124063 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
124064 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_157(Idx);
124065 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
124066 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_48(Idx);
124067 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
124068 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_58(Idx);
124069 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
124070 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_66(Idx);
124071 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
124072 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_59(Idx);
124073 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
124074 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_96(Idx);
124075 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
124076 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_97(Idx);
124077
124078
124079 xla_ae_lines_pkg.SetAcctReversalAttrs
124080 (p_event_id => l_event_id
124081 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
124082 ,p_calculate_acctd_flag => l_calculate_acctd_flag
124083 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
124084 END IF;
124085
124086 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
124087 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
124088 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
124089 -- or secondary ledger that has different currency with primary
124090 -- or alc that is calculated by sla
124091 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
124092 (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'))
124093
124094 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
124095 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
124096 AND (l_actual_flag = 'A')) THEN
124097 XLA_AE_LINES_PKG.CreateGainOrLossLines(
124098 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
124099 ,p_application_id => p_application_id
124100 ,p_amb_context_code => 'DEFAULT'
124104
124101 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
124102 ,p_event_class_code => C_EVENT_CLASS_CODE
124103 ,p_event_type_code => C_EVENT_TYPE_CODE
124105 ,p_gain_ccid => -1
124106 ,p_loss_ccid => -1
124107
124108 ,p_actual_flag => l_actual_flag
124109 ,p_enc_flag => null
124110 ,p_actual_g_l_ref => l_actual_gain_loss_ref
124111 ,p_enc_g_l_ref => null
124112 );
124113 END IF;
124114 END IF;
124115 END IF;
124116
124117 ELSE
124118 --
124119 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
124120 --
124121 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124122 trace
124123 (p_msg => 'Trancaction revesal option is Y'
124124 ,p_level => C_LEVEL_STATEMENT
124125 ,p_module => l_log_module);
124126 END IF;
124127 END IF;
124128
124129 END LOOP;
124130 l_result := XLA_AE_LINES_PKG.InsertLines ;
124131 end loop;
124132 close line_cur;
124133
124134
124135 --
124136 -- insert headers into xla_ae_headers_gt table
124137 --
124138 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
124139
124140 -- insert into errors table here.
124141
124142 END LOOP;
124143
124144 --
124145 -- 4865292
124146 --
124147 -- Compare g_hdr_extract_count with event count in
124148 -- CreateHeadersAndLines.
124149 --
124150 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
124151
124152 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124153 trace (p_msg => '# rows extracted from header extract objects '
124154 || ' (running total): '
124155 || g_hdr_extract_count
124156 ,p_level => C_LEVEL_STATEMENT
124157 ,p_module => l_log_module);
124158 END IF;
124159
124160 CLOSE header_cur;
124161 --
124162
124163 --
124164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124165 trace
124166 (p_msg => 'END of EventClass_207'
124167 ,p_level => C_LEVEL_PROCEDURE
124168 ,p_module => l_log_module);
124169 END IF;
124170 --
124171 RETURN l_result;
124172 EXCEPTION
124173 WHEN xla_exceptions_pkg.application_exception THEN
124174
124175 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
124176
124177
124178 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
124179
124180 RAISE;
124181
124182 WHEN NO_DATA_FOUND THEN
124183
124184 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
124185 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
124186
124187 FOR header_record IN header_cur
124188 LOOP
124189 l_array_header_events(header_record.event_id) := header_record.event_id;
124190 END LOOP;
124191
124192 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
124193 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
124194
124195 fnd_file.put_line(fnd_file.LOG, ' ');
124196 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
124197 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
124198 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
124199
124200 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
124201 LOOP
124202 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
124203 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
124204 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
124205 END IF;
124206 END LOOP;
124207
124208 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
124209 fnd_file.put_line(fnd_file.LOG, ' ');
124210
124211
124212 xla_exceptions_pkg.raise_message
124213 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_207');
124214
124215
124216 WHEN OTHERS THEN
124217 xla_exceptions_pkg.raise_message
124218 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_207');
124219 END EventClass_207;
124220 --
124221
124222 ---------------------------------------
124223 --
124224 -- PRIVATE PROCEDURE
124225 -- insert_sources_208
124226 --
124227 ----------------------------------------
124228 --
124229 PROCEDURE insert_sources_208(
124230 p_target_ledger_id IN NUMBER
124231 , p_language IN VARCHAR2
124232 , p_sla_ledger_id IN NUMBER
124233 , p_pad_start_date IN DATE
124234 , p_pad_end_date IN DATE
124235 )
124236 IS
124237
124238 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICE_BURDEN_ALL';
124239 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICE_BURDEN';
124240 p_apps_owner VARCHAR2(30);
124241 l_log_module VARCHAR2(240);
124242 BEGIN
124243 IF g_log_enabled THEN
124244 l_log_module := C_DEFAULT_MODULE||'.insert_sources_208';
124245 END IF;
124246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124247
124251 ,p_module => l_log_module);
124248 trace
124249 (p_msg => 'BEGIN of insert_sources_208'
124250 ,p_level => C_LEVEL_PROCEDURE
124252
124253 END IF;
124254
124255 -- select APPS owner
124256 SELECT oracle_username
124257 INTO p_apps_owner
124258 FROM fnd_oracle_userid
124259 WHERE read_only_flag = 'U'
124260 ;
124261
124262 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124263 trace
124264 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
124265 ' - p_language = '||p_language||
124266 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
124267 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
124268 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
124269 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
124270 ,p_level => C_LEVEL_STATEMENT
124271 ,p_module => l_log_module);
124272 END IF;
124273
124274
124275
124276
124277 --
124278 INSERT INTO xla_diag_sources --line2
124279 (
124280 event_id
124281 , ledger_id
124282 , sla_ledger_id
124283 , description_language
124284 , object_name
124285 , object_type_code
124286 , line_number
124287 , source_application_id
124288 , source_type_code
124289 , source_code
124290 , source_value
124291 , source_meaning
124292 , created_by
124293 , creation_date
124294 , last_update_date
124295 , last_updated_by
124296 , last_update_login
124297 , program_update_date
124298 , program_application_id
124299 , program_id
124300 , request_id
124301 )
124302 SELECT event_id
124303 , p_target_ledger_id
124304 , p_sla_ledger_id
124305 , p_language
124306 , object_name
124307 , object_type_code
124308 , line_number
124309 , source_application_id
124310 , source_type_code
124311 , source_code
124312 , SUBSTR(source_value,1,1996)
124313 , SUBSTR(source_meaning ,1,200)
124314 , xla_environment_pkg.g_Usr_Id
124315 , TRUNC(SYSDATE)
124316 , TRUNC(SYSDATE)
124317 , xla_environment_pkg.g_Usr_Id
124318 , xla_environment_pkg.g_Login_Id
124319 , TRUNC(SYSDATE)
124320 , xla_environment_pkg.g_Prog_Appl_Id
124321 , xla_environment_pkg.g_Prog_Id
124322 , xla_environment_pkg.g_Req_Id
124323 FROM (
124324 SELECT xet.event_id event_id
124325 , l1.line_number line_number
124326 , CASE r
124327 WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124328 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124329 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124330 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124331 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124332 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124333 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124334 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124335 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124336 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124337 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124338 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124339 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124340 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124341 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124342 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124343 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
124344
124345 ELSE null
124346 END object_name
124347 , CASE r
124348 WHEN 1 THEN 'LINE'
124349 WHEN 2 THEN 'LINE'
124350 WHEN 3 THEN 'LINE'
124351 WHEN 4 THEN 'LINE'
124352 WHEN 5 THEN 'LINE'
124353 WHEN 6 THEN 'LINE'
124354 WHEN 7 THEN 'LINE'
124355 WHEN 8 THEN 'LINE'
124356 WHEN 9 THEN 'LINE'
124357 WHEN 10 THEN 'LINE'
124358 WHEN 11 THEN 'LINE'
124359 WHEN 12 THEN 'LINE'
124360 WHEN 13 THEN 'LINE'
124361 WHEN 14 THEN 'LINE'
124362 WHEN 15 THEN 'LINE'
124363 WHEN 16 THEN 'LINE'
124364 WHEN 17 THEN 'LINE'
124365
124366 ELSE null
124367 END object_type_code
124368 , CASE r
124369 WHEN 1 THEN '200'
124370 WHEN 2 THEN '200'
124371 WHEN 3 THEN '200'
124372 WHEN 4 THEN '200'
124373 WHEN 5 THEN '200'
124374 WHEN 6 THEN '200'
124375 WHEN 7 THEN '200'
124376 WHEN 8 THEN '200'
124377 WHEN 9 THEN '200'
124378 WHEN 10 THEN '200'
124379 WHEN 11 THEN '200'
124380 WHEN 12 THEN '200'
124381 WHEN 13 THEN '200'
124382 WHEN 14 THEN '200'
124383 WHEN 15 THEN '200'
124384 WHEN 16 THEN '200'
124385 WHEN 17 THEN '200'
124389 , 'S' source_type_code
124386
124387 ELSE null
124388 END source_application_id
124390 , CASE r
124391 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE'
124392 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
124393 WHEN 3 THEN 'AID_INVOICE_DIST_ID'
124394 WHEN 4 THEN 'ACCT_REVERSAL_INDICATOR'
124395 WHEN 5 THEN 'AID_EXPENDITURE_TYPE'
124396 WHEN 6 THEN 'ENC_UPG_CR_ACCT_CLASS'
124397 WHEN 7 THEN 'ENC_UPG_CR_ACCOUNT'
124398 WHEN 8 THEN 'AID_AMOUNT'
124399 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND'
124400 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS'
124401 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT'
124402 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
124403 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID'
124404 WHEN 14 THEN 'AP_SECOND_DIST_ID'
124405 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE'
124406 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID'
124407 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID'
124408
124409 ELSE null
124410 END source_code
124411 , CASE r
124412 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
124413 WHEN 2 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
124414 WHEN 3 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
124415 WHEN 4 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
124416 WHEN 5 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
124417 WHEN 6 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
124418 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
124419 WHEN 8 THEN TO_CHAR(l1.AID_AMOUNT)
124420 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
124421 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
124422 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
124423 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
124424 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
124425 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
124426 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
124427 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
124428 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
124429
124430 ELSE null
124431 END source_value
124432 , null source_meaning
124433 FROM xla_events_gt xet
124434 , PA_XLA_BC_PKT_AP_DETAIL_V l1
124435 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
124436 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
124437 AND xet.event_class_code = C_EVENT_CLASS_CODE
124438 AND l1.event_id = xet.event_id
124439
124440 )
124441 ;
124442 --
124443 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124444
124445 trace
124446 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
124447 ,p_level => C_LEVEL_STATEMENT
124448 ,p_module => l_log_module);
124449
124450 END IF;
124451
124452
124453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124454 trace
124455 (p_msg => 'END of insert_sources_208'
124456 ,p_level => C_LEVEL_PROCEDURE
124457 ,p_module => l_log_module);
124458 END IF;
124459 EXCEPTION
124460 WHEN xla_exceptions_pkg.application_exception THEN
124461 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
124462 trace
124463 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
124464 ,p_level => C_LEVEL_EXCEPTION
124465 ,p_module => l_log_module);
124466 END IF;
124467 RAISE;
124468 WHEN OTHERS THEN
124469 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
124470 trace
124471 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
124472 ,p_level => C_LEVEL_EXCEPTION
124473 ,p_module => l_log_module);
124474 END IF;
124475 xla_exceptions_pkg.raise_message
124476 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_208');
124477 END insert_sources_208;
124478 --
124479
124480 ---------------------------------------
124481 --
124482 -- PRIVATE FUNCTION
124483 -- EventClass_208
124484 --
124485 ----------------------------------------
124486 --
124487 FUNCTION EventClass_208
124488 (p_application_id IN NUMBER
124489 ,p_base_ledger_id IN NUMBER
124490 ,p_target_ledger_id IN NUMBER
124491 ,p_language IN VARCHAR2
124492 ,p_currency_code IN VARCHAR2
124493 ,p_sla_ledger_id IN NUMBER
124494 ,p_pad_start_date IN DATE
124495 ,p_pad_end_date IN DATE
124496 ,p_primary_ledger_id IN NUMBER)
124497 RETURN BOOLEAN IS
124498 --
124499 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICE_BURDEN_ALL';
124500 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICE_BURDEN';
124501
124502 l_calculate_acctd_flag VARCHAR2(1) :='N';
124503 l_calculate_g_l_flag VARCHAR2(1) :='N';
124504 --
124505 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124509 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124506 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124507 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124508 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124510 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124511 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124512 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124513 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124514 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124515 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124516 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124517 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124518 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124519 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124520 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124521 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124522 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124523 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124524 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124525 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124526 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124527 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
124528 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124529 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
124530 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
124531
124532 l_event_id NUMBER;
124533 l_previous_event_id NUMBER;
124534 l_first_event_id NUMBER;
124535 l_last_event_id NUMBER;
124536
124537 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
124538 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
124539 --
124540 --
124541 l_result BOOLEAN := TRUE;
124542 l_rows NUMBER := 1000;
124543 l_event_type_name VARCHAR2(80) := 'All';
124544 l_event_class_name VARCHAR2(80) := 'Burden for Invoices';
124545 l_description VARCHAR2(4000);
124546 l_transaction_reversal NUMBER;
124547 l_ae_header_id NUMBER;
124548 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
124549 l_log_module VARCHAR2(240);
124550 --
124551 l_acct_reversal_source VARCHAR2(30);
124552 l_trx_reversal_source VARCHAR2(30);
124553
124554 l_continue_with_lines BOOLEAN := TRUE;
124555 --
124556 l_acc_rev_gl_date_source DATE; -- 4262811
124557 --
124558 type t_array_event_id is table of number index by binary_integer;
124559
124560 l_rec_array_event t_rec_array_event;
124561 l_null_rec_array_event t_rec_array_event;
124562 l_array_ae_header_id xla_number_array_type;
124563 l_actual_flag VARCHAR2(1) := NULL;
124564 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
124565 l_balance_type_code VARCHAR2(1) :=NULL;
124566 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
124567
124568 --
124569 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
124570 --
124571
124572
124573 TYPE t_array_source_48 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
124574 TYPE t_array_source_80 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
124575 TYPE t_array_source_156 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
124576 TYPE t_array_source_161 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
124577 TYPE t_array_source_162 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
124578 TYPE t_array_source_163 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
124579 TYPE t_array_source_164 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
124580 TYPE t_array_source_165 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
124581 TYPE t_array_source_166 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
124582 TYPE t_array_source_167 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
124583 TYPE t_array_source_168 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
124584 TYPE t_array_source_169 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
124585 TYPE t_array_source_170 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
124586 TYPE t_array_source_171 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
124587 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
124588 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
124592 l_array_source_48 t_array_source_48;
124589 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
124590
124591
124593 l_array_source_80 t_array_source_80;
124594 l_array_source_156 t_array_source_156;
124595 l_array_source_161 t_array_source_161;
124596 l_array_source_162 t_array_source_162;
124597 l_array_source_163 t_array_source_163;
124598 l_array_source_164 t_array_source_164;
124599 l_array_source_165 t_array_source_165;
124600 l_array_source_166 t_array_source_166;
124601 l_array_source_167 t_array_source_167;
124602 l_array_source_168 t_array_source_168;
124603 l_array_source_169 t_array_source_169;
124604 l_array_source_170 t_array_source_170;
124605 l_array_source_171 t_array_source_171;
124606 l_array_source_172 t_array_source_172;
124607 l_array_source_173 t_array_source_173;
124608 l_array_source_174 t_array_source_174;
124609
124610 --
124611 CURSOR header_cur
124612 IS
124613 SELECT /*+ leading(xet) cardinality(xet,1) */
124614 -- Event Class Code: INVOICE_BURDEN
124615 xet.entity_id
124616 ,xet.legal_entity_id
124617 ,xet.entity_code
124618 ,xet.transaction_number
124619 ,xet.event_id
124620 ,xet.event_class_code
124621 ,xet.event_type_code
124622 ,xet.event_number
124623 ,xet.event_date
124624 ,xet.transaction_date
124625 ,xet.reference_num_1
124626 ,xet.reference_num_2
124627 ,xet.reference_num_3
124628 ,xet.reference_num_4
124629 ,xet.reference_char_1
124630 ,xet.reference_char_2
124631 ,xet.reference_char_3
124632 ,xet.reference_char_4
124633 ,xet.reference_date_1
124634 ,xet.reference_date_2
124635 ,xet.reference_date_3
124636 ,xet.reference_date_4
124637 ,xet.event_created_by
124638 ,xet.budgetary_control_flag
124639 FROM xla_events_gt xet
124640 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
124641 and xet.event_class_code = C_EVENT_CLASS_CODE
124642 and xet.event_status_code <> 'N'
124643 ORDER BY event_id
124644 ;
124645
124646
124647 --
124648 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
124649 IS
124650 SELECT /*+ leading(xet) cardinality(xet,1) */
124651 -- Event Class Code: INVOICE_BURDEN
124652 xet.entity_id
124653 ,xet.legal_entity_id
124654 ,xet.entity_code
124655 ,xet.transaction_number
124656 ,xet.event_id
124657 ,xet.event_class_code
124658 ,xet.event_type_code
124659 ,xet.event_number
124660 ,xet.event_date
124661 ,xet.transaction_date
124662 ,xet.reference_num_1
124663 ,xet.reference_num_2
124664 ,xet.reference_num_3
124665 ,xet.reference_num_4
124666 ,xet.reference_char_1
124667 ,xet.reference_char_2
124668 ,xet.reference_char_3
124669 ,xet.reference_char_4
124670 ,xet.reference_date_1
124671 ,xet.reference_date_2
124672 ,xet.reference_date_3
124673 ,xet.reference_date_4
124674 ,xet.event_created_by
124675 ,xet.budgetary_control_flag
124676 , l1.LINE_NUMBER
124677 , l1.DISTRIBUTION_LINK_TYPE source_48
124678 , l1.AI_INVOICE_CURRENCY_CODE source_80
124679 , l1.AID_INVOICE_DIST_ID source_156
124680 , l1.ACCT_REVERSAL_INDICATOR source_161
124681 , l1.AID_EXPENDITURE_TYPE source_162
124682 , l1.ENC_UPG_CR_ACCT_CLASS source_163
124683 , l1.ENC_UPG_CR_ACCOUNT source_164
124684 , l1.AID_AMOUNT source_165
124685 , l1.AID_BASE_AMT_NO_ROUND source_166
124686 , l1.ENC_UPG_DR_ACCT_CLASS source_167
124687 , l1.ENC_UPG_DR_ACCOUNT source_168
124688 , l1.USE_ENC_UPG_ATTRIB_FLAG source_169
124689 , l1.ACCT_REVERSAL_FIRST_DIST_ID source_170
124690 , l1.AP_SECOND_DIST_ID source_171
124691 , l1.ACCT_REV_DISTRIBUTION_TYPE source_172
124692 , l1.ENC_UPG_CR_ENC_TYPE_ID source_173
124693 , l1.ENC_UPG_DR_ENC_TYPE_ID source_174
124694 FROM xla_events_gt xet
124695 , PA_XLA_BC_PKT_AP_DETAIL_V l1
124696 WHERE xet.event_id between x_first_event_id and x_last_event_id
124697 and xet.event_date between p_pad_start_date and p_pad_end_date
124698 and xet.event_class_code = C_EVENT_CLASS_CODE
124699 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
124700 ;
124701
124702 --
124703 BEGIN
124704 IF g_log_enabled THEN
124705 l_log_module := C_DEFAULT_MODULE||'.EventClass_208';
124706 END IF;
124707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124708 trace
124709 (p_msg => 'BEGIN of EventClass_208'
124710 ,p_level => C_LEVEL_PROCEDURE
124711 ,p_module => l_log_module);
124712 END IF;
124713
124714 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124715 trace
124716 (p_msg => 'p_application_id = '||p_application_id||
124717 ' - p_base_ledger_id = '||p_base_ledger_id||
124718 ' - p_target_ledger_id = '||p_target_ledger_id||
124719 ' - p_language = '||p_language||
124720 ' - p_currency_code = '||p_currency_code||
124721 ' - p_sla_ledger_id = '||p_sla_ledger_id
124722 ,p_level => C_LEVEL_STATEMENT
124723 ,p_module => l_log_module);
124724 END IF;
124725 --
124726 -- initialze arrays
124727 --
124728 g_array_event.DELETE;
124729 l_rec_array_event := l_null_rec_array_event;
124730 --
124731 --------------------------------------
124732 -- 4262811 Initialze MPA Line Number
124736 --
124733 --------------------------------------
124734 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
124735
124737
124738 --
124739 OPEN header_cur;
124740 --
124741 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124742 trace
124743 (p_msg => 'SQL - FETCH header_cur'
124744 ,p_level => C_LEVEL_STATEMENT
124745 ,p_module => l_log_module);
124746 END IF;
124747 --
124748 LOOP
124749 FETCH header_cur BULK COLLECT INTO
124750 l_array_entity_id
124751 , l_array_legal_entity_id
124752 , l_array_entity_code
124753 , l_array_transaction_num
124754 , l_array_event_id
124755 , l_array_class_code
124756 , l_array_event_type
124757 , l_array_event_number
124758 , l_array_event_date
124759 , l_array_transaction_date
124760 , l_array_reference_num_1
124761 , l_array_reference_num_2
124762 , l_array_reference_num_3
124763 , l_array_reference_num_4
124764 , l_array_reference_char_1
124765 , l_array_reference_char_2
124766 , l_array_reference_char_3
124767 , l_array_reference_char_4
124768 , l_array_reference_date_1
124769 , l_array_reference_date_2
124770 , l_array_reference_date_3
124771 , l_array_reference_date_4
124772 , l_array_event_created_by
124773 , l_array_budgetary_control_flag
124774 LIMIT l_rows;
124775 --
124776 IF (C_LEVEL_EVENT >= g_log_level) THEN
124777 trace
124778 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
124779 ,p_level => C_LEVEL_EVENT
124780 ,p_module => l_log_module);
124781 END IF;
124782 --
124783 EXIT WHEN l_array_entity_id.COUNT = 0;
124784
124785 -- initialize arrays
124786 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
124787 XLA_AE_LINES_PKG.g_rec_lines := NULL;
124788
124789 --
124790 -- Bug 4458708
124791 --
124792 XLA_AE_LINES_PKG.g_LineNumber := 0;
124793
124794
124795 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
124796 g_last_hdr_idx := l_array_event_id.LAST;
124797 --
124798 -- loop for the headers. Each iteration is for each header extract row
124799 -- fetched in header cursor
124800 --
124801 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
124802
124803 --
124804 -- set event info as cache for other routines to refer event attributes
124805 --
124806 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
124807 (p_application_id => p_application_id
124808 ,p_primary_ledger_id => p_primary_ledger_id
124809 ,p_base_ledger_id => p_base_ledger_id
124810 ,p_target_ledger_id => p_target_ledger_id
124811 ,p_entity_id => l_array_entity_id(hdr_idx)
124812 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
124813 ,p_entity_code => l_array_entity_code(hdr_idx)
124814 ,p_transaction_num => l_array_transaction_num(hdr_idx)
124815 ,p_event_id => l_array_event_id(hdr_idx)
124816 ,p_event_class_code => l_array_class_code(hdr_idx)
124817 ,p_event_type_code => l_array_event_type(hdr_idx)
124818 ,p_event_number => l_array_event_number(hdr_idx)
124819 ,p_event_date => l_array_event_date(hdr_idx)
124820 ,p_transaction_date => l_array_transaction_date(hdr_idx)
124821 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
124822 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
124823 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
124824 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
124825 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
124826 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
124827 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
124828 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
124829 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
124830 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
124831 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
124832 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
124833 ,p_event_created_by => l_array_event_created_by(hdr_idx)
124834 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
124835
124836 --
124837 -- set the status of entry to C_VALID (0)
124838 --
124839 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
124840
124841 --
124842 -- initialize a row for ae header
124843 --
124844 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
124845
124846 l_event_id := l_array_event_id(hdr_idx);
124847
124848 --
124849 -- storing the hdr_idx for event. May be used by line cursor.
124850 --
124851 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
124852
124853 --
124854 -- store sources from header extract. This can be improved to
124855 -- store only those sources from header extract that may be used in lines
124856 --
124857
124858
124859 --
124860 -- initilaize the status of ae headers for diffrent balance types
124861 -- the status is initialised to C_NOT_CREATED (2)
124862 --
124863 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
124864 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
124868 -- call api to validate and store accounting attributes for header
124865 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
124866
124867 --
124869 --
124870
124871 ------------------------------------------------------------
124872 -- Accrual Reversal : to get date for Standard Source (NONE)
124873 ------------------------------------------------------------
124874 l_acc_rev_gl_date_source := NULL;
124875
124876 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
124877 l_rec_acct_attrs.array_date_value(1) :=
124878 xla_ae_sources_pkg.GetSystemSourceDate(
124879 p_source_code => 'XLA_EVENT_DATE'
124880 , p_source_type_code => 'Y'
124881 , p_source_application_id => 602
124882 );
124883
124884
124885 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
124886
124887 XLA_AE_HEADER_PKG.SetJeCategoryName;
124888
124889 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
124890 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
124891 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
124892 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
124893 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
124894
124895
124896 -- No header level analytical criteria
124897
124898 --
124899 --accounting attribute enhancement, bug 3612931
124900 --
124901 l_trx_reversal_source := SUBSTR(NULL, 1,30);
124902
124903 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
124904 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
124905
124906 xla_accounting_err_pkg.build_message
124907 (p_appli_s_name => 'XLA'
124908 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
124909 ,p_token_1 => 'ACCT_ATTR_NAME'
124910 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
124911 ,p_token_2 => 'PRODUCT_NAME'
124912 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
124913 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
124914 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
124915 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
124916
124917 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
124918 --
124919 -- following sets the accounting attributes needed to reverse
124920 -- accounting for a distributeion
124921 --
124922 xla_ae_lines_pkg.SetTrxReversalAttrs
124923 (p_event_id => l_event_id
124924 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
124925 ,p_trx_reversal_source => l_trx_reversal_source);
124926
124927 END IF;
124928
124929
124930 ----------------------------------------------------------------
124931 -- 4262811 - update the header statuses to invalid in need be
124932 ----------------------------------------------------------------
124933 --
124934 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
124935
124936
124937 -----------------------------------------------
124938 -- No accrual reversal for the event class/type
124939 -----------------------------------------------
124940 ----------------------------------------------------------------
124941
124942 --
124943 -- this ends the header loop iteration for one bulk fetch
124944 --
124945 END LOOP;
124946
124947 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
124948 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
124949
124950 --
124951 -- insert dummy rows into lines gt table that were created due to
124952 -- transaction reversals
124953 --
124954 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
124955 l_result := XLA_AE_LINES_PKG.InsertLines;
124956 END IF;
124957
124958 --
124959 -- reset the temp_line_num for each set of events fetched from header
124960 -- cursor rather than doing it for each new event in line cursor
124961 -- Bug 3939231
124962 --
124963 xla_ae_lines_pkg.g_temp_line_num := 0;
124964
124965
124966
124967 --
124968 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
124969 --
124970 --
124971 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124972
124973 trace
124974 (p_msg => 'SQL - FETCH line_cur'
124975 ,p_level => C_LEVEL_STATEMENT
124976 ,p_module => l_log_module);
124977
124978 END IF;
124979 --
124980 --
124981 LOOP
124982 --
124983 FETCH line_cur BULK COLLECT INTO
124984 l_array_entity_id
124985 , l_array_legal_entity_id
124986 , l_array_entity_code
124987 , l_array_transaction_num
124988 , l_array_event_id
124989 , l_array_class_code
124990 , l_array_event_type
124991 , l_array_event_number
124992 , l_array_event_date
124993 , l_array_transaction_date
124994 , l_array_reference_num_1
124995 , l_array_reference_num_2
124996 , l_array_reference_num_3
124997 , l_array_reference_num_4
124998 , l_array_reference_char_1
124999 , l_array_reference_char_2
125003 , l_array_reference_date_2
125000 , l_array_reference_char_3
125001 , l_array_reference_char_4
125002 , l_array_reference_date_1
125004 , l_array_reference_date_3
125005 , l_array_reference_date_4
125006 , l_array_event_created_by
125007 , l_array_budgetary_control_flag
125008 , l_array_extract_line_num
125009 , l_array_source_48
125010 , l_array_source_80
125011 , l_array_source_156
125012 , l_array_source_161
125013 , l_array_source_162
125014 , l_array_source_163
125015 , l_array_source_164
125016 , l_array_source_165
125017 , l_array_source_166
125018 , l_array_source_167
125019 , l_array_source_168
125020 , l_array_source_169
125021 , l_array_source_170
125022 , l_array_source_171
125023 , l_array_source_172
125024 , l_array_source_173
125025 , l_array_source_174
125026 LIMIT l_rows;
125027
125028 --
125029 IF (C_LEVEL_EVENT >= g_log_level) THEN
125030 trace
125031 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
125032 ,p_level => C_LEVEL_EVENT
125033 ,p_module => l_log_module);
125034 END IF;
125035 --
125036 EXIT WHEN l_array_entity_id.count = 0;
125037
125038 XLA_AE_LINES_PKG.g_rec_lines := null;
125039
125040 --
125041 -- Bug 4458708
125042 --
125043 XLA_AE_LINES_PKG.g_LineNumber := 0;
125044 --
125045 --
125046
125047 FOR Idx IN 1..l_array_event_id.count LOOP
125048 --
125049 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
125050 --
125051 l_event_id := l_array_event_id(idx); -- 5648433
125052
125053 --
125054 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
125055 --
125056
125057 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
125058 (g_array_event(l_event_id).array_value_num('header_index'))
125059 ,'N'
125060 ) <> 'Y'
125061 THEN
125062 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125063 trace
125064 (p_msg => 'Trancaction revesal option is not Y '
125065 ,p_level => C_LEVEL_STATEMENT
125066 ,p_module => l_log_module);
125067 END IF;
125068
125069 --
125070 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
125071 --
125072 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
125073 --
125074 -- set event info as cache for other routines to refer event attributes
125075 --
125076
125077 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
125078 l_previous_event_id := l_event_id;
125079
125080 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
125081 (p_application_id => p_application_id
125082 ,p_primary_ledger_id => p_primary_ledger_id
125083 ,p_base_ledger_id => p_base_ledger_id
125084 ,p_target_ledger_id => p_target_ledger_id
125085 ,p_entity_id => l_array_entity_id(Idx)
125086 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
125087 ,p_entity_code => l_array_entity_code(Idx)
125088 ,p_transaction_num => l_array_transaction_num(Idx)
125089 ,p_event_id => l_array_event_id(Idx)
125090 ,p_event_class_code => l_array_class_code(Idx)
125091 ,p_event_type_code => l_array_event_type(Idx)
125092 ,p_event_number => l_array_event_number(Idx)
125093 ,p_event_date => l_array_event_date(Idx)
125094 ,p_transaction_date => l_array_transaction_date(Idx)
125095 ,p_reference_num_1 => l_array_reference_num_1(Idx)
125096 ,p_reference_num_2 => l_array_reference_num_2(Idx)
125097 ,p_reference_num_3 => l_array_reference_num_3(Idx)
125098 ,p_reference_num_4 => l_array_reference_num_4(Idx)
125099 ,p_reference_char_1 => l_array_reference_char_1(Idx)
125100 ,p_reference_char_2 => l_array_reference_char_2(Idx)
125101 ,p_reference_char_3 => l_array_reference_char_3(Idx)
125102 ,p_reference_char_4 => l_array_reference_char_4(Idx)
125103 ,p_reference_date_1 => l_array_reference_date_1(Idx)
125104 ,p_reference_date_2 => l_array_reference_date_2(Idx)
125105 ,p_reference_date_3 => l_array_reference_date_3(Idx)
125106 ,p_reference_date_4 => l_array_reference_date_4(Idx)
125107 ,p_event_created_by => l_array_event_created_by(Idx)
125108 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
125109 --
125110 END IF;
125111
125112
125113
125114 --
125115 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
125116
125117 l_acct_reversal_source := SUBSTR(l_array_source_161(Idx), 1,30);
125118
125119 IF l_continue_with_lines THEN
125120 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
125121 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
125122
125123 xla_accounting_err_pkg.build_message
125124 (p_appli_s_name => 'XLA'
125125 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
125126 ,p_token_1 => 'LINE_NUMBER'
125130 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
125127 ,p_value_1 => l_array_extract_line_num(Idx)
125128 ,p_token_2 => 'PRODUCT_NAME'
125129 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
125131 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
125132 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
125133
125134 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
125135 --
125136 -- following sets the accounting attributes needed to reverse
125137 -- accounting for a distributeion
125138 --
125139
125140 --
125141 -- 5217187
125142 --
125143 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
125144 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
125145 g_array_event(l_event_id).array_value_num('header_index'));
125146 --
125147 --
125148
125149 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
125150 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_161(Idx);
125151 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
125152 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
125153 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
125154 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_162(Idx);
125155 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
125156 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_48(Idx);
125157 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
125158 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_163(Idx);
125159 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
125160 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_164(Idx);
125161 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
125162 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_165(Idx);
125163 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
125164 l_rec_rev_acct_attrs.array_char_value(9) := l_array_source_80(Idx);
125165 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
125166 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_166(Idx);
125167 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
125168 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_167(Idx);
125169 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
125170 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_168(Idx);
125171 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
125172 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_165(Idx);
125173 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
125174 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_80(Idx);
125175 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
125176 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_166(Idx);
125177 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
125178 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_169(Idx);
125179 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
125180 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_170(Idx);
125181 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
125182 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_171(Idx);
125183 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
125184 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_172(Idx);
125185 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
125186 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_173(Idx);
125187 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
125188 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_174(Idx);
125189
125190
125191 xla_ae_lines_pkg.SetAcctReversalAttrs
125192 (p_event_id => l_event_id
125193 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
125194 ,p_calculate_acctd_flag => l_calculate_acctd_flag
125195 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
125196 END IF;
125197
125198 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
125199 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
125200 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
125201 -- or secondary ledger that has different currency with primary
125202 -- or alc that is calculated by sla
125203 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
125204 (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'))
125205
125206 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
125207 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
125208 AND (l_actual_flag = 'A')) THEN
125209 XLA_AE_LINES_PKG.CreateGainOrLossLines(
125213 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
125210 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
125211 ,p_application_id => p_application_id
125212 ,p_amb_context_code => 'DEFAULT'
125214 ,p_event_class_code => C_EVENT_CLASS_CODE
125215 ,p_event_type_code => C_EVENT_TYPE_CODE
125216
125217 ,p_gain_ccid => -1
125218 ,p_loss_ccid => -1
125219
125220 ,p_actual_flag => l_actual_flag
125221 ,p_enc_flag => null
125222 ,p_actual_g_l_ref => l_actual_gain_loss_ref
125223 ,p_enc_g_l_ref => null
125224 );
125225 END IF;
125226 END IF;
125227 END IF;
125228
125229 ELSE
125230 --
125231 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
125232 --
125233 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125234 trace
125235 (p_msg => 'Trancaction revesal option is Y'
125236 ,p_level => C_LEVEL_STATEMENT
125237 ,p_module => l_log_module);
125238 END IF;
125239 END IF;
125240
125241 END LOOP;
125242 l_result := XLA_AE_LINES_PKG.InsertLines ;
125243 end loop;
125244 close line_cur;
125245
125246
125247 --
125248 -- insert headers into xla_ae_headers_gt table
125249 --
125250 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
125251
125252 -- insert into errors table here.
125253
125254 END LOOP;
125255
125256 --
125257 -- 4865292
125258 --
125259 -- Compare g_hdr_extract_count with event count in
125260 -- CreateHeadersAndLines.
125261 --
125262 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
125263
125264 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125265 trace (p_msg => '# rows extracted from header extract objects '
125266 || ' (running total): '
125267 || g_hdr_extract_count
125268 ,p_level => C_LEVEL_STATEMENT
125269 ,p_module => l_log_module);
125270 END IF;
125271
125272 CLOSE header_cur;
125273 --
125274
125275 --
125276 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125277 trace
125278 (p_msg => 'END of EventClass_208'
125279 ,p_level => C_LEVEL_PROCEDURE
125280 ,p_module => l_log_module);
125281 END IF;
125282 --
125283 RETURN l_result;
125284 EXCEPTION
125285 WHEN xla_exceptions_pkg.application_exception THEN
125286
125287 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
125288
125289
125290 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
125291
125292 RAISE;
125293
125294 WHEN NO_DATA_FOUND THEN
125295
125296 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
125297 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
125298
125299 FOR header_record IN header_cur
125300 LOOP
125301 l_array_header_events(header_record.event_id) := header_record.event_id;
125302 END LOOP;
125303
125304 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
125305 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
125306
125307 fnd_file.put_line(fnd_file.LOG, ' ');
125308 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
125309 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
125310 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
125311
125312 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
125313 LOOP
125314 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
125315 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
125316 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
125317 END IF;
125318 END LOOP;
125319
125320 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
125321 fnd_file.put_line(fnd_file.LOG, ' ');
125322
125323
125324 xla_exceptions_pkg.raise_message
125325 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_208');
125326
125327
125328 WHEN OTHERS THEN
125329 xla_exceptions_pkg.raise_message
125330 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_208');
125331 END EventClass_208;
125332 --
125333
125334 ---------------------------------------
125335 --
125336 -- PRIVATE PROCEDURE
125337 -- insert_sources_209
125338 --
125339 ----------------------------------------
125340 --
125341 PROCEDURE insert_sources_209(
125342 p_target_ledger_id IN NUMBER
125343 , p_language IN VARCHAR2
125344 , p_sla_ledger_id IN NUMBER
125345 , p_pad_start_date IN DATE
125346 , p_pad_end_date IN DATE
125347 )
125348 IS
125349
125350 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS_ALL';
125351 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS';
125352 p_apps_owner VARCHAR2(30);
125353 l_log_module VARCHAR2(240);
125354 BEGIN
125355 IF g_log_enabled THEN
125356 l_log_module := C_DEFAULT_MODULE||'.insert_sources_209';
125357 END IF;
125361 (p_msg => 'BEGIN of insert_sources_209'
125358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125359
125360 trace
125362 ,p_level => C_LEVEL_PROCEDURE
125363 ,p_module => l_log_module);
125364
125365 END IF;
125366
125367 -- select APPS owner
125368 SELECT oracle_username
125369 INTO p_apps_owner
125370 FROM fnd_oracle_userid
125371 WHERE read_only_flag = 'U'
125372 ;
125373
125374 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125375 trace
125376 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
125377 ' - p_language = '||p_language||
125378 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
125379 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
125380 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
125381 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
125382 ,p_level => C_LEVEL_STATEMENT
125383 ,p_module => l_log_module);
125384 END IF;
125385
125386
125387 --
125388 INSERT INTO xla_diag_sources --hdr2
125389 (
125390 event_id
125391 , ledger_id
125392 , sla_ledger_id
125393 , description_language
125394 , object_name
125395 , object_type_code
125396 , line_number
125397 , source_application_id
125398 , source_type_code
125399 , source_code
125400 , source_value
125401 , source_meaning
125402 , created_by
125403 , creation_date
125404 , last_update_date
125405 , last_updated_by
125406 , last_update_login
125407 , program_update_date
125408 , program_application_id
125409 , program_id
125410 , request_id
125411 )
125412 SELECT
125413 event_id
125414 , p_target_ledger_id
125415 , p_sla_ledger_id
125416 , p_language
125417 , object_name
125418 , object_type_code
125419 , line_number
125420 , source_application_id
125421 , source_type_code
125422 , source_code
125423 , SUBSTR(source_value ,1,1996)
125424 , SUBSTR(source_meaning ,1,200)
125425 , xla_environment_pkg.g_Usr_Id
125426 , TRUNC(SYSDATE)
125427 , TRUNC(SYSDATE)
125428 , xla_environment_pkg.g_Usr_Id
125429 , xla_environment_pkg.g_Login_Id
125430 , TRUNC(SYSDATE)
125431 , xla_environment_pkg.g_Prog_Appl_Id
125432 , xla_environment_pkg.g_Prog_Id
125433 , xla_environment_pkg.g_Req_Id
125434 FROM (
125435 SELECT xet.event_id event_id
125436 , 0 line_number
125437 , CASE r
125438 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125439 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125440 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125441 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125442 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125443 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125444 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125445 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125446 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125447 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125448 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125449 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125450 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125451 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125452 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125453 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125454 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125455 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125456 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125457 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125458 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125459 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125460 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125461 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125462 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
125463 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125464 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125465 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125466 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125467 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125468 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125469 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125470 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125471 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125472 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
125473
125474 ELSE null
125475 END object_name
125476 , CASE r
125477 WHEN 1 THEN 'HEADER'
125478 WHEN 2 THEN 'HEADER'
125479 WHEN 3 THEN 'HEADER'
125480 WHEN 4 THEN 'HEADER'
125481 WHEN 5 THEN 'HEADER'
125482 WHEN 6 THEN 'HEADER'
125483 WHEN 7 THEN 'HEADER'
125484 WHEN 8 THEN 'HEADER'
125485 WHEN 9 THEN 'HEADER'
125489 WHEN 13 THEN 'HEADER'
125486 WHEN 10 THEN 'HEADER'
125487 WHEN 11 THEN 'HEADER'
125488 WHEN 12 THEN 'HEADER'
125490 WHEN 14 THEN 'HEADER'
125491 WHEN 15 THEN 'HEADER'
125492 WHEN 16 THEN 'HEADER'
125493 WHEN 17 THEN 'HEADER'
125494 WHEN 18 THEN 'HEADER'
125495 WHEN 19 THEN 'HEADER'
125496 WHEN 20 THEN 'HEADER'
125497 WHEN 21 THEN 'HEADER'
125498 WHEN 22 THEN 'HEADER'
125499 WHEN 23 THEN 'HEADER'
125500 WHEN 24 THEN 'HEADER'
125501 WHEN 25 THEN 'HEADER'
125502 WHEN 26 THEN 'HEADER'
125503 WHEN 27 THEN 'HEADER'
125504 WHEN 28 THEN 'HEADER'
125505 WHEN 29 THEN 'HEADER'
125506 WHEN 30 THEN 'HEADER'
125507 WHEN 31 THEN 'HEADER'
125508 WHEN 32 THEN 'HEADER'
125509 WHEN 33 THEN 'HEADER'
125510 WHEN 34 THEN 'HEADER'
125511 WHEN 35 THEN 'HEADER'
125512
125513 ELSE null
125514 END object_type_code
125515 , CASE r
125516 WHEN 1 THEN '200'
125517 WHEN 2 THEN '200'
125518 WHEN 3 THEN '200'
125519 WHEN 4 THEN '200'
125520 WHEN 5 THEN '200'
125521 WHEN 6 THEN '200'
125522 WHEN 7 THEN '200'
125523 WHEN 8 THEN '200'
125524 WHEN 9 THEN '200'
125525 WHEN 10 THEN '200'
125526 WHEN 11 THEN '200'
125527 WHEN 12 THEN '200'
125528 WHEN 13 THEN '200'
125529 WHEN 14 THEN '200'
125530 WHEN 15 THEN '200'
125531 WHEN 16 THEN '200'
125532 WHEN 17 THEN '200'
125533 WHEN 18 THEN '200'
125534 WHEN 19 THEN '200'
125535 WHEN 20 THEN '200'
125536 WHEN 21 THEN '200'
125537 WHEN 22 THEN '200'
125538 WHEN 23 THEN '200'
125539 WHEN 24 THEN '200'
125540 WHEN 25 THEN '200'
125541 WHEN 26 THEN '200'
125542 WHEN 27 THEN '200'
125543 WHEN 28 THEN '200'
125544 WHEN 29 THEN '200'
125545 WHEN 30 THEN '200'
125546 WHEN 31 THEN '200'
125547 WHEN 32 THEN '200'
125548 WHEN 33 THEN '200'
125549 WHEN 34 THEN '200'
125550 WHEN 35 THEN '200'
125551
125552 ELSE null
125553 END source_application_id
125554 , 'S' source_type_code
125555 , CASE r
125556 WHEN 1 THEN 'CGAC_AP_ASSET_CCID'
125557 WHEN 2 THEN 'FSP_DISC_TAKEN_CCID'
125558 WHEN 3 THEN 'ASP_DISCOUNT_DIST_METHOD'
125559 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
125560 WHEN 5 THEN 'ASP_RATE_VAR_GAIN_CCID'
125561 WHEN 6 THEN 'ASP_RATE_VAR_LOSS_CCID'
125562 WHEN 7 THEN 'CGAC_FUTURE_DATED_PMT_CCID'
125563 WHEN 8 THEN 'ASP_FD_PMT_ACCT_SOURCE'
125564 WHEN 9 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID'
125565 WHEN 10 THEN 'POS_FDP_CCID'
125566 WHEN 11 THEN 'ASP_INTEREST_CCID'
125567 WHEN 12 THEN 'ASP_PRORATE_INT_ACROSS_DISTS'
125568 WHEN 13 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG'
125569 WHEN 14 THEN 'CGAC_CASH_CLEARING_CCID'
125570 WHEN 15 THEN 'FSP_RETAINAGE_ACCOUNT'
125571 WHEN 16 THEN 'ASP_DISC_TAKEN_CCID'
125572 WHEN 17 THEN 'ASP_AUTO_OFFSET_FLAG'
125573 WHEN 18 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID'
125574 WHEN 19 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
125575 WHEN 20 THEN 'AC_CURRENCY_CODE'
125576 WHEN 21 THEN 'AC_VENDOR_ID'
125577 WHEN 22 THEN 'AC_VENDOR_SITE_ID'
125578 WHEN 23 THEN 'THIRD_PARTY_TYPE'
125579 WHEN 24 THEN 'PAYMENT_TYPE'
125580 WHEN 25 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG'
125581 WHEN 26 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
125582 WHEN 27 THEN 'AC_FUTURE_PAY_DUE_DATE'
125583 WHEN 28 THEN 'PAYMENT_PROCESSING_TYPE'
125584 WHEN 29 THEN 'AC_EXCHANGE_DATE'
125585 WHEN 30 THEN 'AC_EXCHANGE_RATE'
125586 WHEN 31 THEN 'AC_EXCHANGE_RATE_TYPE'
125587 WHEN 32 THEN 'AC_DOC_CATEGORY_CODE'
125588 WHEN 33 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
125589 WHEN 34 THEN 'AC_DOC_SEQUENCE_VALUE'
125590 WHEN 35 THEN 'TRANSAC_REVERSAL_FLAG'
125591
125592 ELSE null
125593 END source_code
125594 , CASE r
125595 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
125596 WHEN 2 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
125597 WHEN 3 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
125598 WHEN 4 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
125599 WHEN 5 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
125603 WHEN 9 THEN TO_CHAR(h4.FSP_FUTURE_DATED_PAYMENT_CCID)
125600 WHEN 6 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
125601 WHEN 7 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
125602 WHEN 8 THEN TO_CHAR(h4.ASP_FD_PMT_ACCT_SOURCE)
125604 WHEN 10 THEN TO_CHAR(h2.POS_FDP_CCID)
125605 WHEN 11 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
125606 WHEN 12 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
125607 WHEN 13 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
125608 WHEN 14 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
125609 WHEN 15 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
125610 WHEN 16 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
125611 WHEN 17 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
125612 WHEN 18 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
125613 WHEN 19 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
125614 WHEN 20 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
125615 WHEN 21 THEN TO_CHAR(h2.AC_VENDOR_ID)
125616 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
125617 WHEN 23 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
125618 WHEN 24 THEN TO_CHAR(h2.PAYMENT_TYPE)
125619 WHEN 25 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
125620 WHEN 26 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
125621 WHEN 27 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
125622 WHEN 28 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
125623 WHEN 29 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
125624 WHEN 30 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
125625 WHEN 31 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
125626 WHEN 32 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
125627 WHEN 33 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
125628 WHEN 34 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
125629 WHEN 35 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
125630
125631 ELSE null
125632 END source_value
125633 , CASE r
125634 WHEN 3 THEN fvl3.meaning
125635 WHEN 4 THEN fvl4.meaning
125636 WHEN 8 THEN fvl12.meaning
125637 WHEN 13 THEN fvl18.meaning
125638 WHEN 17 THEN fvl30.meaning
125639 WHEN 24 THEN fvl60.meaning
125640 WHEN 25 THEN fvl102.meaning
125641 WHEN 26 THEN fvl110.meaning
125642 WHEN 35 THEN fvl175.meaning
125643
125644 ELSE null
125645 END source_meaning
125646 FROM xla_events_gt xet
125647 , AP_PAYMENT_EXTRACT_HEADER_V h2
125648 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
125649 , fnd_lookup_values fvl3
125650 , fnd_lookup_values fvl4
125651 , fnd_lookup_values fvl12
125652 , fnd_lookup_values fvl18
125653 , fnd_lookup_values fvl30
125654 , fnd_lookup_values fvl60
125655 , fnd_lookup_values fvl102
125656 , fnd_lookup_values fvl110
125657 , fnd_lookup_values fvl175
125658 ,(select rownum r from all_objects where rownum <= 35 and owner = p_apps_owner)
125659 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
125660 AND xet.event_class_code = C_EVENT_CLASS_CODE
125661 AND h2.event_id = xet.event_id
125662 AND h4.asp_org_id = h2.ac_org_id AND fvl3.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
125663 AND fvl3.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
125664 AND fvl3.view_application_id(+) = 200
125665 AND fvl3.language(+) = USERENV('LANG')
125666 AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
125667 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
125668 AND fvl4.view_application_id(+) = 200
125669 AND fvl4.language(+) = USERENV('LANG')
125670 AND fvl12.lookup_type(+) = 'FUTURE PAY ACCT SOURCE'
125671 AND fvl12.lookup_code(+) = h4.ASP_FD_PMT_ACCT_SOURCE
125672 AND fvl12.view_application_id(+) = 200
125673 AND fvl12.language(+) = USERENV('LANG')
125674 AND fvl18.lookup_type(+) = 'YES_NO'
125675 AND fvl18.lookup_code(+) = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
125676 AND fvl18.view_application_id(+) = 0
125677 AND fvl18.language(+) = USERENV('LANG')
125678 AND fvl30.lookup_type(+) = 'YES_NO'
125679 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
125680 AND fvl30.view_application_id(+) = 0
125681 AND fvl30.language(+) = USERENV('LANG')
125682 AND fvl60.lookup_type(+) = 'PAYMENT TYPE'
125683 AND fvl60.lookup_code(+) = h2.PAYMENT_TYPE
125684 AND fvl60.view_application_id(+) = 200
125685 AND fvl60.language(+) = USERENV('LANG')
125686 AND fvl102.lookup_type(+) = 'YES_NO'
125687 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
125688 AND fvl102.view_application_id(+) = 0
125689 AND fvl102.language(+) = USERENV('LANG')
125690 AND fvl110.lookup_type(+) = 'YES_NO'
125691 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
125692 AND fvl110.view_application_id(+) = 0
125693 AND fvl110.language(+) = USERENV('LANG')
125694 AND fvl175.lookup_type(+) = 'YES_NO'
125695 AND fvl175.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
125696 AND fvl175.view_application_id(+) = 0
125697 AND fvl175.language(+) = USERENV('LANG')
125698
125699 )
125700 ;
125701 --
125702 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125703
125707 ,p_module => l_log_module);
125704 trace
125705 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
125706 ,p_level => C_LEVEL_STATEMENT
125708
125709 END IF;
125710 --
125711
125712
125713
125714 --
125715 INSERT INTO xla_diag_sources --line2
125716 (
125717 event_id
125718 , ledger_id
125719 , sla_ledger_id
125720 , description_language
125721 , object_name
125722 , object_type_code
125723 , line_number
125724 , source_application_id
125725 , source_type_code
125726 , source_code
125727 , source_value
125728 , source_meaning
125729 , created_by
125730 , creation_date
125731 , last_update_date
125732 , last_updated_by
125733 , last_update_login
125734 , program_update_date
125735 , program_application_id
125736 , program_id
125737 , request_id
125738 )
125739 SELECT event_id
125740 , p_target_ledger_id
125741 , p_sla_ledger_id
125742 , p_language
125743 , object_name
125744 , object_type_code
125745 , line_number
125746 , source_application_id
125747 , source_type_code
125748 , source_code
125749 , SUBSTR(source_value,1,1996)
125750 , SUBSTR(source_meaning ,1,200)
125751 , xla_environment_pkg.g_Usr_Id
125752 , TRUNC(SYSDATE)
125753 , TRUNC(SYSDATE)
125754 , xla_environment_pkg.g_Usr_Id
125755 , xla_environment_pkg.g_Login_Id
125756 , TRUNC(SYSDATE)
125757 , xla_environment_pkg.g_Prog_Appl_Id
125758 , xla_environment_pkg.g_Prog_Id
125759 , xla_environment_pkg.g_Req_Id
125760 FROM (
125761 SELECT xet.event_id event_id
125762 , l1.line_number line_number
125763 , CASE r
125764 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125765 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125766 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125767 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125768 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V'
125769 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125770 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125771 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125772 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125773 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125774 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125775 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125776 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125777 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125778 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125779 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125780 WHEN 17 THEN 'AP_PO_HEADERS_EXTRACT_V'
125781 WHEN 18 THEN 'AP_PO_HEADERS_EXTRACT_V'
125782 WHEN 19 THEN 'AP_PO_HEADERS_EXTRACT_V'
125783 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125784 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125785 WHEN 22 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
125786 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
125787 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125788 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125789 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125790 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125791 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125792 WHEN 29 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
125793 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125794 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125795 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125796 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125797 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125798 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125799 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125800 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125801 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
125802
125803 ELSE null
125804 END object_name
125805 , CASE r
125806 WHEN 1 THEN 'LINE'
125807 WHEN 2 THEN 'LINE'
125808 WHEN 3 THEN 'LINE'
125809 WHEN 4 THEN 'LINE'
125810 WHEN 5 THEN 'LINE'
125811 WHEN 6 THEN 'LINE'
125812 WHEN 7 THEN 'LINE'
125813 WHEN 8 THEN 'LINE'
125814 WHEN 9 THEN 'LINE'
125815 WHEN 10 THEN 'LINE'
125816 WHEN 11 THEN 'LINE'
125817 WHEN 12 THEN 'LINE'
125818 WHEN 13 THEN 'LINE'
125819 WHEN 14 THEN 'LINE'
125820 WHEN 15 THEN 'LINE'
125821 WHEN 16 THEN 'LINE'
125822 WHEN 17 THEN 'LINE'
125823 WHEN 18 THEN 'LINE'
125824 WHEN 19 THEN 'LINE'
125825 WHEN 20 THEN 'LINE'
125826 WHEN 21 THEN 'LINE'
125827 WHEN 22 THEN 'LINE'
125828 WHEN 23 THEN 'LINE'
125829 WHEN 24 THEN 'LINE'
125833 WHEN 28 THEN 'LINE'
125830 WHEN 25 THEN 'LINE'
125831 WHEN 26 THEN 'LINE'
125832 WHEN 27 THEN 'LINE'
125834 WHEN 29 THEN 'LINE'
125835 WHEN 30 THEN 'LINE'
125836 WHEN 31 THEN 'LINE'
125837 WHEN 32 THEN 'LINE'
125838 WHEN 33 THEN 'LINE'
125839 WHEN 34 THEN 'LINE'
125840 WHEN 35 THEN 'LINE'
125841 WHEN 36 THEN 'LINE'
125842 WHEN 37 THEN 'LINE'
125843 WHEN 38 THEN 'LINE'
125844
125845 ELSE null
125846 END object_type_code
125847 , CASE r
125848 WHEN 1 THEN '200'
125849 WHEN 2 THEN '200'
125850 WHEN 3 THEN '200'
125851 WHEN 4 THEN '200'
125852 WHEN 5 THEN '200'
125853 WHEN 6 THEN '200'
125854 WHEN 7 THEN '200'
125855 WHEN 8 THEN '200'
125856 WHEN 9 THEN '200'
125857 WHEN 10 THEN '200'
125858 WHEN 11 THEN '200'
125859 WHEN 12 THEN '200'
125860 WHEN 13 THEN '200'
125861 WHEN 14 THEN '200'
125862 WHEN 15 THEN '200'
125863 WHEN 16 THEN '200'
125864 WHEN 17 THEN '200'
125865 WHEN 18 THEN '200'
125866 WHEN 19 THEN '200'
125867 WHEN 20 THEN '200'
125868 WHEN 21 THEN '200'
125869 WHEN 22 THEN '200'
125870 WHEN 23 THEN '200'
125871 WHEN 24 THEN '200'
125872 WHEN 25 THEN '200'
125873 WHEN 26 THEN '200'
125874 WHEN 27 THEN '200'
125875 WHEN 28 THEN '200'
125876 WHEN 29 THEN '200'
125877 WHEN 30 THEN '200'
125878 WHEN 31 THEN '200'
125879 WHEN 32 THEN '200'
125880 WHEN 33 THEN '200'
125881 WHEN 34 THEN '200'
125882 WHEN 35 THEN '200'
125883 WHEN 36 THEN '200'
125884 WHEN 37 THEN '200'
125885 WHEN 38 THEN '200'
125886
125887 ELSE null
125888 END source_application_id
125889 , 'S' source_type_code
125890 , CASE r
125891 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE'
125892 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT'
125893 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT'
125894 WHEN 4 THEN 'AID_DIST_CCID'
125895 WHEN 5 THEN 'PO_NUMBER'
125896 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
125897 WHEN 7 THEN 'AID_RET_RELATED_DIST_CCID'
125898 WHEN 8 THEN 'AWT_RELATED_DIST_ACCOUNT'
125899 WHEN 9 THEN 'POD_CCID'
125900 WHEN 10 THEN 'PO_VARIANCE_ACCOUNT'
125901 WHEN 11 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
125902 WHEN 12 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
125903 WHEN 13 THEN 'APHD_AMOUNT'
125904 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID'
125905 WHEN 15 THEN 'APHD_PAYMENT_HIST_DIST_ID'
125906 WHEN 16 THEN 'DISTRIBUTION_LINK_TYPE'
125907 WHEN 17 THEN 'POH_RATE_DATE'
125908 WHEN 18 THEN 'POH_RATE'
125909 WHEN 19 THEN 'POH_RATE_TYPE'
125910 WHEN 20 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
125911 WHEN 21 THEN 'APHD_REV_PAY_HIST_DIST_ID'
125912 WHEN 22 THEN 'TAX_LINE_ID'
125913 WHEN 23 THEN 'SUMMARY_TAX_LINE_ID'
125914 WHEN 24 THEN 'APHD_INVOICE_DIST_AMOUNT'
125915 WHEN 25 THEN 'BUS_FLOW_INV_DIST_TYPE'
125916 WHEN 26 THEN 'BUS_FLOW_INV_ENTITY_CODE'
125917 WHEN 27 THEN 'BUS_FLOW_INV_DIST_ID'
125918 WHEN 28 THEN 'BUS_FLOW_INV_ID'
125919 WHEN 29 THEN 'REC_NREC_TAX_DIST_ID'
125920 WHEN 30 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
125921 WHEN 31 THEN 'AI_INVOICE_TYPE_PAID'
125922 WHEN 32 THEN 'APHD_INV_BASE_AMT_VARIANCE'
125923 WHEN 33 THEN 'AID_ENCUMBERED_FLAG'
125924 WHEN 34 THEN 'APHD_AMOUNT_VARIANCE'
125925 WHEN 35 THEN 'APHD_INV_BASE_QTY_VARIANCE'
125926 WHEN 36 THEN 'APHD_QUANTITY_VARIANCE'
125927 WHEN 37 THEN 'BF_RETAINED_INV_DIST_ID_PMT'
125928 WHEN 38 THEN 'BF_RETAINED_INV_ID_PMT'
125929
125930 ELSE null
125931 END source_code
125932 , CASE r
125933 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
125934 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
125935 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
125936 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
125937 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
125938 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
125939 WHEN 7 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
125940 WHEN 8 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
125941 WHEN 9 THEN TO_CHAR(l1.POD_CCID)
125945 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
125942 WHEN 10 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
125943 WHEN 11 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
125944 WHEN 12 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
125946 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
125947 WHEN 15 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
125948 WHEN 16 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
125949 WHEN 17 THEN TO_CHAR(l3.POH_RATE_DATE)
125950 WHEN 18 THEN TO_CHAR(l3.POH_RATE)
125951 WHEN 19 THEN TO_CHAR(l3.POH_RATE_TYPE)
125952 WHEN 20 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
125953 WHEN 21 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
125954 WHEN 22 THEN TO_CHAR(l5.TAX_LINE_ID)
125955 WHEN 23 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
125956 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
125957 WHEN 25 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
125958 WHEN 26 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
125959 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
125960 WHEN 28 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
125961 WHEN 29 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
125962 WHEN 30 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
125963 WHEN 31 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
125964 WHEN 32 THEN TO_CHAR(l1.APHD_INV_BASE_AMT_VARIANCE)
125965 WHEN 33 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
125966 WHEN 34 THEN TO_CHAR(l1.APHD_AMOUNT_VARIANCE)
125967 WHEN 35 THEN TO_CHAR(l1.APHD_INV_BASE_QTY_VARIANCE)
125968 WHEN 36 THEN TO_CHAR(l1.APHD_QUANTITY_VARIANCE)
125969 WHEN 37 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_PMT)
125970 WHEN 38 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_PMT)
125971
125972 ELSE null
125973 END source_value
125974 , CASE r
125975 WHEN 1 THEN fvl7.meaning
125976 WHEN 6 THEN fvl20.meaning
125977 WHEN 11 THEN fvl39.meaning
125978 WHEN 20 THEN fvl53.meaning
125979 WHEN 30 THEN fvl100.meaning
125980 WHEN 31 THEN fvl101.meaning
125981 WHEN 33 THEN fvl104.meaning
125982
125983 ELSE null
125984 END source_meaning
125985 FROM xla_events_gt xet
125986 , AP_PAYMENT_EXTRACT_DETAILS_V l1
125987 , AP_PO_HEADERS_EXTRACT_V l3
125988 , ZX_AP_DEF_TAX_EXTRACT_V l5
125989 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
125990 , fnd_lookup_values fvl7
125991 , fnd_lookup_values fvl20
125992 , fnd_lookup_values fvl39
125993 , fnd_lookup_values fvl53
125994 , fnd_lookup_values fvl100
125995 , fnd_lookup_values fvl101
125996 , fnd_lookup_values fvl104
125997 , (select rownum r from all_objects where rownum <= 38 and owner = p_apps_owner)
125998 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
125999 AND xet.event_class_code = C_EVENT_CLASS_CODE
126000 AND l1.event_id = xet.event_id
126001 AND l1.pod_po_header_id = l3.po_header_id (+) AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
126002 AND fvl7.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
126003 AND fvl7.view_application_id(+) = 201
126004 AND fvl7.language(+) = USERENV('LANG')
126005 AND fvl20.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
126006 AND fvl20.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
126007 AND fvl20.view_application_id(+) = 200
126008 AND fvl20.language(+) = USERENV('LANG')
126009 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
126010 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
126011 AND fvl39.view_application_id(+) = 200
126012 AND fvl39.language(+) = USERENV('LANG')
126013 AND fvl53.lookup_type(+) = 'YES_NO'
126014 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
126015 AND fvl53.view_application_id(+) = 0
126016 AND fvl53.language(+) = USERENV('LANG')
126017 AND fvl100.lookup_type(+) = 'YES_NO'
126018 AND fvl100.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
126019 AND fvl100.view_application_id(+) = 0
126020 AND fvl100.language(+) = USERENV('LANG')
126021 AND fvl101.lookup_type(+) = 'INVOICE TYPE'
126022 AND fvl101.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
126023 AND fvl101.view_application_id(+) = 200
126024 AND fvl101.language(+) = USERENV('LANG')
126025 AND fvl104.lookup_type(+) = 'YES_NO'
126026 AND fvl104.lookup_code(+) = l1.AID_ENCUMBERED_FLAG
126027 AND fvl104.view_application_id(+) = 0
126028 AND fvl104.language(+) = USERENV('LANG')
126029
126030 )
126031 ;
126032 --
126033 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126034
126035 trace
126036 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
126037 ,p_level => C_LEVEL_STATEMENT
126038 ,p_module => l_log_module);
126039
126040 END IF;
126041
126042
126043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126044 trace
126045 (p_msg => 'END of insert_sources_209'
126046 ,p_level => C_LEVEL_PROCEDURE
126047 ,p_module => l_log_module);
126048 END IF;
126052 trace
126049 EXCEPTION
126050 WHEN xla_exceptions_pkg.application_exception THEN
126051 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
126053 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
126054 ,p_level => C_LEVEL_EXCEPTION
126055 ,p_module => l_log_module);
126056 END IF;
126057 RAISE;
126058 WHEN OTHERS THEN
126059 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
126060 trace
126061 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
126062 ,p_level => C_LEVEL_EXCEPTION
126063 ,p_module => l_log_module);
126064 END IF;
126065 xla_exceptions_pkg.raise_message
126066 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_209');
126067 END insert_sources_209;
126068 --
126069
126070 ---------------------------------------
126071 --
126072 -- PRIVATE FUNCTION
126073 -- EventClass_209
126074 --
126075 ----------------------------------------
126076 --
126077 FUNCTION EventClass_209
126078 (p_application_id IN NUMBER
126079 ,p_base_ledger_id IN NUMBER
126080 ,p_target_ledger_id IN NUMBER
126081 ,p_language IN VARCHAR2
126082 ,p_currency_code IN VARCHAR2
126083 ,p_sla_ledger_id IN NUMBER
126084 ,p_pad_start_date IN DATE
126085 ,p_pad_end_date IN DATE
126086 ,p_primary_ledger_id IN NUMBER)
126087 RETURN BOOLEAN IS
126088 --
126089 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS_ALL';
126090 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS';
126091
126092 l_calculate_acctd_flag VARCHAR2(1) :='N';
126093 l_calculate_g_l_flag VARCHAR2(1) :='N';
126094 --
126095 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126096 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126097 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126098 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126099 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126100 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126101 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126102 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126103 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126104 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126105 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126106 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126107 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126108 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126109 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126110 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126111 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126112 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126113 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126114 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126115 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126116 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126117 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
126118 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126119 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
126120 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
126121
126122 l_event_id NUMBER;
126123 l_previous_event_id NUMBER;
126124 l_first_event_id NUMBER;
126125 l_last_event_id NUMBER;
126126
126127 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
126128 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
126129 --
126130 --
126131 l_result BOOLEAN := TRUE;
126132 l_rows NUMBER := 1000;
126133 l_event_type_name VARCHAR2(80) := 'All';
126134 l_event_class_name VARCHAR2(80) := 'Payments';
126135 l_description VARCHAR2(4000);
126136 l_transaction_reversal NUMBER;
126137 l_ae_header_id NUMBER;
126138 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
126139 l_log_module VARCHAR2(240);
126140 --
126141 l_acct_reversal_source VARCHAR2(30);
126142 l_trx_reversal_source VARCHAR2(30);
126143
126144 l_continue_with_lines BOOLEAN := TRUE;
126145 --
126146 l_acc_rev_gl_date_source DATE; -- 4262811
126147 --
126148 type t_array_event_id is table of number index by binary_integer;
126149
126150 l_rec_array_event t_rec_array_event;
126151 l_null_rec_array_event t_rec_array_event;
126152 l_array_ae_header_id xla_number_array_type;
126153 l_actual_flag VARCHAR2(1) := NULL;
126154 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
126155 l_balance_type_code VARCHAR2(1) :=NULL;
126156 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
126157
126158 --
126162 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
126159 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
126160 --
126161
126163 TYPE t_array_source_2 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
126164 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
126165 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
126166 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
126167 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
126168 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
126169 TYPE t_array_source_12 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
126170 TYPE t_array_source_13 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
126171 TYPE t_array_source_14 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
126172 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
126173 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
126174 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
126175 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
126176 TYPE t_array_source_22 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
126177 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
126178 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
126179 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
126180 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
126181 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
126182 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
126183 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
126184 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
126185 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
126186 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
126187 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
126188 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
126189 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
126190 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
126191 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
126192 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
126193 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
126194 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
126195 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
126196 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
126197
126198 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
126199 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
126200 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
126201 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
126202 TYPE t_array_source_19 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
126203 TYPE t_array_source_20 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
126204 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
126205 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
126206 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
126207 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
126208 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
126209 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
126210 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
126211 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
126212 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126216 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
126213 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
126214 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
126215 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
126217 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
126218 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126219 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
126220 TYPE t_array_source_59 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
126221 TYPE t_array_source_61 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
126222 TYPE t_array_source_62 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
126223 TYPE t_array_source_63 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
126224 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126225 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
126226 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126227 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
126228 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
126229 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_AMT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126230 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
126231 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126232 TYPE t_array_source_142 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_QTY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126233 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126234 TYPE t_array_source_149 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
126235 TYPE t_array_source_150 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
126236
126237 l_array_source_1 t_array_source_1;
126238 l_array_source_2 t_array_source_2;
126239 l_array_source_3 t_array_source_3;
126240 l_array_source_3_meaning t_array_lookup_meaning;
126241 l_array_source_4 t_array_source_4;
126242 l_array_source_4_meaning t_array_lookup_meaning;
126243 l_array_source_5 t_array_source_5;
126244 l_array_source_8 t_array_source_8;
126245 l_array_source_11 t_array_source_11;
126246 l_array_source_12 t_array_source_12;
126247 l_array_source_12_meaning t_array_lookup_meaning;
126248 l_array_source_13 t_array_source_13;
126249 l_array_source_14 t_array_source_14;
126250 l_array_source_15 t_array_source_15;
126251 l_array_source_16 t_array_source_16;
126252 l_array_source_18 t_array_source_18;
126253 l_array_source_18_meaning t_array_lookup_meaning;
126254 l_array_source_21 t_array_source_21;
126255 l_array_source_22 t_array_source_22;
126256 l_array_source_27 t_array_source_27;
126257 l_array_source_30 t_array_source_30;
126258 l_array_source_30_meaning t_array_lookup_meaning;
126259 l_array_source_31 t_array_source_31;
126260 l_array_source_38 t_array_source_38;
126261 l_array_source_49 t_array_source_49;
126262 l_array_source_54 t_array_source_54;
126263 l_array_source_55 t_array_source_55;
126264 l_array_source_56 t_array_source_56;
126265 l_array_source_60 t_array_source_60;
126266 l_array_source_60_meaning t_array_lookup_meaning;
126267 l_array_source_102 t_array_source_102;
126268 l_array_source_102_meaning t_array_lookup_meaning;
126269 l_array_source_110 t_array_source_110;
126270 l_array_source_110_meaning t_array_lookup_meaning;
126271 l_array_source_111 t_array_source_111;
126272 l_array_source_113 t_array_source_113;
126273 l_array_source_114 t_array_source_114;
126274 l_array_source_115 t_array_source_115;
126275 l_array_source_116 t_array_source_116;
126276 l_array_source_158 t_array_source_158;
126277 l_array_source_159 t_array_source_159;
126278 l_array_source_160 t_array_source_160;
126279 l_array_source_175 t_array_source_175;
126280 l_array_source_175_meaning t_array_lookup_meaning;
126281
126282 l_array_source_7 t_array_source_7;
126283 l_array_source_7_meaning t_array_lookup_meaning;
126284 l_array_source_9 t_array_source_9;
126285 l_array_source_10 t_array_source_10;
126286 l_array_source_17 t_array_source_17;
126287 l_array_source_19 t_array_source_19;
126288 l_array_source_20 t_array_source_20;
126289 l_array_source_20_meaning t_array_lookup_meaning;
126290 l_array_source_23 t_array_source_23;
126291 l_array_source_24 t_array_source_24;
126292 l_array_source_28 t_array_source_28;
126296 l_array_source_40 t_array_source_40;
126293 l_array_source_29 t_array_source_29;
126294 l_array_source_39 t_array_source_39;
126295 l_array_source_39_meaning t_array_lookup_meaning;
126297 l_array_source_41 t_array_source_41;
126298 l_array_source_42 t_array_source_42;
126299 l_array_source_47 t_array_source_47;
126300 l_array_source_48 t_array_source_48;
126301 l_array_source_50 t_array_source_50;
126302 l_array_source_51 t_array_source_51;
126303 l_array_source_52 t_array_source_52;
126304 l_array_source_53 t_array_source_53;
126305 l_array_source_53_meaning t_array_lookup_meaning;
126306 l_array_source_57 t_array_source_57;
126307 l_array_source_58 t_array_source_58;
126308 l_array_source_59 t_array_source_59;
126309 l_array_source_61 t_array_source_61;
126310 l_array_source_62 t_array_source_62;
126311 l_array_source_63 t_array_source_63;
126312 l_array_source_64 t_array_source_64;
126313 l_array_source_65 t_array_source_65;
126314 l_array_source_66 t_array_source_66;
126315 l_array_source_100 t_array_source_100;
126316 l_array_source_100_meaning t_array_lookup_meaning;
126317 l_array_source_101 t_array_source_101;
126318 l_array_source_101_meaning t_array_lookup_meaning;
126319 l_array_source_103 t_array_source_103;
126320 l_array_source_104 t_array_source_104;
126321 l_array_source_104_meaning t_array_lookup_meaning;
126322 l_array_source_105 t_array_source_105;
126323 l_array_source_142 t_array_source_142;
126324 l_array_source_143 t_array_source_143;
126325 l_array_source_149 t_array_source_149;
126326 l_array_source_150 t_array_source_150;
126327
126328 --
126329 CURSOR header_cur
126330 IS
126331 SELECT /*+ leading(xet) cardinality(xet,1) */
126332 -- Event Class Code: PAYMENTS
126333 xet.entity_id
126334 ,xet.legal_entity_id
126335 ,xet.entity_code
126336 ,xet.transaction_number
126337 ,xet.event_id
126338 ,xet.event_class_code
126339 ,xet.event_type_code
126340 ,xet.event_number
126341 ,xet.event_date
126342 ,xet.transaction_date
126343 ,xet.reference_num_1
126344 ,xet.reference_num_2
126345 ,xet.reference_num_3
126346 ,xet.reference_num_4
126347 ,xet.reference_char_1
126348 ,xet.reference_char_2
126349 ,xet.reference_char_3
126350 ,xet.reference_char_4
126351 ,xet.reference_date_1
126352 ,xet.reference_date_2
126353 ,xet.reference_date_3
126354 ,xet.reference_date_4
126355 ,xet.event_created_by
126356 ,xet.budgetary_control_flag
126357 , h2.CGAC_AP_ASSET_CCID source_1
126358 , h4.FSP_DISC_TAKEN_CCID source_2
126359 , h4.ASP_DISCOUNT_DIST_METHOD source_3
126360 , fvl3.meaning source_3_meaning
126361 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_4
126362 , fvl4.meaning source_4_meaning
126363 , h4.ASP_RATE_VAR_GAIN_CCID source_5
126364 , h4.ASP_RATE_VAR_LOSS_CCID source_8
126365 , h2.CGAC_FUTURE_DATED_PMT_CCID source_11
126366 , h4.ASP_FD_PMT_ACCT_SOURCE source_12
126367 , fvl12.meaning source_12_meaning
126368 , h4.FSP_FUTURE_DATED_PAYMENT_CCID source_13
126369 , h2.POS_FDP_CCID source_14
126370 , h4.ASP_INTEREST_CCID source_15
126371 , h4.ASP_PRORATE_INT_ACROSS_DISTS source_16
126372 , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG source_18
126373 , fvl18.meaning source_18_meaning
126374 , h2.CGAC_CASH_CLEARING_CCID source_21
126375 , h4.FSP_RETAINAGE_ACCOUNT source_22
126376 , h4.ASP_DISC_TAKEN_CCID source_27
126377 , h4.ASP_AUTO_OFFSET_FLAG source_30
126378 , fvl30.meaning source_30_meaning
126379 , h2.PAYCARD_ACCRUED_ACCOUNT_CCID source_31
126380 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_38
126381 , h2.AC_CURRENCY_CODE source_49
126382 , h2.AC_VENDOR_ID source_54
126383 , h2.AC_VENDOR_SITE_ID source_55
126384 , h2.THIRD_PARTY_TYPE source_56
126385 , h2.PAYMENT_TYPE source_60
126386 , fvl60.meaning source_60_meaning
126387 , h4.FSP_PURCH_ENCUMBRANCE_FLAG source_102
126388 , fvl102.meaning source_102_meaning
126389 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_110
126390 , fvl110.meaning source_110_meaning
126391 , h2.AC_FUTURE_PAY_DUE_DATE source_111
126392 , h2.PAYMENT_PROCESSING_TYPE source_113
126393 , h2.AC_EXCHANGE_DATE source_114
126394 , h2.AC_EXCHANGE_RATE source_115
126395 , h2.AC_EXCHANGE_RATE_TYPE source_116
126396 , h2.AC_DOC_CATEGORY_CODE source_158
126397 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_159
126398 , h2.AC_DOC_SEQUENCE_VALUE source_160
126399 , h2.TRANSAC_REVERSAL_FLAG source_175
126400 , fvl175.meaning source_175_meaning
126401 FROM xla_events_gt xet
126402 , AP_PAYMENT_EXTRACT_HEADER_V h2
126403 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
126404 , fnd_lookup_values fvl3
126405 , fnd_lookup_values fvl4
126406 , fnd_lookup_values fvl12
126407 , fnd_lookup_values fvl18
126408 , fnd_lookup_values fvl30
126409 , fnd_lookup_values fvl60
126410 , fnd_lookup_values fvl102
126411 , fnd_lookup_values fvl110
126412 , fnd_lookup_values fvl175
126413 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
126414 and xet.event_class_code = C_EVENT_CLASS_CODE
126415 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
126416 AND h4.asp_org_id = h2.ac_org_id AND fvl3.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
126420 AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
126417 AND fvl3.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
126418 AND fvl3.view_application_id(+) = 200
126419 AND fvl3.language(+) = USERENV('LANG')
126421 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
126422 AND fvl4.view_application_id(+) = 200
126423 AND fvl4.language(+) = USERENV('LANG')
126424 AND fvl12.lookup_type(+) = 'FUTURE PAY ACCT SOURCE'
126425 AND fvl12.lookup_code(+) = h4.ASP_FD_PMT_ACCT_SOURCE
126426 AND fvl12.view_application_id(+) = 200
126427 AND fvl12.language(+) = USERENV('LANG')
126428 AND fvl18.lookup_type(+) = 'YES_NO'
126429 AND fvl18.lookup_code(+) = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
126430 AND fvl18.view_application_id(+) = 0
126431 AND fvl18.language(+) = USERENV('LANG')
126432 AND fvl30.lookup_type(+) = 'YES_NO'
126433 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
126434 AND fvl30.view_application_id(+) = 0
126435 AND fvl30.language(+) = USERENV('LANG')
126436 AND fvl60.lookup_type(+) = 'PAYMENT TYPE'
126437 AND fvl60.lookup_code(+) = h2.PAYMENT_TYPE
126438 AND fvl60.view_application_id(+) = 200
126439 AND fvl60.language(+) = USERENV('LANG')
126440 AND fvl102.lookup_type(+) = 'YES_NO'
126441 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
126442 AND fvl102.view_application_id(+) = 0
126443 AND fvl102.language(+) = USERENV('LANG')
126444 AND fvl110.lookup_type(+) = 'YES_NO'
126445 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
126446 AND fvl110.view_application_id(+) = 0
126447 AND fvl110.language(+) = USERENV('LANG')
126448 AND fvl175.lookup_type(+) = 'YES_NO'
126449 AND fvl175.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
126450 AND fvl175.view_application_id(+) = 0
126451 AND fvl175.language(+) = USERENV('LANG')
126452
126453 ORDER BY event_id
126454 ;
126455
126456
126457 --
126458 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
126459 IS
126460 SELECT /*+ leading(xet) cardinality(xet,1) */
126461 -- Event Class Code: PAYMENTS
126462 xet.entity_id
126463 ,xet.legal_entity_id
126464 ,xet.entity_code
126465 ,xet.transaction_number
126466 ,xet.event_id
126467 ,xet.event_class_code
126468 ,xet.event_type_code
126469 ,xet.event_number
126470 ,xet.event_date
126471 ,xet.transaction_date
126472 ,xet.reference_num_1
126473 ,xet.reference_num_2
126474 ,xet.reference_num_3
126475 ,xet.reference_num_4
126476 ,xet.reference_char_1
126477 ,xet.reference_char_2
126478 ,xet.reference_char_3
126479 ,xet.reference_char_4
126480 ,xet.reference_date_1
126481 ,xet.reference_date_2
126482 ,xet.reference_date_3
126483 ,xet.reference_date_4
126484 ,xet.event_created_by
126485 ,xet.budgetary_control_flag
126486 , l1.LINE_NUMBER
126487 , l1.RELATED_INV_DIST_DEST_TYPE source_7
126488 , fvl7.meaning source_7_meaning
126489 , l1.APHD_PAYMENT_BASE_AMT source_9
126490 , l1.APHD_CLEARING_BASE_AMT source_10
126491 , l1.AID_DIST_CCID source_17
126492 , l3.PO_NUMBER source_19
126493 , l1.AID_LINE_TYPE_LOOKUP_CODE source_20
126494 , fvl20.meaning source_20_meaning
126495 , l1.AID_RET_RELATED_DIST_CCID source_23
126496 , l1.AWT_RELATED_DIST_ACCOUNT source_24
126497 , l1.POD_CCID source_28
126498 , l1.PO_VARIANCE_ACCOUNT source_29
126499 , l1.APHD_PAY_DIST_LOOKUP_CODE source_39
126500 , fvl39.meaning source_39_meaning
126501 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
126502 , l1.APHD_AMOUNT source_41
126503 , l1.BUS_FLOW_AP_APP_ID source_42
126504 , l1.APHD_PAYMENT_HIST_DIST_ID source_47
126505 , l1.DISTRIBUTION_LINK_TYPE source_48
126506 , l3.POH_RATE_DATE source_50
126507 , l3.POH_RATE source_51
126508 , l3.POH_RATE_TYPE source_52
126509 , l1.OVERRIDE_ACCTD_AMT_FLAG source_53
126510 , fvl53.meaning source_53_meaning
126511 , l1.APHD_REV_PAY_HIST_DIST_ID source_57
126512 , l5.TAX_LINE_ID source_58
126513 , l5.SUMMARY_TAX_LINE_ID source_59
126514 , l1.APHD_INVOICE_DIST_AMOUNT source_61
126515 , l1.BUS_FLOW_INV_DIST_TYPE source_62
126516 , l1.BUS_FLOW_INV_ENTITY_CODE source_63
126517 , l1.BUS_FLOW_INV_DIST_ID source_64
126518 , l1.BUS_FLOW_INV_ID source_65
126519 , l6.REC_NREC_TAX_DIST_ID source_66
126520 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_100
126521 , fvl100.meaning source_100_meaning
126522 , l1.AI_INVOICE_TYPE_PAID source_101
126523 , fvl101.meaning source_101_meaning
126524 , l1.APHD_INV_BASE_AMT_VARIANCE source_103
126525 , l1.AID_ENCUMBERED_FLAG source_104
126526 , fvl104.meaning source_104_meaning
126527 , l1.APHD_AMOUNT_VARIANCE source_105
126528 , l1.APHD_INV_BASE_QTY_VARIANCE source_142
126529 , l1.APHD_QUANTITY_VARIANCE source_143
126530 , l1.BF_RETAINED_INV_DIST_ID_PMT source_149
126531 , l1.BF_RETAINED_INV_ID_PMT source_150
126532 FROM xla_events_gt xet
126533 , AP_PAYMENT_EXTRACT_DETAILS_V l1
126534 , AP_PO_HEADERS_EXTRACT_V l3
126535 , ZX_AP_DEF_TAX_EXTRACT_V l5
126536 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
126537 , fnd_lookup_values fvl7
126538 , fnd_lookup_values fvl20
126539 , fnd_lookup_values fvl39
126540 , fnd_lookup_values fvl53
126544 WHERE xet.event_id between x_first_event_id and x_last_event_id
126541 , fnd_lookup_values fvl100
126542 , fnd_lookup_values fvl101
126543 , fnd_lookup_values fvl104
126545 and xet.event_date between p_pad_start_date and p_pad_end_date
126546 and xet.event_class_code = C_EVENT_CLASS_CODE
126547 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
126548 AND l1.POD_PO_Header_Id = l3.PO_Header_Id (+) AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
126549 AND fvl7.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
126550 AND fvl7.view_application_id(+) = 201
126551 AND fvl7.language(+) = USERENV('LANG')
126552 AND fvl20.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
126553 AND fvl20.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
126554 AND fvl20.view_application_id(+) = 200
126555 AND fvl20.language(+) = USERENV('LANG')
126556 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
126557 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
126558 AND fvl39.view_application_id(+) = 200
126559 AND fvl39.language(+) = USERENV('LANG')
126560 AND fvl53.lookup_type(+) = 'YES_NO'
126561 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
126562 AND fvl53.view_application_id(+) = 0
126563 AND fvl53.language(+) = USERENV('LANG')
126564 AND fvl100.lookup_type(+) = 'YES_NO'
126565 AND fvl100.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
126566 AND fvl100.view_application_id(+) = 0
126567 AND fvl100.language(+) = USERENV('LANG')
126568 AND fvl101.lookup_type(+) = 'INVOICE TYPE'
126569 AND fvl101.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
126570 AND fvl101.view_application_id(+) = 200
126571 AND fvl101.language(+) = USERENV('LANG')
126572 AND fvl104.lookup_type(+) = 'YES_NO'
126573 AND fvl104.lookup_code(+) = l1.AID_ENCUMBERED_FLAG
126574 AND fvl104.view_application_id(+) = 0
126575 AND fvl104.language(+) = USERENV('LANG')
126576 ;
126577
126578 --
126579 BEGIN
126580 IF g_log_enabled THEN
126581 l_log_module := C_DEFAULT_MODULE||'.EventClass_209';
126582 END IF;
126583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126584 trace
126585 (p_msg => 'BEGIN of EventClass_209'
126586 ,p_level => C_LEVEL_PROCEDURE
126587 ,p_module => l_log_module);
126588 END IF;
126589
126590 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126591 trace
126592 (p_msg => 'p_application_id = '||p_application_id||
126593 ' - p_base_ledger_id = '||p_base_ledger_id||
126594 ' - p_target_ledger_id = '||p_target_ledger_id||
126595 ' - p_language = '||p_language||
126596 ' - p_currency_code = '||p_currency_code||
126597 ' - p_sla_ledger_id = '||p_sla_ledger_id
126598 ,p_level => C_LEVEL_STATEMENT
126599 ,p_module => l_log_module);
126600 END IF;
126601 --
126602 -- initialze arrays
126603 --
126604 g_array_event.DELETE;
126605 l_rec_array_event := l_null_rec_array_event;
126606 --
126607 --------------------------------------
126608 -- 4262811 Initialze MPA Line Number
126609 --------------------------------------
126610 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
126611
126612 --
126613
126614 --
126615 OPEN header_cur;
126616 --
126617 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126618 trace
126619 (p_msg => 'SQL - FETCH header_cur'
126620 ,p_level => C_LEVEL_STATEMENT
126621 ,p_module => l_log_module);
126622 END IF;
126623 --
126624 LOOP
126625 FETCH header_cur BULK COLLECT INTO
126626 l_array_entity_id
126627 , l_array_legal_entity_id
126628 , l_array_entity_code
126629 , l_array_transaction_num
126630 , l_array_event_id
126631 , l_array_class_code
126632 , l_array_event_type
126633 , l_array_event_number
126634 , l_array_event_date
126635 , l_array_transaction_date
126636 , l_array_reference_num_1
126637 , l_array_reference_num_2
126638 , l_array_reference_num_3
126639 , l_array_reference_num_4
126640 , l_array_reference_char_1
126641 , l_array_reference_char_2
126642 , l_array_reference_char_3
126643 , l_array_reference_char_4
126644 , l_array_reference_date_1
126645 , l_array_reference_date_2
126646 , l_array_reference_date_3
126647 , l_array_reference_date_4
126648 , l_array_event_created_by
126649 , l_array_budgetary_control_flag
126650 , l_array_source_1
126651 , l_array_source_2
126652 , l_array_source_3
126653 , l_array_source_3_meaning
126654 , l_array_source_4
126655 , l_array_source_4_meaning
126656 , l_array_source_5
126657 , l_array_source_8
126658 , l_array_source_11
126659 , l_array_source_12
126660 , l_array_source_12_meaning
126661 , l_array_source_13
126662 , l_array_source_14
126663 , l_array_source_15
126664 , l_array_source_16
126665 , l_array_source_18
126666 , l_array_source_18_meaning
126667 , l_array_source_21
126668 , l_array_source_22
126669 , l_array_source_27
126670 , l_array_source_30
126671 , l_array_source_30_meaning
126672 , l_array_source_31
126673 , l_array_source_38
126674 , l_array_source_49
126678 , l_array_source_60
126675 , l_array_source_54
126676 , l_array_source_55
126677 , l_array_source_56
126679 , l_array_source_60_meaning
126680 , l_array_source_102
126681 , l_array_source_102_meaning
126682 , l_array_source_110
126683 , l_array_source_110_meaning
126684 , l_array_source_111
126685 , l_array_source_113
126686 , l_array_source_114
126687 , l_array_source_115
126688 , l_array_source_116
126689 , l_array_source_158
126690 , l_array_source_159
126691 , l_array_source_160
126692 , l_array_source_175
126693 , l_array_source_175_meaning
126694 LIMIT l_rows;
126695 --
126696 IF (C_LEVEL_EVENT >= g_log_level) THEN
126697 trace
126698 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
126699 ,p_level => C_LEVEL_EVENT
126700 ,p_module => l_log_module);
126701 END IF;
126702 --
126703 EXIT WHEN l_array_entity_id.COUNT = 0;
126704
126705 -- initialize arrays
126706 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
126707 XLA_AE_LINES_PKG.g_rec_lines := NULL;
126708
126709 --
126710 -- Bug 4458708
126711 --
126712 XLA_AE_LINES_PKG.g_LineNumber := 0;
126713
126714
126715 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
126716 g_last_hdr_idx := l_array_event_id.LAST;
126717 --
126718 -- loop for the headers. Each iteration is for each header extract row
126719 -- fetched in header cursor
126720 --
126721 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
126722
126723 --
126724 -- set event info as cache for other routines to refer event attributes
126725 --
126726 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
126727 (p_application_id => p_application_id
126728 ,p_primary_ledger_id => p_primary_ledger_id
126729 ,p_base_ledger_id => p_base_ledger_id
126730 ,p_target_ledger_id => p_target_ledger_id
126731 ,p_entity_id => l_array_entity_id(hdr_idx)
126732 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
126733 ,p_entity_code => l_array_entity_code(hdr_idx)
126734 ,p_transaction_num => l_array_transaction_num(hdr_idx)
126735 ,p_event_id => l_array_event_id(hdr_idx)
126736 ,p_event_class_code => l_array_class_code(hdr_idx)
126737 ,p_event_type_code => l_array_event_type(hdr_idx)
126738 ,p_event_number => l_array_event_number(hdr_idx)
126739 ,p_event_date => l_array_event_date(hdr_idx)
126740 ,p_transaction_date => l_array_transaction_date(hdr_idx)
126741 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
126742 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
126743 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
126744 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
126745 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
126746 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
126747 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
126748 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
126749 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
126750 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
126751 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
126752 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
126753 ,p_event_created_by => l_array_event_created_by(hdr_idx)
126754 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
126755
126756 --
126757 -- set the status of entry to C_VALID (0)
126758 --
126759 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
126760
126761 --
126762 -- initialize a row for ae header
126763 --
126764 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
126765
126766 l_event_id := l_array_event_id(hdr_idx);
126767
126768 --
126769 -- storing the hdr_idx for event. May be used by line cursor.
126770 --
126771 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
126772
126773 --
126774 -- store sources from header extract. This can be improved to
126775 -- store only those sources from header extract that may be used in lines
126776 --
126777
126778 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
126779 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
126780 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
126781 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
126782 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
126783 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
126784 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
126785 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
126786 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
126787 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
126788 g_array_event(l_event_id).array_value_char('source_12_meaning') := l_array_source_12_meaning(hdr_idx);
126789 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
126790 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
126794 g_array_event(l_event_id).array_value_char('source_18_meaning') := l_array_source_18_meaning(hdr_idx);
126791 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
126792 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
126793 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
126795 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
126796 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
126797 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
126798 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
126799 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
126800 g_array_event(l_event_id).array_value_num('source_31') := l_array_source_31(hdr_idx);
126801 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
126802 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
126803 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
126804 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
126805 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
126806 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
126807 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
126808 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
126809 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
126810 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
126811 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
126812 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
126813 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
126814 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
126815 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
126816 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
126817 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
126818 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
126819 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
126820 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
126821 g_array_event(l_event_id).array_value_char('source_175_meaning') := l_array_source_175_meaning(hdr_idx);
126822
126823 --
126824 -- initilaize the status of ae headers for diffrent balance types
126825 -- the status is initialised to C_NOT_CREATED (2)
126826 --
126827 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
126828 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
126829 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
126830
126831 --
126832 -- call api to validate and store accounting attributes for header
126833 --
126834
126835 ------------------------------------------------------------
126836 -- Accrual Reversal : to get date for Standard Source (NONE)
126837 ------------------------------------------------------------
126838 l_acc_rev_gl_date_source := NULL;
126839
126840 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
126841 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
126842 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
126843 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
126844 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
126845 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
126846 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
126847 l_rec_acct_attrs.array_date_value(4) :=
126848 xla_ae_sources_pkg.GetSystemSourceDate(
126849 p_source_code => 'XLA_EVENT_DATE'
126850 , p_source_type_code => 'Y'
126851 , p_source_application_id => 602
126852 );
126853 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
126854 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_175');
126855
126856
126857 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
126858
126859 XLA_AE_HEADER_PKG.SetJeCategoryName;
126860
126861 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
126862 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
126863 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
126864 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
126865 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
126866
126867
126868 -- No header level analytical criteria
126869
126870 --
126871 --accounting attribute enhancement, bug 3612931
126872 --
126873 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_175'), 1,30);
126874
126875 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
126876 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
126877
126881 ,p_token_1 => 'ACCT_ATTR_NAME'
126878 xla_accounting_err_pkg.build_message
126879 (p_appli_s_name => 'XLA'
126880 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
126882 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
126883 ,p_token_2 => 'PRODUCT_NAME'
126884 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
126885 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
126886 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
126887 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
126888
126889 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
126890 --
126891 -- following sets the accounting attributes needed to reverse
126892 -- accounting for a distributeion
126893 --
126894 xla_ae_lines_pkg.SetTrxReversalAttrs
126895 (p_event_id => l_event_id
126896 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
126897 ,p_trx_reversal_source => l_trx_reversal_source);
126898
126899 END IF;
126900
126901
126902 ----------------------------------------------------------------
126903 -- 4262811 - update the header statuses to invalid in need be
126904 ----------------------------------------------------------------
126905 --
126906 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
126907
126908
126909 -----------------------------------------------
126910 -- No accrual reversal for the event class/type
126911 -----------------------------------------------
126912 ----------------------------------------------------------------
126913
126914 --
126915 -- this ends the header loop iteration for one bulk fetch
126916 --
126917 END LOOP;
126918
126919 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
126920 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
126921
126922 --
126923 -- insert dummy rows into lines gt table that were created due to
126924 -- transaction reversals
126925 --
126926 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
126927 l_result := XLA_AE_LINES_PKG.InsertLines;
126928 END IF;
126929
126930 --
126931 -- reset the temp_line_num for each set of events fetched from header
126932 -- cursor rather than doing it for each new event in line cursor
126933 -- Bug 3939231
126934 --
126935 xla_ae_lines_pkg.g_temp_line_num := 0;
126936
126937
126938
126939 --
126940 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
126941 --
126942 --
126943 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126944
126945 trace
126946 (p_msg => 'SQL - FETCH line_cur'
126947 ,p_level => C_LEVEL_STATEMENT
126948 ,p_module => l_log_module);
126949
126950 END IF;
126951 --
126952 --
126953 LOOP
126954 --
126955 FETCH line_cur BULK COLLECT INTO
126956 l_array_entity_id
126957 , l_array_legal_entity_id
126958 , l_array_entity_code
126959 , l_array_transaction_num
126960 , l_array_event_id
126961 , l_array_class_code
126962 , l_array_event_type
126963 , l_array_event_number
126964 , l_array_event_date
126965 , l_array_transaction_date
126966 , l_array_reference_num_1
126967 , l_array_reference_num_2
126968 , l_array_reference_num_3
126969 , l_array_reference_num_4
126970 , l_array_reference_char_1
126971 , l_array_reference_char_2
126972 , l_array_reference_char_3
126973 , l_array_reference_char_4
126974 , l_array_reference_date_1
126975 , l_array_reference_date_2
126976 , l_array_reference_date_3
126977 , l_array_reference_date_4
126978 , l_array_event_created_by
126979 , l_array_budgetary_control_flag
126980 , l_array_extract_line_num
126981 , l_array_source_7
126982 , l_array_source_7_meaning
126983 , l_array_source_9
126984 , l_array_source_10
126985 , l_array_source_17
126986 , l_array_source_19
126987 , l_array_source_20
126988 , l_array_source_20_meaning
126989 , l_array_source_23
126990 , l_array_source_24
126991 , l_array_source_28
126992 , l_array_source_29
126993 , l_array_source_39
126994 , l_array_source_39_meaning
126995 , l_array_source_40
126996 , l_array_source_41
126997 , l_array_source_42
126998 , l_array_source_47
126999 , l_array_source_48
127000 , l_array_source_50
127001 , l_array_source_51
127002 , l_array_source_52
127003 , l_array_source_53
127004 , l_array_source_53_meaning
127005 , l_array_source_57
127006 , l_array_source_58
127007 , l_array_source_59
127008 , l_array_source_61
127009 , l_array_source_62
127010 , l_array_source_63
127011 , l_array_source_64
127012 , l_array_source_65
127013 , l_array_source_66
127014 , l_array_source_100
127015 , l_array_source_100_meaning
127016 , l_array_source_101
127017 , l_array_source_101_meaning
127018 , l_array_source_103
127019 , l_array_source_104
127020 , l_array_source_104_meaning
127024 , l_array_source_149
127021 , l_array_source_105
127022 , l_array_source_142
127023 , l_array_source_143
127025 , l_array_source_150
127026 LIMIT l_rows;
127027
127028 --
127029 IF (C_LEVEL_EVENT >= g_log_level) THEN
127030 trace
127031 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
127032 ,p_level => C_LEVEL_EVENT
127033 ,p_module => l_log_module);
127034 END IF;
127035 --
127036 EXIT WHEN l_array_entity_id.count = 0;
127037
127038 XLA_AE_LINES_PKG.g_rec_lines := null;
127039
127040 --
127041 -- Bug 4458708
127042 --
127043 XLA_AE_LINES_PKG.g_LineNumber := 0;
127044 --
127045 --
127046
127047 FOR Idx IN 1..l_array_event_id.count LOOP
127048 --
127049 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
127050 --
127051 l_event_id := l_array_event_id(idx); -- 5648433
127052
127053 --
127054 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
127055 --
127056
127057 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
127058 (g_array_event(l_event_id).array_value_num('header_index'))
127059 ,'N'
127060 ) <> 'Y'
127061 THEN
127062 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
127063 trace
127064 (p_msg => 'Trancaction revesal option is not Y '
127065 ,p_level => C_LEVEL_STATEMENT
127066 ,p_module => l_log_module);
127067 END IF;
127068
127069 --
127070 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
127071 --
127072 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
127073 --
127074 -- set event info as cache for other routines to refer event attributes
127075 --
127076
127077 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
127078 l_previous_event_id := l_event_id;
127079
127080 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
127081 (p_application_id => p_application_id
127082 ,p_primary_ledger_id => p_primary_ledger_id
127083 ,p_base_ledger_id => p_base_ledger_id
127084 ,p_target_ledger_id => p_target_ledger_id
127085 ,p_entity_id => l_array_entity_id(Idx)
127086 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
127087 ,p_entity_code => l_array_entity_code(Idx)
127088 ,p_transaction_num => l_array_transaction_num(Idx)
127089 ,p_event_id => l_array_event_id(Idx)
127090 ,p_event_class_code => l_array_class_code(Idx)
127091 ,p_event_type_code => l_array_event_type(Idx)
127092 ,p_event_number => l_array_event_number(Idx)
127093 ,p_event_date => l_array_event_date(Idx)
127094 ,p_transaction_date => l_array_transaction_date(Idx)
127095 ,p_reference_num_1 => l_array_reference_num_1(Idx)
127096 ,p_reference_num_2 => l_array_reference_num_2(Idx)
127097 ,p_reference_num_3 => l_array_reference_num_3(Idx)
127098 ,p_reference_num_4 => l_array_reference_num_4(Idx)
127099 ,p_reference_char_1 => l_array_reference_char_1(Idx)
127100 ,p_reference_char_2 => l_array_reference_char_2(Idx)
127101 ,p_reference_char_3 => l_array_reference_char_3(Idx)
127102 ,p_reference_char_4 => l_array_reference_char_4(Idx)
127103 ,p_reference_date_1 => l_array_reference_date_1(Idx)
127104 ,p_reference_date_2 => l_array_reference_date_2(Idx)
127105 ,p_reference_date_3 => l_array_reference_date_3(Idx)
127106 ,p_reference_date_4 => l_array_reference_date_4(Idx)
127107 ,p_event_created_by => l_array_event_created_by(Idx)
127108 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
127109 --
127110 END IF;
127111
127112
127113
127114 --
127115 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
127116
127117 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
127118
127119 IF l_continue_with_lines THEN
127120 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
127121 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
127122
127123 xla_accounting_err_pkg.build_message
127124 (p_appli_s_name => 'XLA'
127125 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
127126 ,p_token_1 => 'LINE_NUMBER'
127127 ,p_value_1 => l_array_extract_line_num(Idx)
127128 ,p_token_2 => 'PRODUCT_NAME'
127129 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
127130 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
127131 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
127132 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
127133
127134 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
127135 --
127136 -- following sets the accounting attributes needed to reverse
127137 -- accounting for a distributeion
127138 --
127139
127140 --
127141 -- 5217187
127142 --
127143 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
127147 --
127144 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
127145 g_array_event(l_event_id).array_value_num('header_index'));
127146 --
127148
127149 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
127150 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
127151 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
127152 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_47(Idx);
127153 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
127154 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
127155 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
127156 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_56');
127157 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
127158 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_57(Idx);
127159 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
127160 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_48(Idx);
127161 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
127162 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_58(Idx);
127163 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
127164 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_66(Idx);
127165 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
127166 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_59(Idx);
127167
127168
127169 xla_ae_lines_pkg.SetAcctReversalAttrs
127170 (p_event_id => l_event_id
127171 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
127172 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127173 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
127174 END IF;
127175
127176 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
127177 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
127178
127179 --
127180 AcctLineType_39 (
127181 p_application_id => p_application_id
127182 ,p_event_id => l_event_id
127183 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127184 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127185 ,p_actual_flag => l_actual_flag
127186 ,p_balance_type_code => l_balance_type_code
127187 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127188
127189 , p_source_9 => l_array_source_9(Idx)
127190 , p_source_20 => l_array_source_20(Idx)
127191 , p_source_20_meaning => l_array_source_20_meaning(Idx)
127192 , p_source_28 => l_array_source_28(Idx)
127193 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127194 , p_source_39 => l_array_source_39(Idx)
127195 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127196 , p_source_40 => l_array_source_40(Idx)
127197 , p_source_41 => l_array_source_41(Idx)
127198 , p_source_42 => l_array_source_42(Idx)
127199 , p_source_47 => l_array_source_47(Idx)
127200 , p_source_48 => l_array_source_48(Idx)
127201 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127202 , p_source_50 => l_array_source_50(Idx)
127203 , p_source_51 => l_array_source_51(Idx)
127204 , p_source_52 => l_array_source_52(Idx)
127205 , p_source_53 => l_array_source_53(Idx)
127206 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127207 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127208 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127209 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127210 , p_source_57 => l_array_source_57(Idx)
127211 , p_source_58 => l_array_source_58(Idx)
127212 , p_source_59 => l_array_source_59(Idx)
127213 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127214 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127215 , p_source_61 => l_array_source_61(Idx)
127216 , p_source_62 => l_array_source_62(Idx)
127217 , p_source_63 => l_array_source_63(Idx)
127218 , p_source_64 => l_array_source_64(Idx)
127219 , p_source_65 => l_array_source_65(Idx)
127220 , p_source_66 => l_array_source_66(Idx)
127221 );
127222 If(l_balance_type_code = 'A') THEN
127223 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127224 END IF;
127225
127226 --
127227
127228
127229 --
127230 AcctLineType_44 (
127231 p_application_id => p_application_id
127232 ,p_event_id => l_event_id
127233 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127234 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127235 ,p_actual_flag => l_actual_flag
127236 ,p_balance_type_code => l_balance_type_code
127237 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127238
127239 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127240 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127241 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
127242 , p_source_7 => l_array_source_7(Idx)
127243 , p_source_7_meaning => l_array_source_7_meaning(Idx)
127244 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
127245 , p_source_9 => l_array_source_9(Idx)
127246 , p_source_10 => l_array_source_10(Idx)
127247 , p_source_17 => l_array_source_17(Idx)
127248 , p_source_20 => l_array_source_20(Idx)
127249 , p_source_20_meaning => l_array_source_20_meaning(Idx)
127250 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127254 , p_source_42 => l_array_source_42(Idx)
127251 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127252 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127253 , p_source_40 => l_array_source_40(Idx)
127255 , p_source_47 => l_array_source_47(Idx)
127256 , p_source_48 => l_array_source_48(Idx)
127257 , p_source_53 => l_array_source_53(Idx)
127258 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127259 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127260 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127261 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127262 , p_source_57 => l_array_source_57(Idx)
127263 , p_source_58 => l_array_source_58(Idx)
127264 , p_source_59 => l_array_source_59(Idx)
127265 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127266 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127267 , p_source_61 => l_array_source_61(Idx)
127268 , p_source_62 => l_array_source_62(Idx)
127269 , p_source_63 => l_array_source_63(Idx)
127270 , p_source_64 => l_array_source_64(Idx)
127271 , p_source_65 => l_array_source_65(Idx)
127272 , p_source_66 => l_array_source_66(Idx)
127273 );
127274 If(l_balance_type_code = 'A') THEN
127275 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127276 END IF;
127277
127278 --
127279
127280
127281 --
127282 AcctLineType_48 (
127283 p_application_id => p_application_id
127284 ,p_event_id => l_event_id
127285 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127286 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127287 ,p_actual_flag => l_actual_flag
127288 ,p_balance_type_code => l_balance_type_code
127289 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127290
127291 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127292 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127293 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
127294 , p_source_7 => l_array_source_7(Idx)
127295 , p_source_7_meaning => l_array_source_7_meaning(Idx)
127296 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
127297 , p_source_9 => l_array_source_9(Idx)
127298 , p_source_10 => l_array_source_10(Idx)
127299 , p_source_17 => l_array_source_17(Idx)
127300 , p_source_20 => l_array_source_20(Idx)
127301 , p_source_20_meaning => l_array_source_20_meaning(Idx)
127302 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127303 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127304 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127305 , p_source_39 => l_array_source_39(Idx)
127306 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127307 , p_source_40 => l_array_source_40(Idx)
127308 , p_source_42 => l_array_source_42(Idx)
127309 , p_source_47 => l_array_source_47(Idx)
127310 , p_source_48 => l_array_source_48(Idx)
127311 , p_source_53 => l_array_source_53(Idx)
127312 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127313 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127314 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127315 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127316 , p_source_57 => l_array_source_57(Idx)
127317 , p_source_58 => l_array_source_58(Idx)
127318 , p_source_59 => l_array_source_59(Idx)
127319 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127320 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127321 , p_source_61 => l_array_source_61(Idx)
127322 , p_source_62 => l_array_source_62(Idx)
127323 , p_source_63 => l_array_source_63(Idx)
127324 , p_source_64 => l_array_source_64(Idx)
127325 , p_source_65 => l_array_source_65(Idx)
127326 , p_source_66 => l_array_source_66(Idx)
127327 , p_source_100 => l_array_source_100(Idx)
127328 , p_source_100_meaning => l_array_source_100_meaning(Idx)
127329 , p_source_101 => l_array_source_101(Idx)
127330 , p_source_101_meaning => l_array_source_101_meaning(Idx)
127331 );
127332 If(l_balance_type_code = 'A') THEN
127333 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127334 END IF;
127335
127336 --
127337
127338
127339 --
127340 AcctLineType_52 (
127341 p_application_id => p_application_id
127342 ,p_event_id => l_event_id
127343 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127344 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127345 ,p_actual_flag => l_actual_flag
127346 ,p_balance_type_code => l_balance_type_code
127347 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127348
127349 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127350 , p_source_39 => l_array_source_39(Idx)
127351 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127352 , p_source_40 => l_array_source_40(Idx)
127353 , p_source_42 => l_array_source_42(Idx)
127354 , p_source_47 => l_array_source_47(Idx)
127355 , p_source_48 => l_array_source_48(Idx)
127356 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127357 , p_source_53 => l_array_source_53(Idx)
127358 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127359 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127360 , p_source_57 => l_array_source_57(Idx)
127361 , p_source_58 => l_array_source_58(Idx)
127362 , p_source_59 => l_array_source_59(Idx)
127363 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127364 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127368 , p_source_64 => l_array_source_64(Idx)
127365 , p_source_61 => l_array_source_61(Idx)
127366 , p_source_62 => l_array_source_62(Idx)
127367 , p_source_63 => l_array_source_63(Idx)
127369 , p_source_65 => l_array_source_65(Idx)
127370 , p_source_66 => l_array_source_66(Idx)
127371 , p_source_100 => l_array_source_100(Idx)
127372 , p_source_100_meaning => l_array_source_100_meaning(Idx)
127373 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
127374 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
127375 , p_source_103 => l_array_source_103(Idx)
127376 , p_source_104 => l_array_source_104(Idx)
127377 , p_source_104_meaning => l_array_source_104_meaning(Idx)
127378 , p_source_105 => l_array_source_105(Idx)
127379 );
127380 If(l_balance_type_code = 'A') THEN
127381 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127382 END IF;
127383
127384 --
127385
127386
127387 --
127388 AcctLineType_60 (
127389 p_application_id => p_application_id
127390 ,p_event_id => l_event_id
127391 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127392 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127393 ,p_actual_flag => l_actual_flag
127394 ,p_balance_type_code => l_balance_type_code
127395 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127396
127397 , p_source_9 => l_array_source_9(Idx)
127398 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
127399 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127400 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127401 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127402 , p_source_39 => l_array_source_39(Idx)
127403 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127404 , p_source_40 => l_array_source_40(Idx)
127405 , p_source_41 => l_array_source_41(Idx)
127406 , p_source_42 => l_array_source_42(Idx)
127407 , p_source_47 => l_array_source_47(Idx)
127408 , p_source_48 => l_array_source_48(Idx)
127409 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127410 , p_source_53 => l_array_source_53(Idx)
127411 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127412 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127413 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127414 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127415 , p_source_57 => l_array_source_57(Idx)
127416 , p_source_58 => l_array_source_58(Idx)
127417 , p_source_59 => l_array_source_59(Idx)
127418 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127419 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127420 , p_source_61 => l_array_source_61(Idx)
127421 , p_source_62 => l_array_source_62(Idx)
127422 , p_source_63 => l_array_source_63(Idx)
127423 , p_source_64 => l_array_source_64(Idx)
127424 , p_source_65 => l_array_source_65(Idx)
127425 , p_source_66 => l_array_source_66(Idx)
127426 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127427 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127428 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127429 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127430 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127431 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127432 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127433 );
127434 If(l_balance_type_code = 'A') THEN
127435 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127436 END IF;
127437
127438 --
127439
127440
127441 --
127442 AcctLineType_61 (
127443 p_application_id => p_application_id
127444 ,p_event_id => l_event_id
127445 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127446 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127447 ,p_actual_flag => l_actual_flag
127448 ,p_balance_type_code => l_balance_type_code
127449 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127450
127451 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127452 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127453 , p_source_9 => l_array_source_9(Idx)
127454 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
127455 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127456 , p_source_39 => l_array_source_39(Idx)
127457 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127458 , p_source_40 => l_array_source_40(Idx)
127459 , p_source_41 => l_array_source_41(Idx)
127460 , p_source_42 => l_array_source_42(Idx)
127461 , p_source_47 => l_array_source_47(Idx)
127462 , p_source_48 => l_array_source_48(Idx)
127463 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127464 , p_source_53 => l_array_source_53(Idx)
127465 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127466 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127467 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127468 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127469 , p_source_57 => l_array_source_57(Idx)
127470 , p_source_58 => l_array_source_58(Idx)
127471 , p_source_59 => l_array_source_59(Idx)
127472 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127473 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127474 , p_source_61 => l_array_source_61(Idx)
127478 , p_source_65 => l_array_source_65(Idx)
127475 , p_source_62 => l_array_source_62(Idx)
127476 , p_source_63 => l_array_source_63(Idx)
127477 , p_source_64 => l_array_source_64(Idx)
127479 , p_source_66 => l_array_source_66(Idx)
127480 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127481 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127482 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127483 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127484 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127485 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127486 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127487 );
127488 If(l_balance_type_code = 'A') THEN
127489 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127490 END IF;
127491
127492 --
127493
127494
127495 --
127496 AcctLineType_62 (
127497 p_application_id => p_application_id
127498 ,p_event_id => l_event_id
127499 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127500 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127501 ,p_actual_flag => l_actual_flag
127502 ,p_balance_type_code => l_balance_type_code
127503 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127504
127505 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127506 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127507 , p_source_9 => l_array_source_9(Idx)
127508 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
127509 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127510 , p_source_39 => l_array_source_39(Idx)
127511 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127512 , p_source_40 => l_array_source_40(Idx)
127513 , p_source_41 => l_array_source_41(Idx)
127514 , p_source_42 => l_array_source_42(Idx)
127515 , p_source_47 => l_array_source_47(Idx)
127516 , p_source_48 => l_array_source_48(Idx)
127517 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127518 , p_source_53 => l_array_source_53(Idx)
127519 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127520 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127521 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127522 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127523 , p_source_57 => l_array_source_57(Idx)
127524 , p_source_58 => l_array_source_58(Idx)
127525 , p_source_59 => l_array_source_59(Idx)
127526 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127527 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127528 , p_source_61 => l_array_source_61(Idx)
127529 , p_source_62 => l_array_source_62(Idx)
127530 , p_source_63 => l_array_source_63(Idx)
127531 , p_source_64 => l_array_source_64(Idx)
127532 , p_source_65 => l_array_source_65(Idx)
127533 , p_source_66 => l_array_source_66(Idx)
127534 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127535 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127536 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127537 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127538 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127539 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127540 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127541 );
127542 If(l_balance_type_code = 'A') THEN
127543 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127544 END IF;
127545
127546 --
127547
127548
127549 --
127550 AcctLineType_69 (
127551 p_application_id => p_application_id
127552 ,p_event_id => l_event_id
127553 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127554 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127555 ,p_actual_flag => l_actual_flag
127556 ,p_balance_type_code => l_balance_type_code
127557 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127558
127559 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
127560 , p_source_9 => l_array_source_9(Idx)
127561 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127562 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127563 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127564 , p_source_39 => l_array_source_39(Idx)
127565 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127566 , p_source_40 => l_array_source_40(Idx)
127567 , p_source_41 => l_array_source_41(Idx)
127568 , p_source_42 => l_array_source_42(Idx)
127569 , p_source_47 => l_array_source_47(Idx)
127570 , p_source_48 => l_array_source_48(Idx)
127571 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127572 , p_source_53 => l_array_source_53(Idx)
127573 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127574 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127575 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127576 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127577 , p_source_57 => l_array_source_57(Idx)
127578 , p_source_58 => l_array_source_58(Idx)
127579 , p_source_59 => l_array_source_59(Idx)
127580 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127581 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127585 , p_source_64 => l_array_source_64(Idx)
127582 , p_source_61 => l_array_source_61(Idx)
127583 , p_source_62 => l_array_source_62(Idx)
127584 , p_source_63 => l_array_source_63(Idx)
127586 , p_source_65 => l_array_source_65(Idx)
127587 , p_source_66 => l_array_source_66(Idx)
127588 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127589 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127590 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127591 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127592 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127593 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127594 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127595 );
127596 If(l_balance_type_code = 'A') THEN
127597 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127598 END IF;
127599
127600 --
127601
127602
127603 --
127604 AcctLineType_70 (
127605 p_application_id => p_application_id
127606 ,p_event_id => l_event_id
127607 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127608 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127609 ,p_actual_flag => l_actual_flag
127610 ,p_balance_type_code => l_balance_type_code
127611 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127612
127613 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
127614 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127615 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127616 , p_source_9 => l_array_source_9(Idx)
127617 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127618 , p_source_39 => l_array_source_39(Idx)
127619 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127620 , p_source_40 => l_array_source_40(Idx)
127621 , p_source_41 => l_array_source_41(Idx)
127622 , p_source_42 => l_array_source_42(Idx)
127623 , p_source_47 => l_array_source_47(Idx)
127624 , p_source_48 => l_array_source_48(Idx)
127625 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127626 , p_source_53 => l_array_source_53(Idx)
127627 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127628 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127629 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127630 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127631 , p_source_57 => l_array_source_57(Idx)
127632 , p_source_58 => l_array_source_58(Idx)
127633 , p_source_59 => l_array_source_59(Idx)
127634 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127635 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127636 , p_source_61 => l_array_source_61(Idx)
127637 , p_source_62 => l_array_source_62(Idx)
127638 , p_source_63 => l_array_source_63(Idx)
127639 , p_source_64 => l_array_source_64(Idx)
127640 , p_source_65 => l_array_source_65(Idx)
127641 , p_source_66 => l_array_source_66(Idx)
127642 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127643 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127644 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127645 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127646 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127647 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127648 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127649 );
127650 If(l_balance_type_code = 'A') THEN
127651 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127652 END IF;
127653
127654 --
127655
127656
127657 --
127658 AcctLineType_71 (
127659 p_application_id => p_application_id
127660 ,p_event_id => l_event_id
127661 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127662 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127663 ,p_actual_flag => l_actual_flag
127664 ,p_balance_type_code => l_balance_type_code
127665 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127666
127667 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
127668 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127669 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127670 , p_source_9 => l_array_source_9(Idx)
127671 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127672 , p_source_39 => l_array_source_39(Idx)
127673 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127674 , p_source_40 => l_array_source_40(Idx)
127675 , p_source_41 => l_array_source_41(Idx)
127676 , p_source_42 => l_array_source_42(Idx)
127677 , p_source_47 => l_array_source_47(Idx)
127678 , p_source_48 => l_array_source_48(Idx)
127679 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127680 , p_source_53 => l_array_source_53(Idx)
127681 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127682 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127683 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127684 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127685 , p_source_57 => l_array_source_57(Idx)
127686 , p_source_58 => l_array_source_58(Idx)
127687 , p_source_59 => l_array_source_59(Idx)
127691 , p_source_62 => l_array_source_62(Idx)
127688 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127689 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127690 , p_source_61 => l_array_source_61(Idx)
127692 , p_source_63 => l_array_source_63(Idx)
127693 , p_source_64 => l_array_source_64(Idx)
127694 , p_source_65 => l_array_source_65(Idx)
127695 , p_source_66 => l_array_source_66(Idx)
127696 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127697 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127698 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127699 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127700 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127701 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127702 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127703 );
127704 If(l_balance_type_code = 'A') THEN
127705 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127706 END IF;
127707
127708 --
127709
127710
127711 --
127712 AcctLineType_79 (
127713 p_application_id => p_application_id
127714 ,p_event_id => l_event_id
127715 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127716 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127717 ,p_actual_flag => l_actual_flag
127718 ,p_balance_type_code => l_balance_type_code
127719 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127720
127721 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
127722 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
127723 , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
127724 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127725 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127726 , p_source_9 => l_array_source_9(Idx)
127727 , p_source_17 => l_array_source_17(Idx)
127728 , p_source_20 => l_array_source_20(Idx)
127729 , p_source_20_meaning => l_array_source_20_meaning(Idx)
127730 , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
127731 , p_source_28 => l_array_source_28(Idx)
127732 , p_source_29 => l_array_source_29(Idx)
127733 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127734 , p_source_39 => l_array_source_39(Idx)
127735 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127736 , p_source_40 => l_array_source_40(Idx)
127737 , p_source_41 => l_array_source_41(Idx)
127738 , p_source_42 => l_array_source_42(Idx)
127739 , p_source_47 => l_array_source_47(Idx)
127740 , p_source_48 => l_array_source_48(Idx)
127741 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127742 , p_source_53 => l_array_source_53(Idx)
127743 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127744 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127745 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127746 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127747 , p_source_57 => l_array_source_57(Idx)
127748 , p_source_58 => l_array_source_58(Idx)
127749 , p_source_59 => l_array_source_59(Idx)
127750 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127751 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127752 , p_source_61 => l_array_source_61(Idx)
127753 , p_source_62 => l_array_source_62(Idx)
127754 , p_source_63 => l_array_source_63(Idx)
127755 , p_source_64 => l_array_source_64(Idx)
127756 , p_source_65 => l_array_source_65(Idx)
127757 , p_source_66 => l_array_source_66(Idx)
127758 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127759 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127760 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127761 );
127762 If(l_balance_type_code = 'A') THEN
127763 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127764 END IF;
127765
127766 --
127767
127768
127769 --
127770 AcctLineType_84 (
127771 p_application_id => p_application_id
127772 ,p_event_id => l_event_id
127773 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127774 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127775 ,p_actual_flag => l_actual_flag
127776 ,p_balance_type_code => l_balance_type_code
127777 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127778
127779 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127780 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127781 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
127782 , p_source_7 => l_array_source_7(Idx)
127783 , p_source_7_meaning => l_array_source_7_meaning(Idx)
127784 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
127785 , p_source_9 => l_array_source_9(Idx)
127786 , p_source_10 => l_array_source_10(Idx)
127787 , p_source_17 => l_array_source_17(Idx)
127788 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127789 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127790 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127791 , p_source_39 => l_array_source_39(Idx)
127792 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127793 , p_source_40 => l_array_source_40(Idx)
127794 , p_source_41 => l_array_source_41(Idx)
127795 , p_source_42 => l_array_source_42(Idx)
127799 , p_source_53 => l_array_source_53(Idx)
127796 , p_source_47 => l_array_source_47(Idx)
127797 , p_source_48 => l_array_source_48(Idx)
127798 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127800 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127801 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127802 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127803 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127804 , p_source_57 => l_array_source_57(Idx)
127805 , p_source_58 => l_array_source_58(Idx)
127806 , p_source_59 => l_array_source_59(Idx)
127807 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127808 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127809 , p_source_61 => l_array_source_61(Idx)
127810 , p_source_62 => l_array_source_62(Idx)
127811 , p_source_63 => l_array_source_63(Idx)
127812 , p_source_64 => l_array_source_64(Idx)
127813 , p_source_65 => l_array_source_65(Idx)
127814 , p_source_66 => l_array_source_66(Idx)
127815 , p_source_100 => l_array_source_100(Idx)
127816 , p_source_100_meaning => l_array_source_100_meaning(Idx)
127817 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127818 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127819 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127820 );
127821 If(l_balance_type_code = 'A') THEN
127822 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127823 END IF;
127824
127825 --
127826
127827
127828 --
127829 AcctLineType_85 (
127830 p_application_id => p_application_id
127831 ,p_event_id => l_event_id
127832 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127833 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127834 ,p_actual_flag => l_actual_flag
127835 ,p_balance_type_code => l_balance_type_code
127836 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127837
127838 , p_source_9 => l_array_source_9(Idx)
127839 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127840 , p_source_39 => l_array_source_39(Idx)
127841 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127842 , p_source_40 => l_array_source_40(Idx)
127843 , p_source_41 => l_array_source_41(Idx)
127844 , p_source_42 => l_array_source_42(Idx)
127845 , p_source_47 => l_array_source_47(Idx)
127846 , p_source_48 => l_array_source_48(Idx)
127847 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127848 , p_source_53 => l_array_source_53(Idx)
127849 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127850 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127851 , p_source_57 => l_array_source_57(Idx)
127852 , p_source_58 => l_array_source_58(Idx)
127853 , p_source_59 => l_array_source_59(Idx)
127854 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127855 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127856 , p_source_61 => l_array_source_61(Idx)
127857 , p_source_62 => l_array_source_62(Idx)
127858 , p_source_63 => l_array_source_63(Idx)
127859 , p_source_64 => l_array_source_64(Idx)
127860 , p_source_65 => l_array_source_65(Idx)
127861 , p_source_66 => l_array_source_66(Idx)
127862 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
127863 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
127864 , p_source_104 => l_array_source_104(Idx)
127865 , p_source_104_meaning => l_array_source_104_meaning(Idx)
127866 );
127867 If(l_balance_type_code = 'A') THEN
127868 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127869 END IF;
127870
127871 --
127872
127873
127874 --
127875 AcctLineType_93 (
127876 p_application_id => p_application_id
127877 ,p_event_id => l_event_id
127878 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127879 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127880 ,p_actual_flag => l_actual_flag
127881 ,p_balance_type_code => l_balance_type_code
127882 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127883
127884 , p_source_9 => l_array_source_9(Idx)
127885 , p_source_17 => l_array_source_17(Idx)
127886 , p_source_20 => l_array_source_20(Idx)
127887 , p_source_20_meaning => l_array_source_20_meaning(Idx)
127888 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127889 , p_source_39 => l_array_source_39(Idx)
127890 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127891 , p_source_40 => l_array_source_40(Idx)
127892 , p_source_41 => l_array_source_41(Idx)
127893 , p_source_42 => l_array_source_42(Idx)
127894 , p_source_47 => l_array_source_47(Idx)
127895 , p_source_48 => l_array_source_48(Idx)
127896 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127897 , p_source_53 => l_array_source_53(Idx)
127898 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127899 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127900 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127901 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127902 , p_source_57 => l_array_source_57(Idx)
127903 , p_source_58 => l_array_source_58(Idx)
127904 , p_source_59 => l_array_source_59(Idx)
127905 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127906 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127907 , p_source_61 => l_array_source_61(Idx)
127908 , p_source_62 => l_array_source_62(Idx)
127909 , p_source_63 => l_array_source_63(Idx)
127913 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127910 , p_source_64 => l_array_source_64(Idx)
127911 , p_source_65 => l_array_source_65(Idx)
127912 , p_source_66 => l_array_source_66(Idx)
127914 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127915 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127916 );
127917 If(l_balance_type_code = 'A') THEN
127918 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127919 END IF;
127920
127921 --
127922
127923
127924 --
127925 AcctLineType_94 (
127926 p_application_id => p_application_id
127927 ,p_event_id => l_event_id
127928 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127929 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127930 ,p_actual_flag => l_actual_flag
127931 ,p_balance_type_code => l_balance_type_code
127932 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127933
127934 , p_source_9 => l_array_source_9(Idx)
127935 , p_source_20 => l_array_source_20(Idx)
127936 , p_source_20_meaning => l_array_source_20_meaning(Idx)
127937 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127938 , p_source_39 => l_array_source_39(Idx)
127939 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127940 , p_source_40 => l_array_source_40(Idx)
127941 , p_source_41 => l_array_source_41(Idx)
127942 , p_source_42 => l_array_source_42(Idx)
127943 , p_source_47 => l_array_source_47(Idx)
127944 , p_source_48 => l_array_source_48(Idx)
127945 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127946 , p_source_53 => l_array_source_53(Idx)
127947 , p_source_53_meaning => l_array_source_53_meaning(Idx)
127948 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127949 , p_source_57 => l_array_source_57(Idx)
127950 , p_source_58 => l_array_source_58(Idx)
127951 , p_source_59 => l_array_source_59(Idx)
127952 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127953 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127954 , p_source_61 => l_array_source_61(Idx)
127955 , p_source_62 => l_array_source_62(Idx)
127956 , p_source_63 => l_array_source_63(Idx)
127957 , p_source_64 => l_array_source_64(Idx)
127958 , p_source_65 => l_array_source_65(Idx)
127959 , p_source_66 => l_array_source_66(Idx)
127960 , p_source_101 => l_array_source_101(Idx)
127961 , p_source_101_meaning => l_array_source_101_meaning(Idx)
127962 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
127963 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
127964 , p_source_104 => l_array_source_104(Idx)
127965 , p_source_104_meaning => l_array_source_104_meaning(Idx)
127966 );
127967 If(l_balance_type_code = 'A') THEN
127968 l_actual_gain_loss_ref := l_gain_or_loss_ref;
127969 END IF;
127970
127971 --
127972
127973
127974 --
127975 AcctLineType_99 (
127976 p_application_id => p_application_id
127977 ,p_event_id => l_event_id
127978 ,p_calculate_acctd_flag => l_calculate_acctd_flag
127979 ,p_calculate_g_l_flag => l_calculate_g_l_flag
127980 ,p_actual_flag => l_actual_flag
127981 ,p_balance_type_code => l_balance_type_code
127982 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127983
127984 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127985 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127986 , p_source_9 => l_array_source_9(Idx)
127987 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
127988 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
127989 , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
127990 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
127991 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
127992 , p_source_17 => l_array_source_17(Idx)
127993 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127994 , p_source_39 => l_array_source_39(Idx)
127995 , p_source_39_meaning => l_array_source_39_meaning(Idx)
127996 , p_source_40 => l_array_source_40(Idx)
127997 , p_source_41 => l_array_source_41(Idx)
127998 , p_source_42 => l_array_source_42(Idx)
127999 , p_source_47 => l_array_source_47(Idx)
128000 , p_source_48 => l_array_source_48(Idx)
128001 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128002 , p_source_53 => l_array_source_53(Idx)
128003 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128004 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128005 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128006 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128007 , p_source_57 => l_array_source_57(Idx)
128008 , p_source_58 => l_array_source_58(Idx)
128009 , p_source_59 => l_array_source_59(Idx)
128010 , p_source_61 => l_array_source_61(Idx)
128011 , p_source_62 => l_array_source_62(Idx)
128012 , p_source_63 => l_array_source_63(Idx)
128013 , p_source_64 => l_array_source_64(Idx)
128014 , p_source_65 => l_array_source_65(Idx)
128015 , p_source_66 => l_array_source_66(Idx)
128016 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
128017 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
128018 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128019 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128020 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128021 );
128025
128022 If(l_balance_type_code = 'A') THEN
128023 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128024 END IF;
128026 --
128027
128028
128029 --
128030 AcctLineType_108 (
128031 p_application_id => p_application_id
128032 ,p_event_id => l_event_id
128033 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128034 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128035 ,p_actual_flag => l_actual_flag
128036 ,p_balance_type_code => l_balance_type_code
128037 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128038
128039 , p_source_9 => l_array_source_9(Idx)
128040 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
128041 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
128042 , p_source_17 => l_array_source_17(Idx)
128043 , p_source_20 => l_array_source_20(Idx)
128044 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128045 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128046 , p_source_39 => l_array_source_39(Idx)
128047 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128048 , p_source_40 => l_array_source_40(Idx)
128049 , p_source_41 => l_array_source_41(Idx)
128050 , p_source_42 => l_array_source_42(Idx)
128051 , p_source_47 => l_array_source_47(Idx)
128052 , p_source_48 => l_array_source_48(Idx)
128053 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128054 , p_source_53 => l_array_source_53(Idx)
128055 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128056 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128057 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128058 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128059 , p_source_57 => l_array_source_57(Idx)
128060 , p_source_58 => l_array_source_58(Idx)
128061 , p_source_59 => l_array_source_59(Idx)
128062 , p_source_61 => l_array_source_61(Idx)
128063 , p_source_62 => l_array_source_62(Idx)
128064 , p_source_63 => l_array_source_63(Idx)
128065 , p_source_64 => l_array_source_64(Idx)
128066 , p_source_65 => l_array_source_65(Idx)
128067 , p_source_66 => l_array_source_66(Idx)
128068 , p_source_101 => l_array_source_101(Idx)
128069 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128070 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
128071 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128072 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128073 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128074 );
128075 If(l_balance_type_code = 'A') THEN
128076 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128077 END IF;
128078
128079 --
128080
128081
128082 --
128083 AcctLineType_111 (
128084 p_application_id => p_application_id
128085 ,p_event_id => l_event_id
128086 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128087 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128088 ,p_actual_flag => l_actual_flag
128089 ,p_balance_type_code => l_balance_type_code
128090 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128091
128092 , p_source_9 => l_array_source_9(Idx)
128093 , p_source_17 => l_array_source_17(Idx)
128094 , p_source_20 => l_array_source_20(Idx)
128095 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128096 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128097 , p_source_39 => l_array_source_39(Idx)
128098 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128099 , p_source_40 => l_array_source_40(Idx)
128100 , p_source_41 => l_array_source_41(Idx)
128101 , p_source_42 => l_array_source_42(Idx)
128102 , p_source_47 => l_array_source_47(Idx)
128103 , p_source_48 => l_array_source_48(Idx)
128104 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128105 , p_source_53 => l_array_source_53(Idx)
128106 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128107 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128108 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128109 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128110 , p_source_57 => l_array_source_57(Idx)
128111 , p_source_58 => l_array_source_58(Idx)
128112 , p_source_59 => l_array_source_59(Idx)
128113 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128114 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128115 , p_source_61 => l_array_source_61(Idx)
128116 , p_source_62 => l_array_source_62(Idx)
128117 , p_source_63 => l_array_source_63(Idx)
128118 , p_source_64 => l_array_source_64(Idx)
128119 , p_source_65 => l_array_source_65(Idx)
128120 , p_source_66 => l_array_source_66(Idx)
128121 , p_source_100 => l_array_source_100(Idx)
128122 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128123 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128124 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128125 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128126 );
128127 If(l_balance_type_code = 'A') THEN
128128 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128129 END IF;
128130
128131 --
128132
128133
128134 --
128135 AcctLineType_112 (
128136 p_application_id => p_application_id
128137 ,p_event_id => l_event_id
128138 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128139 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128140 ,p_actual_flag => l_actual_flag
128141 ,p_balance_type_code => l_balance_type_code
128145 , p_source_20 => l_array_source_20(Idx)
128142 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128143
128144 , p_source_9 => l_array_source_9(Idx)
128146 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128147 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128148 , p_source_39 => l_array_source_39(Idx)
128149 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128150 , p_source_40 => l_array_source_40(Idx)
128151 , p_source_41 => l_array_source_41(Idx)
128152 , p_source_42 => l_array_source_42(Idx)
128153 , p_source_47 => l_array_source_47(Idx)
128154 , p_source_48 => l_array_source_48(Idx)
128155 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128156 , p_source_53 => l_array_source_53(Idx)
128157 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128158 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128159 , p_source_57 => l_array_source_57(Idx)
128160 , p_source_58 => l_array_source_58(Idx)
128161 , p_source_59 => l_array_source_59(Idx)
128162 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128163 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128164 , p_source_61 => l_array_source_61(Idx)
128165 , p_source_62 => l_array_source_62(Idx)
128166 , p_source_63 => l_array_source_63(Idx)
128167 , p_source_64 => l_array_source_64(Idx)
128168 , p_source_65 => l_array_source_65(Idx)
128169 , p_source_66 => l_array_source_66(Idx)
128170 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128171 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128172 , p_source_104 => l_array_source_104(Idx)
128173 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128174 );
128175 If(l_balance_type_code = 'A') THEN
128176 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128177 END IF;
128178
128179 --
128180
128181
128182 --
128183 AcctLineType_119 (
128184 p_application_id => p_application_id
128185 ,p_event_id => l_event_id
128186 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128187 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128188 ,p_actual_flag => l_actual_flag
128189 ,p_balance_type_code => l_balance_type_code
128190 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128191
128192 , p_source_9 => l_array_source_9(Idx)
128193 , p_source_17 => l_array_source_17(Idx)
128194 , p_source_20 => l_array_source_20(Idx)
128195 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128196 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128197 , p_source_39 => l_array_source_39(Idx)
128198 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128199 , p_source_40 => l_array_source_40(Idx)
128200 , p_source_41 => l_array_source_41(Idx)
128201 , p_source_42 => l_array_source_42(Idx)
128202 , p_source_47 => l_array_source_47(Idx)
128203 , p_source_48 => l_array_source_48(Idx)
128204 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128205 , p_source_53 => l_array_source_53(Idx)
128206 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128207 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128208 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128209 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128210 , p_source_57 => l_array_source_57(Idx)
128211 , p_source_58 => l_array_source_58(Idx)
128212 , p_source_59 => l_array_source_59(Idx)
128213 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128214 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128215 , p_source_61 => l_array_source_61(Idx)
128216 , p_source_62 => l_array_source_62(Idx)
128217 , p_source_63 => l_array_source_63(Idx)
128218 , p_source_64 => l_array_source_64(Idx)
128219 , p_source_65 => l_array_source_65(Idx)
128220 , p_source_66 => l_array_source_66(Idx)
128221 , p_source_100 => l_array_source_100(Idx)
128222 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128223 , p_source_101 => l_array_source_101(Idx)
128224 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128225 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128226 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128227 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128228 );
128229 If(l_balance_type_code = 'A') THEN
128230 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128231 END IF;
128232
128233 --
128234
128235
128236 --
128237 AcctLineType_120 (
128238 p_application_id => p_application_id
128239 ,p_event_id => l_event_id
128240 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128241 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128242 ,p_actual_flag => l_actual_flag
128243 ,p_balance_type_code => l_balance_type_code
128244 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128245
128246 , p_source_9 => l_array_source_9(Idx)
128247 , p_source_20 => l_array_source_20(Idx)
128248 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128249 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128250 , p_source_39 => l_array_source_39(Idx)
128251 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128252 , p_source_40 => l_array_source_40(Idx)
128253 , p_source_41 => l_array_source_41(Idx)
128254 , p_source_42 => l_array_source_42(Idx)
128255 , p_source_47 => l_array_source_47(Idx)
128256 , p_source_48 => l_array_source_48(Idx)
128260 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128257 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128258 , p_source_53 => l_array_source_53(Idx)
128259 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128261 , p_source_57 => l_array_source_57(Idx)
128262 , p_source_58 => l_array_source_58(Idx)
128263 , p_source_59 => l_array_source_59(Idx)
128264 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128265 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128266 , p_source_61 => l_array_source_61(Idx)
128267 , p_source_62 => l_array_source_62(Idx)
128268 , p_source_63 => l_array_source_63(Idx)
128269 , p_source_64 => l_array_source_64(Idx)
128270 , p_source_65 => l_array_source_65(Idx)
128271 , p_source_66 => l_array_source_66(Idx)
128272 , p_source_101 => l_array_source_101(Idx)
128273 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128274 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128275 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128276 , p_source_104 => l_array_source_104(Idx)
128277 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128278 );
128279 If(l_balance_type_code = 'A') THEN
128280 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128281 END IF;
128282
128283 --
128284
128285
128286 --
128287 AcctLineType_130 (
128288 p_application_id => p_application_id
128289 ,p_event_id => l_event_id
128290 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128291 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128292 ,p_actual_flag => l_actual_flag
128293 ,p_balance_type_code => l_balance_type_code
128294 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128295
128296 , p_source_9 => l_array_source_9(Idx)
128297 , p_source_17 => l_array_source_17(Idx)
128298 , p_source_20 => l_array_source_20(Idx)
128299 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128300 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128301 , p_source_39 => l_array_source_39(Idx)
128302 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128303 , p_source_40 => l_array_source_40(Idx)
128304 , p_source_41 => l_array_source_41(Idx)
128305 , p_source_42 => l_array_source_42(Idx)
128306 , p_source_47 => l_array_source_47(Idx)
128307 , p_source_48 => l_array_source_48(Idx)
128308 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128309 , p_source_53 => l_array_source_53(Idx)
128310 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128311 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128312 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128313 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128314 , p_source_57 => l_array_source_57(Idx)
128315 , p_source_58 => l_array_source_58(Idx)
128316 , p_source_59 => l_array_source_59(Idx)
128317 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128318 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128319 , p_source_61 => l_array_source_61(Idx)
128320 , p_source_62 => l_array_source_62(Idx)
128321 , p_source_63 => l_array_source_63(Idx)
128322 , p_source_64 => l_array_source_64(Idx)
128323 , p_source_65 => l_array_source_65(Idx)
128324 , p_source_66 => l_array_source_66(Idx)
128325 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128326 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128327 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128328 );
128329 If(l_balance_type_code = 'A') THEN
128330 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128331 END IF;
128332
128333 --
128334
128335
128336 --
128337 AcctLineType_131 (
128338 p_application_id => p_application_id
128339 ,p_event_id => l_event_id
128340 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128341 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128342 ,p_actual_flag => l_actual_flag
128343 ,p_balance_type_code => l_balance_type_code
128344 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128345
128346 , p_source_9 => l_array_source_9(Idx)
128347 , p_source_20 => l_array_source_20(Idx)
128348 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128349 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128350 , p_source_39 => l_array_source_39(Idx)
128351 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128352 , p_source_40 => l_array_source_40(Idx)
128353 , p_source_41 => l_array_source_41(Idx)
128354 , p_source_42 => l_array_source_42(Idx)
128355 , p_source_47 => l_array_source_47(Idx)
128356 , p_source_48 => l_array_source_48(Idx)
128357 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128358 , p_source_53 => l_array_source_53(Idx)
128359 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128360 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128361 , p_source_57 => l_array_source_57(Idx)
128362 , p_source_58 => l_array_source_58(Idx)
128363 , p_source_59 => l_array_source_59(Idx)
128364 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128365 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128366 , p_source_61 => l_array_source_61(Idx)
128367 , p_source_62 => l_array_source_62(Idx)
128368 , p_source_63 => l_array_source_63(Idx)
128369 , p_source_64 => l_array_source_64(Idx)
128370 , p_source_65 => l_array_source_65(Idx)
128374 , p_source_104 => l_array_source_104(Idx)
128371 , p_source_66 => l_array_source_66(Idx)
128372 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128373 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128375 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128376 );
128377 If(l_balance_type_code = 'A') THEN
128378 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128379 END IF;
128380
128381 --
128382
128383
128384 --
128385 AcctLineType_137 (
128386 p_application_id => p_application_id
128387 ,p_event_id => l_event_id
128388 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128389 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128390 ,p_actual_flag => l_actual_flag
128391 ,p_balance_type_code => l_balance_type_code
128392 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128393
128394 , p_source_9 => l_array_source_9(Idx)
128395 , p_source_17 => l_array_source_17(Idx)
128396 , p_source_20 => l_array_source_20(Idx)
128397 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128398 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128399 , p_source_39 => l_array_source_39(Idx)
128400 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128401 , p_source_40 => l_array_source_40(Idx)
128402 , p_source_41 => l_array_source_41(Idx)
128403 , p_source_42 => l_array_source_42(Idx)
128404 , p_source_47 => l_array_source_47(Idx)
128405 , p_source_48 => l_array_source_48(Idx)
128406 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128407 , p_source_50 => l_array_source_50(Idx)
128408 , p_source_51 => l_array_source_51(Idx)
128409 , p_source_52 => l_array_source_52(Idx)
128410 , p_source_53 => l_array_source_53(Idx)
128411 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128412 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128413 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128414 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128415 , p_source_57 => l_array_source_57(Idx)
128416 , p_source_58 => l_array_source_58(Idx)
128417 , p_source_59 => l_array_source_59(Idx)
128418 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128419 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128420 , p_source_61 => l_array_source_61(Idx)
128421 , p_source_62 => l_array_source_62(Idx)
128422 , p_source_63 => l_array_source_63(Idx)
128423 , p_source_64 => l_array_source_64(Idx)
128424 , p_source_65 => l_array_source_65(Idx)
128425 , p_source_66 => l_array_source_66(Idx)
128426 , p_source_100 => l_array_source_100(Idx)
128427 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128428 , p_source_101 => l_array_source_101(Idx)
128429 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128430 );
128431 If(l_balance_type_code = 'A') THEN
128432 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128433 END IF;
128434
128435 --
128436
128437
128438 --
128439 AcctLineType_141 (
128440 p_application_id => p_application_id
128441 ,p_event_id => l_event_id
128442 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128443 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128444 ,p_actual_flag => l_actual_flag
128445 ,p_balance_type_code => l_balance_type_code
128446 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128447
128448 , p_source_9 => l_array_source_9(Idx)
128449 , p_source_17 => l_array_source_17(Idx)
128450 , p_source_20 => l_array_source_20(Idx)
128451 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128452 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128453 , p_source_39 => l_array_source_39(Idx)
128454 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128455 , p_source_40 => l_array_source_40(Idx)
128456 , p_source_41 => l_array_source_41(Idx)
128457 , p_source_42 => l_array_source_42(Idx)
128458 , p_source_47 => l_array_source_47(Idx)
128459 , p_source_48 => l_array_source_48(Idx)
128460 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128461 , p_source_53 => l_array_source_53(Idx)
128462 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128463 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128464 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128465 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128466 , p_source_57 => l_array_source_57(Idx)
128467 , p_source_58 => l_array_source_58(Idx)
128468 , p_source_59 => l_array_source_59(Idx)
128469 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128470 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128471 , p_source_61 => l_array_source_61(Idx)
128472 , p_source_62 => l_array_source_62(Idx)
128473 , p_source_63 => l_array_source_63(Idx)
128474 , p_source_64 => l_array_source_64(Idx)
128475 , p_source_65 => l_array_source_65(Idx)
128476 , p_source_66 => l_array_source_66(Idx)
128477 , p_source_100 => l_array_source_100(Idx)
128478 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128479 , p_source_101 => l_array_source_101(Idx)
128480 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128481 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128482 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128483 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128484 );
128485 If(l_balance_type_code = 'A') THEN
128486 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128487 END IF;
128488
128489 --
128490
128491
128492 --
128496 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128493 AcctLineType_142 (
128494 p_application_id => p_application_id
128495 ,p_event_id => l_event_id
128497 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128498 ,p_actual_flag => l_actual_flag
128499 ,p_balance_type_code => l_balance_type_code
128500 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128501
128502 , p_source_9 => l_array_source_9(Idx)
128503 , p_source_20 => l_array_source_20(Idx)
128504 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128505 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128506 , p_source_39 => l_array_source_39(Idx)
128507 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128508 , p_source_40 => l_array_source_40(Idx)
128509 , p_source_41 => l_array_source_41(Idx)
128510 , p_source_42 => l_array_source_42(Idx)
128511 , p_source_47 => l_array_source_47(Idx)
128512 , p_source_48 => l_array_source_48(Idx)
128513 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128514 , p_source_53 => l_array_source_53(Idx)
128515 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128516 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128517 , p_source_57 => l_array_source_57(Idx)
128518 , p_source_58 => l_array_source_58(Idx)
128519 , p_source_59 => l_array_source_59(Idx)
128520 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128521 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128522 , p_source_61 => l_array_source_61(Idx)
128523 , p_source_62 => l_array_source_62(Idx)
128524 , p_source_63 => l_array_source_63(Idx)
128525 , p_source_64 => l_array_source_64(Idx)
128526 , p_source_65 => l_array_source_65(Idx)
128527 , p_source_66 => l_array_source_66(Idx)
128528 , p_source_101 => l_array_source_101(Idx)
128529 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128530 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128531 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128532 , p_source_104 => l_array_source_104(Idx)
128533 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128534 );
128535 If(l_balance_type_code = 'A') THEN
128536 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128537 END IF;
128538
128539 --
128540
128541
128542 --
128543 AcctLineType_149 (
128544 p_application_id => p_application_id
128545 ,p_event_id => l_event_id
128546 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128547 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128548 ,p_actual_flag => l_actual_flag
128549 ,p_balance_type_code => l_balance_type_code
128550 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128551
128552 , p_source_9 => l_array_source_9(Idx)
128553 , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
128554 , p_source_40 => l_array_source_40(Idx)
128555 , p_source_41 => l_array_source_41(Idx)
128556 , p_source_42 => l_array_source_42(Idx)
128557 , p_source_47 => l_array_source_47(Idx)
128558 , p_source_48 => l_array_source_48(Idx)
128559 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128560 , p_source_53 => l_array_source_53(Idx)
128561 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128562 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128563 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128564 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128565 , p_source_57 => l_array_source_57(Idx)
128566 , p_source_58 => l_array_source_58(Idx)
128567 , p_source_59 => l_array_source_59(Idx)
128568 , p_source_61 => l_array_source_61(Idx)
128569 , p_source_62 => l_array_source_62(Idx)
128570 , p_source_63 => l_array_source_63(Idx)
128571 , p_source_64 => l_array_source_64(Idx)
128572 , p_source_65 => l_array_source_65(Idx)
128573 , p_source_66 => l_array_source_66(Idx)
128574 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
128575 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128576 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128577 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128578 );
128579 If(l_balance_type_code = 'A') THEN
128580 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128581 END IF;
128582
128583 --
128584
128585
128586 --
128587 AcctLineType_151 (
128588 p_application_id => p_application_id
128589 ,p_event_id => l_event_id
128590 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128591 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128592 ,p_actual_flag => l_actual_flag
128593 ,p_balance_type_code => l_balance_type_code
128594 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128595
128596 , p_source_9 => l_array_source_9(Idx)
128597 , p_source_17 => l_array_source_17(Idx)
128598 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
128599 , p_source_18_meaning => g_array_event(l_event_id).array_value_char('source_18_meaning')
128600 , p_source_19 => l_array_source_19(Idx)
128601 , p_source_20 => l_array_source_20(Idx)
128602 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128603 , p_source_28 => l_array_source_28(Idx)
128604 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128605 , p_source_39 => l_array_source_39(Idx)
128606 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128607 , p_source_40 => l_array_source_40(Idx)
128608 , p_source_41 => l_array_source_41(Idx)
128609 , p_source_42 => l_array_source_42(Idx)
128613 , p_source_53 => l_array_source_53(Idx)
128610 , p_source_47 => l_array_source_47(Idx)
128611 , p_source_48 => l_array_source_48(Idx)
128612 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128614 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128615 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128616 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128617 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128618 , p_source_57 => l_array_source_57(Idx)
128619 , p_source_58 => l_array_source_58(Idx)
128620 , p_source_59 => l_array_source_59(Idx)
128621 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128622 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128623 , p_source_61 => l_array_source_61(Idx)
128624 , p_source_62 => l_array_source_62(Idx)
128625 , p_source_63 => l_array_source_63(Idx)
128626 , p_source_64 => l_array_source_64(Idx)
128627 , p_source_65 => l_array_source_65(Idx)
128628 , p_source_66 => l_array_source_66(Idx)
128629 , p_source_101 => l_array_source_101(Idx)
128630 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128631 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128632 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128633 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128634 );
128635 If(l_balance_type_code = 'A') THEN
128636 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128637 END IF;
128638
128639 --
128640
128641
128642 --
128643 AcctLineType_157 (
128644 p_application_id => p_application_id
128645 ,p_event_id => l_event_id
128646 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128647 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128648 ,p_actual_flag => l_actual_flag
128649 ,p_balance_type_code => l_balance_type_code
128650 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128651
128652 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128653 , p_source_39 => l_array_source_39(Idx)
128654 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128655 , p_source_40 => l_array_source_40(Idx)
128656 , p_source_42 => l_array_source_42(Idx)
128657 , p_source_47 => l_array_source_47(Idx)
128658 , p_source_48 => l_array_source_48(Idx)
128659 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128660 , p_source_53 => l_array_source_53(Idx)
128661 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128662 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128663 , p_source_57 => l_array_source_57(Idx)
128664 , p_source_58 => l_array_source_58(Idx)
128665 , p_source_59 => l_array_source_59(Idx)
128666 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128667 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128668 , p_source_61 => l_array_source_61(Idx)
128669 , p_source_62 => l_array_source_62(Idx)
128670 , p_source_63 => l_array_source_63(Idx)
128671 , p_source_64 => l_array_source_64(Idx)
128672 , p_source_65 => l_array_source_65(Idx)
128673 , p_source_66 => l_array_source_66(Idx)
128674 , p_source_100 => l_array_source_100(Idx)
128675 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128676 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128677 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128678 , p_source_104 => l_array_source_104(Idx)
128679 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128680 , p_source_142 => l_array_source_142(Idx)
128681 , p_source_143 => l_array_source_143(Idx)
128682 );
128683 If(l_balance_type_code = 'A') THEN
128684 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128685 END IF;
128686
128687 --
128688
128689
128690 --
128691 AcctLineType_162 (
128692 p_application_id => p_application_id
128693 ,p_event_id => l_event_id
128694 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128695 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128696 ,p_actual_flag => l_actual_flag
128697 ,p_balance_type_code => l_balance_type_code
128698 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128699
128700 , p_source_9 => l_array_source_9(Idx)
128701 , p_source_17 => l_array_source_17(Idx)
128702 , p_source_20 => l_array_source_20(Idx)
128703 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128704 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128705 , p_source_39 => l_array_source_39(Idx)
128706 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128707 , p_source_40 => l_array_source_40(Idx)
128708 , p_source_41 => l_array_source_41(Idx)
128709 , p_source_42 => l_array_source_42(Idx)
128710 , p_source_47 => l_array_source_47(Idx)
128711 , p_source_48 => l_array_source_48(Idx)
128712 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128713 , p_source_53 => l_array_source_53(Idx)
128714 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128715 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128716 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128717 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128718 , p_source_57 => l_array_source_57(Idx)
128719 , p_source_58 => l_array_source_58(Idx)
128720 , p_source_59 => l_array_source_59(Idx)
128721 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128722 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128726 , p_source_64 => l_array_source_64(Idx)
128723 , p_source_61 => l_array_source_61(Idx)
128724 , p_source_62 => l_array_source_62(Idx)
128725 , p_source_63 => l_array_source_63(Idx)
128727 , p_source_65 => l_array_source_65(Idx)
128728 , p_source_66 => l_array_source_66(Idx)
128729 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128730 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128731 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128732 );
128733 If(l_balance_type_code = 'A') THEN
128734 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128735 END IF;
128736
128737 --
128738
128739
128740 --
128741 AcctLineType_165 (
128742 p_application_id => p_application_id
128743 ,p_event_id => l_event_id
128744 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128745 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128746 ,p_actual_flag => l_actual_flag
128747 ,p_balance_type_code => l_balance_type_code
128748 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128749
128750 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
128751 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
128752 , p_source_9 => l_array_source_9(Idx)
128753 , p_source_17 => l_array_source_17(Idx)
128754 , p_source_20 => l_array_source_20(Idx)
128755 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128756 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
128757 , p_source_23 => l_array_source_23(Idx)
128758 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128759 , p_source_40 => l_array_source_40(Idx)
128760 , p_source_41 => l_array_source_41(Idx)
128761 , p_source_42 => l_array_source_42(Idx)
128762 , p_source_47 => l_array_source_47(Idx)
128763 , p_source_48 => l_array_source_48(Idx)
128764 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128765 , p_source_53 => l_array_source_53(Idx)
128766 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128767 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128768 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128769 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128770 , p_source_57 => l_array_source_57(Idx)
128771 , p_source_58 => l_array_source_58(Idx)
128772 , p_source_59 => l_array_source_59(Idx)
128773 , p_source_61 => l_array_source_61(Idx)
128774 , p_source_62 => l_array_source_62(Idx)
128775 , p_source_63 => l_array_source_63(Idx)
128776 , p_source_64 => l_array_source_64(Idx)
128777 , p_source_65 => l_array_source_65(Idx)
128778 , p_source_66 => l_array_source_66(Idx)
128779 , p_source_101 => l_array_source_101(Idx)
128780 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128781 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128782 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128783 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128784 );
128785 If(l_balance_type_code = 'A') THEN
128786 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128787 END IF;
128788
128789 --
128790
128791
128792 --
128793 AcctLineType_171 (
128794 p_application_id => p_application_id
128795 ,p_event_id => l_event_id
128796 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128797 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128798 ,p_actual_flag => l_actual_flag
128799 ,p_balance_type_code => l_balance_type_code
128800 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128801
128802 , p_source_9 => l_array_source_9(Idx)
128803 , p_source_20 => l_array_source_20(Idx)
128804 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128805 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128806 , p_source_40 => l_array_source_40(Idx)
128807 , p_source_41 => l_array_source_41(Idx)
128808 , p_source_42 => l_array_source_42(Idx)
128809 , p_source_47 => l_array_source_47(Idx)
128810 , p_source_48 => l_array_source_48(Idx)
128811 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128812 , p_source_53 => l_array_source_53(Idx)
128813 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128814 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128815 , p_source_57 => l_array_source_57(Idx)
128816 , p_source_58 => l_array_source_58(Idx)
128817 , p_source_59 => l_array_source_59(Idx)
128818 , p_source_61 => l_array_source_61(Idx)
128819 , p_source_62 => l_array_source_62(Idx)
128820 , p_source_63 => l_array_source_63(Idx)
128821 , p_source_66 => l_array_source_66(Idx)
128822 , p_source_101 => l_array_source_101(Idx)
128823 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128824 , p_source_149 => l_array_source_149(Idx)
128825 , p_source_150 => l_array_source_150(Idx)
128826 );
128827 If(l_balance_type_code = 'A') THEN
128828 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128829 END IF;
128830
128831 --
128832
128833
128834 --
128835 AcctLineType_173 (
128836 p_application_id => p_application_id
128837 ,p_event_id => l_event_id
128838 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128839 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128840 ,p_actual_flag => l_actual_flag
128841 ,p_balance_type_code => l_balance_type_code
128842 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128843
128844 , p_source_20 => l_array_source_20(Idx)
128845 , p_source_20_meaning => l_array_source_20_meaning(Idx)
128849 , p_source_40 => l_array_source_40(Idx)
128846 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128847 , p_source_39 => l_array_source_39(Idx)
128848 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128850 , p_source_42 => l_array_source_42(Idx)
128851 , p_source_47 => l_array_source_47(Idx)
128852 , p_source_48 => l_array_source_48(Idx)
128853 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128854 , p_source_53 => l_array_source_53(Idx)
128855 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128856 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128857 , p_source_57 => l_array_source_57(Idx)
128858 , p_source_58 => l_array_source_58(Idx)
128859 , p_source_59 => l_array_source_59(Idx)
128860 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128861 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128862 , p_source_61 => l_array_source_61(Idx)
128863 , p_source_62 => l_array_source_62(Idx)
128864 , p_source_63 => l_array_source_63(Idx)
128865 , p_source_64 => l_array_source_64(Idx)
128866 , p_source_65 => l_array_source_65(Idx)
128867 , p_source_66 => l_array_source_66(Idx)
128868 , p_source_100 => l_array_source_100(Idx)
128869 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128870 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128871 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128872 , p_source_103 => l_array_source_103(Idx)
128873 , p_source_104 => l_array_source_104(Idx)
128874 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128875 , p_source_105 => l_array_source_105(Idx)
128876 );
128877 If(l_balance_type_code = 'A') THEN
128878 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128879 END IF;
128880
128881 --
128882
128883
128884 --
128885 AcctLineType_176 (
128886 p_application_id => p_application_id
128887 ,p_event_id => l_event_id
128888 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128889 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128890 ,p_actual_flag => l_actual_flag
128891 ,p_balance_type_code => l_balance_type_code
128892 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128893
128894 , p_source_9 => l_array_source_9(Idx)
128895 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128896 , p_source_39 => l_array_source_39(Idx)
128897 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128898 , p_source_40 => l_array_source_40(Idx)
128899 , p_source_41 => l_array_source_41(Idx)
128900 , p_source_42 => l_array_source_42(Idx)
128901 , p_source_47 => l_array_source_47(Idx)
128902 , p_source_48 => l_array_source_48(Idx)
128903 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128904 , p_source_53 => l_array_source_53(Idx)
128905 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128906 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128907 , p_source_57 => l_array_source_57(Idx)
128908 , p_source_58 => l_array_source_58(Idx)
128909 , p_source_59 => l_array_source_59(Idx)
128910 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128911 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128912 , p_source_61 => l_array_source_61(Idx)
128913 , p_source_62 => l_array_source_62(Idx)
128914 , p_source_63 => l_array_source_63(Idx)
128915 , p_source_64 => l_array_source_64(Idx)
128916 , p_source_65 => l_array_source_65(Idx)
128917 , p_source_66 => l_array_source_66(Idx)
128918 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128919 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128920 , p_source_104 => l_array_source_104(Idx)
128921 , p_source_104_meaning => l_array_source_104_meaning(Idx)
128922 );
128923 If(l_balance_type_code = 'A') THEN
128924 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128925 END IF;
128926
128927 --
128928
128929
128930 --
128931 AcctLineType_179 (
128932 p_application_id => p_application_id
128933 ,p_event_id => l_event_id
128934 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128935 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128936 ,p_actual_flag => l_actual_flag
128937 ,p_balance_type_code => l_balance_type_code
128938 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128939
128940 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
128941 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
128942 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
128943 , p_source_7 => l_array_source_7(Idx)
128944 , p_source_7_meaning => l_array_source_7_meaning(Idx)
128945 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
128946 , p_source_9 => l_array_source_9(Idx)
128947 , p_source_10 => l_array_source_10(Idx)
128948 , p_source_17 => l_array_source_17(Idx)
128949 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
128950 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
128951 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128952 , p_source_39 => l_array_source_39(Idx)
128953 , p_source_39_meaning => l_array_source_39_meaning(Idx)
128954 , p_source_40 => l_array_source_40(Idx)
128955 , p_source_41 => l_array_source_41(Idx)
128956 , p_source_42 => l_array_source_42(Idx)
128957 , p_source_47 => l_array_source_47(Idx)
128958 , p_source_48 => l_array_source_48(Idx)
128962 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128959 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128960 , p_source_53 => l_array_source_53(Idx)
128961 , p_source_53_meaning => l_array_source_53_meaning(Idx)
128963 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128964 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128965 , p_source_57 => l_array_source_57(Idx)
128966 , p_source_58 => l_array_source_58(Idx)
128967 , p_source_59 => l_array_source_59(Idx)
128968 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128969 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128970 , p_source_61 => l_array_source_61(Idx)
128971 , p_source_62 => l_array_source_62(Idx)
128972 , p_source_63 => l_array_source_63(Idx)
128973 , p_source_64 => l_array_source_64(Idx)
128974 , p_source_65 => l_array_source_65(Idx)
128975 , p_source_66 => l_array_source_66(Idx)
128976 , p_source_100 => l_array_source_100(Idx)
128977 , p_source_100_meaning => l_array_source_100_meaning(Idx)
128978 , p_source_101 => l_array_source_101(Idx)
128979 , p_source_101_meaning => l_array_source_101_meaning(Idx)
128980 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128981 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128982 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128983 );
128984 If(l_balance_type_code = 'A') THEN
128985 l_actual_gain_loss_ref := l_gain_or_loss_ref;
128986 END IF;
128987
128988 --
128989
128990
128991 --
128992 AcctLineType_183 (
128993 p_application_id => p_application_id
128994 ,p_event_id => l_event_id
128995 ,p_calculate_acctd_flag => l_calculate_acctd_flag
128996 ,p_calculate_g_l_flag => l_calculate_g_l_flag
128997 ,p_actual_flag => l_actual_flag
128998 ,p_balance_type_code => l_balance_type_code
128999 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129000
129001 , p_source_9 => l_array_source_9(Idx)
129002 , p_source_17 => l_array_source_17(Idx)
129003 , p_source_20 => l_array_source_20(Idx)
129004 , p_source_20_meaning => l_array_source_20_meaning(Idx)
129005 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129006 , p_source_39 => l_array_source_39(Idx)
129007 , p_source_39_meaning => l_array_source_39_meaning(Idx)
129008 , p_source_40 => l_array_source_40(Idx)
129009 , p_source_41 => l_array_source_41(Idx)
129010 , p_source_42 => l_array_source_42(Idx)
129011 , p_source_47 => l_array_source_47(Idx)
129012 , p_source_48 => l_array_source_48(Idx)
129013 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129014 , p_source_53 => l_array_source_53(Idx)
129015 , p_source_53_meaning => l_array_source_53_meaning(Idx)
129016 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
129017 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
129018 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129019 , p_source_57 => l_array_source_57(Idx)
129020 , p_source_58 => l_array_source_58(Idx)
129021 , p_source_59 => l_array_source_59(Idx)
129022 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129023 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129024 , p_source_61 => l_array_source_61(Idx)
129025 , p_source_62 => l_array_source_62(Idx)
129026 , p_source_63 => l_array_source_63(Idx)
129027 , p_source_64 => l_array_source_64(Idx)
129028 , p_source_65 => l_array_source_65(Idx)
129029 , p_source_66 => l_array_source_66(Idx)
129030 , p_source_100 => l_array_source_100(Idx)
129031 , p_source_100_meaning => l_array_source_100_meaning(Idx)
129032 , p_source_101 => l_array_source_101(Idx)
129033 , p_source_101_meaning => l_array_source_101_meaning(Idx)
129034 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
129035 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
129036 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
129037 );
129038 If(l_balance_type_code = 'A') THEN
129039 l_actual_gain_loss_ref := l_gain_or_loss_ref;
129040 END IF;
129041
129042 --
129043
129044
129045 --
129046 AcctLineType_184 (
129047 p_application_id => p_application_id
129048 ,p_event_id => l_event_id
129049 ,p_calculate_acctd_flag => l_calculate_acctd_flag
129050 ,p_calculate_g_l_flag => l_calculate_g_l_flag
129051 ,p_actual_flag => l_actual_flag
129052 ,p_balance_type_code => l_balance_type_code
129053 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129054
129055 , p_source_9 => l_array_source_9(Idx)
129056 , p_source_20 => l_array_source_20(Idx)
129057 , p_source_20_meaning => l_array_source_20_meaning(Idx)
129058 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129059 , p_source_39 => l_array_source_39(Idx)
129060 , p_source_39_meaning => l_array_source_39_meaning(Idx)
129061 , p_source_40 => l_array_source_40(Idx)
129062 , p_source_41 => l_array_source_41(Idx)
129063 , p_source_42 => l_array_source_42(Idx)
129064 , p_source_47 => l_array_source_47(Idx)
129065 , p_source_48 => l_array_source_48(Idx)
129066 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129067 , p_source_53 => l_array_source_53(Idx)
129068 , p_source_53_meaning => l_array_source_53_meaning(Idx)
129069 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129070 , p_source_57 => l_array_source_57(Idx)
129071 , p_source_58 => l_array_source_58(Idx)
129075 , p_source_61 => l_array_source_61(Idx)
129072 , p_source_59 => l_array_source_59(Idx)
129073 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129074 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129076 , p_source_62 => l_array_source_62(Idx)
129077 , p_source_63 => l_array_source_63(Idx)
129078 , p_source_64 => l_array_source_64(Idx)
129079 , p_source_65 => l_array_source_65(Idx)
129080 , p_source_66 => l_array_source_66(Idx)
129081 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
129082 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
129083 , p_source_104 => l_array_source_104(Idx)
129084 , p_source_104_meaning => l_array_source_104_meaning(Idx)
129085 );
129086 If(l_balance_type_code = 'A') THEN
129087 l_actual_gain_loss_ref := l_gain_or_loss_ref;
129088 END IF;
129089
129090 --
129091
129092
129093 --
129094 AcctLineType_188 (
129095 p_application_id => p_application_id
129096 ,p_event_id => l_event_id
129097 ,p_calculate_acctd_flag => l_calculate_acctd_flag
129098 ,p_calculate_g_l_flag => l_calculate_g_l_flag
129099 ,p_actual_flag => l_actual_flag
129100 ,p_balance_type_code => l_balance_type_code
129101 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129102
129103 , p_source_20 => l_array_source_20(Idx)
129104 , p_source_20_meaning => l_array_source_20_meaning(Idx)
129105 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129106 , p_source_39 => l_array_source_39(Idx)
129107 , p_source_39_meaning => l_array_source_39_meaning(Idx)
129108 , p_source_40 => l_array_source_40(Idx)
129109 , p_source_42 => l_array_source_42(Idx)
129110 , p_source_47 => l_array_source_47(Idx)
129111 , p_source_48 => l_array_source_48(Idx)
129112 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129113 , p_source_53 => l_array_source_53(Idx)
129114 , p_source_53_meaning => l_array_source_53_meaning(Idx)
129115 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129116 , p_source_57 => l_array_source_57(Idx)
129117 , p_source_58 => l_array_source_58(Idx)
129118 , p_source_59 => l_array_source_59(Idx)
129119 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129120 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129121 , p_source_61 => l_array_source_61(Idx)
129122 , p_source_62 => l_array_source_62(Idx)
129123 , p_source_63 => l_array_source_63(Idx)
129124 , p_source_64 => l_array_source_64(Idx)
129125 , p_source_65 => l_array_source_65(Idx)
129126 , p_source_66 => l_array_source_66(Idx)
129127 , p_source_100 => l_array_source_100(Idx)
129128 , p_source_100_meaning => l_array_source_100_meaning(Idx)
129129 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
129130 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
129131 , p_source_104 => l_array_source_104(Idx)
129132 , p_source_104_meaning => l_array_source_104_meaning(Idx)
129133 , p_source_142 => l_array_source_142(Idx)
129134 , p_source_143 => l_array_source_143(Idx)
129135 );
129136 If(l_balance_type_code = 'A') THEN
129137 l_actual_gain_loss_ref := l_gain_or_loss_ref;
129138 END IF;
129139
129140 --
129141
129142
129143 --
129144 AcctLineType_192 (
129145 p_application_id => p_application_id
129146 ,p_event_id => l_event_id
129147 ,p_calculate_acctd_flag => l_calculate_acctd_flag
129148 ,p_calculate_g_l_flag => l_calculate_g_l_flag
129149 ,p_actual_flag => l_actual_flag
129150 ,p_balance_type_code => l_balance_type_code
129151 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129152
129153 , p_source_9 => l_array_source_9(Idx)
129154 , p_source_17 => l_array_source_17(Idx)
129155 , p_source_20 => l_array_source_20(Idx)
129156 , p_source_20_meaning => l_array_source_20_meaning(Idx)
129157 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129158 , p_source_39 => l_array_source_39(Idx)
129159 , p_source_39_meaning => l_array_source_39_meaning(Idx)
129160 , p_source_40 => l_array_source_40(Idx)
129161 , p_source_41 => l_array_source_41(Idx)
129162 , p_source_42 => l_array_source_42(Idx)
129163 , p_source_47 => l_array_source_47(Idx)
129164 , p_source_48 => l_array_source_48(Idx)
129165 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129166 , p_source_53 => l_array_source_53(Idx)
129167 , p_source_53_meaning => l_array_source_53_meaning(Idx)
129168 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
129169 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
129170 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129171 , p_source_57 => l_array_source_57(Idx)
129172 , p_source_58 => l_array_source_58(Idx)
129173 , p_source_59 => l_array_source_59(Idx)
129174 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129175 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129176 , p_source_61 => l_array_source_61(Idx)
129177 , p_source_62 => l_array_source_62(Idx)
129178 , p_source_63 => l_array_source_63(Idx)
129179 , p_source_64 => l_array_source_64(Idx)
129180 , p_source_65 => l_array_source_65(Idx)
129181 , p_source_66 => l_array_source_66(Idx)
129182 , p_source_100 => l_array_source_100(Idx)
129183 , p_source_100_meaning => l_array_source_100_meaning(Idx)
129184 , p_source_101 => l_array_source_101(Idx)
129185 , p_source_101_meaning => l_array_source_101_meaning(Idx)
129189 );
129186 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
129187 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
129188 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
129190 If(l_balance_type_code = 'A') THEN
129191 l_actual_gain_loss_ref := l_gain_or_loss_ref;
129192 END IF;
129193
129194 --
129195
129196
129197 --
129198 AcctLineType_193 (
129199 p_application_id => p_application_id
129200 ,p_event_id => l_event_id
129201 ,p_calculate_acctd_flag => l_calculate_acctd_flag
129202 ,p_calculate_g_l_flag => l_calculate_g_l_flag
129203 ,p_actual_flag => l_actual_flag
129204 ,p_balance_type_code => l_balance_type_code
129205 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129206
129207 , p_source_9 => l_array_source_9(Idx)
129208 , p_source_20 => l_array_source_20(Idx)
129209 , p_source_20_meaning => l_array_source_20_meaning(Idx)
129210 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129211 , p_source_39 => l_array_source_39(Idx)
129212 , p_source_39_meaning => l_array_source_39_meaning(Idx)
129213 , p_source_40 => l_array_source_40(Idx)
129214 , p_source_41 => l_array_source_41(Idx)
129215 , p_source_42 => l_array_source_42(Idx)
129216 , p_source_47 => l_array_source_47(Idx)
129217 , p_source_48 => l_array_source_48(Idx)
129218 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129219 , p_source_53 => l_array_source_53(Idx)
129220 , p_source_53_meaning => l_array_source_53_meaning(Idx)
129221 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129222 , p_source_57 => l_array_source_57(Idx)
129223 , p_source_58 => l_array_source_58(Idx)
129224 , p_source_59 => l_array_source_59(Idx)
129225 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129226 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129227 , p_source_61 => l_array_source_61(Idx)
129228 , p_source_62 => l_array_source_62(Idx)
129229 , p_source_63 => l_array_source_63(Idx)
129230 , p_source_64 => l_array_source_64(Idx)
129231 , p_source_65 => l_array_source_65(Idx)
129232 , p_source_66 => l_array_source_66(Idx)
129233 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
129234 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
129235 , p_source_104 => l_array_source_104(Idx)
129236 , p_source_104_meaning => l_array_source_104_meaning(Idx)
129237 );
129238 If(l_balance_type_code = 'A') THEN
129239 l_actual_gain_loss_ref := l_gain_or_loss_ref;
129240 END IF;
129241
129242 --
129243
129244
129245 --
129246 AcctLineType_203 (
129247 p_application_id => p_application_id
129248 ,p_event_id => l_event_id
129249 ,p_calculate_acctd_flag => l_calculate_acctd_flag
129250 ,p_calculate_g_l_flag => l_calculate_g_l_flag
129251 ,p_actual_flag => l_actual_flag
129252 ,p_balance_type_code => l_balance_type_code
129253 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129254
129255 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
129256 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
129257 , p_source_9 => l_array_source_9(Idx)
129258 , p_source_17 => l_array_source_17(Idx)
129259 , p_source_24 => l_array_source_24(Idx)
129260 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129261 , p_source_39 => l_array_source_39(Idx)
129262 , p_source_39_meaning => l_array_source_39_meaning(Idx)
129263 , p_source_40 => l_array_source_40(Idx)
129264 , p_source_41 => l_array_source_41(Idx)
129265 , p_source_42 => l_array_source_42(Idx)
129266 , p_source_47 => l_array_source_47(Idx)
129267 , p_source_48 => l_array_source_48(Idx)
129268 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129269 , p_source_53 => l_array_source_53(Idx)
129270 , p_source_53_meaning => l_array_source_53_meaning(Idx)
129271 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
129272 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
129273 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129274 , p_source_57 => l_array_source_57(Idx)
129275 , p_source_58 => l_array_source_58(Idx)
129276 , p_source_59 => l_array_source_59(Idx)
129277 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129278 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129279 , p_source_61 => l_array_source_61(Idx)
129280 , p_source_62 => l_array_source_62(Idx)
129281 , p_source_63 => l_array_source_63(Idx)
129282 , p_source_64 => l_array_source_64(Idx)
129283 , p_source_65 => l_array_source_65(Idx)
129284 , p_source_66 => l_array_source_66(Idx)
129285 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
129286 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
129287 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
129288 );
129289 If(l_balance_type_code = 'A') THEN
129290 l_actual_gain_loss_ref := l_gain_or_loss_ref;
129291 END IF;
129292
129293 --
129294
129295 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
129296 -- or secondary ledger that has different currency with primary
129297 -- or alc that is calculated by sla
129298 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
129302 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
129299 (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'))
129300
129301 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
129303 AND (l_actual_flag = 'A')) THEN
129304 XLA_AE_LINES_PKG.CreateGainOrLossLines(
129305 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
129306 ,p_application_id => p_application_id
129307 ,p_amb_context_code => 'DEFAULT'
129308 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
129309 ,p_event_class_code => C_EVENT_CLASS_CODE
129310 ,p_event_type_code => C_EVENT_TYPE_CODE
129311
129312 ,p_gain_ccid => -1
129313 ,p_loss_ccid => -1
129314
129315 ,p_actual_flag => l_actual_flag
129316 ,p_enc_flag => null
129317 ,p_actual_g_l_ref => l_actual_gain_loss_ref
129318 ,p_enc_g_l_ref => null
129319 );
129320 END IF;
129321 END IF;
129322 END IF;
129323
129324 ELSE
129325 --
129326 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
129327 --
129328 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129329 trace
129330 (p_msg => 'Trancaction revesal option is Y'
129331 ,p_level => C_LEVEL_STATEMENT
129332 ,p_module => l_log_module);
129333 END IF;
129334 END IF;
129335
129336 END LOOP;
129337 l_result := XLA_AE_LINES_PKG.InsertLines ;
129338 end loop;
129339 close line_cur;
129340
129341
129342 --
129343 -- insert headers into xla_ae_headers_gt table
129344 --
129345 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
129346
129347 -- insert into errors table here.
129348
129349 END LOOP;
129350
129351 --
129352 -- 4865292
129353 --
129354 -- Compare g_hdr_extract_count with event count in
129355 -- CreateHeadersAndLines.
129356 --
129357 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
129358
129359 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129360 trace (p_msg => '# rows extracted from header extract objects '
129361 || ' (running total): '
129362 || g_hdr_extract_count
129363 ,p_level => C_LEVEL_STATEMENT
129364 ,p_module => l_log_module);
129365 END IF;
129366
129367 CLOSE header_cur;
129368 --
129369
129370 --
129371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129372 trace
129373 (p_msg => 'END of EventClass_209'
129374 ,p_level => C_LEVEL_PROCEDURE
129375 ,p_module => l_log_module);
129376 END IF;
129377 --
129378 RETURN l_result;
129379 EXCEPTION
129380 WHEN xla_exceptions_pkg.application_exception THEN
129381
129382 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
129383
129384
129385 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
129386
129387 RAISE;
129388
129389 WHEN NO_DATA_FOUND THEN
129390
129391 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
129392 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
129393
129394 FOR header_record IN header_cur
129395 LOOP
129396 l_array_header_events(header_record.event_id) := header_record.event_id;
129397 END LOOP;
129398
129399 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
129400 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
129401
129402 fnd_file.put_line(fnd_file.LOG, ' ');
129403 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
129404 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
129405 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
129406
129407 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
129408 LOOP
129409 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
129410 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
129411 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
129412 END IF;
129413 END LOOP;
129414
129415 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
129416 fnd_file.put_line(fnd_file.LOG, ' ');
129417
129418
129419 xla_exceptions_pkg.raise_message
129420 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_209');
129421
129422
129423 WHEN OTHERS THEN
129424 xla_exceptions_pkg.raise_message
129425 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_209');
129426 END EventClass_209;
129427 --
129428
129429 ---------------------------------------
129430 --
129431 -- PRIVATE PROCEDURE
129432 -- insert_sources_210
129433 --
129434 ----------------------------------------
129435 --
129436 PROCEDURE insert_sources_210(
129437 p_target_ledger_id IN NUMBER
129438 , p_language IN VARCHAR2
129439 , p_sla_ledger_id IN NUMBER
129443 IS
129440 , p_pad_start_date IN DATE
129441 , p_pad_end_date IN DATE
129442 )
129444
129445 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS_ALL';
129446 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
129447 p_apps_owner VARCHAR2(30);
129448 l_log_module VARCHAR2(240);
129449 BEGIN
129450 IF g_log_enabled THEN
129451 l_log_module := C_DEFAULT_MODULE||'.insert_sources_210';
129452 END IF;
129453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129454
129455 trace
129456 (p_msg => 'BEGIN of insert_sources_210'
129457 ,p_level => C_LEVEL_PROCEDURE
129458 ,p_module => l_log_module);
129459
129460 END IF;
129461
129462 -- select APPS owner
129463 SELECT oracle_username
129464 INTO p_apps_owner
129465 FROM fnd_oracle_userid
129466 WHERE read_only_flag = 'U'
129467 ;
129468
129469 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129470 trace
129471 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
129472 ' - p_language = '||p_language||
129473 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
129474 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
129475 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
129476 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
129477 ,p_level => C_LEVEL_STATEMENT
129478 ,p_module => l_log_module);
129479 END IF;
129480
129481
129482 --
129483 INSERT INTO xla_diag_sources --hdr2
129484 (
129485 event_id
129486 , ledger_id
129487 , sla_ledger_id
129488 , description_language
129489 , object_name
129490 , object_type_code
129491 , line_number
129492 , source_application_id
129493 , source_type_code
129494 , source_code
129495 , source_value
129496 , source_meaning
129497 , created_by
129498 , creation_date
129499 , last_update_date
129500 , last_updated_by
129501 , last_update_login
129502 , program_update_date
129503 , program_application_id
129504 , program_id
129505 , request_id
129506 )
129507 SELECT
129508 event_id
129509 , p_target_ledger_id
129510 , p_sla_ledger_id
129511 , p_language
129512 , object_name
129513 , object_type_code
129514 , line_number
129515 , source_application_id
129516 , source_type_code
129517 , source_code
129518 , SUBSTR(source_value ,1,1996)
129519 , SUBSTR(source_meaning ,1,200)
129520 , xla_environment_pkg.g_Usr_Id
129521 , TRUNC(SYSDATE)
129522 , TRUNC(SYSDATE)
129523 , xla_environment_pkg.g_Usr_Id
129524 , xla_environment_pkg.g_Login_Id
129525 , TRUNC(SYSDATE)
129526 , xla_environment_pkg.g_Prog_Appl_Id
129527 , xla_environment_pkg.g_Prog_Id
129528 , xla_environment_pkg.g_Req_Id
129529 FROM (
129530 SELECT xet.event_id event_id
129531 , 0 line_number
129532 , CASE r
129533 WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129534 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129535 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129536 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129537 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129538 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129539 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129540 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129541 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129542 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129543 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129544 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129545 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
129546 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129547 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129548 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129549 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129550 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129551 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
129552
129553 ELSE null
129554 END object_name
129555 , CASE r
129556 WHEN 1 THEN 'HEADER'
129557 WHEN 2 THEN 'HEADER'
129558 WHEN 3 THEN 'HEADER'
129559 WHEN 4 THEN 'HEADER'
129560 WHEN 5 THEN 'HEADER'
129561 WHEN 6 THEN 'HEADER'
129562 WHEN 7 THEN 'HEADER'
129563 WHEN 8 THEN 'HEADER'
129564 WHEN 9 THEN 'HEADER'
129565 WHEN 10 THEN 'HEADER'
129566 WHEN 11 THEN 'HEADER'
129567 WHEN 12 THEN 'HEADER'
129568 WHEN 13 THEN 'HEADER'
129569 WHEN 14 THEN 'HEADER'
129570 WHEN 15 THEN 'HEADER'
129571 WHEN 16 THEN 'HEADER'
129572 WHEN 17 THEN 'HEADER'
129573 WHEN 18 THEN 'HEADER'
129577 END object_type_code
129574 WHEN 19 THEN 'HEADER'
129575
129576 ELSE null
129578 , CASE r
129579 WHEN 1 THEN '200'
129580 WHEN 2 THEN '200'
129581 WHEN 3 THEN '200'
129582 WHEN 4 THEN '200'
129583 WHEN 5 THEN '200'
129584 WHEN 6 THEN '200'
129585 WHEN 7 THEN '200'
129586 WHEN 8 THEN '200'
129587 WHEN 9 THEN '200'
129588 WHEN 10 THEN '200'
129589 WHEN 11 THEN '200'
129590 WHEN 12 THEN '200'
129591 WHEN 13 THEN '200'
129592 WHEN 14 THEN '200'
129593 WHEN 15 THEN '200'
129594 WHEN 16 THEN '200'
129595 WHEN 17 THEN '200'
129596 WHEN 18 THEN '200'
129597 WHEN 19 THEN '200'
129598
129599 ELSE null
129600 END source_application_id
129601 , 'S' source_type_code
129602 , CASE r
129603 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
129604 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID'
129605 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID'
129606 WHEN 4 THEN 'FSP_RETAINAGE_ACCOUNT'
129607 WHEN 5 THEN 'ASP_AUTO_OFFSET_FLAG'
129608 WHEN 6 THEN 'ASP_ROUNDING_ERROR_CCID'
129609 WHEN 7 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
129610 WHEN 8 THEN 'THIRD_PARTY_TYPE'
129611 WHEN 9 THEN 'AI_INVOICE_ID'
129612 WHEN 10 THEN 'AI_INVOICE_CURRENCY_CODE'
129613 WHEN 11 THEN 'AI_VENDOR_ID'
129614 WHEN 12 THEN 'AI_VENDOR_SITE_ID'
129615 WHEN 13 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG'
129616 WHEN 14 THEN 'INV_EXCHANGE_DATE'
129617 WHEN 15 THEN 'INV_EXCHANGE_RATE'
129618 WHEN 16 THEN 'INV_EXCHANGE_RATE_TYPE'
129619 WHEN 17 THEN 'INV_DOC_SEQUENCE_CATEGORY'
129620 WHEN 18 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
129621 WHEN 19 THEN 'INV_DOC_SEQUENCE_VALUE'
129622
129623 ELSE null
129624 END source_code
129625 , CASE r
129626 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
129627 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
129628 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
129629 WHEN 4 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
129630 WHEN 5 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
129631 WHEN 6 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
129632 WHEN 7 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
129633 WHEN 8 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
129634 WHEN 9 THEN TO_CHAR(h1.AI_INVOICE_ID)
129635 WHEN 10 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
129636 WHEN 11 THEN TO_CHAR(h1.AI_VENDOR_ID)
129637 WHEN 12 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
129638 WHEN 13 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
129639 WHEN 14 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
129640 WHEN 15 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
129641 WHEN 16 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
129642 WHEN 17 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
129643 WHEN 18 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
129644 WHEN 19 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
129645
129646 ELSE null
129647 END source_value
129648 , CASE r
129649 WHEN 1 THEN fvl4.meaning
129650 WHEN 5 THEN fvl30.meaning
129651 WHEN 13 THEN fvl102.meaning
129652
129653 ELSE null
129654 END source_meaning
129655 FROM xla_events_gt xet
129656 , AP_INVOICE_EXTRACT_HEADER_V h1
129657 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
129658 , fnd_lookup_values fvl4
129659 , fnd_lookup_values fvl30
129660 , fnd_lookup_values fvl102
129661 ,(select rownum r from all_objects where rownum <= 19 and owner = p_apps_owner)
129662 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
129663 AND xet.event_class_code = C_EVENT_CLASS_CODE
129664 AND h1.event_id = xet.event_id
129665 AND h4.asp_org_id = h1.ai_org_id AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
129666 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
129667 AND fvl4.view_application_id(+) = 200
129668 AND fvl4.language(+) = USERENV('LANG')
129669 AND fvl30.lookup_type(+) = 'YES_NO'
129670 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
129671 AND fvl30.view_application_id(+) = 0
129672 AND fvl30.language(+) = USERENV('LANG')
129673 AND fvl102.lookup_type(+) = 'YES_NO'
129674 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
129675 AND fvl102.view_application_id(+) = 0
129676 AND fvl102.language(+) = USERENV('LANG')
129677
129678 )
129679 ;
129680 --
129681 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129682
129683 trace
129687
129684 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
129685 ,p_level => C_LEVEL_STATEMENT
129686 ,p_module => l_log_module);
129688 END IF;
129689 --
129690
129691
129692
129693 --
129694 INSERT INTO xla_diag_sources --line2
129695 (
129696 event_id
129697 , ledger_id
129698 , sla_ledger_id
129699 , description_language
129700 , object_name
129701 , object_type_code
129702 , line_number
129703 , source_application_id
129704 , source_type_code
129705 , source_code
129706 , source_value
129707 , source_meaning
129708 , created_by
129709 , creation_date
129710 , last_update_date
129711 , last_updated_by
129712 , last_update_login
129713 , program_update_date
129714 , program_application_id
129715 , program_id
129716 , request_id
129717 )
129718 SELECT event_id
129719 , p_target_ledger_id
129720 , p_sla_ledger_id
129721 , p_language
129722 , object_name
129723 , object_type_code
129724 , line_number
129725 , source_application_id
129726 , source_type_code
129727 , source_code
129728 , SUBSTR(source_value,1,1996)
129729 , SUBSTR(source_meaning ,1,200)
129730 , xla_environment_pkg.g_Usr_Id
129731 , TRUNC(SYSDATE)
129732 , TRUNC(SYSDATE)
129733 , xla_environment_pkg.g_Usr_Id
129734 , xla_environment_pkg.g_Login_Id
129735 , TRUNC(SYSDATE)
129736 , xla_environment_pkg.g_Prog_Appl_Id
129737 , xla_environment_pkg.g_Prog_Id
129738 , xla_environment_pkg.g_Req_Id
129739 FROM (
129740 SELECT xet.event_id event_id
129741 , l3.line_number line_number
129742 , CASE r
129743 WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129744 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129745 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129746 WHEN 4 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129747 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129748 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129749 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129750 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129751 WHEN 9 THEN 'AP_PO_HEADERS_EXTRACT_V'
129752 WHEN 10 THEN 'AP_PO_HEADERS_EXTRACT_V'
129753 WHEN 11 THEN 'AP_PO_HEADERS_EXTRACT_V'
129754 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129755 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
129756 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129757 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129758 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129759 WHEN 17 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
129760 WHEN 18 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129761 WHEN 19 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129762 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129763 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129764 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129765 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129766 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129767 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129768 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129769 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129770 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129771 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129772 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129773 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129774 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129775 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129776 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129777 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129778 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129779 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129780 WHEN 38 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129781 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129782 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129783 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129784 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129785 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129786 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129787 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129788 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129789 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129790 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129791 WHEN 49 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129792 WHEN 50 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129793 WHEN 51 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129794 WHEN 52 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129795 WHEN 53 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129796 WHEN 54 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129797 WHEN 55 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129801 WHEN 59 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129798 WHEN 56 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129799 WHEN 57 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129800 WHEN 58 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129802 WHEN 60 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129803 WHEN 61 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129804 WHEN 62 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129805 WHEN 63 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
129806
129807 ELSE null
129808 END object_name
129809 , CASE r
129810 WHEN 1 THEN 'LINE'
129811 WHEN 2 THEN 'LINE'
129812 WHEN 3 THEN 'LINE'
129813 WHEN 4 THEN 'LINE'
129814 WHEN 5 THEN 'LINE'
129815 WHEN 6 THEN 'LINE'
129816 WHEN 7 THEN 'LINE'
129817 WHEN 8 THEN 'LINE'
129818 WHEN 9 THEN 'LINE'
129819 WHEN 10 THEN 'LINE'
129820 WHEN 11 THEN 'LINE'
129821 WHEN 12 THEN 'LINE'
129822 WHEN 13 THEN 'LINE'
129823 WHEN 14 THEN 'LINE'
129824 WHEN 15 THEN 'LINE'
129825 WHEN 16 THEN 'LINE'
129826 WHEN 17 THEN 'LINE'
129827 WHEN 18 THEN 'LINE'
129828 WHEN 19 THEN 'LINE'
129829 WHEN 20 THEN 'LINE'
129830 WHEN 21 THEN 'LINE'
129831 WHEN 22 THEN 'LINE'
129832 WHEN 23 THEN 'LINE'
129833 WHEN 24 THEN 'LINE'
129834 WHEN 25 THEN 'LINE'
129835 WHEN 26 THEN 'LINE'
129836 WHEN 27 THEN 'LINE'
129837 WHEN 28 THEN 'LINE'
129838 WHEN 29 THEN 'LINE'
129839 WHEN 30 THEN 'LINE'
129840 WHEN 31 THEN 'LINE'
129841 WHEN 32 THEN 'LINE'
129842 WHEN 33 THEN 'LINE'
129843 WHEN 34 THEN 'LINE'
129844 WHEN 35 THEN 'LINE'
129845 WHEN 36 THEN 'LINE'
129846 WHEN 37 THEN 'LINE'
129847 WHEN 38 THEN 'LINE'
129848 WHEN 39 THEN 'LINE'
129849 WHEN 40 THEN 'LINE'
129850 WHEN 41 THEN 'LINE'
129851 WHEN 42 THEN 'LINE'
129852 WHEN 43 THEN 'LINE'
129853 WHEN 44 THEN 'LINE'
129854 WHEN 45 THEN 'LINE'
129855 WHEN 46 THEN 'LINE'
129856 WHEN 47 THEN 'LINE'
129857 WHEN 48 THEN 'LINE'
129858 WHEN 49 THEN 'LINE'
129859 WHEN 50 THEN 'LINE'
129860 WHEN 51 THEN 'LINE'
129861 WHEN 52 THEN 'LINE'
129862 WHEN 53 THEN 'LINE'
129863 WHEN 54 THEN 'LINE'
129864 WHEN 55 THEN 'LINE'
129865 WHEN 56 THEN 'LINE'
129866 WHEN 57 THEN 'LINE'
129867 WHEN 58 THEN 'LINE'
129868 WHEN 59 THEN 'LINE'
129869 WHEN 60 THEN 'LINE'
129870 WHEN 61 THEN 'LINE'
129871 WHEN 62 THEN 'LINE'
129872 WHEN 63 THEN 'LINE'
129873
129874 ELSE null
129875 END object_type_code
129876 , CASE r
129877 WHEN 1 THEN '200'
129878 WHEN 2 THEN '200'
129879 WHEN 3 THEN '200'
129880 WHEN 4 THEN '200'
129881 WHEN 5 THEN '200'
129882 WHEN 6 THEN '200'
129883 WHEN 7 THEN '200'
129884 WHEN 8 THEN '200'
129885 WHEN 9 THEN '200'
129886 WHEN 10 THEN '200'
129887 WHEN 11 THEN '200'
129888 WHEN 12 THEN '200'
129889 WHEN 13 THEN '200'
129890 WHEN 14 THEN '200'
129891 WHEN 15 THEN '200'
129892 WHEN 16 THEN '200'
129893 WHEN 17 THEN '200'
129894 WHEN 18 THEN '200'
129895 WHEN 19 THEN '200'
129896 WHEN 20 THEN '200'
129897 WHEN 21 THEN '200'
129898 WHEN 22 THEN '200'
129899 WHEN 23 THEN '200'
129900 WHEN 24 THEN '200'
129901 WHEN 25 THEN '200'
129902 WHEN 26 THEN '200'
129903 WHEN 27 THEN '200'
129904 WHEN 28 THEN '200'
129905 WHEN 29 THEN '200'
129906 WHEN 30 THEN '200'
129907 WHEN 31 THEN '200'
129908 WHEN 32 THEN '200'
129909 WHEN 33 THEN '200'
129910 WHEN 34 THEN '200'
129911 WHEN 35 THEN '200'
129912 WHEN 36 THEN '200'
129913 WHEN 37 THEN '200'
129914 WHEN 38 THEN '200'
129915 WHEN 39 THEN '200'
129916 WHEN 40 THEN '200'
129917 WHEN 41 THEN '200'
129918 WHEN 42 THEN '200'
129919 WHEN 43 THEN '200'
129920 WHEN 44 THEN '200'
129921 WHEN 45 THEN '200'
129922 WHEN 46 THEN '200'
129923 WHEN 47 THEN '200'
129927 WHEN 51 THEN '200'
129924 WHEN 48 THEN '200'
129925 WHEN 49 THEN '200'
129926 WHEN 50 THEN '200'
129928 WHEN 52 THEN '200'
129929 WHEN 53 THEN '200'
129930 WHEN 54 THEN '200'
129931 WHEN 55 THEN '200'
129932 WHEN 56 THEN '200'
129933 WHEN 57 THEN '200'
129934 WHEN 58 THEN '200'
129935 WHEN 59 THEN '200'
129936 WHEN 60 THEN '200'
129937 WHEN 61 THEN '200'
129938 WHEN 62 THEN '200'
129939 WHEN 63 THEN '200'
129940
129941 ELSE null
129942 END source_application_id
129943 , 'S' source_type_code
129944 , CASE r
129945 WHEN 1 THEN 'INV_DIST_BASE_AMOUNT'
129946 WHEN 2 THEN 'RELATED_INV_DIST_DEST_TYPE'
129947 WHEN 3 THEN 'AID_DIST_CCID'
129948 WHEN 4 THEN 'AID_RET_RELATED_DIST_CCID'
129949 WHEN 5 THEN 'RECP_INV_DIST_CCID'
129950 WHEN 6 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
129951 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID'
129952 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE'
129953 WHEN 9 THEN 'POH_RATE_DATE'
129954 WHEN 10 THEN 'POH_RATE'
129955 WHEN 11 THEN 'POH_RATE_TYPE'
129956 WHEN 12 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
129957 WHEN 13 THEN 'TAX_LINE_ID'
129958 WHEN 14 THEN 'SUMMARY_TAX_LINE_ID'
129959 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE'
129960 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE'
129961 WHEN 17 THEN 'REC_NREC_TAX_DIST_ID'
129962 WHEN 18 THEN 'APAD_DIST_LOOKUP_CODE'
129963 WHEN 19 THEN 'RECP_INV_DIST_TYPE'
129964 WHEN 20 THEN 'APAD_DISTRIBUTION_IDENTIFIER'
129965 WHEN 21 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE'
129966 WHEN 22 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE'
129967 WHEN 23 THEN 'BF_ACCRUAL_PP_DIST_ID'
129968 WHEN 24 THEN 'BF_ACCRUAL_PP_INV'
129969 WHEN 25 THEN 'UPG_ENC_CR_ACCT_CLASS'
129970 WHEN 26 THEN 'UPG_ENC_CR_CCID'
129971 WHEN 27 THEN 'UPG_ENC_CR_AMT'
129972 WHEN 28 THEN 'UPG_ENC_CR_BASE_AMT'
129973 WHEN 29 THEN 'UPG_ENC_DR_ACCT_CLASS'
129974 WHEN 30 THEN 'UPG_ENC_DR_CCID'
129975 WHEN 31 THEN 'UPG_ENC_DR_AMT'
129976 WHEN 32 THEN 'UPG_ENC_DR_BASE_AMT'
129977 WHEN 33 THEN 'UPG_AP_ENCUM_OPTION'
129978 WHEN 34 THEN 'APAD_AMOUNT'
129979 WHEN 35 THEN 'PREPAY_CLEAR_CURRENCY_CODE'
129980 WHEN 36 THEN 'BASE_AMT_AT_PP_CLR_XRATE'
129981 WHEN 37 THEN 'DEFERRED_END_DATE'
129982 WHEN 38 THEN 'DEFERRED_OPTION'
129983 WHEN 39 THEN 'DEFERRED_START_DATE'
129984 WHEN 40 THEN 'REVERSED_PREPAY_APP_DIST_ID'
129985 WHEN 41 THEN 'UPG_CR_ENC_TYPE_ID'
129986 WHEN 42 THEN 'UPG_DR_ENC_TYPE_ID'
129987 WHEN 43 THEN 'PREPAY_PAY_CURRENCY_CODE'
129988 WHEN 44 THEN 'BASE_AMT_AT_PP_PAY_XRATE'
129989 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
129990 WHEN 46 THEN 'AID_ENCUMBERED_FLAG'
129991 WHEN 47 THEN 'APAD_PREPAY_CLR_XDATE'
129992 WHEN 48 THEN 'APAD_PREPAY_CLR_XRATE'
129993 WHEN 49 THEN 'APAD_PREPAY_CLR_XRATE_TYPE'
129994 WHEN 50 THEN 'APAD_PREPAY_PAY_XDATE'
129995 WHEN 51 THEN 'APAD_PREPAY_PAY_XRATE'
129996 WHEN 52 THEN 'APAD_PREPAY_PAY_XRATE_TYPE'
129997 WHEN 53 THEN 'BF_CASHCLEARONLY_PP_DIST_TYPE'
129998 WHEN 54 THEN 'BF_CASHCLEARONLY_PREPAY_ENTITY'
129999 WHEN 55 THEN 'BF_CASHCLEAR_PP_CLEAR_DIST_ID'
130000 WHEN 56 THEN 'BF_CASHALWAYS_PP_PMT_ID'
130001 WHEN 57 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE'
130002 WHEN 58 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY'
130003 WHEN 59 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID'
130004 WHEN 60 THEN 'APAD_BASE_AMOUNT'
130005 WHEN 61 THEN 'AI_RECIPIENT_INV_TYPE'
130006 WHEN 62 THEN 'BF_RET_DIST_ASSOC_TO_PP_RECIP'
130007 WHEN 63 THEN 'BF_RET_INV_ASSOC_TO_PP_RECIP'
130008
130009 ELSE null
130010 END source_code
130011 , CASE r
130012 WHEN 1 THEN TO_CHAR(l3.INV_DIST_BASE_AMOUNT)
130013 WHEN 2 THEN TO_CHAR(l3.RELATED_INV_DIST_DEST_TYPE)
130014 WHEN 3 THEN TO_CHAR(l3.AID_DIST_CCID)
130015 WHEN 4 THEN TO_CHAR(l3.AID_RET_RELATED_DIST_CCID)
130016 WHEN 5 THEN TO_CHAR(l3.RECP_INV_DIST_CCID)
130017 WHEN 6 THEN TO_CHAR(l3.DIST_ACCOUNT_REVERSAL_OPTION)
130018 WHEN 7 THEN TO_CHAR(l3.BUS_FLOW_AP_APP_ID)
130019 WHEN 8 THEN TO_CHAR(l3.DISTRIBUTION_LINK_TYPE)
130020 WHEN 9 THEN TO_CHAR(l2.POH_RATE_DATE)
130021 WHEN 10 THEN TO_CHAR(l2.POH_RATE)
130022 WHEN 11 THEN TO_CHAR(l2.POH_RATE_TYPE)
130023 WHEN 12 THEN TO_CHAR(l3.OVERRIDE_ACCTD_AMT_FLAG)
130024 WHEN 13 THEN TO_CHAR(l5.TAX_LINE_ID)
130025 WHEN 14 THEN TO_CHAR(l3.SUMMARY_TAX_LINE_ID)
130029 WHEN 18 THEN TO_CHAR(l3.APAD_DIST_LOOKUP_CODE)
130026 WHEN 15 THEN TO_CHAR(l3.BUS_FLOW_INV_DIST_TYPE)
130027 WHEN 16 THEN TO_CHAR(l3.BUS_FLOW_INV_ENTITY_CODE)
130028 WHEN 17 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
130030 WHEN 19 THEN TO_CHAR(l3.RECP_INV_DIST_TYPE)
130031 WHEN 20 THEN TO_CHAR(l3.APAD_DISTRIBUTION_IDENTIFIER)
130032 WHEN 21 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_DIST_TYPE)
130033 WHEN 22 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_ENTITY_CODE)
130034 WHEN 23 THEN TO_CHAR(l3.BF_ACCRUAL_PP_DIST_ID)
130035 WHEN 24 THEN TO_CHAR(l3.BF_ACCRUAL_PP_INV)
130036 WHEN 25 THEN TO_CHAR(l3.UPG_ENC_CR_ACCT_CLASS)
130037 WHEN 26 THEN TO_CHAR(l3.UPG_ENC_CR_CCID)
130038 WHEN 27 THEN TO_CHAR(l3.UPG_ENC_CR_AMT)
130039 WHEN 28 THEN TO_CHAR(l3.UPG_ENC_CR_BASE_AMT)
130040 WHEN 29 THEN TO_CHAR(l3.UPG_ENC_DR_ACCT_CLASS)
130041 WHEN 30 THEN TO_CHAR(l3.UPG_ENC_DR_CCID)
130042 WHEN 31 THEN TO_CHAR(l3.UPG_ENC_DR_AMT)
130043 WHEN 32 THEN TO_CHAR(l3.UPG_ENC_DR_BASE_AMT)
130044 WHEN 33 THEN TO_CHAR(l3.UPG_AP_ENCUM_OPTION)
130045 WHEN 34 THEN TO_CHAR(l3.APAD_AMOUNT)
130046 WHEN 35 THEN TO_CHAR(l3.PREPAY_CLEAR_CURRENCY_CODE)
130047 WHEN 36 THEN TO_CHAR(l3.BASE_AMT_AT_PP_CLR_XRATE)
130048 WHEN 37 THEN TO_CHAR(l3.DEFERRED_END_DATE)
130049 WHEN 38 THEN TO_CHAR(l3.DEFERRED_OPTION)
130050 WHEN 39 THEN TO_CHAR(l3.DEFERRED_START_DATE)
130051 WHEN 40 THEN TO_CHAR(l3.REVERSED_PREPAY_APP_DIST_ID)
130052 WHEN 41 THEN TO_CHAR(l3.UPG_CR_ENC_TYPE_ID)
130053 WHEN 42 THEN TO_CHAR(l3.UPG_DR_ENC_TYPE_ID)
130054 WHEN 43 THEN TO_CHAR(l3.PREPAY_PAY_CURRENCY_CODE)
130055 WHEN 44 THEN TO_CHAR(l3.BASE_AMT_AT_PP_PAY_XRATE)
130056 WHEN 45 THEN TO_CHAR(l3.POD_ACCRUE_ON_RECEIPT_FLAG)
130057 WHEN 46 THEN TO_CHAR(l3.AID_ENCUMBERED_FLAG)
130058 WHEN 47 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XDATE)
130059 WHEN 48 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE)
130060 WHEN 49 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE_TYPE)
130061 WHEN 50 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XDATE)
130062 WHEN 51 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE)
130063 WHEN 52 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE_TYPE)
130064 WHEN 53 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PP_DIST_TYPE)
130065 WHEN 54 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PREPAY_ENTITY)
130066 WHEN 55 THEN TO_CHAR(l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID)
130067 WHEN 56 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_ID)
130068 WHEN 57 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PP_DIST_TYPE)
130069 WHEN 58 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PREPAY_ENTITY)
130070 WHEN 59 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_DIST_ID)
130071 WHEN 60 THEN TO_CHAR(l3.APAD_BASE_AMOUNT)
130072 WHEN 61 THEN TO_CHAR(l3.AI_RECIPIENT_INV_TYPE)
130073 WHEN 62 THEN TO_CHAR(l3.BF_RET_DIST_ASSOC_TO_PP_RECIP)
130074 WHEN 63 THEN TO_CHAR(l3.BF_RET_INV_ASSOC_TO_PP_RECIP)
130075
130076 ELSE null
130077 END source_value
130078 , CASE r
130079 WHEN 2 THEN fvl7.meaning
130080 WHEN 12 THEN fvl53.meaning
130081 WHEN 19 THEN fvl68.meaning
130082 WHEN 45 THEN fvl100.meaning
130083 WHEN 46 THEN fvl104.meaning
130084 WHEN 61 THEN fvl144.meaning
130085
130086 ELSE null
130087 END source_meaning
130088 FROM xla_events_gt xet
130089 , AP_PO_HEADERS_EXTRACT_V l2
130090 , AP_PREPAYAPP_EXTRACT_DETAILS_V l3
130091 , ZX_AP_DEF_TAX_EXTRACT_V l5
130092 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
130093 , fnd_lookup_values fvl7
130094 , fnd_lookup_values fvl53
130095 , fnd_lookup_values fvl68
130096 , fnd_lookup_values fvl100
130097 , fnd_lookup_values fvl104
130098 , fnd_lookup_values fvl144
130099 , (select rownum r from all_objects where rownum <= 63 and owner = p_apps_owner)
130100 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
130101 AND xet.event_class_code = C_EVENT_CLASS_CODE
130102 AND l3.event_id = xet.event_id
130103 AND l3.pod_po_header_id = l2.po_header_id (+) AND l3.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l3.recp_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
130104 AND fvl7.lookup_code(+) = l3.RELATED_INV_DIST_DEST_TYPE
130105 AND fvl7.view_application_id(+) = 201
130106 AND fvl7.language(+) = USERENV('LANG')
130107 AND fvl53.lookup_type(+) = 'YES_NO'
130108 AND fvl53.lookup_code(+) = l3.OVERRIDE_ACCTD_AMT_FLAG
130109 AND fvl53.view_application_id(+) = 0
130110 AND fvl53.language(+) = USERENV('LANG')
130111 AND fvl68.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
130112 AND fvl68.lookup_code(+) = l3.RECP_INV_DIST_TYPE
130113 AND fvl68.view_application_id(+) = 200
130114 AND fvl68.language(+) = USERENV('LANG')
130115 AND fvl100.lookup_type(+) = 'YES_NO'
130116 AND fvl100.lookup_code(+) = l3.POD_ACCRUE_ON_RECEIPT_FLAG
130120 AND fvl104.lookup_code(+) = l3.AID_ENCUMBERED_FLAG
130117 AND fvl100.view_application_id(+) = 0
130118 AND fvl100.language(+) = USERENV('LANG')
130119 AND fvl104.lookup_type(+) = 'YES_NO'
130121 AND fvl104.view_application_id(+) = 0
130122 AND fvl104.language(+) = USERENV('LANG')
130123 AND fvl144.lookup_type(+) = 'INVOICE TYPE'
130124 AND fvl144.lookup_code(+) = l3.AI_RECIPIENT_INV_TYPE
130125 AND fvl144.view_application_id(+) = 200
130126 AND fvl144.language(+) = USERENV('LANG')
130127
130128 )
130129 ;
130130 --
130131 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130132
130133 trace
130134 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
130135 ,p_level => C_LEVEL_STATEMENT
130136 ,p_module => l_log_module);
130137
130138 END IF;
130139
130140
130141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130142 trace
130143 (p_msg => 'END of insert_sources_210'
130144 ,p_level => C_LEVEL_PROCEDURE
130145 ,p_module => l_log_module);
130146 END IF;
130147 EXCEPTION
130148 WHEN xla_exceptions_pkg.application_exception THEN
130149 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
130150 trace
130151 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
130152 ,p_level => C_LEVEL_EXCEPTION
130153 ,p_module => l_log_module);
130154 END IF;
130155 RAISE;
130156 WHEN OTHERS THEN
130157 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
130158 trace
130159 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
130160 ,p_level => C_LEVEL_EXCEPTION
130161 ,p_module => l_log_module);
130162 END IF;
130163 xla_exceptions_pkg.raise_message
130164 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_210');
130165 END insert_sources_210;
130166 --
130167
130168 ---------------------------------------
130169 --
130170 -- PRIVATE FUNCTION
130171 -- EventClass_210
130172 --
130173 ----------------------------------------
130174 --
130175 FUNCTION EventClass_210
130176 (p_application_id IN NUMBER
130177 ,p_base_ledger_id IN NUMBER
130178 ,p_target_ledger_id IN NUMBER
130179 ,p_language IN VARCHAR2
130180 ,p_currency_code IN VARCHAR2
130181 ,p_sla_ledger_id IN NUMBER
130182 ,p_pad_start_date IN DATE
130183 ,p_pad_end_date IN DATE
130184 ,p_primary_ledger_id IN NUMBER)
130185 RETURN BOOLEAN IS
130186 --
130187 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS_ALL';
130188 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
130189
130190 l_calculate_acctd_flag VARCHAR2(1) :='N';
130191 l_calculate_g_l_flag VARCHAR2(1) :='N';
130192 --
130193 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130194 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130195 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130196 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130197 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130198 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130199 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130200 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130201 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130202 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130203 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130204 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130205 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130206 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130207 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130208 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130209 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130210 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130211 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130212 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130213 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130214 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130215 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
130216 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130217 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
130218 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
130219
130220 l_event_id NUMBER;
130221 l_previous_event_id NUMBER;
130222 l_first_event_id NUMBER;
130223 l_last_event_id NUMBER;
130224
130225 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
130226 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
130227 --
130228 --
130229 l_result BOOLEAN := TRUE;
130233 l_description VARCHAR2(4000);
130230 l_rows NUMBER := 1000;
130231 l_event_type_name VARCHAR2(80) := 'All';
130232 l_event_class_name VARCHAR2(80) := 'Prepayment Applications';
130234 l_transaction_reversal NUMBER;
130235 l_ae_header_id NUMBER;
130236 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
130237 l_log_module VARCHAR2(240);
130238 --
130239 l_acct_reversal_source VARCHAR2(30);
130240 l_trx_reversal_source VARCHAR2(30);
130241
130242 l_continue_with_lines BOOLEAN := TRUE;
130243 --
130244 l_acc_rev_gl_date_source DATE; -- 4262811
130245 --
130246 type t_array_event_id is table of number index by binary_integer;
130247
130248 l_rec_array_event t_rec_array_event;
130249 l_null_rec_array_event t_rec_array_event;
130250 l_array_ae_header_id xla_number_array_type;
130251 l_actual_flag VARCHAR2(1) := NULL;
130252 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
130253 l_balance_type_code VARCHAR2(1) :=NULL;
130254 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
130255
130256 --
130257 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
130258 --
130259
130260 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
130261 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
130262 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
130263 TYPE t_array_source_22 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
130264 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
130265 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
130266 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
130267 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
130268 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
130269 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
130270 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
130271 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
130272 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
130273 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
130274 TYPE t_array_source_125 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
130275 TYPE t_array_source_126 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130276 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
130277 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
130278 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
130279
130280 TYPE t_array_source_6 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
130281 TYPE t_array_source_7 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130282 TYPE t_array_source_17 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
130283 TYPE t_array_source_23 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
130284 TYPE t_array_source_36 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
130285 TYPE t_array_source_40 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
130286 TYPE t_array_source_42 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
130287 TYPE t_array_source_48 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
130288 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
130289 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
130290 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130291 TYPE t_array_source_53 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
130292 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
130293 TYPE t_array_source_59 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
130294 TYPE t_array_source_62 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130295 TYPE t_array_source_63 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
130296 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130297 TYPE t_array_source_67 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
130301 TYPE t_array_source_74 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
130298 TYPE t_array_source_68 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130299 TYPE t_array_source_71 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
130300 TYPE t_array_source_73 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130302 TYPE t_array_source_75 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130303 TYPE t_array_source_76 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
130304 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
130305 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
130306 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
130307 TYPE t_array_source_81 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
130308 TYPE t_array_source_82 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
130309 TYPE t_array_source_83 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
130310 TYPE t_array_source_84 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
130311 TYPE t_array_source_85 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
130312 TYPE t_array_source_86 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
130313 TYPE t_array_source_87 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
130314 TYPE t_array_source_88 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_CLEAR_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
130315 TYPE t_array_source_89 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
130316 TYPE t_array_source_90 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
130317 TYPE t_array_source_91 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
130318 TYPE t_array_source_92 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
130319 TYPE t_array_source_95 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130320 TYPE t_array_source_96 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
130321 TYPE t_array_source_97 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
130322 TYPE t_array_source_98 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_PAY_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
130323 TYPE t_array_source_99 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
130324 TYPE t_array_source_100 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
130325 TYPE t_array_source_104 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
130326 TYPE t_array_source_118 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XDATE%TYPE INDEX BY BINARY_INTEGER;
130327 TYPE t_array_source_119 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
130328 TYPE t_array_source_120 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130329 TYPE t_array_source_121 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XDATE%TYPE INDEX BY BINARY_INTEGER;
130330 TYPE t_array_source_122 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
130331 TYPE t_array_source_123 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130332 TYPE t_array_source_134 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130333 TYPE t_array_source_135 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
130334 TYPE t_array_source_136 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEAR_PP_CLEAR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130335 TYPE t_array_source_137 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
130336 TYPE t_array_source_138 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130337 TYPE t_array_source_139 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
130338 TYPE t_array_source_140 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130339 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
130340 TYPE t_array_source_144 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AI_RECIPIENT_INV_TYPE%TYPE INDEX BY BINARY_INTEGER;
130341 TYPE t_array_source_145 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_DIST_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
130342 TYPE t_array_source_146 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_INV_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
130343
130344 l_array_source_4 t_array_source_4;
130345 l_array_source_4_meaning t_array_lookup_meaning;
130346 l_array_source_5 t_array_source_5;
130347 l_array_source_8 t_array_source_8;
130348 l_array_source_22 t_array_source_22;
130349 l_array_source_30 t_array_source_30;
130350 l_array_source_30_meaning t_array_lookup_meaning;
130354 l_array_source_72 t_array_source_72;
130351 l_array_source_37 t_array_source_37;
130352 l_array_source_38 t_array_source_38;
130353 l_array_source_56 t_array_source_56;
130355 l_array_source_80 t_array_source_80;
130356 l_array_source_93 t_array_source_93;
130357 l_array_source_94 t_array_source_94;
130358 l_array_source_102 t_array_source_102;
130359 l_array_source_102_meaning t_array_lookup_meaning;
130360 l_array_source_124 t_array_source_124;
130361 l_array_source_125 t_array_source_125;
130362 l_array_source_126 t_array_source_126;
130363 l_array_source_152 t_array_source_152;
130364 l_array_source_153 t_array_source_153;
130365 l_array_source_154 t_array_source_154;
130366
130367 l_array_source_6 t_array_source_6;
130368 l_array_source_7 t_array_source_7;
130369 l_array_source_7_meaning t_array_lookup_meaning;
130370 l_array_source_17 t_array_source_17;
130371 l_array_source_23 t_array_source_23;
130372 l_array_source_36 t_array_source_36;
130373 l_array_source_40 t_array_source_40;
130374 l_array_source_42 t_array_source_42;
130375 l_array_source_48 t_array_source_48;
130376 l_array_source_50 t_array_source_50;
130377 l_array_source_51 t_array_source_51;
130378 l_array_source_52 t_array_source_52;
130379 l_array_source_53 t_array_source_53;
130380 l_array_source_53_meaning t_array_lookup_meaning;
130381 l_array_source_58 t_array_source_58;
130382 l_array_source_59 t_array_source_59;
130383 l_array_source_62 t_array_source_62;
130384 l_array_source_63 t_array_source_63;
130385 l_array_source_66 t_array_source_66;
130386 l_array_source_67 t_array_source_67;
130387 l_array_source_68 t_array_source_68;
130388 l_array_source_68_meaning t_array_lookup_meaning;
130389 l_array_source_71 t_array_source_71;
130390 l_array_source_73 t_array_source_73;
130391 l_array_source_74 t_array_source_74;
130392 l_array_source_75 t_array_source_75;
130393 l_array_source_76 t_array_source_76;
130394 l_array_source_77 t_array_source_77;
130395 l_array_source_78 t_array_source_78;
130396 l_array_source_79 t_array_source_79;
130397 l_array_source_81 t_array_source_81;
130398 l_array_source_82 t_array_source_82;
130399 l_array_source_83 t_array_source_83;
130400 l_array_source_84 t_array_source_84;
130401 l_array_source_85 t_array_source_85;
130402 l_array_source_86 t_array_source_86;
130403 l_array_source_87 t_array_source_87;
130404 l_array_source_88 t_array_source_88;
130405 l_array_source_89 t_array_source_89;
130406 l_array_source_90 t_array_source_90;
130407 l_array_source_91 t_array_source_91;
130408 l_array_source_92 t_array_source_92;
130409 l_array_source_95 t_array_source_95;
130410 l_array_source_96 t_array_source_96;
130411 l_array_source_97 t_array_source_97;
130412 l_array_source_98 t_array_source_98;
130413 l_array_source_99 t_array_source_99;
130414 l_array_source_100 t_array_source_100;
130415 l_array_source_100_meaning t_array_lookup_meaning;
130416 l_array_source_104 t_array_source_104;
130417 l_array_source_104_meaning t_array_lookup_meaning;
130418 l_array_source_118 t_array_source_118;
130419 l_array_source_119 t_array_source_119;
130420 l_array_source_120 t_array_source_120;
130421 l_array_source_121 t_array_source_121;
130422 l_array_source_122 t_array_source_122;
130423 l_array_source_123 t_array_source_123;
130424 l_array_source_134 t_array_source_134;
130425 l_array_source_135 t_array_source_135;
130426 l_array_source_136 t_array_source_136;
130427 l_array_source_137 t_array_source_137;
130428 l_array_source_138 t_array_source_138;
130429 l_array_source_139 t_array_source_139;
130430 l_array_source_140 t_array_source_140;
130431 l_array_source_141 t_array_source_141;
130432 l_array_source_144 t_array_source_144;
130433 l_array_source_144_meaning t_array_lookup_meaning;
130434 l_array_source_145 t_array_source_145;
130435 l_array_source_146 t_array_source_146;
130436
130437 --
130438 CURSOR header_cur
130439 IS
130440 SELECT /*+ leading(xet) cardinality(xet,1) */
130441 -- Event Class Code: PREPAYMENT APPLICATIONS
130442 xet.entity_id
130443 ,xet.legal_entity_id
130444 ,xet.entity_code
130445 ,xet.transaction_number
130446 ,xet.event_id
130447 ,xet.event_class_code
130448 ,xet.event_type_code
130449 ,xet.event_number
130450 ,xet.event_date
130451 ,xet.transaction_date
130452 ,xet.reference_num_1
130453 ,xet.reference_num_2
130454 ,xet.reference_num_3
130455 ,xet.reference_num_4
130456 ,xet.reference_char_1
130457 ,xet.reference_char_2
130458 ,xet.reference_char_3
130459 ,xet.reference_char_4
130460 ,xet.reference_date_1
130461 ,xet.reference_date_2
130462 ,xet.reference_date_3
130463 ,xet.reference_date_4
130464 ,xet.event_created_by
130465 ,xet.budgetary_control_flag
130466 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_4
130467 , fvl4.meaning source_4_meaning
130468 , h4.ASP_RATE_VAR_GAIN_CCID source_5
130469 , h4.ASP_RATE_VAR_LOSS_CCID source_8
130470 , h4.FSP_RETAINAGE_ACCOUNT source_22
130471 , h4.ASP_AUTO_OFFSET_FLAG source_30
130472 , fvl30.meaning source_30_meaning
130473 , h4.ASP_ROUNDING_ERROR_CCID source_37
130477 , h1.AI_INVOICE_CURRENCY_CODE source_80
130474 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_38
130475 , h1.THIRD_PARTY_TYPE source_56
130476 , h1.AI_INVOICE_ID source_72
130478 , h1.AI_VENDOR_ID source_93
130479 , h1.AI_VENDOR_SITE_ID source_94
130480 , h4.FSP_PURCH_ENCUMBRANCE_FLAG source_102
130481 , fvl102.meaning source_102_meaning
130482 , h1.INV_EXCHANGE_DATE source_124
130483 , h1.INV_EXCHANGE_RATE source_125
130484 , h1.INV_EXCHANGE_RATE_TYPE source_126
130485 , h1.INV_DOC_SEQUENCE_CATEGORY source_152
130486 , h1.INV_DOC_SEQUENCE_IDENTIFIER source_153
130487 , h1.INV_DOC_SEQUENCE_VALUE source_154
130488 FROM xla_events_gt xet
130489 , AP_INVOICE_EXTRACT_HEADER_V h1
130490 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
130491 , fnd_lookup_values fvl4
130492 , fnd_lookup_values fvl30
130493 , fnd_lookup_values fvl102
130494 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
130495 and xet.event_class_code = C_EVENT_CLASS_CODE
130496 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
130497 AND h4.asp_org_id = h1.ai_org_id AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
130498 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
130499 AND fvl4.view_application_id(+) = 200
130500 AND fvl4.language(+) = USERENV('LANG')
130501 AND fvl30.lookup_type(+) = 'YES_NO'
130502 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
130503 AND fvl30.view_application_id(+) = 0
130504 AND fvl30.language(+) = USERENV('LANG')
130505 AND fvl102.lookup_type(+) = 'YES_NO'
130506 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
130507 AND fvl102.view_application_id(+) = 0
130508 AND fvl102.language(+) = USERENV('LANG')
130509
130510 ORDER BY event_id
130511 ;
130512
130513
130514 --
130515 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
130516 IS
130517 SELECT /*+ leading(xet) cardinality(xet,1) */
130518 -- Event Class Code: PREPAYMENT APPLICATIONS
130519 xet.entity_id
130520 ,xet.legal_entity_id
130521 ,xet.entity_code
130522 ,xet.transaction_number
130523 ,xet.event_id
130524 ,xet.event_class_code
130525 ,xet.event_type_code
130526 ,xet.event_number
130527 ,xet.event_date
130528 ,xet.transaction_date
130529 ,xet.reference_num_1
130530 ,xet.reference_num_2
130531 ,xet.reference_num_3
130532 ,xet.reference_num_4
130533 ,xet.reference_char_1
130534 ,xet.reference_char_2
130535 ,xet.reference_char_3
130536 ,xet.reference_char_4
130537 ,xet.reference_date_1
130538 ,xet.reference_date_2
130539 ,xet.reference_date_3
130540 ,xet.reference_date_4
130541 ,xet.event_created_by
130542 ,xet.budgetary_control_flag
130543 , l3.LINE_NUMBER
130544 , l3.INV_DIST_BASE_AMOUNT source_6
130545 , l3.RELATED_INV_DIST_DEST_TYPE source_7
130546 , fvl7.meaning source_7_meaning
130547 , l3.AID_DIST_CCID source_17
130548 , l3.AID_RET_RELATED_DIST_CCID source_23
130549 , l3.RECP_INV_DIST_CCID source_36
130550 , l3.DIST_ACCOUNT_REVERSAL_OPTION source_40
130551 , l3.BUS_FLOW_AP_APP_ID source_42
130552 , l3.DISTRIBUTION_LINK_TYPE source_48
130553 , l2.POH_RATE_DATE source_50
130554 , l2.POH_RATE source_51
130555 , l2.POH_RATE_TYPE source_52
130556 , l3.OVERRIDE_ACCTD_AMT_FLAG source_53
130557 , fvl53.meaning source_53_meaning
130558 , l5.TAX_LINE_ID source_58
130559 , l3.SUMMARY_TAX_LINE_ID source_59
130560 , l3.BUS_FLOW_INV_DIST_TYPE source_62
130561 , l3.BUS_FLOW_INV_ENTITY_CODE source_63
130562 , l6.REC_NREC_TAX_DIST_ID source_66
130563 , l3.APAD_DIST_LOOKUP_CODE source_67
130564 , l3.RECP_INV_DIST_TYPE source_68
130565 , fvl68.meaning source_68_meaning
130566 , l3.APAD_DISTRIBUTION_IDENTIFIER source_71
130567 , l3.BF_ACCRUAL_PREPAY_DIST_TYPE source_73
130568 , l3.BF_ACCRUAL_PREPAY_ENTITY_CODE source_74
130569 , l3.BF_ACCRUAL_PP_DIST_ID source_75
130570 , l3.BF_ACCRUAL_PP_INV source_76
130571 , l3.UPG_ENC_CR_ACCT_CLASS source_77
130572 , l3.UPG_ENC_CR_CCID source_78
130573 , l3.UPG_ENC_CR_AMT source_79
130574 , l3.UPG_ENC_CR_BASE_AMT source_81
130575 , l3.UPG_ENC_DR_ACCT_CLASS source_82
130576 , l3.UPG_ENC_DR_CCID source_83
130577 , l3.UPG_ENC_DR_AMT source_84
130578 , l3.UPG_ENC_DR_BASE_AMT source_85
130579 , l3.UPG_AP_ENCUM_OPTION source_86
130580 , l3.APAD_AMOUNT source_87
130581 , l3.PREPAY_CLEAR_CURRENCY_CODE source_88
130582 , l3.BASE_AMT_AT_PP_CLR_XRATE source_89
130583 , l3.DEFERRED_END_DATE source_90
130584 , l3.DEFERRED_OPTION source_91
130585 , l3.DEFERRED_START_DATE source_92
130586 , l3.REVERSED_PREPAY_APP_DIST_ID source_95
130587 , l3.UPG_CR_ENC_TYPE_ID source_96
130588 , l3.UPG_DR_ENC_TYPE_ID source_97
130589 , l3.PREPAY_PAY_CURRENCY_CODE source_98
130590 , l3.BASE_AMT_AT_PP_PAY_XRATE source_99
130591 , l3.POD_ACCRUE_ON_RECEIPT_FLAG source_100
130592 , fvl100.meaning source_100_meaning
130593 , l3.AID_ENCUMBERED_FLAG source_104
130594 , fvl104.meaning source_104_meaning
130595 , l3.APAD_PREPAY_CLR_XDATE source_118
130596 , l3.APAD_PREPAY_CLR_XRATE source_119
130597 , l3.APAD_PREPAY_CLR_XRATE_TYPE source_120
130598 , l3.APAD_PREPAY_PAY_XDATE source_121
130599 , l3.APAD_PREPAY_PAY_XRATE source_122
130603 , l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID source_136
130600 , l3.APAD_PREPAY_PAY_XRATE_TYPE source_123
130601 , l3.BF_CASHCLEARONLY_PP_DIST_TYPE source_134
130602 , l3.BF_CASHCLEARONLY_PREPAY_ENTITY source_135
130604 , l3.BF_CASHALWAYS_PP_PMT_ID source_137
130605 , l3.BF_CASH_ALWAYS_PP_DIST_TYPE source_138
130606 , l3.BF_CASH_ALWAYS_PREPAY_ENTITY source_139
130607 , l3.BF_CASHALWAYS_PP_PMT_DIST_ID source_140
130608 , l3.APAD_BASE_AMOUNT source_141
130609 , l3.AI_RECIPIENT_INV_TYPE source_144
130610 , fvl144.meaning source_144_meaning
130611 , l3.BF_RET_DIST_ASSOC_TO_PP_RECIP source_145
130612 , l3.BF_RET_INV_ASSOC_TO_PP_RECIP source_146
130613 FROM xla_events_gt xet
130614 , AP_PO_HEADERS_EXTRACT_V l2
130615 , AP_PREPAYAPP_EXTRACT_DETAILS_V l3
130616 , ZX_AP_DEF_TAX_EXTRACT_V l5
130617 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
130618 , fnd_lookup_values fvl7
130619 , fnd_lookup_values fvl53
130620 , fnd_lookup_values fvl68
130621 , fnd_lookup_values fvl100
130622 , fnd_lookup_values fvl104
130623 , fnd_lookup_values fvl144
130624 WHERE xet.event_id between x_first_event_id and x_last_event_id
130625 and xet.event_date between p_pad_start_date and p_pad_end_date
130626 and xet.event_class_code = C_EVENT_CLASS_CODE
130627 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
130628 AND l3.POD_PO_Header_Id = l2.PO_Header_Id (+) AND l3.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND l3.RECP_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
130629 AND fvl7.lookup_code(+) = l3.RELATED_INV_DIST_DEST_TYPE
130630 AND fvl7.view_application_id(+) = 201
130631 AND fvl7.language(+) = USERENV('LANG')
130632 AND fvl53.lookup_type(+) = 'YES_NO'
130633 AND fvl53.lookup_code(+) = l3.OVERRIDE_ACCTD_AMT_FLAG
130634 AND fvl53.view_application_id(+) = 0
130635 AND fvl53.language(+) = USERENV('LANG')
130636 AND fvl68.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
130637 AND fvl68.lookup_code(+) = l3.RECP_INV_DIST_TYPE
130638 AND fvl68.view_application_id(+) = 200
130639 AND fvl68.language(+) = USERENV('LANG')
130640 AND fvl100.lookup_type(+) = 'YES_NO'
130641 AND fvl100.lookup_code(+) = l3.POD_ACCRUE_ON_RECEIPT_FLAG
130642 AND fvl100.view_application_id(+) = 0
130643 AND fvl100.language(+) = USERENV('LANG')
130644 AND fvl104.lookup_type(+) = 'YES_NO'
130645 AND fvl104.lookup_code(+) = l3.AID_ENCUMBERED_FLAG
130646 AND fvl104.view_application_id(+) = 0
130647 AND fvl104.language(+) = USERENV('LANG')
130648 AND fvl144.lookup_type(+) = 'INVOICE TYPE'
130649 AND fvl144.lookup_code(+) = l3.AI_RECIPIENT_INV_TYPE
130650 AND fvl144.view_application_id(+) = 200
130651 AND fvl144.language(+) = USERENV('LANG')
130652 ;
130653
130654 --
130655 BEGIN
130656 IF g_log_enabled THEN
130657 l_log_module := C_DEFAULT_MODULE||'.EventClass_210';
130658 END IF;
130659 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130660 trace
130661 (p_msg => 'BEGIN of EventClass_210'
130662 ,p_level => C_LEVEL_PROCEDURE
130663 ,p_module => l_log_module);
130664 END IF;
130665
130666 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130667 trace
130668 (p_msg => 'p_application_id = '||p_application_id||
130669 ' - p_base_ledger_id = '||p_base_ledger_id||
130670 ' - p_target_ledger_id = '||p_target_ledger_id||
130671 ' - p_language = '||p_language||
130672 ' - p_currency_code = '||p_currency_code||
130673 ' - p_sla_ledger_id = '||p_sla_ledger_id
130674 ,p_level => C_LEVEL_STATEMENT
130675 ,p_module => l_log_module);
130676 END IF;
130677 --
130678 -- initialze arrays
130679 --
130680 g_array_event.DELETE;
130681 l_rec_array_event := l_null_rec_array_event;
130682 --
130683 --------------------------------------
130684 -- 4262811 Initialze MPA Line Number
130685 --------------------------------------
130686 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
130687
130688 --
130689
130690 --
130691 OPEN header_cur;
130692 --
130693 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130694 trace
130695 (p_msg => 'SQL - FETCH header_cur'
130696 ,p_level => C_LEVEL_STATEMENT
130697 ,p_module => l_log_module);
130698 END IF;
130699 --
130700 LOOP
130701 FETCH header_cur BULK COLLECT INTO
130702 l_array_entity_id
130703 , l_array_legal_entity_id
130704 , l_array_entity_code
130705 , l_array_transaction_num
130706 , l_array_event_id
130707 , l_array_class_code
130708 , l_array_event_type
130709 , l_array_event_number
130710 , l_array_event_date
130711 , l_array_transaction_date
130712 , l_array_reference_num_1
130713 , l_array_reference_num_2
130714 , l_array_reference_num_3
130715 , l_array_reference_num_4
130716 , l_array_reference_char_1
130717 , l_array_reference_char_2
130718 , l_array_reference_char_3
130719 , l_array_reference_char_4
130720 , l_array_reference_date_1
130721 , l_array_reference_date_2
130722 , l_array_reference_date_3
130723 , l_array_reference_date_4
130727 , l_array_source_4_meaning
130724 , l_array_event_created_by
130725 , l_array_budgetary_control_flag
130726 , l_array_source_4
130728 , l_array_source_5
130729 , l_array_source_8
130730 , l_array_source_22
130731 , l_array_source_30
130732 , l_array_source_30_meaning
130733 , l_array_source_37
130734 , l_array_source_38
130735 , l_array_source_56
130736 , l_array_source_72
130737 , l_array_source_80
130738 , l_array_source_93
130739 , l_array_source_94
130740 , l_array_source_102
130741 , l_array_source_102_meaning
130742 , l_array_source_124
130743 , l_array_source_125
130744 , l_array_source_126
130745 , l_array_source_152
130746 , l_array_source_153
130747 , l_array_source_154
130748 LIMIT l_rows;
130749 --
130750 IF (C_LEVEL_EVENT >= g_log_level) THEN
130751 trace
130752 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
130753 ,p_level => C_LEVEL_EVENT
130754 ,p_module => l_log_module);
130755 END IF;
130756 --
130757 EXIT WHEN l_array_entity_id.COUNT = 0;
130758
130759 -- initialize arrays
130760 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
130761 XLA_AE_LINES_PKG.g_rec_lines := NULL;
130762
130763 --
130764 -- Bug 4458708
130765 --
130766 XLA_AE_LINES_PKG.g_LineNumber := 0;
130767
130768
130769 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
130770 g_last_hdr_idx := l_array_event_id.LAST;
130771 --
130772 -- loop for the headers. Each iteration is for each header extract row
130773 -- fetched in header cursor
130774 --
130775 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
130776
130777 --
130778 -- set event info as cache for other routines to refer event attributes
130779 --
130780 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
130781 (p_application_id => p_application_id
130782 ,p_primary_ledger_id => p_primary_ledger_id
130783 ,p_base_ledger_id => p_base_ledger_id
130784 ,p_target_ledger_id => p_target_ledger_id
130785 ,p_entity_id => l_array_entity_id(hdr_idx)
130786 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
130787 ,p_entity_code => l_array_entity_code(hdr_idx)
130788 ,p_transaction_num => l_array_transaction_num(hdr_idx)
130789 ,p_event_id => l_array_event_id(hdr_idx)
130790 ,p_event_class_code => l_array_class_code(hdr_idx)
130791 ,p_event_type_code => l_array_event_type(hdr_idx)
130792 ,p_event_number => l_array_event_number(hdr_idx)
130793 ,p_event_date => l_array_event_date(hdr_idx)
130794 ,p_transaction_date => l_array_transaction_date(hdr_idx)
130795 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
130796 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
130797 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
130798 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
130799 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
130800 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
130801 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
130802 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
130803 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
130804 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
130805 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
130806 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
130807 ,p_event_created_by => l_array_event_created_by(hdr_idx)
130808 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
130809
130810 --
130811 -- set the status of entry to C_VALID (0)
130812 --
130813 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
130814
130815 --
130816 -- initialize a row for ae header
130817 --
130818 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
130819
130820 l_event_id := l_array_event_id(hdr_idx);
130821
130822 --
130823 -- storing the hdr_idx for event. May be used by line cursor.
130824 --
130825 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
130826
130827 --
130828 -- store sources from header extract. This can be improved to
130829 -- store only those sources from header extract that may be used in lines
130830 --
130831
130832 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
130833 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
130834 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
130835 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
130836 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
130837 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
130838 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
130839 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
130840 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
130841 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
130845 g_array_event(l_event_id).array_value_num('source_94') := l_array_source_94(hdr_idx);
130842 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
130843 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
130844 g_array_event(l_event_id).array_value_num('source_93') := l_array_source_93(hdr_idx);
130846 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
130847 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
130848 g_array_event(l_event_id).array_value_date('source_124') := l_array_source_124(hdr_idx);
130849 g_array_event(l_event_id).array_value_num('source_125') := l_array_source_125(hdr_idx);
130850 g_array_event(l_event_id).array_value_char('source_126') := l_array_source_126(hdr_idx);
130851 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
130852 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
130853 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
130854
130855 --
130856 -- initilaize the status of ae headers for diffrent balance types
130857 -- the status is initialised to C_NOT_CREATED (2)
130858 --
130859 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
130860 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
130861 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
130862
130863 --
130864 -- call api to validate and store accounting attributes for header
130865 --
130866
130867 ------------------------------------------------------------
130868 -- Accrual Reversal : to get date for Standard Source (NONE)
130869 ------------------------------------------------------------
130870 l_acc_rev_gl_date_source := NULL;
130871
130872 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
130873 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
130874 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
130875 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
130876 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
130877 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
130878 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
130879 l_rec_acct_attrs.array_date_value(4) :=
130880 xla_ae_sources_pkg.GetSystemSourceDate(
130881 p_source_code => 'XLA_EVENT_DATE'
130882 , p_source_type_code => 'Y'
130883 , p_source_application_id => 602
130884 );
130885
130886
130887 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
130888
130889 XLA_AE_HEADER_PKG.SetJeCategoryName;
130890
130891 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
130892 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
130893 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
130894 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
130895 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
130896
130897
130898 -- No header level analytical criteria
130899
130900 --
130901 --accounting attribute enhancement, bug 3612931
130902 --
130903 l_trx_reversal_source := SUBSTR(NULL, 1,30);
130904
130905 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
130906 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
130907
130908 xla_accounting_err_pkg.build_message
130909 (p_appli_s_name => 'XLA'
130910 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
130911 ,p_token_1 => 'ACCT_ATTR_NAME'
130912 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
130913 ,p_token_2 => 'PRODUCT_NAME'
130914 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
130915 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
130916 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
130917 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
130918
130919 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
130920 --
130921 -- following sets the accounting attributes needed to reverse
130922 -- accounting for a distributeion
130923 --
130924 xla_ae_lines_pkg.SetTrxReversalAttrs
130925 (p_event_id => l_event_id
130926 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
130927 ,p_trx_reversal_source => l_trx_reversal_source);
130928
130929 END IF;
130930
130931
130932 ----------------------------------------------------------------
130933 -- 4262811 - update the header statuses to invalid in need be
130934 ----------------------------------------------------------------
130935 --
130936 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
130937
130938
130939 -----------------------------------------------
130940 -- No accrual reversal for the event class/type
130941 -----------------------------------------------
130942 ----------------------------------------------------------------
130943
130947 END LOOP;
130944 --
130945 -- this ends the header loop iteration for one bulk fetch
130946 --
130948
130949 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
130950 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
130951
130952 --
130953 -- insert dummy rows into lines gt table that were created due to
130954 -- transaction reversals
130955 --
130956 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
130957 l_result := XLA_AE_LINES_PKG.InsertLines;
130958 END IF;
130959
130960 --
130961 -- reset the temp_line_num for each set of events fetched from header
130962 -- cursor rather than doing it for each new event in line cursor
130963 -- Bug 3939231
130964 --
130965 xla_ae_lines_pkg.g_temp_line_num := 0;
130966
130967
130968
130969 --
130970 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
130971 --
130972 --
130973 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130974
130975 trace
130976 (p_msg => 'SQL - FETCH line_cur'
130977 ,p_level => C_LEVEL_STATEMENT
130978 ,p_module => l_log_module);
130979
130980 END IF;
130981 --
130982 --
130983 LOOP
130984 --
130985 FETCH line_cur BULK COLLECT INTO
130986 l_array_entity_id
130987 , l_array_legal_entity_id
130988 , l_array_entity_code
130989 , l_array_transaction_num
130990 , l_array_event_id
130991 , l_array_class_code
130992 , l_array_event_type
130993 , l_array_event_number
130994 , l_array_event_date
130995 , l_array_transaction_date
130996 , l_array_reference_num_1
130997 , l_array_reference_num_2
130998 , l_array_reference_num_3
130999 , l_array_reference_num_4
131000 , l_array_reference_char_1
131001 , l_array_reference_char_2
131002 , l_array_reference_char_3
131003 , l_array_reference_char_4
131004 , l_array_reference_date_1
131005 , l_array_reference_date_2
131006 , l_array_reference_date_3
131007 , l_array_reference_date_4
131008 , l_array_event_created_by
131009 , l_array_budgetary_control_flag
131010 , l_array_extract_line_num
131011 , l_array_source_6
131012 , l_array_source_7
131013 , l_array_source_7_meaning
131014 , l_array_source_17
131015 , l_array_source_23
131016 , l_array_source_36
131017 , l_array_source_40
131018 , l_array_source_42
131019 , l_array_source_48
131020 , l_array_source_50
131021 , l_array_source_51
131022 , l_array_source_52
131023 , l_array_source_53
131024 , l_array_source_53_meaning
131025 , l_array_source_58
131026 , l_array_source_59
131027 , l_array_source_62
131028 , l_array_source_63
131029 , l_array_source_66
131030 , l_array_source_67
131031 , l_array_source_68
131032 , l_array_source_68_meaning
131033 , l_array_source_71
131034 , l_array_source_73
131035 , l_array_source_74
131036 , l_array_source_75
131037 , l_array_source_76
131038 , l_array_source_77
131039 , l_array_source_78
131040 , l_array_source_79
131041 , l_array_source_81
131042 , l_array_source_82
131043 , l_array_source_83
131044 , l_array_source_84
131045 , l_array_source_85
131046 , l_array_source_86
131047 , l_array_source_87
131048 , l_array_source_88
131049 , l_array_source_89
131050 , l_array_source_90
131051 , l_array_source_91
131052 , l_array_source_92
131053 , l_array_source_95
131054 , l_array_source_96
131055 , l_array_source_97
131056 , l_array_source_98
131057 , l_array_source_99
131058 , l_array_source_100
131059 , l_array_source_100_meaning
131060 , l_array_source_104
131061 , l_array_source_104_meaning
131062 , l_array_source_118
131063 , l_array_source_119
131064 , l_array_source_120
131065 , l_array_source_121
131066 , l_array_source_122
131067 , l_array_source_123
131068 , l_array_source_134
131069 , l_array_source_135
131070 , l_array_source_136
131071 , l_array_source_137
131072 , l_array_source_138
131073 , l_array_source_139
131074 , l_array_source_140
131075 , l_array_source_141
131076 , l_array_source_144
131077 , l_array_source_144_meaning
131078 , l_array_source_145
131079 , l_array_source_146
131080 LIMIT l_rows;
131081
131082 --
131083 IF (C_LEVEL_EVENT >= g_log_level) THEN
131084 trace
131085 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
131086 ,p_level => C_LEVEL_EVENT
131087 ,p_module => l_log_module);
131088 END IF;
131089 --
131090 EXIT WHEN l_array_entity_id.count = 0;
131091
131092 XLA_AE_LINES_PKG.g_rec_lines := null;
131093
131094 --
131095 -- Bug 4458708
131096 --
131097 XLA_AE_LINES_PKG.g_LineNumber := 0;
131098 --
131099 --
131100
131101 FOR Idx IN 1..l_array_event_id.count LOOP
131102 --
131103 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
131104 --
131108 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
131105 l_event_id := l_array_event_id(idx); -- 5648433
131106
131107 --
131109 --
131110
131111 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
131112 (g_array_event(l_event_id).array_value_num('header_index'))
131113 ,'N'
131114 ) <> 'Y'
131115 THEN
131116 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
131117 trace
131118 (p_msg => 'Trancaction revesal option is not Y '
131119 ,p_level => C_LEVEL_STATEMENT
131120 ,p_module => l_log_module);
131121 END IF;
131122
131123 --
131124 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
131125 --
131126 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
131127 --
131128 -- set event info as cache for other routines to refer event attributes
131129 --
131130
131131 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
131132 l_previous_event_id := l_event_id;
131133
131134 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
131135 (p_application_id => p_application_id
131136 ,p_primary_ledger_id => p_primary_ledger_id
131137 ,p_base_ledger_id => p_base_ledger_id
131138 ,p_target_ledger_id => p_target_ledger_id
131139 ,p_entity_id => l_array_entity_id(Idx)
131140 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
131141 ,p_entity_code => l_array_entity_code(Idx)
131142 ,p_transaction_num => l_array_transaction_num(Idx)
131143 ,p_event_id => l_array_event_id(Idx)
131144 ,p_event_class_code => l_array_class_code(Idx)
131145 ,p_event_type_code => l_array_event_type(Idx)
131146 ,p_event_number => l_array_event_number(Idx)
131147 ,p_event_date => l_array_event_date(Idx)
131148 ,p_transaction_date => l_array_transaction_date(Idx)
131149 ,p_reference_num_1 => l_array_reference_num_1(Idx)
131150 ,p_reference_num_2 => l_array_reference_num_2(Idx)
131151 ,p_reference_num_3 => l_array_reference_num_3(Idx)
131152 ,p_reference_num_4 => l_array_reference_num_4(Idx)
131153 ,p_reference_char_1 => l_array_reference_char_1(Idx)
131154 ,p_reference_char_2 => l_array_reference_char_2(Idx)
131155 ,p_reference_char_3 => l_array_reference_char_3(Idx)
131156 ,p_reference_char_4 => l_array_reference_char_4(Idx)
131157 ,p_reference_date_1 => l_array_reference_date_1(Idx)
131158 ,p_reference_date_2 => l_array_reference_date_2(Idx)
131159 ,p_reference_date_3 => l_array_reference_date_3(Idx)
131160 ,p_reference_date_4 => l_array_reference_date_4(Idx)
131161 ,p_event_created_by => l_array_event_created_by(Idx)
131162 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
131163 --
131164 END IF;
131165
131166
131167
131168 --
131169 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
131170
131171 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
131172
131173 IF l_continue_with_lines THEN
131174 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
131175 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
131176
131177 xla_accounting_err_pkg.build_message
131178 (p_appli_s_name => 'XLA'
131179 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
131180 ,p_token_1 => 'LINE_NUMBER'
131181 ,p_value_1 => l_array_extract_line_num(Idx)
131182 ,p_token_2 => 'PRODUCT_NAME'
131183 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
131184 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
131185 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
131186 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
131187
131188 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
131189 --
131190 -- following sets the accounting attributes needed to reverse
131191 -- accounting for a distributeion
131192 --
131193
131194 --
131195 -- 5217187
131196 --
131197 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
131198 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
131199 g_array_event(l_event_id).array_value_num('header_index'));
131200 --
131201 --
131202
131203 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
131204 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
131205 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
131206 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_71(Idx);
131207 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
131208 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
131209 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
131210 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_77(Idx);
131211 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
131215 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
131212 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_78(Idx);
131213 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
131214 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_79(Idx);
131216 l_rec_rev_acct_attrs.array_char_value(8) := g_array_event(l_event_id).array_value_char('source_80');
131217 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
131218 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_81(Idx);
131219 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
131220 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_82(Idx);
131221 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
131222 l_rec_rev_acct_attrs.array_num_value(11) := l_array_source_83(Idx);
131223 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
131224 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_84(Idx);
131225 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
131226 l_rec_rev_acct_attrs.array_char_value(13) := g_array_event(l_event_id).array_value_char('source_80');
131227 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
131228 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_85(Idx);
131229 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
131230 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_86(Idx);
131231 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
131232 l_rec_rev_acct_attrs.array_char_value(16) := g_array_event(l_event_id).array_value_char('source_56');
131233 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
131234 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_95(Idx);
131235 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
131236 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_48(Idx);
131237 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
131238 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_58(Idx);
131239 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
131240 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_66(Idx);
131241 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
131242 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_59(Idx);
131243 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
131244 l_rec_rev_acct_attrs.array_num_value(22) := l_array_source_96(Idx);
131245 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
131246 l_rec_rev_acct_attrs.array_num_value(23) := l_array_source_97(Idx);
131247
131248
131249 xla_ae_lines_pkg.SetAcctReversalAttrs
131250 (p_event_id => l_event_id
131251 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
131252 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131253 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
131254 END IF;
131255
131256 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
131257 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
131258
131259 --
131260 AcctLineType_41 (
131261 p_application_id => p_application_id
131262 ,p_event_id => l_event_id
131263 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131264 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131265 ,p_actual_flag => l_actual_flag
131266 ,p_balance_type_code => l_balance_type_code
131267 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131268
131269 , p_source_17 => l_array_source_17(Idx)
131270 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131271 , p_source_40 => l_array_source_40(Idx)
131272 , p_source_42 => l_array_source_42(Idx)
131273 , p_source_48 => l_array_source_48(Idx)
131274 , p_source_50 => l_array_source_50(Idx)
131275 , p_source_51 => l_array_source_51(Idx)
131276 , p_source_52 => l_array_source_52(Idx)
131277 , p_source_53 => l_array_source_53(Idx)
131278 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131279 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131280 , p_source_58 => l_array_source_58(Idx)
131281 , p_source_59 => l_array_source_59(Idx)
131282 , p_source_66 => l_array_source_66(Idx)
131283 , p_source_67 => l_array_source_67(Idx)
131284 , p_source_68 => l_array_source_68(Idx)
131285 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131286 , p_source_71 => l_array_source_71(Idx)
131287 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131288 , p_source_73 => l_array_source_73(Idx)
131289 , p_source_74 => l_array_source_74(Idx)
131290 , p_source_75 => l_array_source_75(Idx)
131291 , p_source_76 => l_array_source_76(Idx)
131292 , p_source_77 => l_array_source_77(Idx)
131293 , p_source_78 => l_array_source_78(Idx)
131294 , p_source_79 => l_array_source_79(Idx)
131295 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131296 , p_source_81 => l_array_source_81(Idx)
131297 , p_source_82 => l_array_source_82(Idx)
131298 , p_source_83 => l_array_source_83(Idx)
131299 , p_source_84 => l_array_source_84(Idx)
131300 , p_source_85 => l_array_source_85(Idx)
131301 , p_source_86 => l_array_source_86(Idx)
131302 , p_source_87 => l_array_source_87(Idx)
131303 , p_source_88 => l_array_source_88(Idx)
131304 , p_source_89 => l_array_source_89(Idx)
131308 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131305 , p_source_90 => l_array_source_90(Idx)
131306 , p_source_91 => l_array_source_91(Idx)
131307 , p_source_92 => l_array_source_92(Idx)
131309 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131310 , p_source_95 => l_array_source_95(Idx)
131311 , p_source_96 => l_array_source_96(Idx)
131312 , p_source_97 => l_array_source_97(Idx)
131313 );
131314 If(l_balance_type_code = 'A') THEN
131315 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131316 END IF;
131317
131318 --
131319
131320
131321 --
131322 AcctLineType_42 (
131323 p_application_id => p_application_id
131324 ,p_event_id => l_event_id
131325 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131326 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131327 ,p_actual_flag => l_actual_flag
131328 ,p_balance_type_code => l_balance_type_code
131329 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131330
131331 , p_source_17 => l_array_source_17(Idx)
131332 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131333 , p_source_40 => l_array_source_40(Idx)
131334 , p_source_42 => l_array_source_42(Idx)
131335 , p_source_48 => l_array_source_48(Idx)
131336 , p_source_50 => l_array_source_50(Idx)
131337 , p_source_51 => l_array_source_51(Idx)
131338 , p_source_52 => l_array_source_52(Idx)
131339 , p_source_53 => l_array_source_53(Idx)
131340 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131341 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131342 , p_source_58 => l_array_source_58(Idx)
131343 , p_source_59 => l_array_source_59(Idx)
131344 , p_source_66 => l_array_source_66(Idx)
131345 , p_source_67 => l_array_source_67(Idx)
131346 , p_source_68 => l_array_source_68(Idx)
131347 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131348 , p_source_71 => l_array_source_71(Idx)
131349 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131350 , p_source_73 => l_array_source_73(Idx)
131351 , p_source_74 => l_array_source_74(Idx)
131352 , p_source_75 => l_array_source_75(Idx)
131353 , p_source_76 => l_array_source_76(Idx)
131354 , p_source_77 => l_array_source_77(Idx)
131355 , p_source_78 => l_array_source_78(Idx)
131356 , p_source_79 => l_array_source_79(Idx)
131357 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131358 , p_source_81 => l_array_source_81(Idx)
131359 , p_source_82 => l_array_source_82(Idx)
131360 , p_source_83 => l_array_source_83(Idx)
131361 , p_source_84 => l_array_source_84(Idx)
131362 , p_source_85 => l_array_source_85(Idx)
131363 , p_source_86 => l_array_source_86(Idx)
131364 , p_source_87 => l_array_source_87(Idx)
131365 , p_source_90 => l_array_source_90(Idx)
131366 , p_source_91 => l_array_source_91(Idx)
131367 , p_source_92 => l_array_source_92(Idx)
131368 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131369 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131370 , p_source_95 => l_array_source_95(Idx)
131371 , p_source_96 => l_array_source_96(Idx)
131372 , p_source_97 => l_array_source_97(Idx)
131373 , p_source_98 => l_array_source_98(Idx)
131374 , p_source_99 => l_array_source_99(Idx)
131375 );
131376 If(l_balance_type_code = 'A') THEN
131377 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131378 END IF;
131379
131380 --
131381
131382
131383 --
131384 AcctLineType_45 (
131385 p_application_id => p_application_id
131386 ,p_event_id => l_event_id
131387 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131388 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131389 ,p_actual_flag => l_actual_flag
131390 ,p_balance_type_code => l_balance_type_code
131391 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131392
131393 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131394 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131395 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131396 , p_source_6 => l_array_source_6(Idx)
131397 , p_source_7 => l_array_source_7(Idx)
131398 , p_source_7_meaning => l_array_source_7_meaning(Idx)
131399 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131400 , p_source_17 => l_array_source_17(Idx)
131401 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131402 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131403 , p_source_40 => l_array_source_40(Idx)
131404 , p_source_42 => l_array_source_42(Idx)
131405 , p_source_48 => l_array_source_48(Idx)
131406 , p_source_53 => l_array_source_53(Idx)
131407 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131408 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131409 , p_source_58 => l_array_source_58(Idx)
131410 , p_source_59 => l_array_source_59(Idx)
131411 , p_source_66 => l_array_source_66(Idx)
131412 , p_source_67 => l_array_source_67(Idx)
131413 , p_source_68 => l_array_source_68(Idx)
131414 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131415 , p_source_71 => l_array_source_71(Idx)
131416 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131417 , p_source_73 => l_array_source_73(Idx)
131418 , p_source_74 => l_array_source_74(Idx)
131419 , p_source_75 => l_array_source_75(Idx)
131420 , p_source_76 => l_array_source_76(Idx)
131421 , p_source_77 => l_array_source_77(Idx)
131422 , p_source_78 => l_array_source_78(Idx)
131423 , p_source_79 => l_array_source_79(Idx)
131427 , p_source_83 => l_array_source_83(Idx)
131424 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131425 , p_source_81 => l_array_source_81(Idx)
131426 , p_source_82 => l_array_source_82(Idx)
131428 , p_source_84 => l_array_source_84(Idx)
131429 , p_source_85 => l_array_source_85(Idx)
131430 , p_source_86 => l_array_source_86(Idx)
131431 , p_source_89 => l_array_source_89(Idx)
131432 , p_source_90 => l_array_source_90(Idx)
131433 , p_source_91 => l_array_source_91(Idx)
131434 , p_source_92 => l_array_source_92(Idx)
131435 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131436 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131437 , p_source_95 => l_array_source_95(Idx)
131438 , p_source_96 => l_array_source_96(Idx)
131439 , p_source_97 => l_array_source_97(Idx)
131440 );
131441 If(l_balance_type_code = 'A') THEN
131442 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131443 END IF;
131444
131445 --
131446
131447
131448 --
131449 AcctLineType_50 (
131450 p_application_id => p_application_id
131451 ,p_event_id => l_event_id
131452 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131453 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131454 ,p_actual_flag => l_actual_flag
131455 ,p_balance_type_code => l_balance_type_code
131456 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131457
131458 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131459 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131460 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131461 , p_source_6 => l_array_source_6(Idx)
131462 , p_source_7 => l_array_source_7(Idx)
131463 , p_source_7_meaning => l_array_source_7_meaning(Idx)
131464 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131465 , p_source_17 => l_array_source_17(Idx)
131466 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131467 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131468 , p_source_40 => l_array_source_40(Idx)
131469 , p_source_42 => l_array_source_42(Idx)
131470 , p_source_48 => l_array_source_48(Idx)
131471 , p_source_53 => l_array_source_53(Idx)
131472 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131473 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131474 , p_source_58 => l_array_source_58(Idx)
131475 , p_source_59 => l_array_source_59(Idx)
131476 , p_source_66 => l_array_source_66(Idx)
131477 , p_source_67 => l_array_source_67(Idx)
131478 , p_source_68 => l_array_source_68(Idx)
131479 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131480 , p_source_71 => l_array_source_71(Idx)
131481 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131482 , p_source_73 => l_array_source_73(Idx)
131483 , p_source_74 => l_array_source_74(Idx)
131484 , p_source_75 => l_array_source_75(Idx)
131485 , p_source_76 => l_array_source_76(Idx)
131486 , p_source_77 => l_array_source_77(Idx)
131487 , p_source_78 => l_array_source_78(Idx)
131488 , p_source_79 => l_array_source_79(Idx)
131489 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131490 , p_source_81 => l_array_source_81(Idx)
131491 , p_source_82 => l_array_source_82(Idx)
131492 , p_source_83 => l_array_source_83(Idx)
131493 , p_source_84 => l_array_source_84(Idx)
131494 , p_source_85 => l_array_source_85(Idx)
131495 , p_source_86 => l_array_source_86(Idx)
131496 , p_source_89 => l_array_source_89(Idx)
131497 , p_source_90 => l_array_source_90(Idx)
131498 , p_source_91 => l_array_source_91(Idx)
131499 , p_source_92 => l_array_source_92(Idx)
131500 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131501 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131502 , p_source_95 => l_array_source_95(Idx)
131503 , p_source_96 => l_array_source_96(Idx)
131504 , p_source_97 => l_array_source_97(Idx)
131505 , p_source_100 => l_array_source_100(Idx)
131506 , p_source_100_meaning => l_array_source_100_meaning(Idx)
131507 );
131508 If(l_balance_type_code = 'A') THEN
131509 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131510 END IF;
131511
131512 --
131513
131514
131515 --
131516 AcctLineType_83 (
131517 p_application_id => p_application_id
131518 ,p_event_id => l_event_id
131519 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131520 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131521 ,p_actual_flag => l_actual_flag
131522 ,p_balance_type_code => l_balance_type_code
131523 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131524
131525 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131526 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131527 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131528 , p_source_6 => l_array_source_6(Idx)
131529 , p_source_7 => l_array_source_7(Idx)
131530 , p_source_7_meaning => l_array_source_7_meaning(Idx)
131531 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131532 , p_source_17 => l_array_source_17(Idx)
131533 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131534 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131535 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131536 , p_source_40 => l_array_source_40(Idx)
131537 , p_source_42 => l_array_source_42(Idx)
131538 , p_source_48 => l_array_source_48(Idx)
131539 , p_source_53 => l_array_source_53(Idx)
131543 , p_source_59 => l_array_source_59(Idx)
131540 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131541 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131542 , p_source_58 => l_array_source_58(Idx)
131544 , p_source_66 => l_array_source_66(Idx)
131545 , p_source_67 => l_array_source_67(Idx)
131546 , p_source_68 => l_array_source_68(Idx)
131547 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131548 , p_source_71 => l_array_source_71(Idx)
131549 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131550 , p_source_73 => l_array_source_73(Idx)
131551 , p_source_74 => l_array_source_74(Idx)
131552 , p_source_75 => l_array_source_75(Idx)
131553 , p_source_76 => l_array_source_76(Idx)
131554 , p_source_77 => l_array_source_77(Idx)
131555 , p_source_78 => l_array_source_78(Idx)
131556 , p_source_79 => l_array_source_79(Idx)
131557 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131558 , p_source_81 => l_array_source_81(Idx)
131559 , p_source_82 => l_array_source_82(Idx)
131560 , p_source_83 => l_array_source_83(Idx)
131561 , p_source_84 => l_array_source_84(Idx)
131562 , p_source_85 => l_array_source_85(Idx)
131563 , p_source_86 => l_array_source_86(Idx)
131564 , p_source_87 => l_array_source_87(Idx)
131565 , p_source_88 => l_array_source_88(Idx)
131566 , p_source_89 => l_array_source_89(Idx)
131567 , p_source_90 => l_array_source_90(Idx)
131568 , p_source_91 => l_array_source_91(Idx)
131569 , p_source_92 => l_array_source_92(Idx)
131570 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131571 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131572 , p_source_95 => l_array_source_95(Idx)
131573 , p_source_96 => l_array_source_96(Idx)
131574 , p_source_97 => l_array_source_97(Idx)
131575 , p_source_100 => l_array_source_100(Idx)
131576 , p_source_100_meaning => l_array_source_100_meaning(Idx)
131577 , p_source_118 => l_array_source_118(Idx)
131578 , p_source_119 => l_array_source_119(Idx)
131579 , p_source_120 => l_array_source_120(Idx)
131580 );
131581 If(l_balance_type_code = 'A') THEN
131582 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131583 END IF;
131584
131585 --
131586
131587
131588 --
131589 AcctLineType_86 (
131590 p_application_id => p_application_id
131591 ,p_event_id => l_event_id
131592 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131593 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131594 ,p_actual_flag => l_actual_flag
131595 ,p_balance_type_code => l_balance_type_code
131596 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131597
131598 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131599 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131600 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131601 , p_source_6 => l_array_source_6(Idx)
131602 , p_source_7 => l_array_source_7(Idx)
131603 , p_source_7_meaning => l_array_source_7_meaning(Idx)
131604 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131605 , p_source_17 => l_array_source_17(Idx)
131606 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131607 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131608 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131609 , p_source_40 => l_array_source_40(Idx)
131610 , p_source_42 => l_array_source_42(Idx)
131611 , p_source_48 => l_array_source_48(Idx)
131612 , p_source_53 => l_array_source_53(Idx)
131613 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131614 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131615 , p_source_58 => l_array_source_58(Idx)
131616 , p_source_59 => l_array_source_59(Idx)
131617 , p_source_66 => l_array_source_66(Idx)
131618 , p_source_67 => l_array_source_67(Idx)
131619 , p_source_68 => l_array_source_68(Idx)
131620 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131621 , p_source_71 => l_array_source_71(Idx)
131622 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131623 , p_source_73 => l_array_source_73(Idx)
131624 , p_source_74 => l_array_source_74(Idx)
131625 , p_source_75 => l_array_source_75(Idx)
131626 , p_source_76 => l_array_source_76(Idx)
131627 , p_source_77 => l_array_source_77(Idx)
131628 , p_source_78 => l_array_source_78(Idx)
131629 , p_source_79 => l_array_source_79(Idx)
131630 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131631 , p_source_81 => l_array_source_81(Idx)
131632 , p_source_82 => l_array_source_82(Idx)
131633 , p_source_83 => l_array_source_83(Idx)
131634 , p_source_84 => l_array_source_84(Idx)
131635 , p_source_85 => l_array_source_85(Idx)
131636 , p_source_86 => l_array_source_86(Idx)
131637 , p_source_87 => l_array_source_87(Idx)
131638 , p_source_90 => l_array_source_90(Idx)
131639 , p_source_91 => l_array_source_91(Idx)
131640 , p_source_92 => l_array_source_92(Idx)
131641 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131642 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131643 , p_source_95 => l_array_source_95(Idx)
131644 , p_source_96 => l_array_source_96(Idx)
131645 , p_source_97 => l_array_source_97(Idx)
131646 , p_source_98 => l_array_source_98(Idx)
131647 , p_source_99 => l_array_source_99(Idx)
131648 , p_source_100 => l_array_source_100(Idx)
131649 , p_source_100_meaning => l_array_source_100_meaning(Idx)
131650 , p_source_121 => l_array_source_121(Idx)
131651 , p_source_122 => l_array_source_122(Idx)
131655 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131652 , p_source_123 => l_array_source_123(Idx)
131653 );
131654 If(l_balance_type_code = 'A') THEN
131656 END IF;
131657
131658 --
131659
131660
131661 --
131662 AcctLineType_89 (
131663 p_application_id => p_application_id
131664 ,p_event_id => l_event_id
131665 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131666 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131667 ,p_actual_flag => l_actual_flag
131668 ,p_balance_type_code => l_balance_type_code
131669 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131670
131671 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131672 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131673 , p_source_17 => l_array_source_17(Idx)
131674 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
131675 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131676 , p_source_40 => l_array_source_40(Idx)
131677 , p_source_42 => l_array_source_42(Idx)
131678 , p_source_48 => l_array_source_48(Idx)
131679 , p_source_53 => l_array_source_53(Idx)
131680 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131681 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131682 , p_source_58 => l_array_source_58(Idx)
131683 , p_source_59 => l_array_source_59(Idx)
131684 , p_source_66 => l_array_source_66(Idx)
131685 , p_source_67 => l_array_source_67(Idx)
131686 , p_source_71 => l_array_source_71(Idx)
131687 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131688 , p_source_73 => l_array_source_73(Idx)
131689 , p_source_74 => l_array_source_74(Idx)
131690 , p_source_75 => l_array_source_75(Idx)
131691 , p_source_76 => l_array_source_76(Idx)
131692 , p_source_77 => l_array_source_77(Idx)
131693 , p_source_78 => l_array_source_78(Idx)
131694 , p_source_79 => l_array_source_79(Idx)
131695 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131696 , p_source_81 => l_array_source_81(Idx)
131697 , p_source_82 => l_array_source_82(Idx)
131698 , p_source_83 => l_array_source_83(Idx)
131699 , p_source_84 => l_array_source_84(Idx)
131700 , p_source_85 => l_array_source_85(Idx)
131701 , p_source_86 => l_array_source_86(Idx)
131702 , p_source_87 => l_array_source_87(Idx)
131703 , p_source_89 => l_array_source_89(Idx)
131704 , p_source_90 => l_array_source_90(Idx)
131705 , p_source_91 => l_array_source_91(Idx)
131706 , p_source_92 => l_array_source_92(Idx)
131707 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131708 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131709 , p_source_95 => l_array_source_95(Idx)
131710 , p_source_96 => l_array_source_96(Idx)
131711 , p_source_97 => l_array_source_97(Idx)
131712 , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
131713 , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
131714 , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
131715 );
131716 If(l_balance_type_code = 'A') THEN
131717 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131718 END IF;
131719
131720 --
131721
131722
131723 --
131724 AcctLineType_90 (
131725 p_application_id => p_application_id
131726 ,p_event_id => l_event_id
131727 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131728 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131729 ,p_actual_flag => l_actual_flag
131730 ,p_balance_type_code => l_balance_type_code
131731 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131732
131733 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131734 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131735 , p_source_17 => l_array_source_17(Idx)
131736 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
131737 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131738 , p_source_40 => l_array_source_40(Idx)
131739 , p_source_42 => l_array_source_42(Idx)
131740 , p_source_48 => l_array_source_48(Idx)
131741 , p_source_53 => l_array_source_53(Idx)
131742 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131743 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131744 , p_source_58 => l_array_source_58(Idx)
131745 , p_source_59 => l_array_source_59(Idx)
131746 , p_source_66 => l_array_source_66(Idx)
131747 , p_source_67 => l_array_source_67(Idx)
131748 , p_source_71 => l_array_source_71(Idx)
131749 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131750 , p_source_73 => l_array_source_73(Idx)
131751 , p_source_74 => l_array_source_74(Idx)
131752 , p_source_75 => l_array_source_75(Idx)
131753 , p_source_76 => l_array_source_76(Idx)
131754 , p_source_77 => l_array_source_77(Idx)
131755 , p_source_78 => l_array_source_78(Idx)
131756 , p_source_79 => l_array_source_79(Idx)
131757 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131758 , p_source_81 => l_array_source_81(Idx)
131759 , p_source_82 => l_array_source_82(Idx)
131760 , p_source_83 => l_array_source_83(Idx)
131761 , p_source_84 => l_array_source_84(Idx)
131762 , p_source_85 => l_array_source_85(Idx)
131763 , p_source_86 => l_array_source_86(Idx)
131764 , p_source_87 => l_array_source_87(Idx)
131765 , p_source_90 => l_array_source_90(Idx)
131766 , p_source_91 => l_array_source_91(Idx)
131767 , p_source_92 => l_array_source_92(Idx)
131768 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131772 , p_source_97 => l_array_source_97(Idx)
131769 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131770 , p_source_95 => l_array_source_95(Idx)
131771 , p_source_96 => l_array_source_96(Idx)
131773 , p_source_99 => l_array_source_99(Idx)
131774 , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
131775 , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
131776 , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
131777 );
131778 If(l_balance_type_code = 'A') THEN
131779 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131780 END IF;
131781
131782 --
131783
131784
131785 --
131786 AcctLineType_97 (
131787 p_application_id => p_application_id
131788 ,p_event_id => l_event_id
131789 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131790 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131791 ,p_actual_flag => l_actual_flag
131792 ,p_balance_type_code => l_balance_type_code
131793 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131794
131795 , p_source_36 => l_array_source_36(Idx)
131796 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131797 , p_source_40 => l_array_source_40(Idx)
131798 , p_source_42 => l_array_source_42(Idx)
131799 , p_source_48 => l_array_source_48(Idx)
131800 , p_source_53 => l_array_source_53(Idx)
131801 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131802 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131803 , p_source_58 => l_array_source_58(Idx)
131804 , p_source_59 => l_array_source_59(Idx)
131805 , p_source_66 => l_array_source_66(Idx)
131806 , p_source_67 => l_array_source_67(Idx)
131807 , p_source_68 => l_array_source_68(Idx)
131808 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131809 , p_source_71 => l_array_source_71(Idx)
131810 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131811 , p_source_73 => l_array_source_73(Idx)
131812 , p_source_74 => l_array_source_74(Idx)
131813 , p_source_75 => l_array_source_75(Idx)
131814 , p_source_76 => l_array_source_76(Idx)
131815 , p_source_77 => l_array_source_77(Idx)
131816 , p_source_78 => l_array_source_78(Idx)
131817 , p_source_79 => l_array_source_79(Idx)
131818 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131819 , p_source_81 => l_array_source_81(Idx)
131820 , p_source_82 => l_array_source_82(Idx)
131821 , p_source_83 => l_array_source_83(Idx)
131822 , p_source_84 => l_array_source_84(Idx)
131823 , p_source_85 => l_array_source_85(Idx)
131824 , p_source_86 => l_array_source_86(Idx)
131825 , p_source_87 => l_array_source_87(Idx)
131826 , p_source_88 => l_array_source_88(Idx)
131827 , p_source_89 => l_array_source_89(Idx)
131828 , p_source_90 => l_array_source_90(Idx)
131829 , p_source_91 => l_array_source_91(Idx)
131830 , p_source_92 => l_array_source_92(Idx)
131831 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131832 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131833 , p_source_95 => l_array_source_95(Idx)
131834 , p_source_96 => l_array_source_96(Idx)
131835 , p_source_97 => l_array_source_97(Idx)
131836 , p_source_118 => l_array_source_118(Idx)
131837 , p_source_119 => l_array_source_119(Idx)
131838 , p_source_120 => l_array_source_120(Idx)
131839 );
131840 If(l_balance_type_code = 'A') THEN
131841 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131842 END IF;
131843
131844 --
131845
131846
131847 --
131848 AcctLineType_98 (
131849 p_application_id => p_application_id
131850 ,p_event_id => l_event_id
131851 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131852 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131853 ,p_actual_flag => l_actual_flag
131854 ,p_balance_type_code => l_balance_type_code
131855 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131856
131857 , p_source_36 => l_array_source_36(Idx)
131858 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131859 , p_source_40 => l_array_source_40(Idx)
131860 , p_source_42 => l_array_source_42(Idx)
131861 , p_source_48 => l_array_source_48(Idx)
131862 , p_source_53 => l_array_source_53(Idx)
131863 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131864 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131865 , p_source_58 => l_array_source_58(Idx)
131866 , p_source_59 => l_array_source_59(Idx)
131867 , p_source_66 => l_array_source_66(Idx)
131868 , p_source_67 => l_array_source_67(Idx)
131869 , p_source_68 => l_array_source_68(Idx)
131870 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131871 , p_source_71 => l_array_source_71(Idx)
131872 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131873 , p_source_73 => l_array_source_73(Idx)
131874 , p_source_74 => l_array_source_74(Idx)
131875 , p_source_75 => l_array_source_75(Idx)
131876 , p_source_76 => l_array_source_76(Idx)
131877 , p_source_77 => l_array_source_77(Idx)
131878 , p_source_78 => l_array_source_78(Idx)
131879 , p_source_79 => l_array_source_79(Idx)
131880 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131881 , p_source_81 => l_array_source_81(Idx)
131882 , p_source_82 => l_array_source_82(Idx)
131883 , p_source_83 => l_array_source_83(Idx)
131884 , p_source_84 => l_array_source_84(Idx)
131885 , p_source_85 => l_array_source_85(Idx)
131886 , p_source_86 => l_array_source_86(Idx)
131887 , p_source_87 => l_array_source_87(Idx)
131888 , p_source_90 => l_array_source_90(Idx)
131889 , p_source_91 => l_array_source_91(Idx)
131893 , p_source_95 => l_array_source_95(Idx)
131890 , p_source_92 => l_array_source_92(Idx)
131891 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131892 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131894 , p_source_96 => l_array_source_96(Idx)
131895 , p_source_97 => l_array_source_97(Idx)
131896 , p_source_98 => l_array_source_98(Idx)
131897 , p_source_99 => l_array_source_99(Idx)
131898 , p_source_121 => l_array_source_121(Idx)
131899 , p_source_122 => l_array_source_122(Idx)
131900 , p_source_123 => l_array_source_123(Idx)
131901 );
131902 If(l_balance_type_code = 'A') THEN
131903 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131904 END IF;
131905
131906 --
131907
131908
131909 --
131910 AcctLineType_115 (
131911 p_application_id => p_application_id
131912 ,p_event_id => l_event_id
131913 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131914 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131915 ,p_actual_flag => l_actual_flag
131916 ,p_balance_type_code => l_balance_type_code
131917 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131918
131919 , p_source_36 => l_array_source_36(Idx)
131920 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131921 , p_source_40 => l_array_source_40(Idx)
131922 , p_source_42 => l_array_source_42(Idx)
131923 , p_source_48 => l_array_source_48(Idx)
131924 , p_source_53 => l_array_source_53(Idx)
131925 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131926 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131927 , p_source_58 => l_array_source_58(Idx)
131928 , p_source_59 => l_array_source_59(Idx)
131929 , p_source_66 => l_array_source_66(Idx)
131930 , p_source_67 => l_array_source_67(Idx)
131931 , p_source_68 => l_array_source_68(Idx)
131932 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131933 , p_source_71 => l_array_source_71(Idx)
131934 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131935 , p_source_73 => l_array_source_73(Idx)
131936 , p_source_74 => l_array_source_74(Idx)
131937 , p_source_75 => l_array_source_75(Idx)
131938 , p_source_76 => l_array_source_76(Idx)
131939 , p_source_77 => l_array_source_77(Idx)
131940 , p_source_78 => l_array_source_78(Idx)
131941 , p_source_79 => l_array_source_79(Idx)
131942 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131943 , p_source_81 => l_array_source_81(Idx)
131944 , p_source_82 => l_array_source_82(Idx)
131945 , p_source_83 => l_array_source_83(Idx)
131946 , p_source_84 => l_array_source_84(Idx)
131947 , p_source_85 => l_array_source_85(Idx)
131948 , p_source_86 => l_array_source_86(Idx)
131949 , p_source_87 => l_array_source_87(Idx)
131950 , p_source_88 => l_array_source_88(Idx)
131951 , p_source_89 => l_array_source_89(Idx)
131952 , p_source_90 => l_array_source_90(Idx)
131953 , p_source_91 => l_array_source_91(Idx)
131954 , p_source_92 => l_array_source_92(Idx)
131955 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131956 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131957 , p_source_95 => l_array_source_95(Idx)
131958 , p_source_96 => l_array_source_96(Idx)
131959 , p_source_97 => l_array_source_97(Idx)
131960 , p_source_100 => l_array_source_100(Idx)
131961 , p_source_100_meaning => l_array_source_100_meaning(Idx)
131962 , p_source_118 => l_array_source_118(Idx)
131963 , p_source_119 => l_array_source_119(Idx)
131964 , p_source_120 => l_array_source_120(Idx)
131965 );
131966 If(l_balance_type_code = 'A') THEN
131967 l_actual_gain_loss_ref := l_gain_or_loss_ref;
131968 END IF;
131969
131970 --
131971
131972
131973 --
131974 AcctLineType_116 (
131975 p_application_id => p_application_id
131976 ,p_event_id => l_event_id
131977 ,p_calculate_acctd_flag => l_calculate_acctd_flag
131978 ,p_calculate_g_l_flag => l_calculate_g_l_flag
131979 ,p_actual_flag => l_actual_flag
131980 ,p_balance_type_code => l_balance_type_code
131981 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131982
131983 , p_source_36 => l_array_source_36(Idx)
131984 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131985 , p_source_40 => l_array_source_40(Idx)
131986 , p_source_42 => l_array_source_42(Idx)
131987 , p_source_48 => l_array_source_48(Idx)
131988 , p_source_53 => l_array_source_53(Idx)
131989 , p_source_53_meaning => l_array_source_53_meaning(Idx)
131990 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131991 , p_source_58 => l_array_source_58(Idx)
131992 , p_source_59 => l_array_source_59(Idx)
131993 , p_source_66 => l_array_source_66(Idx)
131994 , p_source_67 => l_array_source_67(Idx)
131995 , p_source_68 => l_array_source_68(Idx)
131996 , p_source_68_meaning => l_array_source_68_meaning(Idx)
131997 , p_source_71 => l_array_source_71(Idx)
131998 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131999 , p_source_73 => l_array_source_73(Idx)
132000 , p_source_74 => l_array_source_74(Idx)
132001 , p_source_75 => l_array_source_75(Idx)
132002 , p_source_76 => l_array_source_76(Idx)
132003 , p_source_77 => l_array_source_77(Idx)
132004 , p_source_78 => l_array_source_78(Idx)
132005 , p_source_79 => l_array_source_79(Idx)
132006 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132007 , p_source_81 => l_array_source_81(Idx)
132008 , p_source_82 => l_array_source_82(Idx)
132009 , p_source_83 => l_array_source_83(Idx)
132010 , p_source_84 => l_array_source_84(Idx)
132011 , p_source_85 => l_array_source_85(Idx)
132015 , p_source_91 => l_array_source_91(Idx)
132012 , p_source_86 => l_array_source_86(Idx)
132013 , p_source_87 => l_array_source_87(Idx)
132014 , p_source_90 => l_array_source_90(Idx)
132016 , p_source_92 => l_array_source_92(Idx)
132017 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132018 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132019 , p_source_95 => l_array_source_95(Idx)
132020 , p_source_96 => l_array_source_96(Idx)
132021 , p_source_97 => l_array_source_97(Idx)
132022 , p_source_98 => l_array_source_98(Idx)
132023 , p_source_99 => l_array_source_99(Idx)
132024 , p_source_100 => l_array_source_100(Idx)
132025 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132026 , p_source_118 => l_array_source_118(Idx)
132027 , p_source_122 => l_array_source_122(Idx)
132028 , p_source_123 => l_array_source_123(Idx)
132029 );
132030 If(l_balance_type_code = 'A') THEN
132031 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132032 END IF;
132033
132034 --
132035
132036
132037 --
132038 AcctLineType_123 (
132039 p_application_id => p_application_id
132040 ,p_event_id => l_event_id
132041 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132042 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132043 ,p_actual_flag => l_actual_flag
132044 ,p_balance_type_code => l_balance_type_code
132045 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132046
132047 , p_source_36 => l_array_source_36(Idx)
132048 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132049 , p_source_40 => l_array_source_40(Idx)
132050 , p_source_42 => l_array_source_42(Idx)
132051 , p_source_48 => l_array_source_48(Idx)
132052 , p_source_53 => l_array_source_53(Idx)
132053 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132054 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132055 , p_source_58 => l_array_source_58(Idx)
132056 , p_source_59 => l_array_source_59(Idx)
132057 , p_source_66 => l_array_source_66(Idx)
132058 , p_source_67 => l_array_source_67(Idx)
132059 , p_source_68 => l_array_source_68(Idx)
132060 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132061 , p_source_71 => l_array_source_71(Idx)
132062 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132063 , p_source_73 => l_array_source_73(Idx)
132064 , p_source_74 => l_array_source_74(Idx)
132065 , p_source_75 => l_array_source_75(Idx)
132066 , p_source_76 => l_array_source_76(Idx)
132067 , p_source_77 => l_array_source_77(Idx)
132068 , p_source_78 => l_array_source_78(Idx)
132069 , p_source_79 => l_array_source_79(Idx)
132070 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132071 , p_source_81 => l_array_source_81(Idx)
132072 , p_source_82 => l_array_source_82(Idx)
132073 , p_source_83 => l_array_source_83(Idx)
132074 , p_source_84 => l_array_source_84(Idx)
132075 , p_source_85 => l_array_source_85(Idx)
132076 , p_source_86 => l_array_source_86(Idx)
132077 , p_source_87 => l_array_source_87(Idx)
132078 , p_source_88 => l_array_source_88(Idx)
132079 , p_source_89 => l_array_source_89(Idx)
132080 , p_source_90 => l_array_source_90(Idx)
132081 , p_source_91 => l_array_source_91(Idx)
132082 , p_source_92 => l_array_source_92(Idx)
132083 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132084 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132085 , p_source_95 => l_array_source_95(Idx)
132086 , p_source_96 => l_array_source_96(Idx)
132087 , p_source_97 => l_array_source_97(Idx)
132088 , p_source_100 => l_array_source_100(Idx)
132089 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132090 , p_source_118 => l_array_source_118(Idx)
132091 , p_source_119 => l_array_source_119(Idx)
132092 , p_source_120 => l_array_source_120(Idx)
132093 );
132094 If(l_balance_type_code = 'A') THEN
132095 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132096 END IF;
132097
132098 --
132099
132100
132101 --
132102 AcctLineType_124 (
132103 p_application_id => p_application_id
132104 ,p_event_id => l_event_id
132105 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132106 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132107 ,p_actual_flag => l_actual_flag
132108 ,p_balance_type_code => l_balance_type_code
132109 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132110
132111 , p_source_36 => l_array_source_36(Idx)
132112 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132113 , p_source_40 => l_array_source_40(Idx)
132114 , p_source_42 => l_array_source_42(Idx)
132115 , p_source_48 => l_array_source_48(Idx)
132116 , p_source_53 => l_array_source_53(Idx)
132117 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132118 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132119 , p_source_58 => l_array_source_58(Idx)
132120 , p_source_59 => l_array_source_59(Idx)
132121 , p_source_66 => l_array_source_66(Idx)
132122 , p_source_67 => l_array_source_67(Idx)
132123 , p_source_68 => l_array_source_68(Idx)
132124 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132125 , p_source_71 => l_array_source_71(Idx)
132126 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132127 , p_source_73 => l_array_source_73(Idx)
132128 , p_source_74 => l_array_source_74(Idx)
132129 , p_source_75 => l_array_source_75(Idx)
132130 , p_source_76 => l_array_source_76(Idx)
132131 , p_source_77 => l_array_source_77(Idx)
132132 , p_source_78 => l_array_source_78(Idx)
132136 , p_source_82 => l_array_source_82(Idx)
132133 , p_source_79 => l_array_source_79(Idx)
132134 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132135 , p_source_81 => l_array_source_81(Idx)
132137 , p_source_83 => l_array_source_83(Idx)
132138 , p_source_84 => l_array_source_84(Idx)
132139 , p_source_85 => l_array_source_85(Idx)
132140 , p_source_86 => l_array_source_86(Idx)
132141 , p_source_87 => l_array_source_87(Idx)
132142 , p_source_90 => l_array_source_90(Idx)
132143 , p_source_91 => l_array_source_91(Idx)
132144 , p_source_92 => l_array_source_92(Idx)
132145 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132146 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132147 , p_source_95 => l_array_source_95(Idx)
132148 , p_source_96 => l_array_source_96(Idx)
132149 , p_source_97 => l_array_source_97(Idx)
132150 , p_source_98 => l_array_source_98(Idx)
132151 , p_source_99 => l_array_source_99(Idx)
132152 , p_source_100 => l_array_source_100(Idx)
132153 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132154 , p_source_121 => l_array_source_121(Idx)
132155 , p_source_122 => l_array_source_122(Idx)
132156 , p_source_123 => l_array_source_123(Idx)
132157 );
132158 If(l_balance_type_code = 'A') THEN
132159 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132160 END IF;
132161
132162 --
132163
132164
132165 --
132166 AcctLineType_134 (
132167 p_application_id => p_application_id
132168 ,p_event_id => l_event_id
132169 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132170 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132171 ,p_actual_flag => l_actual_flag
132172 ,p_balance_type_code => l_balance_type_code
132173 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132174
132175 , p_source_36 => l_array_source_36(Idx)
132176 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132177 , p_source_40 => l_array_source_40(Idx)
132178 , p_source_42 => l_array_source_42(Idx)
132179 , p_source_48 => l_array_source_48(Idx)
132180 , p_source_53 => l_array_source_53(Idx)
132181 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132182 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132183 , p_source_58 => l_array_source_58(Idx)
132184 , p_source_59 => l_array_source_59(Idx)
132185 , p_source_66 => l_array_source_66(Idx)
132186 , p_source_67 => l_array_source_67(Idx)
132187 , p_source_68 => l_array_source_68(Idx)
132188 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132189 , p_source_71 => l_array_source_71(Idx)
132190 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132191 , p_source_73 => l_array_source_73(Idx)
132192 , p_source_74 => l_array_source_74(Idx)
132193 , p_source_75 => l_array_source_75(Idx)
132194 , p_source_76 => l_array_source_76(Idx)
132195 , p_source_77 => l_array_source_77(Idx)
132196 , p_source_78 => l_array_source_78(Idx)
132197 , p_source_79 => l_array_source_79(Idx)
132198 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132199 , p_source_81 => l_array_source_81(Idx)
132200 , p_source_82 => l_array_source_82(Idx)
132201 , p_source_83 => l_array_source_83(Idx)
132202 , p_source_84 => l_array_source_84(Idx)
132203 , p_source_85 => l_array_source_85(Idx)
132204 , p_source_86 => l_array_source_86(Idx)
132205 , p_source_87 => l_array_source_87(Idx)
132206 , p_source_88 => l_array_source_88(Idx)
132207 , p_source_89 => l_array_source_89(Idx)
132208 , p_source_90 => l_array_source_90(Idx)
132209 , p_source_91 => l_array_source_91(Idx)
132210 , p_source_92 => l_array_source_92(Idx)
132211 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132212 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132213 , p_source_95 => l_array_source_95(Idx)
132214 , p_source_96 => l_array_source_96(Idx)
132215 , p_source_97 => l_array_source_97(Idx)
132216 , p_source_118 => l_array_source_118(Idx)
132217 , p_source_119 => l_array_source_119(Idx)
132218 , p_source_120 => l_array_source_120(Idx)
132219 );
132220 If(l_balance_type_code = 'A') THEN
132221 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132222 END IF;
132223
132224 --
132225
132226
132227 --
132228 AcctLineType_135 (
132229 p_application_id => p_application_id
132230 ,p_event_id => l_event_id
132231 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132232 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132233 ,p_actual_flag => l_actual_flag
132234 ,p_balance_type_code => l_balance_type_code
132235 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132236
132237 , p_source_36 => l_array_source_36(Idx)
132238 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132239 , p_source_40 => l_array_source_40(Idx)
132240 , p_source_42 => l_array_source_42(Idx)
132241 , p_source_48 => l_array_source_48(Idx)
132242 , p_source_53 => l_array_source_53(Idx)
132243 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132244 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132245 , p_source_58 => l_array_source_58(Idx)
132246 , p_source_59 => l_array_source_59(Idx)
132247 , p_source_66 => l_array_source_66(Idx)
132248 , p_source_67 => l_array_source_67(Idx)
132249 , p_source_68 => l_array_source_68(Idx)
132250 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132251 , p_source_71 => l_array_source_71(Idx)
132252 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132253 , p_source_73 => l_array_source_73(Idx)
132257 , p_source_77 => l_array_source_77(Idx)
132254 , p_source_74 => l_array_source_74(Idx)
132255 , p_source_75 => l_array_source_75(Idx)
132256 , p_source_76 => l_array_source_76(Idx)
132258 , p_source_78 => l_array_source_78(Idx)
132259 , p_source_79 => l_array_source_79(Idx)
132260 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132261 , p_source_81 => l_array_source_81(Idx)
132262 , p_source_82 => l_array_source_82(Idx)
132263 , p_source_83 => l_array_source_83(Idx)
132264 , p_source_84 => l_array_source_84(Idx)
132265 , p_source_85 => l_array_source_85(Idx)
132266 , p_source_86 => l_array_source_86(Idx)
132267 , p_source_87 => l_array_source_87(Idx)
132268 , p_source_90 => l_array_source_90(Idx)
132269 , p_source_91 => l_array_source_91(Idx)
132270 , p_source_92 => l_array_source_92(Idx)
132271 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132272 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132273 , p_source_95 => l_array_source_95(Idx)
132274 , p_source_96 => l_array_source_96(Idx)
132275 , p_source_97 => l_array_source_97(Idx)
132276 , p_source_98 => l_array_source_98(Idx)
132277 , p_source_99 => l_array_source_99(Idx)
132278 , p_source_121 => l_array_source_121(Idx)
132279 , p_source_122 => l_array_source_122(Idx)
132280 , p_source_123 => l_array_source_123(Idx)
132281 );
132282 If(l_balance_type_code = 'A') THEN
132283 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132284 END IF;
132285
132286 --
132287
132288
132289 --
132290 AcctLineType_145 (
132291 p_application_id => p_application_id
132292 ,p_event_id => l_event_id
132293 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132294 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132295 ,p_actual_flag => l_actual_flag
132296 ,p_balance_type_code => l_balance_type_code
132297 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132298
132299 , p_source_17 => l_array_source_17(Idx)
132300 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132301 , p_source_40 => l_array_source_40(Idx)
132302 , p_source_42 => l_array_source_42(Idx)
132303 , p_source_48 => l_array_source_48(Idx)
132304 , p_source_50 => l_array_source_50(Idx)
132305 , p_source_51 => l_array_source_51(Idx)
132306 , p_source_52 => l_array_source_52(Idx)
132307 , p_source_53 => l_array_source_53(Idx)
132308 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132309 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132310 , p_source_58 => l_array_source_58(Idx)
132311 , p_source_59 => l_array_source_59(Idx)
132312 , p_source_66 => l_array_source_66(Idx)
132313 , p_source_67 => l_array_source_67(Idx)
132314 , p_source_68 => l_array_source_68(Idx)
132315 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132316 , p_source_71 => l_array_source_71(Idx)
132317 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132318 , p_source_73 => l_array_source_73(Idx)
132319 , p_source_74 => l_array_source_74(Idx)
132320 , p_source_75 => l_array_source_75(Idx)
132321 , p_source_76 => l_array_source_76(Idx)
132322 , p_source_77 => l_array_source_77(Idx)
132323 , p_source_78 => l_array_source_78(Idx)
132324 , p_source_79 => l_array_source_79(Idx)
132325 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132326 , p_source_81 => l_array_source_81(Idx)
132327 , p_source_82 => l_array_source_82(Idx)
132328 , p_source_83 => l_array_source_83(Idx)
132329 , p_source_84 => l_array_source_84(Idx)
132330 , p_source_85 => l_array_source_85(Idx)
132331 , p_source_86 => l_array_source_86(Idx)
132332 , p_source_87 => l_array_source_87(Idx)
132333 , p_source_88 => l_array_source_88(Idx)
132334 , p_source_89 => l_array_source_89(Idx)
132335 , p_source_90 => l_array_source_90(Idx)
132336 , p_source_91 => l_array_source_91(Idx)
132337 , p_source_92 => l_array_source_92(Idx)
132338 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132339 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132340 , p_source_95 => l_array_source_95(Idx)
132341 , p_source_96 => l_array_source_96(Idx)
132342 , p_source_97 => l_array_source_97(Idx)
132343 , p_source_100 => l_array_source_100(Idx)
132344 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132345 );
132346 If(l_balance_type_code = 'A') THEN
132347 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132348 END IF;
132349
132350 --
132351
132352
132353 --
132354 AcctLineType_146 (
132355 p_application_id => p_application_id
132356 ,p_event_id => l_event_id
132357 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132358 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132359 ,p_actual_flag => l_actual_flag
132360 ,p_balance_type_code => l_balance_type_code
132361 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132362
132363 , p_source_17 => l_array_source_17(Idx)
132364 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132365 , p_source_40 => l_array_source_40(Idx)
132366 , p_source_42 => l_array_source_42(Idx)
132367 , p_source_48 => l_array_source_48(Idx)
132368 , p_source_50 => l_array_source_50(Idx)
132369 , p_source_51 => l_array_source_51(Idx)
132370 , p_source_52 => l_array_source_52(Idx)
132371 , p_source_53 => l_array_source_53(Idx)
132372 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132373 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132374 , p_source_58 => l_array_source_58(Idx)
132375 , p_source_59 => l_array_source_59(Idx)
132379 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132376 , p_source_66 => l_array_source_66(Idx)
132377 , p_source_67 => l_array_source_67(Idx)
132378 , p_source_68 => l_array_source_68(Idx)
132380 , p_source_71 => l_array_source_71(Idx)
132381 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132382 , p_source_73 => l_array_source_73(Idx)
132383 , p_source_74 => l_array_source_74(Idx)
132384 , p_source_75 => l_array_source_75(Idx)
132385 , p_source_76 => l_array_source_76(Idx)
132386 , p_source_77 => l_array_source_77(Idx)
132387 , p_source_78 => l_array_source_78(Idx)
132388 , p_source_79 => l_array_source_79(Idx)
132389 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132390 , p_source_81 => l_array_source_81(Idx)
132391 , p_source_82 => l_array_source_82(Idx)
132392 , p_source_83 => l_array_source_83(Idx)
132393 , p_source_84 => l_array_source_84(Idx)
132394 , p_source_85 => l_array_source_85(Idx)
132395 , p_source_86 => l_array_source_86(Idx)
132396 , p_source_87 => l_array_source_87(Idx)
132397 , p_source_90 => l_array_source_90(Idx)
132398 , p_source_91 => l_array_source_91(Idx)
132399 , p_source_92 => l_array_source_92(Idx)
132400 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132401 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132402 , p_source_95 => l_array_source_95(Idx)
132403 , p_source_96 => l_array_source_96(Idx)
132404 , p_source_97 => l_array_source_97(Idx)
132405 , p_source_98 => l_array_source_98(Idx)
132406 , p_source_99 => l_array_source_99(Idx)
132407 , p_source_100 => l_array_source_100(Idx)
132408 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132409 );
132410 If(l_balance_type_code = 'A') THEN
132411 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132412 END IF;
132413
132414 --
132415
132416
132417 --
132418 AcctLineType_147 (
132419 p_application_id => p_application_id
132420 ,p_event_id => l_event_id
132421 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132422 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132423 ,p_actual_flag => l_actual_flag
132424 ,p_balance_type_code => l_balance_type_code
132425 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132426
132427 , p_source_36 => l_array_source_36(Idx)
132428 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132429 , p_source_40 => l_array_source_40(Idx)
132430 , p_source_42 => l_array_source_42(Idx)
132431 , p_source_48 => l_array_source_48(Idx)
132432 , p_source_53 => l_array_source_53(Idx)
132433 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132434 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132435 , p_source_58 => l_array_source_58(Idx)
132436 , p_source_59 => l_array_source_59(Idx)
132437 , p_source_66 => l_array_source_66(Idx)
132438 , p_source_67 => l_array_source_67(Idx)
132439 , p_source_68 => l_array_source_68(Idx)
132440 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132441 , p_source_71 => l_array_source_71(Idx)
132442 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132443 , p_source_73 => l_array_source_73(Idx)
132444 , p_source_74 => l_array_source_74(Idx)
132445 , p_source_75 => l_array_source_75(Idx)
132446 , p_source_76 => l_array_source_76(Idx)
132447 , p_source_77 => l_array_source_77(Idx)
132448 , p_source_78 => l_array_source_78(Idx)
132449 , p_source_79 => l_array_source_79(Idx)
132450 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132451 , p_source_81 => l_array_source_81(Idx)
132452 , p_source_82 => l_array_source_82(Idx)
132453 , p_source_83 => l_array_source_83(Idx)
132454 , p_source_84 => l_array_source_84(Idx)
132455 , p_source_85 => l_array_source_85(Idx)
132456 , p_source_86 => l_array_source_86(Idx)
132457 , p_source_87 => l_array_source_87(Idx)
132458 , p_source_88 => l_array_source_88(Idx)
132459 , p_source_89 => l_array_source_89(Idx)
132460 , p_source_90 => l_array_source_90(Idx)
132461 , p_source_91 => l_array_source_91(Idx)
132462 , p_source_92 => l_array_source_92(Idx)
132463 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132464 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132465 , p_source_95 => l_array_source_95(Idx)
132466 , p_source_96 => l_array_source_96(Idx)
132467 , p_source_97 => l_array_source_97(Idx)
132468 , p_source_100 => l_array_source_100(Idx)
132469 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132470 , p_source_118 => l_array_source_118(Idx)
132471 , p_source_119 => l_array_source_119(Idx)
132472 , p_source_120 => l_array_source_120(Idx)
132473 );
132474 If(l_balance_type_code = 'A') THEN
132475 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132476 END IF;
132477
132478 --
132479
132480
132481 --
132482 AcctLineType_148 (
132483 p_application_id => p_application_id
132484 ,p_event_id => l_event_id
132485 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132486 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132487 ,p_actual_flag => l_actual_flag
132488 ,p_balance_type_code => l_balance_type_code
132489 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132490
132491 , p_source_36 => l_array_source_36(Idx)
132492 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132493 , p_source_40 => l_array_source_40(Idx)
132494 , p_source_42 => l_array_source_42(Idx)
132495 , p_source_48 => l_array_source_48(Idx)
132499 , p_source_58 => l_array_source_58(Idx)
132496 , p_source_53 => l_array_source_53(Idx)
132497 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132498 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132500 , p_source_59 => l_array_source_59(Idx)
132501 , p_source_66 => l_array_source_66(Idx)
132502 , p_source_67 => l_array_source_67(Idx)
132503 , p_source_68 => l_array_source_68(Idx)
132504 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132505 , p_source_71 => l_array_source_71(Idx)
132506 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132507 , p_source_73 => l_array_source_73(Idx)
132508 , p_source_74 => l_array_source_74(Idx)
132509 , p_source_75 => l_array_source_75(Idx)
132510 , p_source_76 => l_array_source_76(Idx)
132511 , p_source_77 => l_array_source_77(Idx)
132512 , p_source_78 => l_array_source_78(Idx)
132513 , p_source_79 => l_array_source_79(Idx)
132514 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132515 , p_source_81 => l_array_source_81(Idx)
132516 , p_source_82 => l_array_source_82(Idx)
132517 , p_source_83 => l_array_source_83(Idx)
132518 , p_source_84 => l_array_source_84(Idx)
132519 , p_source_85 => l_array_source_85(Idx)
132520 , p_source_86 => l_array_source_86(Idx)
132521 , p_source_87 => l_array_source_87(Idx)
132522 , p_source_90 => l_array_source_90(Idx)
132523 , p_source_91 => l_array_source_91(Idx)
132524 , p_source_92 => l_array_source_92(Idx)
132525 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132526 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132527 , p_source_95 => l_array_source_95(Idx)
132528 , p_source_96 => l_array_source_96(Idx)
132529 , p_source_97 => l_array_source_97(Idx)
132530 , p_source_98 => l_array_source_98(Idx)
132531 , p_source_99 => l_array_source_99(Idx)
132532 , p_source_100 => l_array_source_100(Idx)
132533 , p_source_100_meaning => l_array_source_100_meaning(Idx)
132534 , p_source_121 => l_array_source_121(Idx)
132535 , p_source_122 => l_array_source_122(Idx)
132536 , p_source_123 => l_array_source_123(Idx)
132537 );
132538 If(l_balance_type_code = 'A') THEN
132539 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132540 END IF;
132541
132542 --
132543
132544
132545 --
132546 AcctLineType_153 (
132547 p_application_id => p_application_id
132548 ,p_event_id => l_event_id
132549 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132550 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132551 ,p_actual_flag => l_actual_flag
132552 ,p_balance_type_code => l_balance_type_code
132553 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132554
132555 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132556 , p_source_40 => l_array_source_40(Idx)
132557 , p_source_42 => l_array_source_42(Idx)
132558 , p_source_48 => l_array_source_48(Idx)
132559 , p_source_53 => l_array_source_53(Idx)
132560 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132561 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132562 , p_source_58 => l_array_source_58(Idx)
132563 , p_source_59 => l_array_source_59(Idx)
132564 , p_source_66 => l_array_source_66(Idx)
132565 , p_source_67 => l_array_source_67(Idx)
132566 , p_source_71 => l_array_source_71(Idx)
132567 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132568 , p_source_77 => l_array_source_77(Idx)
132569 , p_source_78 => l_array_source_78(Idx)
132570 , p_source_79 => l_array_source_79(Idx)
132571 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132572 , p_source_81 => l_array_source_81(Idx)
132573 , p_source_82 => l_array_source_82(Idx)
132574 , p_source_83 => l_array_source_83(Idx)
132575 , p_source_84 => l_array_source_84(Idx)
132576 , p_source_85 => l_array_source_85(Idx)
132577 , p_source_86 => l_array_source_86(Idx)
132578 , p_source_87 => l_array_source_87(Idx)
132579 , p_source_89 => l_array_source_89(Idx)
132580 , p_source_90 => l_array_source_90(Idx)
132581 , p_source_91 => l_array_source_91(Idx)
132582 , p_source_92 => l_array_source_92(Idx)
132583 , p_source_95 => l_array_source_95(Idx)
132584 , p_source_96 => l_array_source_96(Idx)
132585 , p_source_97 => l_array_source_97(Idx)
132586 , p_source_134 => l_array_source_134(Idx)
132587 , p_source_135 => l_array_source_135(Idx)
132588 , p_source_136 => l_array_source_136(Idx)
132589 , p_source_137 => l_array_source_137(Idx)
132590 );
132591 If(l_balance_type_code = 'A') THEN
132592 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132593 END IF;
132594
132595 --
132596
132597
132598 --
132599 AcctLineType_154 (
132600 p_application_id => p_application_id
132601 ,p_event_id => l_event_id
132602 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132603 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132604 ,p_actual_flag => l_actual_flag
132605 ,p_balance_type_code => l_balance_type_code
132606 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132607
132608 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132609 , p_source_40 => l_array_source_40(Idx)
132610 , p_source_42 => l_array_source_42(Idx)
132611 , p_source_48 => l_array_source_48(Idx)
132612 , p_source_53 => l_array_source_53(Idx)
132613 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132614 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132615 , p_source_58 => l_array_source_58(Idx)
132616 , p_source_59 => l_array_source_59(Idx)
132617 , p_source_66 => l_array_source_66(Idx)
132621 , p_source_77 => l_array_source_77(Idx)
132618 , p_source_67 => l_array_source_67(Idx)
132619 , p_source_71 => l_array_source_71(Idx)
132620 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132622 , p_source_78 => l_array_source_78(Idx)
132623 , p_source_79 => l_array_source_79(Idx)
132624 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132625 , p_source_81 => l_array_source_81(Idx)
132626 , p_source_82 => l_array_source_82(Idx)
132627 , p_source_83 => l_array_source_83(Idx)
132628 , p_source_84 => l_array_source_84(Idx)
132629 , p_source_85 => l_array_source_85(Idx)
132630 , p_source_86 => l_array_source_86(Idx)
132631 , p_source_87 => l_array_source_87(Idx)
132632 , p_source_90 => l_array_source_90(Idx)
132633 , p_source_91 => l_array_source_91(Idx)
132634 , p_source_92 => l_array_source_92(Idx)
132635 , p_source_95 => l_array_source_95(Idx)
132636 , p_source_96 => l_array_source_96(Idx)
132637 , p_source_97 => l_array_source_97(Idx)
132638 , p_source_99 => l_array_source_99(Idx)
132639 , p_source_137 => l_array_source_137(Idx)
132640 , p_source_138 => l_array_source_138(Idx)
132641 , p_source_139 => l_array_source_139(Idx)
132642 , p_source_140 => l_array_source_140(Idx)
132643 );
132644 If(l_balance_type_code = 'A') THEN
132645 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132646 END IF;
132647
132648 --
132649
132650
132651 --
132652 AcctLineType_155 (
132653 p_application_id => p_application_id
132654 ,p_event_id => l_event_id
132655 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132656 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132657 ,p_actual_flag => l_actual_flag
132658 ,p_balance_type_code => l_balance_type_code
132659 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132660
132661 , p_source_17 => l_array_source_17(Idx)
132662 , p_source_40 => l_array_source_40(Idx)
132663 , p_source_42 => l_array_source_42(Idx)
132664 , p_source_48 => l_array_source_48(Idx)
132665 , p_source_53 => l_array_source_53(Idx)
132666 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132667 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132668 , p_source_58 => l_array_source_58(Idx)
132669 , p_source_59 => l_array_source_59(Idx)
132670 , p_source_66 => l_array_source_66(Idx)
132671 , p_source_67 => l_array_source_67(Idx)
132672 , p_source_71 => l_array_source_71(Idx)
132673 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132674 , p_source_73 => l_array_source_73(Idx)
132675 , p_source_74 => l_array_source_74(Idx)
132676 , p_source_75 => l_array_source_75(Idx)
132677 , p_source_76 => l_array_source_76(Idx)
132678 , p_source_77 => l_array_source_77(Idx)
132679 , p_source_78 => l_array_source_78(Idx)
132680 , p_source_79 => l_array_source_79(Idx)
132681 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132682 , p_source_81 => l_array_source_81(Idx)
132683 , p_source_82 => l_array_source_82(Idx)
132684 , p_source_83 => l_array_source_83(Idx)
132685 , p_source_84 => l_array_source_84(Idx)
132686 , p_source_85 => l_array_source_85(Idx)
132687 , p_source_86 => l_array_source_86(Idx)
132688 , p_source_87 => l_array_source_87(Idx)
132689 , p_source_90 => l_array_source_90(Idx)
132690 , p_source_91 => l_array_source_91(Idx)
132691 , p_source_92 => l_array_source_92(Idx)
132692 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132693 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132694 , p_source_95 => l_array_source_95(Idx)
132695 , p_source_96 => l_array_source_96(Idx)
132696 , p_source_97 => l_array_source_97(Idx)
132697 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
132698 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
132699 , p_source_104 => l_array_source_104(Idx)
132700 , p_source_104_meaning => l_array_source_104_meaning(Idx)
132701 , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
132702 , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
132703 , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
132704 , p_source_141 => l_array_source_141(Idx)
132705 );
132706 If(l_balance_type_code = 'A') THEN
132707 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132708 END IF;
132709
132710 --
132711
132712
132713 --
132714 AcctLineType_159 (
132715 p_application_id => p_application_id
132716 ,p_event_id => l_event_id
132717 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132718 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132719 ,p_actual_flag => l_actual_flag
132720 ,p_balance_type_code => l_balance_type_code
132721 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132722
132723 , p_source_36 => l_array_source_36(Idx)
132724 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132725 , p_source_40 => l_array_source_40(Idx)
132726 , p_source_42 => l_array_source_42(Idx)
132727 , p_source_48 => l_array_source_48(Idx)
132728 , p_source_53 => l_array_source_53(Idx)
132729 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132730 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132731 , p_source_58 => l_array_source_58(Idx)
132732 , p_source_59 => l_array_source_59(Idx)
132733 , p_source_66 => l_array_source_66(Idx)
132734 , p_source_67 => l_array_source_67(Idx)
132735 , p_source_68 => l_array_source_68(Idx)
132736 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132737 , p_source_71 => l_array_source_71(Idx)
132741 , p_source_75 => l_array_source_75(Idx)
132738 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132739 , p_source_73 => l_array_source_73(Idx)
132740 , p_source_74 => l_array_source_74(Idx)
132742 , p_source_76 => l_array_source_76(Idx)
132743 , p_source_77 => l_array_source_77(Idx)
132744 , p_source_78 => l_array_source_78(Idx)
132745 , p_source_79 => l_array_source_79(Idx)
132746 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132747 , p_source_81 => l_array_source_81(Idx)
132748 , p_source_82 => l_array_source_82(Idx)
132749 , p_source_83 => l_array_source_83(Idx)
132750 , p_source_84 => l_array_source_84(Idx)
132751 , p_source_85 => l_array_source_85(Idx)
132752 , p_source_86 => l_array_source_86(Idx)
132753 , p_source_87 => l_array_source_87(Idx)
132754 , p_source_88 => l_array_source_88(Idx)
132755 , p_source_89 => l_array_source_89(Idx)
132756 , p_source_90 => l_array_source_90(Idx)
132757 , p_source_91 => l_array_source_91(Idx)
132758 , p_source_92 => l_array_source_92(Idx)
132759 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132760 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132761 , p_source_95 => l_array_source_95(Idx)
132762 , p_source_96 => l_array_source_96(Idx)
132763 , p_source_97 => l_array_source_97(Idx)
132764 , p_source_118 => l_array_source_118(Idx)
132765 , p_source_119 => l_array_source_119(Idx)
132766 , p_source_120 => l_array_source_120(Idx)
132767 );
132768 If(l_balance_type_code = 'A') THEN
132769 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132770 END IF;
132771
132772 --
132773
132774
132775 --
132776 AcctLineType_160 (
132777 p_application_id => p_application_id
132778 ,p_event_id => l_event_id
132779 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132780 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132781 ,p_actual_flag => l_actual_flag
132782 ,p_balance_type_code => l_balance_type_code
132783 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132784
132785 , p_source_36 => l_array_source_36(Idx)
132786 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132787 , p_source_40 => l_array_source_40(Idx)
132788 , p_source_42 => l_array_source_42(Idx)
132789 , p_source_48 => l_array_source_48(Idx)
132790 , p_source_53 => l_array_source_53(Idx)
132791 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132792 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132793 , p_source_58 => l_array_source_58(Idx)
132794 , p_source_59 => l_array_source_59(Idx)
132795 , p_source_66 => l_array_source_66(Idx)
132796 , p_source_67 => l_array_source_67(Idx)
132797 , p_source_68 => l_array_source_68(Idx)
132798 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132799 , p_source_71 => l_array_source_71(Idx)
132800 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132801 , p_source_73 => l_array_source_73(Idx)
132802 , p_source_74 => l_array_source_74(Idx)
132803 , p_source_75 => l_array_source_75(Idx)
132804 , p_source_76 => l_array_source_76(Idx)
132805 , p_source_77 => l_array_source_77(Idx)
132806 , p_source_78 => l_array_source_78(Idx)
132807 , p_source_79 => l_array_source_79(Idx)
132808 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132809 , p_source_81 => l_array_source_81(Idx)
132810 , p_source_82 => l_array_source_82(Idx)
132811 , p_source_83 => l_array_source_83(Idx)
132812 , p_source_84 => l_array_source_84(Idx)
132813 , p_source_85 => l_array_source_85(Idx)
132814 , p_source_86 => l_array_source_86(Idx)
132815 , p_source_87 => l_array_source_87(Idx)
132816 , p_source_90 => l_array_source_90(Idx)
132817 , p_source_91 => l_array_source_91(Idx)
132818 , p_source_92 => l_array_source_92(Idx)
132819 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132820 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132821 , p_source_95 => l_array_source_95(Idx)
132822 , p_source_96 => l_array_source_96(Idx)
132823 , p_source_97 => l_array_source_97(Idx)
132824 , p_source_98 => l_array_source_98(Idx)
132825 , p_source_99 => l_array_source_99(Idx)
132826 , p_source_121 => l_array_source_121(Idx)
132827 , p_source_122 => l_array_source_122(Idx)
132828 , p_source_123 => l_array_source_123(Idx)
132829 );
132830 If(l_balance_type_code = 'A') THEN
132831 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132832 END IF;
132833
132834 --
132835
132836
132837 --
132838 AcctLineType_166 (
132839 p_application_id => p_application_id
132840 ,p_event_id => l_event_id
132841 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132842 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132843 ,p_actual_flag => l_actual_flag
132844 ,p_balance_type_code => l_balance_type_code
132845 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132846
132847 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
132848 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
132849 , p_source_17 => l_array_source_17(Idx)
132850 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
132851 , p_source_23 => l_array_source_23(Idx)
132852 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132853 , p_source_40 => l_array_source_40(Idx)
132854 , p_source_42 => l_array_source_42(Idx)
132855 , p_source_48 => l_array_source_48(Idx)
132856 , p_source_53 => l_array_source_53(Idx)
132857 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132861 , p_source_62 => l_array_source_62(Idx)
132858 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132859 , p_source_58 => l_array_source_58(Idx)
132860 , p_source_59 => l_array_source_59(Idx)
132862 , p_source_63 => l_array_source_63(Idx)
132863 , p_source_66 => l_array_source_66(Idx)
132864 , p_source_67 => l_array_source_67(Idx)
132865 , p_source_68 => l_array_source_68(Idx)
132866 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132867 , p_source_71 => l_array_source_71(Idx)
132868 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132869 , p_source_77 => l_array_source_77(Idx)
132870 , p_source_78 => l_array_source_78(Idx)
132871 , p_source_79 => l_array_source_79(Idx)
132872 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132873 , p_source_81 => l_array_source_81(Idx)
132874 , p_source_82 => l_array_source_82(Idx)
132875 , p_source_83 => l_array_source_83(Idx)
132876 , p_source_84 => l_array_source_84(Idx)
132877 , p_source_85 => l_array_source_85(Idx)
132878 , p_source_86 => l_array_source_86(Idx)
132879 , p_source_87 => l_array_source_87(Idx)
132880 , p_source_89 => l_array_source_89(Idx)
132881 , p_source_90 => l_array_source_90(Idx)
132882 , p_source_91 => l_array_source_91(Idx)
132883 , p_source_92 => l_array_source_92(Idx)
132884 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132885 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132886 , p_source_95 => l_array_source_95(Idx)
132887 , p_source_96 => l_array_source_96(Idx)
132888 , p_source_97 => l_array_source_97(Idx)
132889 , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
132890 , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
132891 , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
132892 , p_source_144 => l_array_source_144(Idx)
132893 , p_source_144_meaning => l_array_source_144_meaning(Idx)
132894 , p_source_145 => l_array_source_145(Idx)
132895 , p_source_146 => l_array_source_146(Idx)
132896 );
132897 If(l_balance_type_code = 'A') THEN
132898 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132899 END IF;
132900
132901 --
132902
132903
132904 --
132905 AcctLineType_167 (
132906 p_application_id => p_application_id
132907 ,p_event_id => l_event_id
132908 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132909 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132910 ,p_actual_flag => l_actual_flag
132911 ,p_balance_type_code => l_balance_type_code
132912 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132913
132914 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
132915 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
132916 , p_source_17 => l_array_source_17(Idx)
132917 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
132918 , p_source_23 => l_array_source_23(Idx)
132919 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132920 , p_source_40 => l_array_source_40(Idx)
132921 , p_source_42 => l_array_source_42(Idx)
132922 , p_source_48 => l_array_source_48(Idx)
132923 , p_source_53 => l_array_source_53(Idx)
132924 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132925 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132926 , p_source_58 => l_array_source_58(Idx)
132927 , p_source_59 => l_array_source_59(Idx)
132928 , p_source_62 => l_array_source_62(Idx)
132929 , p_source_63 => l_array_source_63(Idx)
132930 , p_source_66 => l_array_source_66(Idx)
132931 , p_source_67 => l_array_source_67(Idx)
132932 , p_source_68 => l_array_source_68(Idx)
132933 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132934 , p_source_71 => l_array_source_71(Idx)
132935 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132936 , p_source_77 => l_array_source_77(Idx)
132937 , p_source_78 => l_array_source_78(Idx)
132938 , p_source_79 => l_array_source_79(Idx)
132939 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132940 , p_source_81 => l_array_source_81(Idx)
132941 , p_source_82 => l_array_source_82(Idx)
132942 , p_source_83 => l_array_source_83(Idx)
132943 , p_source_84 => l_array_source_84(Idx)
132944 , p_source_85 => l_array_source_85(Idx)
132945 , p_source_86 => l_array_source_86(Idx)
132946 , p_source_87 => l_array_source_87(Idx)
132947 , p_source_90 => l_array_source_90(Idx)
132948 , p_source_91 => l_array_source_91(Idx)
132949 , p_source_92 => l_array_source_92(Idx)
132950 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132951 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132952 , p_source_95 => l_array_source_95(Idx)
132953 , p_source_96 => l_array_source_96(Idx)
132954 , p_source_97 => l_array_source_97(Idx)
132955 , p_source_99 => l_array_source_99(Idx)
132956 , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
132957 , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
132958 , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
132959 , p_source_144 => l_array_source_144(Idx)
132960 , p_source_144_meaning => l_array_source_144_meaning(Idx)
132961 , p_source_145 => l_array_source_145(Idx)
132962 , p_source_146 => l_array_source_146(Idx)
132963 );
132964 If(l_balance_type_code = 'A') THEN
132965 l_actual_gain_loss_ref := l_gain_or_loss_ref;
132966 END IF;
132967
132968 --
132969
132970
132971 --
132972 AcctLineType_168 (
132976 ,p_calculate_g_l_flag => l_calculate_g_l_flag
132973 p_application_id => p_application_id
132974 ,p_event_id => l_event_id
132975 ,p_calculate_acctd_flag => l_calculate_acctd_flag
132977 ,p_actual_flag => l_actual_flag
132978 ,p_balance_type_code => l_balance_type_code
132979 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132980
132981 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132982 , p_source_40 => l_array_source_40(Idx)
132983 , p_source_42 => l_array_source_42(Idx)
132984 , p_source_48 => l_array_source_48(Idx)
132985 , p_source_53 => l_array_source_53(Idx)
132986 , p_source_53_meaning => l_array_source_53_meaning(Idx)
132987 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132988 , p_source_58 => l_array_source_58(Idx)
132989 , p_source_59 => l_array_source_59(Idx)
132990 , p_source_62 => l_array_source_62(Idx)
132991 , p_source_63 => l_array_source_63(Idx)
132992 , p_source_66 => l_array_source_66(Idx)
132993 , p_source_67 => l_array_source_67(Idx)
132994 , p_source_68 => l_array_source_68(Idx)
132995 , p_source_68_meaning => l_array_source_68_meaning(Idx)
132996 , p_source_71 => l_array_source_71(Idx)
132997 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132998 , p_source_77 => l_array_source_77(Idx)
132999 , p_source_78 => l_array_source_78(Idx)
133000 , p_source_79 => l_array_source_79(Idx)
133001 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133002 , p_source_81 => l_array_source_81(Idx)
133003 , p_source_82 => l_array_source_82(Idx)
133004 , p_source_83 => l_array_source_83(Idx)
133005 , p_source_84 => l_array_source_84(Idx)
133006 , p_source_85 => l_array_source_85(Idx)
133007 , p_source_86 => l_array_source_86(Idx)
133008 , p_source_87 => l_array_source_87(Idx)
133009 , p_source_89 => l_array_source_89(Idx)
133010 , p_source_90 => l_array_source_90(Idx)
133011 , p_source_91 => l_array_source_91(Idx)
133012 , p_source_92 => l_array_source_92(Idx)
133013 , p_source_95 => l_array_source_95(Idx)
133014 , p_source_96 => l_array_source_96(Idx)
133015 , p_source_97 => l_array_source_97(Idx)
133016 , p_source_144 => l_array_source_144(Idx)
133017 , p_source_144_meaning => l_array_source_144_meaning(Idx)
133018 , p_source_145 => l_array_source_145(Idx)
133019 , p_source_146 => l_array_source_146(Idx)
133020 );
133021 If(l_balance_type_code = 'A') THEN
133022 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133023 END IF;
133024
133025 --
133026
133027
133028 --
133029 AcctLineType_169 (
133030 p_application_id => p_application_id
133031 ,p_event_id => l_event_id
133032 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133033 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133034 ,p_actual_flag => l_actual_flag
133035 ,p_balance_type_code => l_balance_type_code
133036 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133037
133038 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133039 , p_source_40 => l_array_source_40(Idx)
133040 , p_source_42 => l_array_source_42(Idx)
133041 , p_source_48 => l_array_source_48(Idx)
133042 , p_source_53 => l_array_source_53(Idx)
133043 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133044 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133045 , p_source_58 => l_array_source_58(Idx)
133046 , p_source_59 => l_array_source_59(Idx)
133047 , p_source_62 => l_array_source_62(Idx)
133048 , p_source_63 => l_array_source_63(Idx)
133049 , p_source_66 => l_array_source_66(Idx)
133050 , p_source_67 => l_array_source_67(Idx)
133051 , p_source_68 => l_array_source_68(Idx)
133052 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133053 , p_source_71 => l_array_source_71(Idx)
133054 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133055 , p_source_77 => l_array_source_77(Idx)
133056 , p_source_78 => l_array_source_78(Idx)
133057 , p_source_79 => l_array_source_79(Idx)
133058 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133059 , p_source_81 => l_array_source_81(Idx)
133060 , p_source_82 => l_array_source_82(Idx)
133061 , p_source_83 => l_array_source_83(Idx)
133062 , p_source_84 => l_array_source_84(Idx)
133063 , p_source_85 => l_array_source_85(Idx)
133064 , p_source_86 => l_array_source_86(Idx)
133065 , p_source_87 => l_array_source_87(Idx)
133066 , p_source_90 => l_array_source_90(Idx)
133067 , p_source_91 => l_array_source_91(Idx)
133068 , p_source_92 => l_array_source_92(Idx)
133069 , p_source_95 => l_array_source_95(Idx)
133070 , p_source_96 => l_array_source_96(Idx)
133071 , p_source_97 => l_array_source_97(Idx)
133072 , p_source_99 => l_array_source_99(Idx)
133073 , p_source_144 => l_array_source_144(Idx)
133074 , p_source_144_meaning => l_array_source_144_meaning(Idx)
133075 , p_source_145 => l_array_source_145(Idx)
133076 , p_source_146 => l_array_source_146(Idx)
133077 );
133078 If(l_balance_type_code = 'A') THEN
133079 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133080 END IF;
133081
133082 --
133083
133084
133085 --
133086 AcctLineType_196 (
133087 p_application_id => p_application_id
133088 ,p_event_id => l_event_id
133089 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133090 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133091 ,p_actual_flag => l_actual_flag
133092 ,p_balance_type_code => l_balance_type_code
133093 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133094
133098 , p_source_6 => l_array_source_6(Idx)
133095 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
133096 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
133097 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
133099 , p_source_7 => l_array_source_7(Idx)
133100 , p_source_7_meaning => l_array_source_7_meaning(Idx)
133101 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
133102 , p_source_17 => l_array_source_17(Idx)
133103 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
133104 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
133105 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133106 , p_source_40 => l_array_source_40(Idx)
133107 , p_source_42 => l_array_source_42(Idx)
133108 , p_source_48 => l_array_source_48(Idx)
133109 , p_source_53 => l_array_source_53(Idx)
133110 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133111 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133112 , p_source_58 => l_array_source_58(Idx)
133113 , p_source_59 => l_array_source_59(Idx)
133114 , p_source_66 => l_array_source_66(Idx)
133115 , p_source_67 => l_array_source_67(Idx)
133116 , p_source_68 => l_array_source_68(Idx)
133117 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133118 , p_source_71 => l_array_source_71(Idx)
133119 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133120 , p_source_73 => l_array_source_73(Idx)
133121 , p_source_74 => l_array_source_74(Idx)
133122 , p_source_75 => l_array_source_75(Idx)
133123 , p_source_76 => l_array_source_76(Idx)
133124 , p_source_77 => l_array_source_77(Idx)
133125 , p_source_78 => l_array_source_78(Idx)
133126 , p_source_79 => l_array_source_79(Idx)
133127 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133128 , p_source_81 => l_array_source_81(Idx)
133129 , p_source_82 => l_array_source_82(Idx)
133130 , p_source_83 => l_array_source_83(Idx)
133131 , p_source_84 => l_array_source_84(Idx)
133132 , p_source_85 => l_array_source_85(Idx)
133133 , p_source_86 => l_array_source_86(Idx)
133134 , p_source_87 => l_array_source_87(Idx)
133135 , p_source_88 => l_array_source_88(Idx)
133136 , p_source_89 => l_array_source_89(Idx)
133137 , p_source_90 => l_array_source_90(Idx)
133138 , p_source_91 => l_array_source_91(Idx)
133139 , p_source_92 => l_array_source_92(Idx)
133140 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133141 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133142 , p_source_95 => l_array_source_95(Idx)
133143 , p_source_96 => l_array_source_96(Idx)
133144 , p_source_97 => l_array_source_97(Idx)
133145 , p_source_100 => l_array_source_100(Idx)
133146 , p_source_100_meaning => l_array_source_100_meaning(Idx)
133147 , p_source_118 => l_array_source_118(Idx)
133148 , p_source_119 => l_array_source_119(Idx)
133149 , p_source_120 => l_array_source_120(Idx)
133150 );
133151 If(l_balance_type_code = 'A') THEN
133152 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133153 END IF;
133154
133155 --
133156
133157
133158 --
133159 AcctLineType_197 (
133160 p_application_id => p_application_id
133161 ,p_event_id => l_event_id
133162 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133163 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133164 ,p_actual_flag => l_actual_flag
133165 ,p_balance_type_code => l_balance_type_code
133166 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133167
133168 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
133169 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
133170 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
133171 , p_source_6 => l_array_source_6(Idx)
133172 , p_source_7 => l_array_source_7(Idx)
133173 , p_source_7_meaning => l_array_source_7_meaning(Idx)
133174 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
133175 , p_source_17 => l_array_source_17(Idx)
133176 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
133177 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
133178 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133179 , p_source_40 => l_array_source_40(Idx)
133180 , p_source_42 => l_array_source_42(Idx)
133181 , p_source_48 => l_array_source_48(Idx)
133182 , p_source_53 => l_array_source_53(Idx)
133183 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133184 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133185 , p_source_58 => l_array_source_58(Idx)
133186 , p_source_59 => l_array_source_59(Idx)
133187 , p_source_66 => l_array_source_66(Idx)
133188 , p_source_67 => l_array_source_67(Idx)
133189 , p_source_68 => l_array_source_68(Idx)
133190 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133191 , p_source_71 => l_array_source_71(Idx)
133192 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133193 , p_source_73 => l_array_source_73(Idx)
133194 , p_source_74 => l_array_source_74(Idx)
133195 , p_source_75 => l_array_source_75(Idx)
133196 , p_source_76 => l_array_source_76(Idx)
133197 , p_source_77 => l_array_source_77(Idx)
133198 , p_source_78 => l_array_source_78(Idx)
133199 , p_source_79 => l_array_source_79(Idx)
133200 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133201 , p_source_81 => l_array_source_81(Idx)
133205 , p_source_85 => l_array_source_85(Idx)
133202 , p_source_82 => l_array_source_82(Idx)
133203 , p_source_83 => l_array_source_83(Idx)
133204 , p_source_84 => l_array_source_84(Idx)
133206 , p_source_86 => l_array_source_86(Idx)
133207 , p_source_87 => l_array_source_87(Idx)
133208 , p_source_90 => l_array_source_90(Idx)
133209 , p_source_91 => l_array_source_91(Idx)
133210 , p_source_92 => l_array_source_92(Idx)
133211 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133212 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133213 , p_source_95 => l_array_source_95(Idx)
133214 , p_source_96 => l_array_source_96(Idx)
133215 , p_source_97 => l_array_source_97(Idx)
133216 , p_source_98 => l_array_source_98(Idx)
133217 , p_source_99 => l_array_source_99(Idx)
133218 , p_source_100 => l_array_source_100(Idx)
133219 , p_source_100_meaning => l_array_source_100_meaning(Idx)
133220 , p_source_121 => l_array_source_121(Idx)
133221 , p_source_122 => l_array_source_122(Idx)
133222 , p_source_123 => l_array_source_123(Idx)
133223 );
133224 If(l_balance_type_code = 'A') THEN
133225 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133226 END IF;
133227
133228 --
133229
133230
133231 --
133232 AcctLineType_198 (
133233 p_application_id => p_application_id
133234 ,p_event_id => l_event_id
133235 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133236 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133237 ,p_actual_flag => l_actual_flag
133238 ,p_balance_type_code => l_balance_type_code
133239 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133240
133241 , p_source_36 => l_array_source_36(Idx)
133242 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133243 , p_source_40 => l_array_source_40(Idx)
133244 , p_source_42 => l_array_source_42(Idx)
133245 , p_source_48 => l_array_source_48(Idx)
133246 , p_source_53 => l_array_source_53(Idx)
133247 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133248 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133249 , p_source_58 => l_array_source_58(Idx)
133250 , p_source_59 => l_array_source_59(Idx)
133251 , p_source_66 => l_array_source_66(Idx)
133252 , p_source_67 => l_array_source_67(Idx)
133253 , p_source_68 => l_array_source_68(Idx)
133254 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133255 , p_source_71 => l_array_source_71(Idx)
133256 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133257 , p_source_73 => l_array_source_73(Idx)
133258 , p_source_74 => l_array_source_74(Idx)
133259 , p_source_75 => l_array_source_75(Idx)
133260 , p_source_76 => l_array_source_76(Idx)
133261 , p_source_77 => l_array_source_77(Idx)
133262 , p_source_78 => l_array_source_78(Idx)
133263 , p_source_79 => l_array_source_79(Idx)
133264 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133265 , p_source_81 => l_array_source_81(Idx)
133266 , p_source_82 => l_array_source_82(Idx)
133267 , p_source_83 => l_array_source_83(Idx)
133268 , p_source_84 => l_array_source_84(Idx)
133269 , p_source_85 => l_array_source_85(Idx)
133270 , p_source_86 => l_array_source_86(Idx)
133271 , p_source_87 => l_array_source_87(Idx)
133272 , p_source_88 => l_array_source_88(Idx)
133273 , p_source_89 => l_array_source_89(Idx)
133274 , p_source_90 => l_array_source_90(Idx)
133275 , p_source_91 => l_array_source_91(Idx)
133276 , p_source_92 => l_array_source_92(Idx)
133277 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133278 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133279 , p_source_95 => l_array_source_95(Idx)
133280 , p_source_96 => l_array_source_96(Idx)
133281 , p_source_97 => l_array_source_97(Idx)
133282 , p_source_100 => l_array_source_100(Idx)
133283 , p_source_100_meaning => l_array_source_100_meaning(Idx)
133284 , p_source_118 => l_array_source_118(Idx)
133285 , p_source_119 => l_array_source_119(Idx)
133286 , p_source_120 => l_array_source_120(Idx)
133287 );
133288 If(l_balance_type_code = 'A') THEN
133289 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133290 END IF;
133291
133292 --
133293
133294
133295 --
133296 AcctLineType_199 (
133297 p_application_id => p_application_id
133298 ,p_event_id => l_event_id
133299 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133300 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133301 ,p_actual_flag => l_actual_flag
133302 ,p_balance_type_code => l_balance_type_code
133303 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133304
133305 , p_source_36 => l_array_source_36(Idx)
133306 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133307 , p_source_40 => l_array_source_40(Idx)
133308 , p_source_42 => l_array_source_42(Idx)
133309 , p_source_48 => l_array_source_48(Idx)
133310 , p_source_53 => l_array_source_53(Idx)
133311 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133312 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133313 , p_source_58 => l_array_source_58(Idx)
133314 , p_source_59 => l_array_source_59(Idx)
133315 , p_source_66 => l_array_source_66(Idx)
133316 , p_source_67 => l_array_source_67(Idx)
133317 , p_source_68 => l_array_source_68(Idx)
133318 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133319 , p_source_71 => l_array_source_71(Idx)
133320 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133321 , p_source_73 => l_array_source_73(Idx)
133322 , p_source_74 => l_array_source_74(Idx)
133326 , p_source_78 => l_array_source_78(Idx)
133323 , p_source_75 => l_array_source_75(Idx)
133324 , p_source_76 => l_array_source_76(Idx)
133325 , p_source_77 => l_array_source_77(Idx)
133327 , p_source_79 => l_array_source_79(Idx)
133328 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133329 , p_source_81 => l_array_source_81(Idx)
133330 , p_source_82 => l_array_source_82(Idx)
133331 , p_source_83 => l_array_source_83(Idx)
133332 , p_source_84 => l_array_source_84(Idx)
133333 , p_source_85 => l_array_source_85(Idx)
133334 , p_source_86 => l_array_source_86(Idx)
133335 , p_source_87 => l_array_source_87(Idx)
133336 , p_source_90 => l_array_source_90(Idx)
133337 , p_source_91 => l_array_source_91(Idx)
133338 , p_source_92 => l_array_source_92(Idx)
133339 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133340 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133341 , p_source_95 => l_array_source_95(Idx)
133342 , p_source_96 => l_array_source_96(Idx)
133343 , p_source_97 => l_array_source_97(Idx)
133344 , p_source_98 => l_array_source_98(Idx)
133345 , p_source_99 => l_array_source_99(Idx)
133346 , p_source_100 => l_array_source_100(Idx)
133347 , p_source_100_meaning => l_array_source_100_meaning(Idx)
133348 , p_source_121 => l_array_source_121(Idx)
133349 , p_source_122 => l_array_source_122(Idx)
133350 , p_source_123 => l_array_source_123(Idx)
133351 );
133352 If(l_balance_type_code = 'A') THEN
133353 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133354 END IF;
133355
133356 --
133357
133358
133359 --
133360 AcctLineType_200 (
133361 p_application_id => p_application_id
133362 ,p_event_id => l_event_id
133363 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133364 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133365 ,p_actual_flag => l_actual_flag
133366 ,p_balance_type_code => l_balance_type_code
133367 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133368
133369 , p_source_36 => l_array_source_36(Idx)
133370 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133371 , p_source_40 => l_array_source_40(Idx)
133372 , p_source_42 => l_array_source_42(Idx)
133373 , p_source_48 => l_array_source_48(Idx)
133374 , p_source_53 => l_array_source_53(Idx)
133375 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133376 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133377 , p_source_58 => l_array_source_58(Idx)
133378 , p_source_59 => l_array_source_59(Idx)
133379 , p_source_66 => l_array_source_66(Idx)
133380 , p_source_67 => l_array_source_67(Idx)
133381 , p_source_68 => l_array_source_68(Idx)
133382 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133383 , p_source_71 => l_array_source_71(Idx)
133384 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133385 , p_source_73 => l_array_source_73(Idx)
133386 , p_source_74 => l_array_source_74(Idx)
133387 , p_source_75 => l_array_source_75(Idx)
133388 , p_source_76 => l_array_source_76(Idx)
133389 , p_source_77 => l_array_source_77(Idx)
133390 , p_source_78 => l_array_source_78(Idx)
133391 , p_source_79 => l_array_source_79(Idx)
133392 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133393 , p_source_81 => l_array_source_81(Idx)
133394 , p_source_82 => l_array_source_82(Idx)
133395 , p_source_83 => l_array_source_83(Idx)
133396 , p_source_84 => l_array_source_84(Idx)
133397 , p_source_85 => l_array_source_85(Idx)
133398 , p_source_86 => l_array_source_86(Idx)
133399 , p_source_87 => l_array_source_87(Idx)
133400 , p_source_88 => l_array_source_88(Idx)
133401 , p_source_89 => l_array_source_89(Idx)
133402 , p_source_90 => l_array_source_90(Idx)
133403 , p_source_91 => l_array_source_91(Idx)
133404 , p_source_92 => l_array_source_92(Idx)
133405 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133406 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133407 , p_source_95 => l_array_source_95(Idx)
133408 , p_source_96 => l_array_source_96(Idx)
133409 , p_source_97 => l_array_source_97(Idx)
133410 , p_source_100 => l_array_source_100(Idx)
133411 , p_source_100_meaning => l_array_source_100_meaning(Idx)
133412 , p_source_118 => l_array_source_118(Idx)
133413 , p_source_119 => l_array_source_119(Idx)
133414 , p_source_120 => l_array_source_120(Idx)
133415 );
133416 If(l_balance_type_code = 'A') THEN
133417 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133418 END IF;
133419
133420 --
133421
133422
133423 --
133424 AcctLineType_201 (
133425 p_application_id => p_application_id
133426 ,p_event_id => l_event_id
133427 ,p_calculate_acctd_flag => l_calculate_acctd_flag
133428 ,p_calculate_g_l_flag => l_calculate_g_l_flag
133429 ,p_actual_flag => l_actual_flag
133430 ,p_balance_type_code => l_balance_type_code
133431 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133432
133433 , p_source_36 => l_array_source_36(Idx)
133434 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133435 , p_source_40 => l_array_source_40(Idx)
133436 , p_source_42 => l_array_source_42(Idx)
133437 , p_source_48 => l_array_source_48(Idx)
133438 , p_source_53 => l_array_source_53(Idx)
133439 , p_source_53_meaning => l_array_source_53_meaning(Idx)
133440 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133441 , p_source_58 => l_array_source_58(Idx)
133442 , p_source_59 => l_array_source_59(Idx)
133443 , p_source_66 => l_array_source_66(Idx)
133447 , p_source_71 => l_array_source_71(Idx)
133444 , p_source_67 => l_array_source_67(Idx)
133445 , p_source_68 => l_array_source_68(Idx)
133446 , p_source_68_meaning => l_array_source_68_meaning(Idx)
133448 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133449 , p_source_73 => l_array_source_73(Idx)
133450 , p_source_74 => l_array_source_74(Idx)
133451 , p_source_75 => l_array_source_75(Idx)
133452 , p_source_76 => l_array_source_76(Idx)
133453 , p_source_77 => l_array_source_77(Idx)
133454 , p_source_78 => l_array_source_78(Idx)
133455 , p_source_79 => l_array_source_79(Idx)
133456 , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133457 , p_source_81 => l_array_source_81(Idx)
133458 , p_source_82 => l_array_source_82(Idx)
133459 , p_source_83 => l_array_source_83(Idx)
133460 , p_source_84 => l_array_source_84(Idx)
133461 , p_source_85 => l_array_source_85(Idx)
133462 , p_source_86 => l_array_source_86(Idx)
133463 , p_source_87 => l_array_source_87(Idx)
133464 , p_source_90 => l_array_source_90(Idx)
133465 , p_source_91 => l_array_source_91(Idx)
133466 , p_source_92 => l_array_source_92(Idx)
133467 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133468 , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133469 , p_source_95 => l_array_source_95(Idx)
133470 , p_source_96 => l_array_source_96(Idx)
133471 , p_source_97 => l_array_source_97(Idx)
133472 , p_source_98 => l_array_source_98(Idx)
133473 , p_source_99 => l_array_source_99(Idx)
133474 , p_source_100 => l_array_source_100(Idx)
133475 , p_source_100_meaning => l_array_source_100_meaning(Idx)
133476 , p_source_121 => l_array_source_121(Idx)
133477 , p_source_122 => l_array_source_122(Idx)
133478 , p_source_123 => l_array_source_123(Idx)
133479 );
133480 If(l_balance_type_code = 'A') THEN
133481 l_actual_gain_loss_ref := l_gain_or_loss_ref;
133482 END IF;
133483
133484 --
133485
133486 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
133487 -- or secondary ledger that has different currency with primary
133488 -- or alc that is calculated by sla
133489 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
133490 (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'))
133491
133492 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
133493 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
133494 AND (l_actual_flag = 'A')) THEN
133495 XLA_AE_LINES_PKG.CreateGainOrLossLines(
133496 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
133497 ,p_application_id => p_application_id
133498 ,p_amb_context_code => 'DEFAULT'
133499 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
133500 ,p_event_class_code => C_EVENT_CLASS_CODE
133501 ,p_event_type_code => C_EVENT_TYPE_CODE
133502
133503 ,p_gain_ccid => -1
133504 ,p_loss_ccid => -1
133505
133506 ,p_actual_flag => l_actual_flag
133507 ,p_enc_flag => null
133508 ,p_actual_g_l_ref => l_actual_gain_loss_ref
133509 ,p_enc_g_l_ref => null
133510 );
133511 END IF;
133512 END IF;
133513 END IF;
133514
133515 ELSE
133516 --
133517 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
133518 --
133519 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133520 trace
133521 (p_msg => 'Trancaction revesal option is Y'
133522 ,p_level => C_LEVEL_STATEMENT
133523 ,p_module => l_log_module);
133524 END IF;
133525 END IF;
133526
133527 END LOOP;
133528 l_result := XLA_AE_LINES_PKG.InsertLines ;
133529 end loop;
133530 close line_cur;
133531
133532
133533 --
133534 -- insert headers into xla_ae_headers_gt table
133535 --
133536 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
133537
133538 -- insert into errors table here.
133539
133540 END LOOP;
133541
133542 --
133543 -- 4865292
133544 --
133545 -- Compare g_hdr_extract_count with event count in
133546 -- CreateHeadersAndLines.
133547 --
133548 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
133549
133550 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133551 trace (p_msg => '# rows extracted from header extract objects '
133552 || ' (running total): '
133553 || g_hdr_extract_count
133554 ,p_level => C_LEVEL_STATEMENT
133555 ,p_module => l_log_module);
133556 END IF;
133557
133558 CLOSE header_cur;
133559 --
133560
133561 --
133562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133563 trace
133564 (p_msg => 'END of EventClass_210'
133565 ,p_level => C_LEVEL_PROCEDURE
133566 ,p_module => l_log_module);
133567 END IF;
133568 --
133569 RETURN l_result;
133570 EXCEPTION
133571 WHEN xla_exceptions_pkg.application_exception THEN
133572
133573 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
133574
133575
133576 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
133577
133578 RAISE;
133579
133580 WHEN NO_DATA_FOUND THEN
133581
133582 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
133583 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
133584
133585 FOR header_record IN header_cur
133586 LOOP
133587 l_array_header_events(header_record.event_id) := header_record.event_id;
133588 END LOOP;
133589
133590 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
133591 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
133592
133593 fnd_file.put_line(fnd_file.LOG, ' ');
133594 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
133595 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
133596 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
133597
133598 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
133599 LOOP
133600 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
133601 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
133602 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
133603 END IF;
133604 END LOOP;
133605
133606 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
133607 fnd_file.put_line(fnd_file.LOG, ' ');
133608
133609
133610 xla_exceptions_pkg.raise_message
133611 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_210');
133612
133613
133614 WHEN OTHERS THEN
133615 xla_exceptions_pkg.raise_message
133619
133616 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_210');
133617 END EventClass_210;
133618 --
133620 ---------------------------------------
133621 --
133622 -- PRIVATE PROCEDURE
133623 -- insert_sources_211
133624 --
133625 ----------------------------------------
133626 --
133627 PROCEDURE insert_sources_211(
133628 p_target_ledger_id IN NUMBER
133629 , p_language IN VARCHAR2
133630 , p_sla_ledger_id IN NUMBER
133631 , p_pad_start_date IN DATE
133632 , p_pad_end_date IN DATE
133633 )
133634 IS
133635
133636 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS_ALL';
133637 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS';
133638 p_apps_owner VARCHAR2(30);
133639 l_log_module VARCHAR2(240);
133640 BEGIN
133641 IF g_log_enabled THEN
133642 l_log_module := C_DEFAULT_MODULE||'.insert_sources_211';
133643 END IF;
133644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133645
133646 trace
133647 (p_msg => 'BEGIN of insert_sources_211'
133648 ,p_level => C_LEVEL_PROCEDURE
133649 ,p_module => l_log_module);
133650
133651 END IF;
133652
133653 -- select APPS owner
133654 SELECT oracle_username
133655 INTO p_apps_owner
133656 FROM fnd_oracle_userid
133657 WHERE read_only_flag = 'U'
133658 ;
133659
133660 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133661 trace
133662 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
133663 ' - p_language = '||p_language||
133664 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
133665 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
133666 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
133667 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
133668 ,p_level => C_LEVEL_STATEMENT
133669 ,p_module => l_log_module);
133670 END IF;
133671
133672
133673 --
133674 INSERT INTO xla_diag_sources --hdr2
133675 (
133676 event_id
133677 , ledger_id
133678 , sla_ledger_id
133679 , description_language
133680 , object_name
133681 , object_type_code
133682 , line_number
133683 , source_application_id
133684 , source_type_code
133685 , source_code
133686 , source_value
133687 , source_meaning
133688 , created_by
133689 , creation_date
133690 , last_update_date
133691 , last_updated_by
133692 , last_update_login
133693 , program_update_date
133694 , program_application_id
133695 , program_id
133696 , request_id
133697 )
133698 SELECT
133699 event_id
133700 , p_target_ledger_id
133701 , p_sla_ledger_id
133702 , p_language
133703 , object_name
133704 , object_type_code
133705 , line_number
133706 , source_application_id
133707 , source_type_code
133708 , source_code
133709 , SUBSTR(source_value ,1,1996)
133710 , SUBSTR(source_meaning ,1,200)
133711 , xla_environment_pkg.g_Usr_Id
133712 , TRUNC(SYSDATE)
133713 , TRUNC(SYSDATE)
133714 , xla_environment_pkg.g_Usr_Id
133715 , xla_environment_pkg.g_Login_Id
133716 , TRUNC(SYSDATE)
133717 , xla_environment_pkg.g_Prog_Appl_Id
133718 , xla_environment_pkg.g_Prog_Id
133719 , xla_environment_pkg.g_Req_Id
133720 FROM (
133721 SELECT xet.event_id event_id
133722 , 0 line_number
133723 , CASE r
133724 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
133725 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
133726 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
133727 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
133728 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
133729
133730 ELSE null
133731 END object_name
133732 , CASE r
133733 WHEN 1 THEN 'HEADER'
133734 WHEN 2 THEN 'HEADER'
133735 WHEN 3 THEN 'HEADER'
133736 WHEN 4 THEN 'HEADER'
133737 WHEN 5 THEN 'HEADER'
133738
133739 ELSE null
133740 END object_type_code
133741 , CASE r
133742 WHEN 1 THEN '200'
133743 WHEN 2 THEN '200'
133744 WHEN 3 THEN '200'
133745 WHEN 4 THEN '200'
133746 WHEN 5 THEN '200'
133747
133748 ELSE null
133749 END source_application_id
133750 , 'S' source_type_code
133751 , CASE r
133752 WHEN 1 THEN 'THIRD_PARTY_TYPE'
133753 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
133754 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY'
133755 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
133756 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE'
133757
133758 ELSE null
133759 END source_code
133760 , CASE r
133761 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
133762 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
133763 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
133764 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
133765 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
133769 , null source_meaning
133766
133767 ELSE null
133768 END source_value
133770 FROM xla_events_gt xet
133771 , AP_INVOICE_EXTRACT_HEADER_V h2
133772 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
133773 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
133774 AND xet.event_class_code = C_EVENT_CLASS_CODE
133775 AND h2.event_id = xet.event_id
133776
133777 )
133778 ;
133779 --
133780 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133781
133782 trace
133783 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
133784 ,p_level => C_LEVEL_STATEMENT
133785 ,p_module => l_log_module);
133786
133787 END IF;
133788 --
133789
133790
133791
133792 --
133793 INSERT INTO xla_diag_sources --line2
133794 (
133795 event_id
133796 , ledger_id
133797 , sla_ledger_id
133798 , description_language
133799 , object_name
133800 , object_type_code
133801 , line_number
133802 , source_application_id
133803 , source_type_code
133804 , source_code
133805 , source_value
133806 , source_meaning
133807 , created_by
133808 , creation_date
133809 , last_update_date
133810 , last_updated_by
133811 , last_update_login
133812 , program_update_date
133813 , program_application_id
133814 , program_id
133815 , request_id
133816 )
133817 SELECT event_id
133818 , p_target_ledger_id
133819 , p_sla_ledger_id
133820 , p_language
133821 , object_name
133822 , object_type_code
133823 , line_number
133824 , source_application_id
133825 , source_type_code
133826 , source_code
133827 , SUBSTR(source_value,1,1996)
133828 , SUBSTR(source_meaning ,1,200)
133829 , xla_environment_pkg.g_Usr_Id
133830 , TRUNC(SYSDATE)
133831 , TRUNC(SYSDATE)
133832 , xla_environment_pkg.g_Usr_Id
133833 , xla_environment_pkg.g_Login_Id
133834 , TRUNC(SYSDATE)
133835 , xla_environment_pkg.g_Prog_Appl_Id
133836 , xla_environment_pkg.g_Prog_Id
133837 , xla_environment_pkg.g_Req_Id
133838 FROM (
133839 SELECT xet.event_id event_id
133840 , l1.line_number line_number
133841 , CASE r
133842 WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133843 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133844 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
133845 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133846 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
133847 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133848 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133849 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133850 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133851 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133852 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133853 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133854 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133855 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133856 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133857 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V'
133858
133859 ELSE null
133860 END object_name
133861 , CASE r
133862 WHEN 1 THEN 'LINE'
133863 WHEN 2 THEN 'LINE'
133864 WHEN 3 THEN 'LINE'
133865 WHEN 4 THEN 'LINE'
133866 WHEN 5 THEN 'LINE'
133867 WHEN 6 THEN 'LINE'
133868 WHEN 7 THEN 'LINE'
133869 WHEN 8 THEN 'LINE'
133870 WHEN 9 THEN 'LINE'
133871 WHEN 10 THEN 'LINE'
133872 WHEN 11 THEN 'LINE'
133873 WHEN 12 THEN 'LINE'
133874 WHEN 13 THEN 'LINE'
133875 WHEN 14 THEN 'LINE'
133876 WHEN 15 THEN 'LINE'
133877 WHEN 16 THEN 'LINE'
133878
133879 ELSE null
133880 END object_type_code
133881 , CASE r
133882 WHEN 1 THEN '200'
133883 WHEN 2 THEN '200'
133884 WHEN 3 THEN '200'
133885 WHEN 4 THEN '200'
133886 WHEN 5 THEN '200'
133887 WHEN 6 THEN '200'
133888 WHEN 7 THEN '200'
133889 WHEN 8 THEN '200'
133890 WHEN 9 THEN '200'
133891 WHEN 10 THEN '200'
133892 WHEN 11 THEN '200'
133893 WHEN 12 THEN '200'
133894 WHEN 13 THEN '200'
133895 WHEN 14 THEN '200'
133896 WHEN 15 THEN '200'
133897 WHEN 16 THEN '200'
133898
133899 ELSE null
133900 END source_application_id
133901 , 'S' source_type_code
133902 , CASE r
133903 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
133904 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE'
133905 WHEN 3 THEN 'TAX_LINE_ID'
133906 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID'
133907 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID'
133908 WHEN 6 THEN 'UPG_ENC_CR_CCID'
133909 WHEN 7 THEN 'UPG_ENC_CR_AMT'
133910 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT'
133914 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION'
133911 WHEN 9 THEN 'UPG_ENC_DR_CCID'
133912 WHEN 10 THEN 'UPG_ENC_DR_AMT'
133913 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT'
133915 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID'
133916 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID'
133917 WHEN 15 THEN 'AID_INVOICE_DIST_ID'
133918 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID'
133919
133920 ELSE null
133921 END source_code
133922 , CASE r
133923 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
133924 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
133925 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
133926 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
133927 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
133928 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
133929 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
133930 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
133931 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
133932 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
133933 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
133934 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
133935 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
133936 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
133937 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
133938 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
133939
133940 ELSE null
133941 END source_value
133942 , null source_meaning
133943 FROM xla_events_gt xet
133944 , AP_INVOICE_EXTRACT_DETAILS_V l1
133945 , ZX_AP_DEF_TAX_EXTRACT_V l3
133946 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
133947 , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
133948 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
133949 AND xet.event_class_code = C_EVENT_CLASS_CODE
133950 AND l1.event_id = xet.event_id
133951 AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+)
133952 )
133953 ;
133954 --
133955 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133956
133957 trace
133958 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
133959 ,p_level => C_LEVEL_STATEMENT
133960 ,p_module => l_log_module);
133961
133962 END IF;
133963
133964
133965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133966 trace
133967 (p_msg => 'END of insert_sources_211'
133968 ,p_level => C_LEVEL_PROCEDURE
133969 ,p_module => l_log_module);
133970 END IF;
133971 EXCEPTION
133972 WHEN xla_exceptions_pkg.application_exception THEN
133973 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
133974 trace
133975 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
133976 ,p_level => C_LEVEL_EXCEPTION
133977 ,p_module => l_log_module);
133978 END IF;
133979 RAISE;
133980 WHEN OTHERS THEN
133981 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
133982 trace
133983 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
133984 ,p_level => C_LEVEL_EXCEPTION
133985 ,p_module => l_log_module);
133986 END IF;
133987 xla_exceptions_pkg.raise_message
133988 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_211');
133989 END insert_sources_211;
133990 --
133991
133992 ---------------------------------------
133993 --
133994 -- PRIVATE FUNCTION
133995 -- EventClass_211
133996 --
133997 ----------------------------------------
133998 --
133999 FUNCTION EventClass_211
134000 (p_application_id IN NUMBER
134001 ,p_base_ledger_id IN NUMBER
134002 ,p_target_ledger_id IN NUMBER
134003 ,p_language IN VARCHAR2
134004 ,p_currency_code IN VARCHAR2
134005 ,p_sla_ledger_id IN NUMBER
134006 ,p_pad_start_date IN DATE
134007 ,p_pad_end_date IN DATE
134008 ,p_primary_ledger_id IN NUMBER)
134009 RETURN BOOLEAN IS
134010 --
134011 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS_ALL';
134012 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS';
134013
134014 l_calculate_acctd_flag VARCHAR2(1) :='N';
134015 l_calculate_g_l_flag VARCHAR2(1) :='N';
134016 --
134017 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134018 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134019 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134020 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134021 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134022 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134023 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134024 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134025 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134026 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134027 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134028 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134029 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134030 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134031 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134035 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134032 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134033 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134034 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134036 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134037 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134038 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134039 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
134040 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134041 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
134042 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
134043
134044 l_event_id NUMBER;
134045 l_previous_event_id NUMBER;
134046 l_first_event_id NUMBER;
134047 l_last_event_id NUMBER;
134048
134049 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
134050 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
134051 --
134052 --
134053 l_result BOOLEAN := TRUE;
134054 l_rows NUMBER := 1000;
134055 l_event_type_name VARCHAR2(80) := 'All';
134056 l_event_class_name VARCHAR2(80) := 'Prepayments';
134057 l_description VARCHAR2(4000);
134058 l_transaction_reversal NUMBER;
134059 l_ae_header_id NUMBER;
134060 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
134061 l_log_module VARCHAR2(240);
134062 --
134063 l_acct_reversal_source VARCHAR2(30);
134064 l_trx_reversal_source VARCHAR2(30);
134065
134066 l_continue_with_lines BOOLEAN := TRUE;
134067 --
134068 l_acc_rev_gl_date_source DATE; -- 4262811
134069 --
134070 type t_array_event_id is table of number index by binary_integer;
134071
134072 l_rec_array_event t_rec_array_event;
134073 l_null_rec_array_event t_rec_array_event;
134074 l_array_ae_header_id xla_number_array_type;
134075 l_actual_flag VARCHAR2(1) := NULL;
134076 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
134077 l_balance_type_code VARCHAR2(1) :=NULL;
134078 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
134079
134080 --
134081 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
134082 --
134083
134084 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
134085 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
134086 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
134087 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
134088 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
134089
134090 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
134091 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
134092 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
134093 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
134094 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
134095 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
134096 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
134097 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
134098 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
134099 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
134100 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
134101 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
134102 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
134103 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
134104 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
134105 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
134106
134107 l_array_source_56 t_array_source_56;
134108 l_array_source_80 t_array_source_80;
134109 l_array_source_152 t_array_source_152;
134110 l_array_source_153 t_array_source_153;
134111 l_array_source_154 t_array_source_154;
134112
134113 l_array_source_40 t_array_source_40;
134114 l_array_source_48 t_array_source_48;
134115 l_array_source_58 t_array_source_58;
134116 l_array_source_59 t_array_source_59;
134117 l_array_source_66 t_array_source_66;
134118 l_array_source_78 t_array_source_78;
134119 l_array_source_79 t_array_source_79;
134120 l_array_source_81 t_array_source_81;
134121 l_array_source_83 t_array_source_83;
134122 l_array_source_84 t_array_source_84;
134123 l_array_source_85 t_array_source_85;
134124 l_array_source_86 t_array_source_86;
134125 l_array_source_96 t_array_source_96;
134126 l_array_source_97 t_array_source_97;
134127 l_array_source_156 t_array_source_156;
134131 CURSOR header_cur
134128 l_array_source_157 t_array_source_157;
134129
134130 --
134132 IS
134133 SELECT /*+ leading(xet) cardinality(xet,1) */
134134 -- Event Class Code: PREPAYMENTS
134135 xet.entity_id
134136 ,xet.legal_entity_id
134137 ,xet.entity_code
134138 ,xet.transaction_number
134139 ,xet.event_id
134140 ,xet.event_class_code
134141 ,xet.event_type_code
134142 ,xet.event_number
134143 ,xet.event_date
134144 ,xet.transaction_date
134145 ,xet.reference_num_1
134146 ,xet.reference_num_2
134147 ,xet.reference_num_3
134148 ,xet.reference_num_4
134149 ,xet.reference_char_1
134150 ,xet.reference_char_2
134151 ,xet.reference_char_3
134152 ,xet.reference_char_4
134153 ,xet.reference_date_1
134154 ,xet.reference_date_2
134155 ,xet.reference_date_3
134156 ,xet.reference_date_4
134157 ,xet.event_created_by
134158 ,xet.budgetary_control_flag
134159 , h2.THIRD_PARTY_TYPE source_56
134160 , h2.AI_INVOICE_CURRENCY_CODE source_80
134161 , h2.INV_DOC_SEQUENCE_CATEGORY source_152
134162 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_153
134163 , h2.INV_DOC_SEQUENCE_VALUE source_154
134164 FROM xla_events_gt xet
134165 , AP_INVOICE_EXTRACT_HEADER_V h2
134166 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
134167 and xet.event_class_code = C_EVENT_CLASS_CODE
134168 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
134169
134170 ORDER BY event_id
134171 ;
134172
134173
134174 --
134175 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
134176 IS
134177 SELECT /*+ leading(xet) cardinality(xet,1) */
134178 -- Event Class Code: PREPAYMENTS
134179 xet.entity_id
134180 ,xet.legal_entity_id
134181 ,xet.entity_code
134182 ,xet.transaction_number
134183 ,xet.event_id
134184 ,xet.event_class_code
134185 ,xet.event_type_code
134186 ,xet.event_number
134187 ,xet.event_date
134188 ,xet.transaction_date
134189 ,xet.reference_num_1
134190 ,xet.reference_num_2
134191 ,xet.reference_num_3
134192 ,xet.reference_num_4
134193 ,xet.reference_char_1
134194 ,xet.reference_char_2
134195 ,xet.reference_char_3
134196 ,xet.reference_char_4
134197 ,xet.reference_date_1
134198 ,xet.reference_date_2
134199 ,xet.reference_date_3
134200 ,xet.reference_date_4
134201 ,xet.event_created_by
134202 ,xet.budgetary_control_flag
134203 , l1.LINE_NUMBER
134204 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
134205 , l1.DISTRIBUTION_LINK_TYPE source_48
134206 , l3.TAX_LINE_ID source_58
134207 , l1.SUMMARY_TAX_LINE_ID source_59
134208 , l4.REC_NREC_TAX_DIST_ID source_66
134209 , l1.UPG_ENC_CR_CCID source_78
134210 , l1.UPG_ENC_CR_AMT source_79
134211 , l1.UPG_ENC_CR_BASE_AMT source_81
134212 , l1.UPG_ENC_DR_CCID source_83
134213 , l1.UPG_ENC_DR_AMT source_84
134214 , l1.UPG_ENC_DR_BASE_AMT source_85
134215 , l1.UPG_AP_ENCUM_OPTION source_86
134216 , l1.UPG_CR_ENC_TYPE_ID source_96
134217 , l1.UPG_DR_ENC_TYPE_ID source_97
134218 , l1.AID_INVOICE_DIST_ID source_156
134219 , l1.AID_PARENT_REVERSAL_ID source_157
134220 FROM xla_events_gt xet
134221 , AP_INVOICE_EXTRACT_DETAILS_V l1
134222 , ZX_AP_DEF_TAX_EXTRACT_V l3
134223 , ZX_AP_TAX_JRNL_LINE_DESC_V l4
134224 WHERE xet.event_id between x_first_event_id and x_last_event_id
134225 and xet.event_date between p_pad_start_date and p_pad_end_date
134226 and xet.event_class_code = C_EVENT_CLASS_CODE
134227 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
134228 AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
134229
134230 --
134231 BEGIN
134232 IF g_log_enabled THEN
134233 l_log_module := C_DEFAULT_MODULE||'.EventClass_211';
134234 END IF;
134235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134236 trace
134237 (p_msg => 'BEGIN of EventClass_211'
134238 ,p_level => C_LEVEL_PROCEDURE
134239 ,p_module => l_log_module);
134240 END IF;
134241
134242 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134243 trace
134244 (p_msg => 'p_application_id = '||p_application_id||
134245 ' - p_base_ledger_id = '||p_base_ledger_id||
134246 ' - p_target_ledger_id = '||p_target_ledger_id||
134247 ' - p_language = '||p_language||
134248 ' - p_currency_code = '||p_currency_code||
134249 ' - p_sla_ledger_id = '||p_sla_ledger_id
134250 ,p_level => C_LEVEL_STATEMENT
134251 ,p_module => l_log_module);
134252 END IF;
134253 --
134254 -- initialze arrays
134255 --
134256 g_array_event.DELETE;
134257 l_rec_array_event := l_null_rec_array_event;
134258 --
134259 --------------------------------------
134260 -- 4262811 Initialze MPA Line Number
134261 --------------------------------------
134262 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
134263
134264 --
134265
134266 --
134267 OPEN header_cur;
134268 --
134269 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134270 trace
134271 (p_msg => 'SQL - FETCH header_cur'
134272 ,p_level => C_LEVEL_STATEMENT
134273 ,p_module => l_log_module);
134274 END IF;
134275 --
134276 LOOP
134277 FETCH header_cur BULK COLLECT INTO
134278 l_array_entity_id
134279 , l_array_legal_entity_id
134280 , l_array_entity_code
134281 , l_array_transaction_num
134282 , l_array_event_id
134283 , l_array_class_code
134284 , l_array_event_type
134285 , l_array_event_number
134286 , l_array_event_date
134287 , l_array_transaction_date
134288 , l_array_reference_num_1
134292 , l_array_reference_char_1
134289 , l_array_reference_num_2
134290 , l_array_reference_num_3
134291 , l_array_reference_num_4
134293 , l_array_reference_char_2
134294 , l_array_reference_char_3
134295 , l_array_reference_char_4
134296 , l_array_reference_date_1
134297 , l_array_reference_date_2
134298 , l_array_reference_date_3
134299 , l_array_reference_date_4
134300 , l_array_event_created_by
134301 , l_array_budgetary_control_flag
134302 , l_array_source_56
134303 , l_array_source_80
134304 , l_array_source_152
134305 , l_array_source_153
134306 , l_array_source_154
134307 LIMIT l_rows;
134308 --
134309 IF (C_LEVEL_EVENT >= g_log_level) THEN
134310 trace
134311 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
134312 ,p_level => C_LEVEL_EVENT
134313 ,p_module => l_log_module);
134314 END IF;
134315 --
134316 EXIT WHEN l_array_entity_id.COUNT = 0;
134317
134318 -- initialize arrays
134319 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
134320 XLA_AE_LINES_PKG.g_rec_lines := NULL;
134321
134322 --
134323 -- Bug 4458708
134324 --
134325 XLA_AE_LINES_PKG.g_LineNumber := 0;
134326
134327
134328 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
134329 g_last_hdr_idx := l_array_event_id.LAST;
134330 --
134331 -- loop for the headers. Each iteration is for each header extract row
134332 -- fetched in header cursor
134333 --
134334 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
134335
134336 --
134337 -- set event info as cache for other routines to refer event attributes
134338 --
134339 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
134340 (p_application_id => p_application_id
134341 ,p_primary_ledger_id => p_primary_ledger_id
134342 ,p_base_ledger_id => p_base_ledger_id
134343 ,p_target_ledger_id => p_target_ledger_id
134344 ,p_entity_id => l_array_entity_id(hdr_idx)
134345 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
134346 ,p_entity_code => l_array_entity_code(hdr_idx)
134347 ,p_transaction_num => l_array_transaction_num(hdr_idx)
134348 ,p_event_id => l_array_event_id(hdr_idx)
134349 ,p_event_class_code => l_array_class_code(hdr_idx)
134350 ,p_event_type_code => l_array_event_type(hdr_idx)
134351 ,p_event_number => l_array_event_number(hdr_idx)
134352 ,p_event_date => l_array_event_date(hdr_idx)
134353 ,p_transaction_date => l_array_transaction_date(hdr_idx)
134354 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
134355 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
134356 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
134357 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
134358 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
134359 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
134360 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
134361 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
134362 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
134363 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
134364 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
134365 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
134366 ,p_event_created_by => l_array_event_created_by(hdr_idx)
134367 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
134368
134369 --
134370 -- set the status of entry to C_VALID (0)
134371 --
134372 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
134373
134374 --
134375 -- initialize a row for ae header
134376 --
134377 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
134378
134379 l_event_id := l_array_event_id(hdr_idx);
134380
134381 --
134382 -- storing the hdr_idx for event. May be used by line cursor.
134383 --
134384 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
134385
134386 --
134387 -- store sources from header extract. This can be improved to
134388 -- store only those sources from header extract that may be used in lines
134389 --
134390
134391 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
134392 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
134393 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
134394 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
134395 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
134396
134397 --
134398 -- initilaize the status of ae headers for diffrent balance types
134399 -- the status is initialised to C_NOT_CREATED (2)
134400 --
134401 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
134402 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
134403 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
134404
134405 --
134406 -- call api to validate and store accounting attributes for header
134407 --
134408
134409 ------------------------------------------------------------
134410 -- Accrual Reversal : to get date for Standard Source (NONE)
134411 ------------------------------------------------------------
134412 l_acc_rev_gl_date_source := NULL;
134413
134414 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
134415 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
134416 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
134420 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
134417 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
134418 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
134419 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
134421 l_rec_acct_attrs.array_date_value(4) :=
134422 xla_ae_sources_pkg.GetSystemSourceDate(
134423 p_source_code => 'XLA_EVENT_DATE'
134424 , p_source_type_code => 'Y'
134425 , p_source_application_id => 602
134426 );
134427
134428
134429 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
134430
134431 XLA_AE_HEADER_PKG.SetJeCategoryName;
134432
134433 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
134434 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
134435 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
134436 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
134437 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
134438
134439
134440 -- No header level analytical criteria
134441
134442 --
134443 --accounting attribute enhancement, bug 3612931
134444 --
134445 l_trx_reversal_source := SUBSTR(NULL, 1,30);
134446
134447 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
134448 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
134449
134450 xla_accounting_err_pkg.build_message
134451 (p_appli_s_name => 'XLA'
134452 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
134453 ,p_token_1 => 'ACCT_ATTR_NAME'
134454 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
134455 ,p_token_2 => 'PRODUCT_NAME'
134456 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
134457 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
134458 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
134459 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
134460
134461 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
134462 --
134463 -- following sets the accounting attributes needed to reverse
134464 -- accounting for a distributeion
134465 --
134466 xla_ae_lines_pkg.SetTrxReversalAttrs
134467 (p_event_id => l_event_id
134468 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
134469 ,p_trx_reversal_source => l_trx_reversal_source);
134470
134471 END IF;
134472
134473
134474 ----------------------------------------------------------------
134475 -- 4262811 - update the header statuses to invalid in need be
134476 ----------------------------------------------------------------
134477 --
134478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
134479
134480
134481 -----------------------------------------------
134482 -- No accrual reversal for the event class/type
134483 -----------------------------------------------
134484 ----------------------------------------------------------------
134485
134486 --
134487 -- this ends the header loop iteration for one bulk fetch
134488 --
134489 END LOOP;
134490
134491 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
134492 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
134493
134494 --
134495 -- insert dummy rows into lines gt table that were created due to
134496 -- transaction reversals
134497 --
134498 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
134499 l_result := XLA_AE_LINES_PKG.InsertLines;
134500 END IF;
134501
134502 --
134503 -- reset the temp_line_num for each set of events fetched from header
134504 -- cursor rather than doing it for each new event in line cursor
134505 -- Bug 3939231
134506 --
134507 xla_ae_lines_pkg.g_temp_line_num := 0;
134508
134509
134510
134511 --
134512 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
134513 --
134514 --
134515 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134516
134517 trace
134518 (p_msg => 'SQL - FETCH line_cur'
134519 ,p_level => C_LEVEL_STATEMENT
134520 ,p_module => l_log_module);
134521
134522 END IF;
134523 --
134524 --
134525 LOOP
134526 --
134527 FETCH line_cur BULK COLLECT INTO
134528 l_array_entity_id
134529 , l_array_legal_entity_id
134530 , l_array_entity_code
134531 , l_array_transaction_num
134532 , l_array_event_id
134533 , l_array_class_code
134534 , l_array_event_type
134535 , l_array_event_number
134536 , l_array_event_date
134537 , l_array_transaction_date
134538 , l_array_reference_num_1
134539 , l_array_reference_num_2
134540 , l_array_reference_num_3
134541 , l_array_reference_num_4
134542 , l_array_reference_char_1
134543 , l_array_reference_char_2
134544 , l_array_reference_char_3
134545 , l_array_reference_char_4
134546 , l_array_reference_date_1
134547 , l_array_reference_date_2
134548 , l_array_reference_date_3
134549 , l_array_reference_date_4
134550 , l_array_event_created_by
134551 , l_array_budgetary_control_flag
134552 , l_array_extract_line_num
134553 , l_array_source_40
134554 , l_array_source_48
134555 , l_array_source_58
134556 , l_array_source_59
134557 , l_array_source_66
134558 , l_array_source_78
134559 , l_array_source_79
134560 , l_array_source_81
134564 , l_array_source_86
134561 , l_array_source_83
134562 , l_array_source_84
134563 , l_array_source_85
134565 , l_array_source_96
134566 , l_array_source_97
134567 , l_array_source_156
134568 , l_array_source_157
134569 LIMIT l_rows;
134570
134571 --
134572 IF (C_LEVEL_EVENT >= g_log_level) THEN
134573 trace
134574 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
134575 ,p_level => C_LEVEL_EVENT
134576 ,p_module => l_log_module);
134577 END IF;
134578 --
134579 EXIT WHEN l_array_entity_id.count = 0;
134580
134581 XLA_AE_LINES_PKG.g_rec_lines := null;
134582
134583 --
134584 -- Bug 4458708
134585 --
134586 XLA_AE_LINES_PKG.g_LineNumber := 0;
134587 --
134588 --
134589
134590 FOR Idx IN 1..l_array_event_id.count LOOP
134591 --
134592 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
134593 --
134594 l_event_id := l_array_event_id(idx); -- 5648433
134595
134596 --
134597 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
134598 --
134599
134600 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
134601 (g_array_event(l_event_id).array_value_num('header_index'))
134602 ,'N'
134603 ) <> 'Y'
134604 THEN
134605 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134606 trace
134607 (p_msg => 'Trancaction revesal option is not Y '
134608 ,p_level => C_LEVEL_STATEMENT
134609 ,p_module => l_log_module);
134610 END IF;
134611
134612 --
134613 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
134614 --
134615 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
134616 --
134617 -- set event info as cache for other routines to refer event attributes
134618 --
134619
134620 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
134621 l_previous_event_id := l_event_id;
134622
134623 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
134624 (p_application_id => p_application_id
134625 ,p_primary_ledger_id => p_primary_ledger_id
134626 ,p_base_ledger_id => p_base_ledger_id
134627 ,p_target_ledger_id => p_target_ledger_id
134628 ,p_entity_id => l_array_entity_id(Idx)
134629 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
134630 ,p_entity_code => l_array_entity_code(Idx)
134631 ,p_transaction_num => l_array_transaction_num(Idx)
134632 ,p_event_id => l_array_event_id(Idx)
134633 ,p_event_class_code => l_array_class_code(Idx)
134634 ,p_event_type_code => l_array_event_type(Idx)
134635 ,p_event_number => l_array_event_number(Idx)
134636 ,p_event_date => l_array_event_date(Idx)
134637 ,p_transaction_date => l_array_transaction_date(Idx)
134638 ,p_reference_num_1 => l_array_reference_num_1(Idx)
134639 ,p_reference_num_2 => l_array_reference_num_2(Idx)
134640 ,p_reference_num_3 => l_array_reference_num_3(Idx)
134641 ,p_reference_num_4 => l_array_reference_num_4(Idx)
134642 ,p_reference_char_1 => l_array_reference_char_1(Idx)
134643 ,p_reference_char_2 => l_array_reference_char_2(Idx)
134644 ,p_reference_char_3 => l_array_reference_char_3(Idx)
134645 ,p_reference_char_4 => l_array_reference_char_4(Idx)
134646 ,p_reference_date_1 => l_array_reference_date_1(Idx)
134647 ,p_reference_date_2 => l_array_reference_date_2(Idx)
134648 ,p_reference_date_3 => l_array_reference_date_3(Idx)
134649 ,p_reference_date_4 => l_array_reference_date_4(Idx)
134650 ,p_event_created_by => l_array_event_created_by(Idx)
134651 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
134652 --
134653 END IF;
134654
134655
134656
134657 --
134658 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
134659
134660 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
134661
134662 IF l_continue_with_lines THEN
134663 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
134664 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
134665
134666 xla_accounting_err_pkg.build_message
134667 (p_appli_s_name => 'XLA'
134668 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
134669 ,p_token_1 => 'LINE_NUMBER'
134670 ,p_value_1 => l_array_extract_line_num(Idx)
134671 ,p_token_2 => 'PRODUCT_NAME'
134672 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
134673 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
134674 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
134675 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
134676
134677 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
134678 --
134679 -- following sets the accounting attributes needed to reverse
134680 -- accounting for a distributeion
134681 --
134682
134683 --
134684 -- 5217187
134685 --
134686 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
134687 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
134688 g_array_event(l_event_id).array_value_num('header_index'));
134689 --
134690 --
134691
134692 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
134696 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
134693 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
134694 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
134695 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
134697 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
134698 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
134699 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_78(Idx);
134700 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
134701 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_79(Idx);
134702 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
134703 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_80');
134704 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
134705 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_81(Idx);
134706 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
134707 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_83(Idx);
134708 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
134709 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_84(Idx);
134710 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
134711 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_80');
134712 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
134713 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_85(Idx);
134714 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
134715 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_86(Idx);
134716 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
134717 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_56');
134718 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
134719 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_157(Idx);
134720 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
134721 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_48(Idx);
134722 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
134723 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_58(Idx);
134724 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
134725 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_66(Idx);
134726 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
134727 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_59(Idx);
134728 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
134729 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_96(Idx);
134730 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
134731 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_97(Idx);
134732
134733
134734 xla_ae_lines_pkg.SetAcctReversalAttrs
134735 (p_event_id => l_event_id
134736 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
134737 ,p_calculate_acctd_flag => l_calculate_acctd_flag
134738 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
134739 END IF;
134740
134741 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
134742 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
134743 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
134744 -- or secondary ledger that has different currency with primary
134745 -- or alc that is calculated by sla
134746 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
134747 (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'))
134748
134749 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
134750 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
134751 AND (l_actual_flag = 'A')) THEN
134752 XLA_AE_LINES_PKG.CreateGainOrLossLines(
134753 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
134754 ,p_application_id => p_application_id
134755 ,p_amb_context_code => 'DEFAULT'
134756 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
134757 ,p_event_class_code => C_EVENT_CLASS_CODE
134758 ,p_event_type_code => C_EVENT_TYPE_CODE
134759
134760 ,p_gain_ccid => -1
134761 ,p_loss_ccid => -1
134762
134763 ,p_actual_flag => l_actual_flag
134764 ,p_enc_flag => null
134765 ,p_actual_g_l_ref => l_actual_gain_loss_ref
134766 ,p_enc_g_l_ref => null
134767 );
134768 END IF;
134769 END IF;
134770 END IF;
134771
134772 ELSE
134773 --
134774 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
134775 --
134776 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134777 trace
134778 (p_msg => 'Trancaction revesal option is Y'
134779 ,p_level => C_LEVEL_STATEMENT
134780 ,p_module => l_log_module);
134781 END IF;
134782 END IF;
134783
134784 END LOOP;
134785 l_result := XLA_AE_LINES_PKG.InsertLines ;
134786 end loop;
134787 close line_cur;
134788
134789
134790 --
134791 -- insert headers into xla_ae_headers_gt table
134792 --
134793 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
134794
134795 -- insert into errors table here.
134796
134797 END LOOP;
134798
134799 --
134800 -- 4865292
134801 --
134805 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
134802 -- Compare g_hdr_extract_count with event count in
134803 -- CreateHeadersAndLines.
134804 --
134806
134807 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134808 trace (p_msg => '# rows extracted from header extract objects '
134809 || ' (running total): '
134810 || g_hdr_extract_count
134811 ,p_level => C_LEVEL_STATEMENT
134812 ,p_module => l_log_module);
134813 END IF;
134814
134815 CLOSE header_cur;
134816 --
134817
134818 --
134819 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134820 trace
134821 (p_msg => 'END of EventClass_211'
134822 ,p_level => C_LEVEL_PROCEDURE
134823 ,p_module => l_log_module);
134824 END IF;
134825 --
134826 RETURN l_result;
134827 EXCEPTION
134828 WHEN xla_exceptions_pkg.application_exception THEN
134829
134830 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
134831
134832
134833 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
134834
134835 RAISE;
134836
134837 WHEN NO_DATA_FOUND THEN
134838
134839 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
134840 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
134841
134842 FOR header_record IN header_cur
134843 LOOP
134844 l_array_header_events(header_record.event_id) := header_record.event_id;
134845 END LOOP;
134846
134847 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
134848 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
134849
134850 fnd_file.put_line(fnd_file.LOG, ' ');
134851 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
134852 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
134853 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
134854
134855 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
134856 LOOP
134857 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
134858 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
134859 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
134860 END IF;
134861 END LOOP;
134862
134863 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
134864 fnd_file.put_line(fnd_file.LOG, ' ');
134865
134866
134867 xla_exceptions_pkg.raise_message
134868 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_211');
134869
134870
134871 WHEN OTHERS THEN
134872 xla_exceptions_pkg.raise_message
134873 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_211');
134874 END EventClass_211;
134875 --
134876
134877 ---------------------------------------
134878 --
134879 -- PRIVATE PROCEDURE
134880 -- insert_sources_212
134881 --
134882 ----------------------------------------
134883 --
134884 PROCEDURE insert_sources_212(
134885 p_target_ledger_id IN NUMBER
134886 , p_language IN VARCHAR2
134887 , p_sla_ledger_id IN NUMBER
134888 , p_pad_start_date IN DATE
134889 , p_pad_end_date IN DATE
134890 )
134891 IS
134892
134893 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT_BURDEN_ALL';
134894 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT_BURDEN';
134895 p_apps_owner VARCHAR2(30);
134896 l_log_module VARCHAR2(240);
134897 BEGIN
134898 IF g_log_enabled THEN
134899 l_log_module := C_DEFAULT_MODULE||'.insert_sources_212';
134900 END IF;
134901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134902
134903 trace
134904 (p_msg => 'BEGIN of insert_sources_212'
134905 ,p_level => C_LEVEL_PROCEDURE
134906 ,p_module => l_log_module);
134907
134908 END IF;
134909
134910 -- select APPS owner
134911 SELECT oracle_username
134912 INTO p_apps_owner
134913 FROM fnd_oracle_userid
134914 WHERE read_only_flag = 'U'
134915 ;
134916
134917 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134918 trace
134919 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
134920 ' - p_language = '||p_language||
134921 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
134922 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
134923 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
134924 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
134925 ,p_level => C_LEVEL_STATEMENT
134926 ,p_module => l_log_module);
134927 END IF;
134928
134929
134930
134931
134932 --
134933 INSERT INTO xla_diag_sources --line2
134934 (
134935 event_id
134936 , ledger_id
134937 , sla_ledger_id
134938 , description_language
134939 , object_name
134940 , object_type_code
134941 , line_number
134942 , source_application_id
134943 , source_type_code
134944 , source_code
134945 , source_value
134946 , source_meaning
134947 , created_by
134948 , creation_date
134949 , last_update_date
134950 , last_updated_by
134951 , last_update_login
134952 , program_update_date
134953 , program_application_id
134954 , program_id
134955 , request_id
134956 )
134957 SELECT event_id
134958 , p_target_ledger_id
134959 , p_sla_ledger_id
134963 , line_number
134960 , p_language
134961 , object_name
134962 , object_type_code
134964 , source_application_id
134965 , source_type_code
134966 , source_code
134967 , SUBSTR(source_value,1,1996)
134968 , SUBSTR(source_meaning ,1,200)
134969 , xla_environment_pkg.g_Usr_Id
134970 , TRUNC(SYSDATE)
134971 , TRUNC(SYSDATE)
134972 , xla_environment_pkg.g_Usr_Id
134973 , xla_environment_pkg.g_Login_Id
134974 , TRUNC(SYSDATE)
134975 , xla_environment_pkg.g_Prog_Appl_Id
134976 , xla_environment_pkg.g_Prog_Id
134977 , xla_environment_pkg.g_Req_Id
134978 FROM (
134979 SELECT xet.event_id event_id
134980 , l1.line_number line_number
134981 , CASE r
134982 WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134983 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134984 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134985 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134986 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134987 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134988 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134989 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134990 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134991 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134992 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134993 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134994 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134995 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134996 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134997 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134998 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
134999
135000 ELSE null
135001 END object_name
135002 , CASE r
135003 WHEN 1 THEN 'LINE'
135004 WHEN 2 THEN 'LINE'
135005 WHEN 3 THEN 'LINE'
135006 WHEN 4 THEN 'LINE'
135007 WHEN 5 THEN 'LINE'
135008 WHEN 6 THEN 'LINE'
135009 WHEN 7 THEN 'LINE'
135010 WHEN 8 THEN 'LINE'
135011 WHEN 9 THEN 'LINE'
135012 WHEN 10 THEN 'LINE'
135013 WHEN 11 THEN 'LINE'
135014 WHEN 12 THEN 'LINE'
135015 WHEN 13 THEN 'LINE'
135016 WHEN 14 THEN 'LINE'
135017 WHEN 15 THEN 'LINE'
135018 WHEN 16 THEN 'LINE'
135019 WHEN 17 THEN 'LINE'
135020
135021 ELSE null
135022 END object_type_code
135023 , CASE r
135024 WHEN 1 THEN '200'
135025 WHEN 2 THEN '200'
135026 WHEN 3 THEN '200'
135027 WHEN 4 THEN '200'
135028 WHEN 5 THEN '200'
135029 WHEN 6 THEN '200'
135030 WHEN 7 THEN '200'
135031 WHEN 8 THEN '200'
135032 WHEN 9 THEN '200'
135033 WHEN 10 THEN '200'
135034 WHEN 11 THEN '200'
135035 WHEN 12 THEN '200'
135036 WHEN 13 THEN '200'
135037 WHEN 14 THEN '200'
135038 WHEN 15 THEN '200'
135039 WHEN 16 THEN '200'
135040 WHEN 17 THEN '200'
135041
135042 ELSE null
135043 END source_application_id
135044 , 'S' source_type_code
135045 , CASE r
135046 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE'
135047 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
135048 WHEN 3 THEN 'AID_INVOICE_DIST_ID'
135049 WHEN 4 THEN 'ACCT_REVERSAL_INDICATOR'
135050 WHEN 5 THEN 'AID_EXPENDITURE_TYPE'
135051 WHEN 6 THEN 'ENC_UPG_CR_ACCT_CLASS'
135052 WHEN 7 THEN 'ENC_UPG_CR_ACCOUNT'
135053 WHEN 8 THEN 'AID_AMOUNT'
135054 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND'
135055 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS'
135056 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT'
135057 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
135058 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID'
135059 WHEN 14 THEN 'AP_SECOND_DIST_ID'
135060 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE'
135061 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID'
135062 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID'
135063
135064 ELSE null
135065 END source_code
135066 , CASE r
135067 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
135068 WHEN 2 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
135069 WHEN 3 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
135070 WHEN 4 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
135071 WHEN 5 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
135072 WHEN 6 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
135073 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
135074 WHEN 8 THEN TO_CHAR(l1.AID_AMOUNT)
135075 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
135076 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
135077 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
135078 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
135079 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
135080 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
135081 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
135082 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
135086 END source_value
135083 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
135084
135085 ELSE null
135087 , null source_meaning
135088 FROM xla_events_gt xet
135089 , PA_XLA_BC_PKT_AP_DETAIL_V l1
135090 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
135091 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
135092 AND xet.event_class_code = C_EVENT_CLASS_CODE
135093 AND l1.event_id = xet.event_id
135094
135095 )
135096 ;
135097 --
135098 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135099
135100 trace
135101 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
135102 ,p_level => C_LEVEL_STATEMENT
135103 ,p_module => l_log_module);
135104
135105 END IF;
135106
135107
135108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135109 trace
135110 (p_msg => 'END of insert_sources_212'
135111 ,p_level => C_LEVEL_PROCEDURE
135112 ,p_module => l_log_module);
135113 END IF;
135114 EXCEPTION
135115 WHEN xla_exceptions_pkg.application_exception THEN
135116 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
135117 trace
135118 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
135119 ,p_level => C_LEVEL_EXCEPTION
135120 ,p_module => l_log_module);
135121 END IF;
135122 RAISE;
135123 WHEN OTHERS THEN
135124 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
135125 trace
135126 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
135127 ,p_level => C_LEVEL_EXCEPTION
135128 ,p_module => l_log_module);
135129 END IF;
135130 xla_exceptions_pkg.raise_message
135131 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_212');
135132 END insert_sources_212;
135133 --
135134
135135 ---------------------------------------
135136 --
135137 -- PRIVATE FUNCTION
135138 -- EventClass_212
135139 --
135140 ----------------------------------------
135141 --
135142 FUNCTION EventClass_212
135143 (p_application_id IN NUMBER
135144 ,p_base_ledger_id IN NUMBER
135145 ,p_target_ledger_id IN NUMBER
135146 ,p_language IN VARCHAR2
135147 ,p_currency_code IN VARCHAR2
135148 ,p_sla_ledger_id IN NUMBER
135149 ,p_pad_start_date IN DATE
135150 ,p_pad_end_date IN DATE
135151 ,p_primary_ledger_id IN NUMBER)
135152 RETURN BOOLEAN IS
135153 --
135154 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT_BURDEN_ALL';
135155 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT_BURDEN';
135156
135157 l_calculate_acctd_flag VARCHAR2(1) :='N';
135158 l_calculate_g_l_flag VARCHAR2(1) :='N';
135159 --
135160 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135161 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135162 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135163 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135164 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135165 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135166 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135167 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135168 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135169 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135170 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135171 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135172 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135173 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135174 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135175 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135176 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135177 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135178 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135179 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135180 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135181 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135182 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
135183 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135184 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
135185 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
135186
135187 l_event_id NUMBER;
135188 l_previous_event_id NUMBER;
135189 l_first_event_id NUMBER;
135190 l_last_event_id NUMBER;
135191
135192 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
135193 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
135194 --
135195 --
135196 l_result BOOLEAN := TRUE;
135197 l_rows NUMBER := 1000;
135198 l_event_type_name VARCHAR2(80) := 'All';
135199 l_event_class_name VARCHAR2(80) := 'Burden for Prepayments';
135200 l_description VARCHAR2(4000);
135201 l_transaction_reversal NUMBER;
135202 l_ae_header_id NUMBER;
135203 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
135207 l_trx_reversal_source VARCHAR2(30);
135204 l_log_module VARCHAR2(240);
135205 --
135206 l_acct_reversal_source VARCHAR2(30);
135208
135209 l_continue_with_lines BOOLEAN := TRUE;
135210 --
135211 l_acc_rev_gl_date_source DATE; -- 4262811
135212 --
135213 type t_array_event_id is table of number index by binary_integer;
135214
135215 l_rec_array_event t_rec_array_event;
135216 l_null_rec_array_event t_rec_array_event;
135217 l_array_ae_header_id xla_number_array_type;
135218 l_actual_flag VARCHAR2(1) := NULL;
135219 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
135220 l_balance_type_code VARCHAR2(1) :=NULL;
135221 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
135222
135223 --
135224 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
135225 --
135226
135227
135228 TYPE t_array_source_48 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
135229 TYPE t_array_source_80 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
135230 TYPE t_array_source_156 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
135231 TYPE t_array_source_161 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
135232 TYPE t_array_source_162 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
135233 TYPE t_array_source_163 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
135234 TYPE t_array_source_164 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
135235 TYPE t_array_source_165 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
135236 TYPE t_array_source_166 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
135237 TYPE t_array_source_167 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
135238 TYPE t_array_source_168 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
135239 TYPE t_array_source_169 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
135240 TYPE t_array_source_170 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
135241 TYPE t_array_source_171 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
135242 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
135243 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
135244 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
135245
135246
135247 l_array_source_48 t_array_source_48;
135248 l_array_source_80 t_array_source_80;
135249 l_array_source_156 t_array_source_156;
135250 l_array_source_161 t_array_source_161;
135251 l_array_source_162 t_array_source_162;
135252 l_array_source_163 t_array_source_163;
135253 l_array_source_164 t_array_source_164;
135254 l_array_source_165 t_array_source_165;
135255 l_array_source_166 t_array_source_166;
135256 l_array_source_167 t_array_source_167;
135257 l_array_source_168 t_array_source_168;
135258 l_array_source_169 t_array_source_169;
135259 l_array_source_170 t_array_source_170;
135260 l_array_source_171 t_array_source_171;
135261 l_array_source_172 t_array_source_172;
135262 l_array_source_173 t_array_source_173;
135263 l_array_source_174 t_array_source_174;
135264
135265 --
135266 CURSOR header_cur
135267 IS
135268 SELECT /*+ leading(xet) cardinality(xet,1) */
135269 -- Event Class Code: PREPAYMENT_BURDEN
135270 xet.entity_id
135271 ,xet.legal_entity_id
135272 ,xet.entity_code
135273 ,xet.transaction_number
135274 ,xet.event_id
135275 ,xet.event_class_code
135276 ,xet.event_type_code
135277 ,xet.event_number
135278 ,xet.event_date
135279 ,xet.transaction_date
135280 ,xet.reference_num_1
135281 ,xet.reference_num_2
135282 ,xet.reference_num_3
135283 ,xet.reference_num_4
135284 ,xet.reference_char_1
135285 ,xet.reference_char_2
135286 ,xet.reference_char_3
135287 ,xet.reference_char_4
135288 ,xet.reference_date_1
135289 ,xet.reference_date_2
135290 ,xet.reference_date_3
135291 ,xet.reference_date_4
135292 ,xet.event_created_by
135293 ,xet.budgetary_control_flag
135294 FROM xla_events_gt xet
135295 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
135296 and xet.event_class_code = C_EVENT_CLASS_CODE
135297 and xet.event_status_code <> 'N'
135298 ORDER BY event_id
135299 ;
135300
135301
135302 --
135303 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
135304 IS
135305 SELECT /*+ leading(xet) cardinality(xet,1) */
135306 -- Event Class Code: PREPAYMENT_BURDEN
135307 xet.entity_id
135308 ,xet.legal_entity_id
135309 ,xet.entity_code
135310 ,xet.transaction_number
135311 ,xet.event_id
135312 ,xet.event_class_code
135313 ,xet.event_type_code
135314 ,xet.event_number
135315 ,xet.event_date
135316 ,xet.transaction_date
135317 ,xet.reference_num_1
135318 ,xet.reference_num_2
135319 ,xet.reference_num_3
135320 ,xet.reference_num_4
135321 ,xet.reference_char_1
135322 ,xet.reference_char_2
135323 ,xet.reference_char_3
135324 ,xet.reference_char_4
135325 ,xet.reference_date_1
135326 ,xet.reference_date_2
135327 ,xet.reference_date_3
135328 ,xet.reference_date_4
135329 ,xet.event_created_by
135330 ,xet.budgetary_control_flag
135331 , l1.LINE_NUMBER
135332 , l1.DISTRIBUTION_LINK_TYPE source_48
135336 , l1.AID_EXPENDITURE_TYPE source_162
135333 , l1.AI_INVOICE_CURRENCY_CODE source_80
135334 , l1.AID_INVOICE_DIST_ID source_156
135335 , l1.ACCT_REVERSAL_INDICATOR source_161
135337 , l1.ENC_UPG_CR_ACCT_CLASS source_163
135338 , l1.ENC_UPG_CR_ACCOUNT source_164
135339 , l1.AID_AMOUNT source_165
135340 , l1.AID_BASE_AMT_NO_ROUND source_166
135341 , l1.ENC_UPG_DR_ACCT_CLASS source_167
135342 , l1.ENC_UPG_DR_ACCOUNT source_168
135343 , l1.USE_ENC_UPG_ATTRIB_FLAG source_169
135344 , l1.ACCT_REVERSAL_FIRST_DIST_ID source_170
135345 , l1.AP_SECOND_DIST_ID source_171
135346 , l1.ACCT_REV_DISTRIBUTION_TYPE source_172
135347 , l1.ENC_UPG_CR_ENC_TYPE_ID source_173
135348 , l1.ENC_UPG_DR_ENC_TYPE_ID source_174
135349 FROM xla_events_gt xet
135350 , PA_XLA_BC_PKT_AP_DETAIL_V l1
135351 WHERE xet.event_id between x_first_event_id and x_last_event_id
135352 and xet.event_date between p_pad_start_date and p_pad_end_date
135353 and xet.event_class_code = C_EVENT_CLASS_CODE
135354 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
135355 ;
135356
135357 --
135358 BEGIN
135359 IF g_log_enabled THEN
135360 l_log_module := C_DEFAULT_MODULE||'.EventClass_212';
135361 END IF;
135362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135363 trace
135364 (p_msg => 'BEGIN of EventClass_212'
135365 ,p_level => C_LEVEL_PROCEDURE
135366 ,p_module => l_log_module);
135367 END IF;
135368
135369 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135370 trace
135371 (p_msg => 'p_application_id = '||p_application_id||
135372 ' - p_base_ledger_id = '||p_base_ledger_id||
135373 ' - p_target_ledger_id = '||p_target_ledger_id||
135374 ' - p_language = '||p_language||
135375 ' - p_currency_code = '||p_currency_code||
135376 ' - p_sla_ledger_id = '||p_sla_ledger_id
135377 ,p_level => C_LEVEL_STATEMENT
135378 ,p_module => l_log_module);
135379 END IF;
135380 --
135381 -- initialze arrays
135382 --
135383 g_array_event.DELETE;
135384 l_rec_array_event := l_null_rec_array_event;
135385 --
135386 --------------------------------------
135387 -- 4262811 Initialze MPA Line Number
135388 --------------------------------------
135389 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
135390
135391 --
135392
135393 --
135394 OPEN header_cur;
135395 --
135396 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135397 trace
135398 (p_msg => 'SQL - FETCH header_cur'
135399 ,p_level => C_LEVEL_STATEMENT
135400 ,p_module => l_log_module);
135401 END IF;
135402 --
135403 LOOP
135404 FETCH header_cur BULK COLLECT INTO
135405 l_array_entity_id
135406 , l_array_legal_entity_id
135407 , l_array_entity_code
135408 , l_array_transaction_num
135409 , l_array_event_id
135410 , l_array_class_code
135411 , l_array_event_type
135412 , l_array_event_number
135413 , l_array_event_date
135414 , l_array_transaction_date
135415 , l_array_reference_num_1
135416 , l_array_reference_num_2
135417 , l_array_reference_num_3
135418 , l_array_reference_num_4
135419 , l_array_reference_char_1
135420 , l_array_reference_char_2
135421 , l_array_reference_char_3
135422 , l_array_reference_char_4
135423 , l_array_reference_date_1
135424 , l_array_reference_date_2
135425 , l_array_reference_date_3
135426 , l_array_reference_date_4
135427 , l_array_event_created_by
135428 , l_array_budgetary_control_flag
135429 LIMIT l_rows;
135430 --
135431 IF (C_LEVEL_EVENT >= g_log_level) THEN
135432 trace
135433 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
135434 ,p_level => C_LEVEL_EVENT
135435 ,p_module => l_log_module);
135436 END IF;
135437 --
135438 EXIT WHEN l_array_entity_id.COUNT = 0;
135439
135440 -- initialize arrays
135441 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
135442 XLA_AE_LINES_PKG.g_rec_lines := NULL;
135443
135444 --
135445 -- Bug 4458708
135446 --
135447 XLA_AE_LINES_PKG.g_LineNumber := 0;
135448
135449
135450 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
135451 g_last_hdr_idx := l_array_event_id.LAST;
135452 --
135453 -- loop for the headers. Each iteration is for each header extract row
135454 -- fetched in header cursor
135455 --
135456 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
135457
135458 --
135459 -- set event info as cache for other routines to refer event attributes
135460 --
135461 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
135462 (p_application_id => p_application_id
135463 ,p_primary_ledger_id => p_primary_ledger_id
135464 ,p_base_ledger_id => p_base_ledger_id
135465 ,p_target_ledger_id => p_target_ledger_id
135466 ,p_entity_id => l_array_entity_id(hdr_idx)
135467 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
135468 ,p_entity_code => l_array_entity_code(hdr_idx)
135469 ,p_transaction_num => l_array_transaction_num(hdr_idx)
135470 ,p_event_id => l_array_event_id(hdr_idx)
135471 ,p_event_class_code => l_array_class_code(hdr_idx)
135472 ,p_event_type_code => l_array_event_type(hdr_idx)
135473 ,p_event_number => l_array_event_number(hdr_idx)
135474 ,p_event_date => l_array_event_date(hdr_idx)
135475 ,p_transaction_date => l_array_transaction_date(hdr_idx)
135476 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
135477 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
135481 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
135478 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
135479 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
135480 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
135482 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
135483 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
135484 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
135485 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
135486 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
135487 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
135488 ,p_event_created_by => l_array_event_created_by(hdr_idx)
135489 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
135490
135491 --
135492 -- set the status of entry to C_VALID (0)
135493 --
135494 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
135495
135496 --
135497 -- initialize a row for ae header
135498 --
135499 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
135500
135501 l_event_id := l_array_event_id(hdr_idx);
135502
135503 --
135504 -- storing the hdr_idx for event. May be used by line cursor.
135505 --
135506 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
135507
135508 --
135509 -- store sources from header extract. This can be improved to
135510 -- store only those sources from header extract that may be used in lines
135511 --
135512
135513
135514 --
135515 -- initilaize the status of ae headers for diffrent balance types
135516 -- the status is initialised to C_NOT_CREATED (2)
135517 --
135518 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
135519 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
135520 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
135521
135522 --
135523 -- call api to validate and store accounting attributes for header
135524 --
135525
135526 ------------------------------------------------------------
135527 -- Accrual Reversal : to get date for Standard Source (NONE)
135528 ------------------------------------------------------------
135529 l_acc_rev_gl_date_source := NULL;
135530
135531 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
135532 l_rec_acct_attrs.array_date_value(1) :=
135533 xla_ae_sources_pkg.GetSystemSourceDate(
135534 p_source_code => 'XLA_EVENT_DATE'
135535 , p_source_type_code => 'Y'
135536 , p_source_application_id => 602
135537 );
135538
135539
135540 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
135541
135542 XLA_AE_HEADER_PKG.SetJeCategoryName;
135543
135544 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
135545 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
135546 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
135547 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
135548 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
135549
135550
135551 -- No header level analytical criteria
135552
135553 --
135554 --accounting attribute enhancement, bug 3612931
135555 --
135556 l_trx_reversal_source := SUBSTR(NULL, 1,30);
135557
135558 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
135559 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
135560
135561 xla_accounting_err_pkg.build_message
135562 (p_appli_s_name => 'XLA'
135563 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
135564 ,p_token_1 => 'ACCT_ATTR_NAME'
135565 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
135566 ,p_token_2 => 'PRODUCT_NAME'
135567 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
135568 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
135569 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
135570 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
135571
135572 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
135573 --
135574 -- following sets the accounting attributes needed to reverse
135575 -- accounting for a distributeion
135576 --
135577 xla_ae_lines_pkg.SetTrxReversalAttrs
135578 (p_event_id => l_event_id
135579 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
135580 ,p_trx_reversal_source => l_trx_reversal_source);
135581
135582 END IF;
135583
135584
135585 ----------------------------------------------------------------
135586 -- 4262811 - update the header statuses to invalid in need be
135587 ----------------------------------------------------------------
135588 --
135589 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
135590
135591
135592 -----------------------------------------------
135593 -- No accrual reversal for the event class/type
135594 -----------------------------------------------
135595 ----------------------------------------------------------------
135596
135597 --
135598 -- this ends the header loop iteration for one bulk fetch
135599 --
135600 END LOOP;
135601
135602 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
135603 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
135604
135605 --
135606 -- insert dummy rows into lines gt table that were created due to
135607 -- transaction reversals
135608 --
135612
135609 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
135610 l_result := XLA_AE_LINES_PKG.InsertLines;
135611 END IF;
135613 --
135614 -- reset the temp_line_num for each set of events fetched from header
135615 -- cursor rather than doing it for each new event in line cursor
135616 -- Bug 3939231
135617 --
135618 xla_ae_lines_pkg.g_temp_line_num := 0;
135619
135620
135621
135622 --
135623 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
135624 --
135625 --
135626 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135627
135628 trace
135629 (p_msg => 'SQL - FETCH line_cur'
135630 ,p_level => C_LEVEL_STATEMENT
135631 ,p_module => l_log_module);
135632
135633 END IF;
135634 --
135635 --
135636 LOOP
135637 --
135638 FETCH line_cur BULK COLLECT INTO
135639 l_array_entity_id
135640 , l_array_legal_entity_id
135641 , l_array_entity_code
135642 , l_array_transaction_num
135643 , l_array_event_id
135644 , l_array_class_code
135645 , l_array_event_type
135646 , l_array_event_number
135647 , l_array_event_date
135648 , l_array_transaction_date
135649 , l_array_reference_num_1
135650 , l_array_reference_num_2
135651 , l_array_reference_num_3
135652 , l_array_reference_num_4
135653 , l_array_reference_char_1
135654 , l_array_reference_char_2
135655 , l_array_reference_char_3
135656 , l_array_reference_char_4
135657 , l_array_reference_date_1
135658 , l_array_reference_date_2
135659 , l_array_reference_date_3
135660 , l_array_reference_date_4
135661 , l_array_event_created_by
135662 , l_array_budgetary_control_flag
135663 , l_array_extract_line_num
135664 , l_array_source_48
135665 , l_array_source_80
135666 , l_array_source_156
135667 , l_array_source_161
135668 , l_array_source_162
135669 , l_array_source_163
135670 , l_array_source_164
135671 , l_array_source_165
135672 , l_array_source_166
135673 , l_array_source_167
135674 , l_array_source_168
135675 , l_array_source_169
135676 , l_array_source_170
135677 , l_array_source_171
135678 , l_array_source_172
135679 , l_array_source_173
135680 , l_array_source_174
135681 LIMIT l_rows;
135682
135683 --
135684 IF (C_LEVEL_EVENT >= g_log_level) THEN
135685 trace
135686 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
135687 ,p_level => C_LEVEL_EVENT
135688 ,p_module => l_log_module);
135689 END IF;
135690 --
135691 EXIT WHEN l_array_entity_id.count = 0;
135692
135693 XLA_AE_LINES_PKG.g_rec_lines := null;
135694
135695 --
135696 -- Bug 4458708
135697 --
135698 XLA_AE_LINES_PKG.g_LineNumber := 0;
135699 --
135700 --
135701
135702 FOR Idx IN 1..l_array_event_id.count LOOP
135703 --
135704 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
135705 --
135706 l_event_id := l_array_event_id(idx); -- 5648433
135707
135708 --
135709 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
135710 --
135711
135712 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
135713 (g_array_event(l_event_id).array_value_num('header_index'))
135714 ,'N'
135715 ) <> 'Y'
135716 THEN
135717 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135718 trace
135719 (p_msg => 'Trancaction revesal option is not Y '
135720 ,p_level => C_LEVEL_STATEMENT
135721 ,p_module => l_log_module);
135722 END IF;
135723
135724 --
135725 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
135726 --
135727 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
135728 --
135729 -- set event info as cache for other routines to refer event attributes
135730 --
135731
135732 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
135733 l_previous_event_id := l_event_id;
135734
135735 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
135736 (p_application_id => p_application_id
135737 ,p_primary_ledger_id => p_primary_ledger_id
135738 ,p_base_ledger_id => p_base_ledger_id
135739 ,p_target_ledger_id => p_target_ledger_id
135740 ,p_entity_id => l_array_entity_id(Idx)
135741 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
135742 ,p_entity_code => l_array_entity_code(Idx)
135743 ,p_transaction_num => l_array_transaction_num(Idx)
135744 ,p_event_id => l_array_event_id(Idx)
135745 ,p_event_class_code => l_array_class_code(Idx)
135746 ,p_event_type_code => l_array_event_type(Idx)
135747 ,p_event_number => l_array_event_number(Idx)
135748 ,p_event_date => l_array_event_date(Idx)
135749 ,p_transaction_date => l_array_transaction_date(Idx)
135750 ,p_reference_num_1 => l_array_reference_num_1(Idx)
135751 ,p_reference_num_2 => l_array_reference_num_2(Idx)
135752 ,p_reference_num_3 => l_array_reference_num_3(Idx)
135753 ,p_reference_num_4 => l_array_reference_num_4(Idx)
135754 ,p_reference_char_1 => l_array_reference_char_1(Idx)
135755 ,p_reference_char_2 => l_array_reference_char_2(Idx)
135756 ,p_reference_char_3 => l_array_reference_char_3(Idx)
135757 ,p_reference_char_4 => l_array_reference_char_4(Idx)
135758 ,p_reference_date_1 => l_array_reference_date_1(Idx)
135762 ,p_event_created_by => l_array_event_created_by(Idx)
135759 ,p_reference_date_2 => l_array_reference_date_2(Idx)
135760 ,p_reference_date_3 => l_array_reference_date_3(Idx)
135761 ,p_reference_date_4 => l_array_reference_date_4(Idx)
135763 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
135764 --
135765 END IF;
135766
135767
135768
135769 --
135770 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
135771
135772 l_acct_reversal_source := SUBSTR(l_array_source_161(Idx), 1,30);
135773
135774 IF l_continue_with_lines THEN
135775 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
135776 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
135777
135778 xla_accounting_err_pkg.build_message
135779 (p_appli_s_name => 'XLA'
135780 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
135781 ,p_token_1 => 'LINE_NUMBER'
135782 ,p_value_1 => l_array_extract_line_num(Idx)
135783 ,p_token_2 => 'PRODUCT_NAME'
135784 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
135785 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
135786 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
135787 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
135788
135789 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
135790 --
135791 -- following sets the accounting attributes needed to reverse
135792 -- accounting for a distributeion
135793 --
135794
135795 --
135796 -- 5217187
135797 --
135798 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
135799 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
135800 g_array_event(l_event_id).array_value_num('header_index'));
135801 --
135802 --
135803
135804 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
135805 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_161(Idx);
135806 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
135807 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
135808 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
135809 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_162(Idx);
135810 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
135811 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_48(Idx);
135812 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
135813 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_163(Idx);
135814 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
135815 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_164(Idx);
135816 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
135817 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_165(Idx);
135818 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
135819 l_rec_rev_acct_attrs.array_char_value(9) := l_array_source_80(Idx);
135820 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
135821 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_166(Idx);
135822 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
135823 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_167(Idx);
135824 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
135825 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_168(Idx);
135826 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
135827 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_165(Idx);
135828 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
135829 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_80(Idx);
135830 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
135831 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_166(Idx);
135832 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
135833 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_169(Idx);
135834 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
135835 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_170(Idx);
135836 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
135837 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_171(Idx);
135838 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
135839 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_172(Idx);
135840 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
135841 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_173(Idx);
135842 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
135843 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_174(Idx);
135844
135845
135846 xla_ae_lines_pkg.SetAcctReversalAttrs
135847 (p_event_id => l_event_id
135848 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
135849 ,p_calculate_acctd_flag => l_calculate_acctd_flag
135850 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
135851 END IF;
135852
135853 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
135854 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
135855 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
135856 -- or secondary ledger that has different currency with primary
135857 -- or alc that is calculated by sla
135861 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
135858 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
135859 (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'))
135860
135862 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
135863 AND (l_actual_flag = 'A')) THEN
135864 XLA_AE_LINES_PKG.CreateGainOrLossLines(
135865 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
135866 ,p_application_id => p_application_id
135867 ,p_amb_context_code => 'DEFAULT'
135868 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
135869 ,p_event_class_code => C_EVENT_CLASS_CODE
135870 ,p_event_type_code => C_EVENT_TYPE_CODE
135871
135872 ,p_gain_ccid => -1
135873 ,p_loss_ccid => -1
135874
135875 ,p_actual_flag => l_actual_flag
135876 ,p_enc_flag => null
135877 ,p_actual_g_l_ref => l_actual_gain_loss_ref
135878 ,p_enc_g_l_ref => null
135879 );
135880 END IF;
135881 END IF;
135882 END IF;
135883
135884 ELSE
135885 --
135886 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
135887 --
135888 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135889 trace
135890 (p_msg => 'Trancaction revesal option is Y'
135891 ,p_level => C_LEVEL_STATEMENT
135892 ,p_module => l_log_module);
135893 END IF;
135894 END IF;
135895
135896 END LOOP;
135897 l_result := XLA_AE_LINES_PKG.InsertLines ;
135898 end loop;
135899 close line_cur;
135900
135901
135902 --
135903 -- insert headers into xla_ae_headers_gt table
135904 --
135905 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
135906
135907 -- insert into errors table here.
135908
135909 END LOOP;
135910
135911 --
135912 -- 4865292
135913 --
135914 -- Compare g_hdr_extract_count with event count in
135915 -- CreateHeadersAndLines.
135916 --
135917 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
135918
135919 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135920 trace (p_msg => '# rows extracted from header extract objects '
135921 || ' (running total): '
135922 || g_hdr_extract_count
135923 ,p_level => C_LEVEL_STATEMENT
135924 ,p_module => l_log_module);
135925 END IF;
135926
135927 CLOSE header_cur;
135928 --
135929
135930 --
135931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135932 trace
135933 (p_msg => 'END of EventClass_212'
135934 ,p_level => C_LEVEL_PROCEDURE
135935 ,p_module => l_log_module);
135936 END IF;
135937 --
135938 RETURN l_result;
135939 EXCEPTION
135940 WHEN xla_exceptions_pkg.application_exception THEN
135941
135942 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
135943
135944
135945 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
135946
135947 RAISE;
135948
135949 WHEN NO_DATA_FOUND THEN
135950
135951 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
135952 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
135953
135954 FOR header_record IN header_cur
135955 LOOP
135956 l_array_header_events(header_record.event_id) := header_record.event_id;
135957 END LOOP;
135958
135959 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
135960 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
135961
135962 fnd_file.put_line(fnd_file.LOG, ' ');
135963 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
135964 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
135965 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
135966
135967 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
135968 LOOP
135969 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
135970 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
135971 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
135972 END IF;
135973 END LOOP;
135974
135975 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
135976 fnd_file.put_line(fnd_file.LOG, ' ');
135977
135978
135979 xla_exceptions_pkg.raise_message
135980 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_212');
135981
135982
135983 WHEN OTHERS THEN
135984 xla_exceptions_pkg.raise_message
135985 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_212');
135986 END EventClass_212;
135987 --
135988
135989 ---------------------------------------
135990 --
135991 -- PRIVATE PROCEDURE
135992 -- insert_sources_213
135993 --
135994 ----------------------------------------
135995 --
135996 PROCEDURE insert_sources_213(
135997 p_target_ledger_id IN NUMBER
135998 , p_language IN VARCHAR2
135999 , p_sla_ledger_id IN NUMBER
136000 , p_pad_start_date IN DATE
136001 , p_pad_end_date IN DATE
136002 )
136003 IS
136004
136005 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN_ALL';
136009 BEGIN
136006 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
136007 p_apps_owner VARCHAR2(30);
136008 l_log_module VARCHAR2(240);
136010 IF g_log_enabled THEN
136011 l_log_module := C_DEFAULT_MODULE||'.insert_sources_213';
136012 END IF;
136013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136014
136015 trace
136016 (p_msg => 'BEGIN of insert_sources_213'
136017 ,p_level => C_LEVEL_PROCEDURE
136018 ,p_module => l_log_module);
136019
136020 END IF;
136021
136022 -- select APPS owner
136023 SELECT oracle_username
136024 INTO p_apps_owner
136025 FROM fnd_oracle_userid
136026 WHERE read_only_flag = 'U'
136027 ;
136028
136029 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136030 trace
136031 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
136032 ' - p_language = '||p_language||
136033 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
136034 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
136035 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
136036 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
136037 ,p_level => C_LEVEL_STATEMENT
136038 ,p_module => l_log_module);
136039 END IF;
136040
136041
136042
136043
136044 --
136045 INSERT INTO xla_diag_sources --line2
136046 (
136047 event_id
136048 , ledger_id
136049 , sla_ledger_id
136050 , description_language
136051 , object_name
136052 , object_type_code
136053 , line_number
136054 , source_application_id
136055 , source_type_code
136056 , source_code
136057 , source_value
136058 , source_meaning
136059 , created_by
136060 , creation_date
136061 , last_update_date
136062 , last_updated_by
136063 , last_update_login
136064 , program_update_date
136065 , program_application_id
136066 , program_id
136067 , request_id
136068 )
136069 SELECT event_id
136070 , p_target_ledger_id
136071 , p_sla_ledger_id
136072 , p_language
136073 , object_name
136074 , object_type_code
136075 , line_number
136076 , source_application_id
136077 , source_type_code
136078 , source_code
136079 , SUBSTR(source_value,1,1996)
136080 , SUBSTR(source_meaning ,1,200)
136081 , xla_environment_pkg.g_Usr_Id
136082 , TRUNC(SYSDATE)
136083 , TRUNC(SYSDATE)
136084 , xla_environment_pkg.g_Usr_Id
136085 , xla_environment_pkg.g_Login_Id
136086 , TRUNC(SYSDATE)
136087 , xla_environment_pkg.g_Prog_Appl_Id
136088 , xla_environment_pkg.g_Prog_Id
136089 , xla_environment_pkg.g_Req_Id
136090 FROM (
136091 SELECT xet.event_id event_id
136092 , l1.line_number line_number
136093 , CASE r
136094 WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136095 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136096 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136097 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136098 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136099 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136100 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136101 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136102 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136103 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136104 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136105 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136106 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136107 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136108 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136109 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136110 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V'
136111
136112 ELSE null
136113 END object_name
136114 , CASE r
136115 WHEN 1 THEN 'LINE'
136116 WHEN 2 THEN 'LINE'
136117 WHEN 3 THEN 'LINE'
136118 WHEN 4 THEN 'LINE'
136119 WHEN 5 THEN 'LINE'
136120 WHEN 6 THEN 'LINE'
136121 WHEN 7 THEN 'LINE'
136122 WHEN 8 THEN 'LINE'
136123 WHEN 9 THEN 'LINE'
136124 WHEN 10 THEN 'LINE'
136125 WHEN 11 THEN 'LINE'
136126 WHEN 12 THEN 'LINE'
136127 WHEN 13 THEN 'LINE'
136128 WHEN 14 THEN 'LINE'
136129 WHEN 15 THEN 'LINE'
136130 WHEN 16 THEN 'LINE'
136131 WHEN 17 THEN 'LINE'
136132
136133 ELSE null
136134 END object_type_code
136135 , CASE r
136136 WHEN 1 THEN '200'
136137 WHEN 2 THEN '200'
136138 WHEN 3 THEN '200'
136139 WHEN 4 THEN '200'
136140 WHEN 5 THEN '200'
136141 WHEN 6 THEN '200'
136142 WHEN 7 THEN '200'
136143 WHEN 8 THEN '200'
136144 WHEN 9 THEN '200'
136145 WHEN 10 THEN '200'
136146 WHEN 11 THEN '200'
136147 WHEN 12 THEN '200'
136148 WHEN 13 THEN '200'
136149 WHEN 14 THEN '200'
136150 WHEN 15 THEN '200'
136151 WHEN 16 THEN '200'
136152 WHEN 17 THEN '200'
136153
136154 ELSE null
136158 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE'
136155 END source_application_id
136156 , 'S' source_type_code
136157 , CASE r
136159 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE'
136160 WHEN 3 THEN 'AID_INVOICE_DIST_ID'
136161 WHEN 4 THEN 'ACCT_REVERSAL_INDICATOR'
136162 WHEN 5 THEN 'AID_EXPENDITURE_TYPE'
136163 WHEN 6 THEN 'ENC_UPG_CR_ACCT_CLASS'
136164 WHEN 7 THEN 'ENC_UPG_CR_ACCOUNT'
136165 WHEN 8 THEN 'AID_AMOUNT'
136166 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND'
136167 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS'
136168 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT'
136169 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
136170 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID'
136171 WHEN 14 THEN 'AP_SECOND_DIST_ID'
136172 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE'
136173 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID'
136174 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID'
136175
136176 ELSE null
136177 END source_code
136178 , CASE r
136179 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
136180 WHEN 2 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
136181 WHEN 3 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
136182 WHEN 4 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
136183 WHEN 5 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
136184 WHEN 6 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
136185 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
136186 WHEN 8 THEN TO_CHAR(l1.AID_AMOUNT)
136187 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
136188 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
136189 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
136190 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
136191 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
136192 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
136193 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
136194 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
136195 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
136196
136197 ELSE null
136198 END source_value
136199 , null source_meaning
136200 FROM xla_events_gt xet
136201 , PA_XLA_BC_PKT_AP_DETAIL_V l1
136202 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
136203 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
136204 AND xet.event_class_code = C_EVENT_CLASS_CODE
136205 AND l1.event_id = xet.event_id
136206
136207 )
136208 ;
136209 --
136210 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136211
136212 trace
136213 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
136214 ,p_level => C_LEVEL_STATEMENT
136215 ,p_module => l_log_module);
136216
136217 END IF;
136218
136219
136220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136221 trace
136222 (p_msg => 'END of insert_sources_213'
136223 ,p_level => C_LEVEL_PROCEDURE
136224 ,p_module => l_log_module);
136225 END IF;
136226 EXCEPTION
136227 WHEN xla_exceptions_pkg.application_exception THEN
136228 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
136229 trace
136230 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
136231 ,p_level => C_LEVEL_EXCEPTION
136232 ,p_module => l_log_module);
136233 END IF;
136234 RAISE;
136235 WHEN OTHERS THEN
136236 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
136237 trace
136238 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
136239 ,p_level => C_LEVEL_EXCEPTION
136240 ,p_module => l_log_module);
136241 END IF;
136242 xla_exceptions_pkg.raise_message
136243 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_213');
136244 END insert_sources_213;
136245 --
136246
136247 ---------------------------------------
136248 --
136249 -- PRIVATE FUNCTION
136250 -- EventClass_213
136251 --
136252 ----------------------------------------
136253 --
136254 FUNCTION EventClass_213
136255 (p_application_id IN NUMBER
136256 ,p_base_ledger_id IN NUMBER
136257 ,p_target_ledger_id IN NUMBER
136258 ,p_language IN VARCHAR2
136259 ,p_currency_code IN VARCHAR2
136260 ,p_sla_ledger_id IN NUMBER
136261 ,p_pad_start_date IN DATE
136262 ,p_pad_end_date IN DATE
136263 ,p_primary_ledger_id IN NUMBER)
136264 RETURN BOOLEAN IS
136265 --
136266 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN_ALL';
136267 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
136268
136269 l_calculate_acctd_flag VARCHAR2(1) :='N';
136270 l_calculate_g_l_flag VARCHAR2(1) :='N';
136271 --
136272 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136273 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136274 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136275 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136276 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136277 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136278 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136282 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136279 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136280 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136281 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136283 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136284 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136285 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136286 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136287 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136288 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136289 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136290 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136291 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136292 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136293 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136294 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
136295 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136296 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
136297 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
136298
136299 l_event_id NUMBER;
136300 l_previous_event_id NUMBER;
136301 l_first_event_id NUMBER;
136302 l_last_event_id NUMBER;
136303
136304 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
136305 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
136306 --
136307 --
136308 l_result BOOLEAN := TRUE;
136309 l_rows NUMBER := 1000;
136310 l_event_type_name VARCHAR2(80) := 'All';
136311 l_event_class_name VARCHAR2(80) := 'Burden for Prepayment Applications';
136312 l_description VARCHAR2(4000);
136313 l_transaction_reversal NUMBER;
136314 l_ae_header_id NUMBER;
136315 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
136316 l_log_module VARCHAR2(240);
136317 --
136318 l_acct_reversal_source VARCHAR2(30);
136319 l_trx_reversal_source VARCHAR2(30);
136320
136321 l_continue_with_lines BOOLEAN := TRUE;
136322 --
136323 l_acc_rev_gl_date_source DATE; -- 4262811
136324 --
136325 type t_array_event_id is table of number index by binary_integer;
136326
136327 l_rec_array_event t_rec_array_event;
136328 l_null_rec_array_event t_rec_array_event;
136329 l_array_ae_header_id xla_number_array_type;
136330 l_actual_flag VARCHAR2(1) := NULL;
136331 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
136332 l_balance_type_code VARCHAR2(1) :=NULL;
136333 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
136334
136335 --
136336 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
136337 --
136338
136339
136340 TYPE t_array_source_48 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
136341 TYPE t_array_source_80 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
136342 TYPE t_array_source_156 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
136343 TYPE t_array_source_161 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
136344 TYPE t_array_source_162 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
136345 TYPE t_array_source_163 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
136346 TYPE t_array_source_164 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
136347 TYPE t_array_source_165 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
136348 TYPE t_array_source_166 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
136349 TYPE t_array_source_167 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
136350 TYPE t_array_source_168 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
136351 TYPE t_array_source_169 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
136352 TYPE t_array_source_170 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
136353 TYPE t_array_source_171 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
136354 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
136355 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
136356 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
136357
136358
136359 l_array_source_48 t_array_source_48;
136360 l_array_source_80 t_array_source_80;
136361 l_array_source_156 t_array_source_156;
136362 l_array_source_161 t_array_source_161;
136363 l_array_source_162 t_array_source_162;
136364 l_array_source_163 t_array_source_163;
136365 l_array_source_164 t_array_source_164;
136366 l_array_source_165 t_array_source_165;
136367 l_array_source_166 t_array_source_166;
136368 l_array_source_167 t_array_source_167;
136369 l_array_source_168 t_array_source_168;
136370 l_array_source_169 t_array_source_169;
136371 l_array_source_170 t_array_source_170;
136372 l_array_source_171 t_array_source_171;
136373 l_array_source_172 t_array_source_172;
136374 l_array_source_173 t_array_source_173;
136378 CURSOR header_cur
136375 l_array_source_174 t_array_source_174;
136376
136377 --
136379 IS
136380 SELECT /*+ leading(xet) cardinality(xet,1) */
136381 -- Event Class Code: PREPAY_APPLICATION_BURDEN
136382 xet.entity_id
136383 ,xet.legal_entity_id
136384 ,xet.entity_code
136385 ,xet.transaction_number
136386 ,xet.event_id
136387 ,xet.event_class_code
136388 ,xet.event_type_code
136389 ,xet.event_number
136390 ,xet.event_date
136391 ,xet.transaction_date
136392 ,xet.reference_num_1
136393 ,xet.reference_num_2
136394 ,xet.reference_num_3
136395 ,xet.reference_num_4
136396 ,xet.reference_char_1
136397 ,xet.reference_char_2
136398 ,xet.reference_char_3
136399 ,xet.reference_char_4
136400 ,xet.reference_date_1
136401 ,xet.reference_date_2
136402 ,xet.reference_date_3
136403 ,xet.reference_date_4
136404 ,xet.event_created_by
136405 ,xet.budgetary_control_flag
136406 FROM xla_events_gt xet
136407 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
136408 and xet.event_class_code = C_EVENT_CLASS_CODE
136409 and xet.event_status_code <> 'N'
136410 ORDER BY event_id
136411 ;
136412
136413
136414 --
136415 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
136416 IS
136417 SELECT /*+ leading(xet) cardinality(xet,1) */
136418 -- Event Class Code: PREPAY_APPLICATION_BURDEN
136419 xet.entity_id
136420 ,xet.legal_entity_id
136421 ,xet.entity_code
136422 ,xet.transaction_number
136423 ,xet.event_id
136424 ,xet.event_class_code
136425 ,xet.event_type_code
136426 ,xet.event_number
136427 ,xet.event_date
136428 ,xet.transaction_date
136429 ,xet.reference_num_1
136430 ,xet.reference_num_2
136431 ,xet.reference_num_3
136432 ,xet.reference_num_4
136433 ,xet.reference_char_1
136434 ,xet.reference_char_2
136435 ,xet.reference_char_3
136436 ,xet.reference_char_4
136437 ,xet.reference_date_1
136438 ,xet.reference_date_2
136439 ,xet.reference_date_3
136440 ,xet.reference_date_4
136441 ,xet.event_created_by
136442 ,xet.budgetary_control_flag
136443 , l1.LINE_NUMBER
136444 , l1.DISTRIBUTION_LINK_TYPE source_48
136445 , l1.AI_INVOICE_CURRENCY_CODE source_80
136446 , l1.AID_INVOICE_DIST_ID source_156
136447 , l1.ACCT_REVERSAL_INDICATOR source_161
136448 , l1.AID_EXPENDITURE_TYPE source_162
136449 , l1.ENC_UPG_CR_ACCT_CLASS source_163
136450 , l1.ENC_UPG_CR_ACCOUNT source_164
136451 , l1.AID_AMOUNT source_165
136452 , l1.AID_BASE_AMT_NO_ROUND source_166
136453 , l1.ENC_UPG_DR_ACCT_CLASS source_167
136454 , l1.ENC_UPG_DR_ACCOUNT source_168
136455 , l1.USE_ENC_UPG_ATTRIB_FLAG source_169
136456 , l1.ACCT_REVERSAL_FIRST_DIST_ID source_170
136457 , l1.AP_SECOND_DIST_ID source_171
136458 , l1.ACCT_REV_DISTRIBUTION_TYPE source_172
136459 , l1.ENC_UPG_CR_ENC_TYPE_ID source_173
136460 , l1.ENC_UPG_DR_ENC_TYPE_ID source_174
136461 FROM xla_events_gt xet
136462 , PA_XLA_BC_PKT_AP_DETAIL_V l1
136463 WHERE xet.event_id between x_first_event_id and x_last_event_id
136464 and xet.event_date between p_pad_start_date and p_pad_end_date
136465 and xet.event_class_code = C_EVENT_CLASS_CODE
136466 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
136467 ;
136468
136469 --
136470 BEGIN
136471 IF g_log_enabled THEN
136472 l_log_module := C_DEFAULT_MODULE||'.EventClass_213';
136473 END IF;
136474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136475 trace
136476 (p_msg => 'BEGIN of EventClass_213'
136477 ,p_level => C_LEVEL_PROCEDURE
136478 ,p_module => l_log_module);
136479 END IF;
136480
136481 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136482 trace
136483 (p_msg => 'p_application_id = '||p_application_id||
136484 ' - p_base_ledger_id = '||p_base_ledger_id||
136485 ' - p_target_ledger_id = '||p_target_ledger_id||
136486 ' - p_language = '||p_language||
136487 ' - p_currency_code = '||p_currency_code||
136488 ' - p_sla_ledger_id = '||p_sla_ledger_id
136489 ,p_level => C_LEVEL_STATEMENT
136490 ,p_module => l_log_module);
136491 END IF;
136492 --
136493 -- initialze arrays
136494 --
136495 g_array_event.DELETE;
136496 l_rec_array_event := l_null_rec_array_event;
136497 --
136498 --------------------------------------
136499 -- 4262811 Initialze MPA Line Number
136500 --------------------------------------
136501 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
136502
136503 --
136504
136505 --
136506 OPEN header_cur;
136507 --
136508 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136509 trace
136510 (p_msg => 'SQL - FETCH header_cur'
136511 ,p_level => C_LEVEL_STATEMENT
136512 ,p_module => l_log_module);
136513 END IF;
136514 --
136515 LOOP
136516 FETCH header_cur BULK COLLECT INTO
136517 l_array_entity_id
136518 , l_array_legal_entity_id
136519 , l_array_entity_code
136520 , l_array_transaction_num
136521 , l_array_event_id
136522 , l_array_class_code
136523 , l_array_event_type
136524 , l_array_event_number
136525 , l_array_event_date
136526 , l_array_transaction_date
136527 , l_array_reference_num_1
136528 , l_array_reference_num_2
136529 , l_array_reference_num_3
136530 , l_array_reference_num_4
136531 , l_array_reference_char_1
136532 , l_array_reference_char_2
136533 , l_array_reference_char_3
136534 , l_array_reference_char_4
136535 , l_array_reference_date_1
136536 , l_array_reference_date_2
136540 , l_array_budgetary_control_flag
136537 , l_array_reference_date_3
136538 , l_array_reference_date_4
136539 , l_array_event_created_by
136541 LIMIT l_rows;
136542 --
136543 IF (C_LEVEL_EVENT >= g_log_level) THEN
136544 trace
136545 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
136546 ,p_level => C_LEVEL_EVENT
136547 ,p_module => l_log_module);
136548 END IF;
136549 --
136550 EXIT WHEN l_array_entity_id.COUNT = 0;
136551
136552 -- initialize arrays
136553 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
136554 XLA_AE_LINES_PKG.g_rec_lines := NULL;
136555
136556 --
136557 -- Bug 4458708
136558 --
136559 XLA_AE_LINES_PKG.g_LineNumber := 0;
136560
136561
136562 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
136563 g_last_hdr_idx := l_array_event_id.LAST;
136564 --
136565 -- loop for the headers. Each iteration is for each header extract row
136566 -- fetched in header cursor
136567 --
136568 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
136569
136570 --
136571 -- set event info as cache for other routines to refer event attributes
136572 --
136573 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
136574 (p_application_id => p_application_id
136575 ,p_primary_ledger_id => p_primary_ledger_id
136576 ,p_base_ledger_id => p_base_ledger_id
136577 ,p_target_ledger_id => p_target_ledger_id
136578 ,p_entity_id => l_array_entity_id(hdr_idx)
136579 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
136580 ,p_entity_code => l_array_entity_code(hdr_idx)
136581 ,p_transaction_num => l_array_transaction_num(hdr_idx)
136582 ,p_event_id => l_array_event_id(hdr_idx)
136583 ,p_event_class_code => l_array_class_code(hdr_idx)
136584 ,p_event_type_code => l_array_event_type(hdr_idx)
136585 ,p_event_number => l_array_event_number(hdr_idx)
136586 ,p_event_date => l_array_event_date(hdr_idx)
136587 ,p_transaction_date => l_array_transaction_date(hdr_idx)
136588 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
136589 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
136590 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
136591 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
136592 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
136593 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
136594 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
136595 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
136596 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
136597 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
136598 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
136599 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
136600 ,p_event_created_by => l_array_event_created_by(hdr_idx)
136601 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
136602
136603 --
136604 -- set the status of entry to C_VALID (0)
136605 --
136606 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
136607
136608 --
136609 -- initialize a row for ae header
136610 --
136611 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
136612
136613 l_event_id := l_array_event_id(hdr_idx);
136614
136615 --
136616 -- storing the hdr_idx for event. May be used by line cursor.
136617 --
136618 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
136619
136620 --
136621 -- store sources from header extract. This can be improved to
136622 -- store only those sources from header extract that may be used in lines
136623 --
136624
136625
136626 --
136627 -- initilaize the status of ae headers for diffrent balance types
136628 -- the status is initialised to C_NOT_CREATED (2)
136629 --
136630 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
136631 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
136632 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
136633
136634 --
136635 -- call api to validate and store accounting attributes for header
136636 --
136637
136638 ------------------------------------------------------------
136639 -- Accrual Reversal : to get date for Standard Source (NONE)
136640 ------------------------------------------------------------
136641 l_acc_rev_gl_date_source := NULL;
136642
136643 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
136644 l_rec_acct_attrs.array_date_value(1) :=
136645 xla_ae_sources_pkg.GetSystemSourceDate(
136646 p_source_code => 'XLA_EVENT_DATE'
136647 , p_source_type_code => 'Y'
136648 , p_source_application_id => 602
136649 );
136650
136651
136652 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
136653
136654 XLA_AE_HEADER_PKG.SetJeCategoryName;
136655
136656 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
136657 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
136658 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
136659 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
136660 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
136661
136662
136663 -- No header level analytical criteria
136664
136665 --
136666 --accounting attribute enhancement, bug 3612931
136667 --
136668 l_trx_reversal_source := SUBSTR(NULL, 1,30);
136669
136673 xla_accounting_err_pkg.build_message
136670 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
136671 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
136672
136674 (p_appli_s_name => 'XLA'
136675 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
136676 ,p_token_1 => 'ACCT_ATTR_NAME'
136677 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
136678 ,p_token_2 => 'PRODUCT_NAME'
136679 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
136680 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
136681 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
136682 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
136683
136684 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
136685 --
136686 -- following sets the accounting attributes needed to reverse
136687 -- accounting for a distributeion
136688 --
136689 xla_ae_lines_pkg.SetTrxReversalAttrs
136690 (p_event_id => l_event_id
136691 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
136692 ,p_trx_reversal_source => l_trx_reversal_source);
136693
136694 END IF;
136695
136696
136697 ----------------------------------------------------------------
136698 -- 4262811 - update the header statuses to invalid in need be
136699 ----------------------------------------------------------------
136700 --
136701 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
136702
136703
136704 -----------------------------------------------
136705 -- No accrual reversal for the event class/type
136706 -----------------------------------------------
136707 ----------------------------------------------------------------
136708
136709 --
136710 -- this ends the header loop iteration for one bulk fetch
136711 --
136712 END LOOP;
136713
136714 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
136715 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
136716
136717 --
136718 -- insert dummy rows into lines gt table that were created due to
136719 -- transaction reversals
136720 --
136721 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
136722 l_result := XLA_AE_LINES_PKG.InsertLines;
136723 END IF;
136724
136725 --
136726 -- reset the temp_line_num for each set of events fetched from header
136727 -- cursor rather than doing it for each new event in line cursor
136728 -- Bug 3939231
136729 --
136730 xla_ae_lines_pkg.g_temp_line_num := 0;
136731
136732
136733
136734 --
136735 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
136736 --
136737 --
136738 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136739
136740 trace
136741 (p_msg => 'SQL - FETCH line_cur'
136742 ,p_level => C_LEVEL_STATEMENT
136743 ,p_module => l_log_module);
136744
136745 END IF;
136746 --
136747 --
136748 LOOP
136749 --
136750 FETCH line_cur BULK COLLECT INTO
136751 l_array_entity_id
136752 , l_array_legal_entity_id
136753 , l_array_entity_code
136754 , l_array_transaction_num
136755 , l_array_event_id
136756 , l_array_class_code
136757 , l_array_event_type
136758 , l_array_event_number
136759 , l_array_event_date
136760 , l_array_transaction_date
136761 , l_array_reference_num_1
136762 , l_array_reference_num_2
136763 , l_array_reference_num_3
136764 , l_array_reference_num_4
136765 , l_array_reference_char_1
136766 , l_array_reference_char_2
136767 , l_array_reference_char_3
136768 , l_array_reference_char_4
136769 , l_array_reference_date_1
136770 , l_array_reference_date_2
136771 , l_array_reference_date_3
136772 , l_array_reference_date_4
136773 , l_array_event_created_by
136774 , l_array_budgetary_control_flag
136775 , l_array_extract_line_num
136776 , l_array_source_48
136777 , l_array_source_80
136778 , l_array_source_156
136779 , l_array_source_161
136780 , l_array_source_162
136781 , l_array_source_163
136782 , l_array_source_164
136783 , l_array_source_165
136784 , l_array_source_166
136785 , l_array_source_167
136786 , l_array_source_168
136787 , l_array_source_169
136788 , l_array_source_170
136789 , l_array_source_171
136790 , l_array_source_172
136791 , l_array_source_173
136792 , l_array_source_174
136793 LIMIT l_rows;
136794
136795 --
136796 IF (C_LEVEL_EVENT >= g_log_level) THEN
136797 trace
136798 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
136799 ,p_level => C_LEVEL_EVENT
136800 ,p_module => l_log_module);
136801 END IF;
136802 --
136803 EXIT WHEN l_array_entity_id.count = 0;
136804
136805 XLA_AE_LINES_PKG.g_rec_lines := null;
136806
136807 --
136808 -- Bug 4458708
136809 --
136810 XLA_AE_LINES_PKG.g_LineNumber := 0;
136811 --
136812 --
136813
136814 FOR Idx IN 1..l_array_event_id.count LOOP
136815 --
136816 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
136817 --
136818 l_event_id := l_array_event_id(idx); -- 5648433
136819
136820 --
136821 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
136822 --
136823
136824 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
136828 THEN
136825 (g_array_event(l_event_id).array_value_num('header_index'))
136826 ,'N'
136827 ) <> 'Y'
136829 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136830 trace
136831 (p_msg => 'Trancaction revesal option is not Y '
136832 ,p_level => C_LEVEL_STATEMENT
136833 ,p_module => l_log_module);
136834 END IF;
136835
136836 --
136837 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
136838 --
136839 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
136840 --
136841 -- set event info as cache for other routines to refer event attributes
136842 --
136843
136844 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
136845 l_previous_event_id := l_event_id;
136846
136847 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
136848 (p_application_id => p_application_id
136849 ,p_primary_ledger_id => p_primary_ledger_id
136850 ,p_base_ledger_id => p_base_ledger_id
136851 ,p_target_ledger_id => p_target_ledger_id
136852 ,p_entity_id => l_array_entity_id(Idx)
136853 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
136854 ,p_entity_code => l_array_entity_code(Idx)
136855 ,p_transaction_num => l_array_transaction_num(Idx)
136856 ,p_event_id => l_array_event_id(Idx)
136857 ,p_event_class_code => l_array_class_code(Idx)
136858 ,p_event_type_code => l_array_event_type(Idx)
136859 ,p_event_number => l_array_event_number(Idx)
136860 ,p_event_date => l_array_event_date(Idx)
136861 ,p_transaction_date => l_array_transaction_date(Idx)
136862 ,p_reference_num_1 => l_array_reference_num_1(Idx)
136863 ,p_reference_num_2 => l_array_reference_num_2(Idx)
136864 ,p_reference_num_3 => l_array_reference_num_3(Idx)
136865 ,p_reference_num_4 => l_array_reference_num_4(Idx)
136866 ,p_reference_char_1 => l_array_reference_char_1(Idx)
136867 ,p_reference_char_2 => l_array_reference_char_2(Idx)
136868 ,p_reference_char_3 => l_array_reference_char_3(Idx)
136869 ,p_reference_char_4 => l_array_reference_char_4(Idx)
136870 ,p_reference_date_1 => l_array_reference_date_1(Idx)
136871 ,p_reference_date_2 => l_array_reference_date_2(Idx)
136872 ,p_reference_date_3 => l_array_reference_date_3(Idx)
136873 ,p_reference_date_4 => l_array_reference_date_4(Idx)
136874 ,p_event_created_by => l_array_event_created_by(Idx)
136875 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
136876 --
136877 END IF;
136878
136879
136880
136881 --
136882 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
136883
136884 l_acct_reversal_source := SUBSTR(l_array_source_161(Idx), 1,30);
136885
136886 IF l_continue_with_lines THEN
136887 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
136888 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
136889
136890 xla_accounting_err_pkg.build_message
136891 (p_appli_s_name => 'XLA'
136892 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
136893 ,p_token_1 => 'LINE_NUMBER'
136894 ,p_value_1 => l_array_extract_line_num(Idx)
136895 ,p_token_2 => 'PRODUCT_NAME'
136896 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
136897 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
136898 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
136899 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
136900
136901 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
136902 --
136903 -- following sets the accounting attributes needed to reverse
136904 -- accounting for a distributeion
136905 --
136906
136907 --
136908 -- 5217187
136909 --
136910 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
136911 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
136912 g_array_event(l_event_id).array_value_num('header_index'));
136913 --
136914 --
136915
136916 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
136917 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_161(Idx);
136918 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
136919 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_156(Idx);
136920 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
136921 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_162(Idx);
136922 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
136923 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_48(Idx);
136924 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
136925 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_163(Idx);
136926 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
136927 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_164(Idx);
136928 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
136929 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_165(Idx);
136930 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
136931 l_rec_rev_acct_attrs.array_char_value(9) := l_array_source_80(Idx);
136932 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
136933 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_166(Idx);
136937 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_168(Idx);
136934 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
136935 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_167(Idx);
136936 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
136938 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
136939 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_165(Idx);
136940 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
136941 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_80(Idx);
136942 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
136943 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_166(Idx);
136944 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
136945 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_169(Idx);
136946 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
136947 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_170(Idx);
136948 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
136949 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_171(Idx);
136950 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
136951 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_172(Idx);
136952 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
136953 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_173(Idx);
136954 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
136955 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_174(Idx);
136956
136957
136958 xla_ae_lines_pkg.SetAcctReversalAttrs
136959 (p_event_id => l_event_id
136960 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
136961 ,p_calculate_acctd_flag => l_calculate_acctd_flag
136962 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
136963 END IF;
136964
136965 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
136966 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
136967 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
136968 -- or secondary ledger that has different currency with primary
136969 -- or alc that is calculated by sla
136970 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
136971 (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'))
136972
136973 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
136974 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
136975 AND (l_actual_flag = 'A')) THEN
136976 XLA_AE_LINES_PKG.CreateGainOrLossLines(
136977 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
136978 ,p_application_id => p_application_id
136979 ,p_amb_context_code => 'DEFAULT'
136980 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
136981 ,p_event_class_code => C_EVENT_CLASS_CODE
136982 ,p_event_type_code => C_EVENT_TYPE_CODE
136983
136984 ,p_gain_ccid => -1
136985 ,p_loss_ccid => -1
136986
136987 ,p_actual_flag => l_actual_flag
136988 ,p_enc_flag => null
136989 ,p_actual_g_l_ref => l_actual_gain_loss_ref
136990 ,p_enc_g_l_ref => null
136991 );
136992 END IF;
136993 END IF;
136994 END IF;
136995
136996 ELSE
136997 --
136998 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
136999 --
137000 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137001 trace
137002 (p_msg => 'Trancaction revesal option is Y'
137003 ,p_level => C_LEVEL_STATEMENT
137004 ,p_module => l_log_module);
137005 END IF;
137006 END IF;
137007
137008 END LOOP;
137009 l_result := XLA_AE_LINES_PKG.InsertLines ;
137010 end loop;
137011 close line_cur;
137012
137013
137014 --
137015 -- insert headers into xla_ae_headers_gt table
137016 --
137017 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
137018
137019 -- insert into errors table here.
137020
137021 END LOOP;
137022
137023 --
137024 -- 4865292
137025 --
137026 -- Compare g_hdr_extract_count with event count in
137027 -- CreateHeadersAndLines.
137028 --
137029 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
137030
137031 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137032 trace (p_msg => '# rows extracted from header extract objects '
137033 || ' (running total): '
137034 || g_hdr_extract_count
137035 ,p_level => C_LEVEL_STATEMENT
137036 ,p_module => l_log_module);
137037 END IF;
137038
137039 CLOSE header_cur;
137040 --
137041
137042 --
137043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137044 trace
137045 (p_msg => 'END of EventClass_213'
137046 ,p_level => C_LEVEL_PROCEDURE
137047 ,p_module => l_log_module);
137048 END IF;
137049 --
137050 RETURN l_result;
137051 EXCEPTION
137052 WHEN xla_exceptions_pkg.application_exception THEN
137053
137054 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
137055
137056
137057 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
137058
137059 RAISE;
137060
137061 WHEN NO_DATA_FOUND THEN
137062
137063 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
137064 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
137065
137066 FOR header_record IN header_cur
137067 LOOP
137071 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
137068 l_array_header_events(header_record.event_id) := header_record.event_id;
137069 END LOOP;
137070
137072 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
137073
137074 fnd_file.put_line(fnd_file.LOG, ' ');
137075 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
137076 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
137077 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
137078
137079 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
137080 LOOP
137081 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
137082 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
137083 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
137084 END IF;
137085 END LOOP;
137086
137087 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
137088 fnd_file.put_line(fnd_file.LOG, ' ');
137089
137090
137091 xla_exceptions_pkg.raise_message
137092 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_213');
137093
137094
137095 WHEN OTHERS THEN
137096 xla_exceptions_pkg.raise_message
137097 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_213');
137098 END EventClass_213;
137099 --
137100
137101 ---------------------------------------
137102 --
137103 -- PRIVATE PROCEDURE
137104 -- insert_sources_214
137105 --
137106 ----------------------------------------
137107 --
137108 PROCEDURE insert_sources_214(
137109 p_target_ledger_id IN NUMBER
137110 , p_language IN VARCHAR2
137111 , p_sla_ledger_id IN NUMBER
137112 , p_pad_start_date IN DATE
137113 , p_pad_end_date IN DATE
137114 )
137115 IS
137116
137117 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS_ALL';
137118 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS';
137119 p_apps_owner VARCHAR2(30);
137120 l_log_module VARCHAR2(240);
137121 BEGIN
137122 IF g_log_enabled THEN
137123 l_log_module := C_DEFAULT_MODULE||'.insert_sources_214';
137124 END IF;
137125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137126
137127 trace
137128 (p_msg => 'BEGIN of insert_sources_214'
137129 ,p_level => C_LEVEL_PROCEDURE
137130 ,p_module => l_log_module);
137131
137132 END IF;
137133
137134 -- select APPS owner
137135 SELECT oracle_username
137136 INTO p_apps_owner
137137 FROM fnd_oracle_userid
137138 WHERE read_only_flag = 'U'
137139 ;
137140
137141 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137142 trace
137143 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
137144 ' - p_language = '||p_language||
137145 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
137146 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
137147 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
137148 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
137149 ,p_level => C_LEVEL_STATEMENT
137150 ,p_module => l_log_module);
137151 END IF;
137152
137153
137154 --
137155 INSERT INTO xla_diag_sources --hdr2
137156 (
137157 event_id
137158 , ledger_id
137159 , sla_ledger_id
137160 , description_language
137161 , object_name
137162 , object_type_code
137163 , line_number
137164 , source_application_id
137165 , source_type_code
137166 , source_code
137167 , source_value
137168 , source_meaning
137169 , created_by
137170 , creation_date
137171 , last_update_date
137172 , last_updated_by
137173 , last_update_login
137174 , program_update_date
137175 , program_application_id
137176 , program_id
137177 , request_id
137178 )
137179 SELECT
137180 event_id
137181 , p_target_ledger_id
137182 , p_sla_ledger_id
137183 , p_language
137184 , object_name
137185 , object_type_code
137186 , line_number
137187 , source_application_id
137188 , source_type_code
137189 , source_code
137190 , SUBSTR(source_value ,1,1996)
137191 , SUBSTR(source_meaning ,1,200)
137192 , xla_environment_pkg.g_Usr_Id
137193 , TRUNC(SYSDATE)
137194 , TRUNC(SYSDATE)
137195 , xla_environment_pkg.g_Usr_Id
137196 , xla_environment_pkg.g_Login_Id
137197 , TRUNC(SYSDATE)
137198 , xla_environment_pkg.g_Prog_Appl_Id
137199 , xla_environment_pkg.g_Prog_Id
137200 , xla_environment_pkg.g_Req_Id
137201 FROM (
137202 SELECT xet.event_id event_id
137203 , 0 line_number
137204 , CASE r
137205 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137206 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137207 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137208 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137209 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137210 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137211 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137212 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137216 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137213 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137214 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137215 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137217 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137218 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137219 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137220 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137221 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137222 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137223 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137224 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137225 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137226 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137227 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137228 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137229 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
137230 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137231 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137232 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137233 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137234 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137235 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137236 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137237 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137238 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137239 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137240 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137241 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
137242
137243 ELSE null
137244 END object_name
137245 , CASE r
137246 WHEN 1 THEN 'HEADER'
137247 WHEN 2 THEN 'HEADER'
137248 WHEN 3 THEN 'HEADER'
137249 WHEN 4 THEN 'HEADER'
137250 WHEN 5 THEN 'HEADER'
137251 WHEN 6 THEN 'HEADER'
137252 WHEN 7 THEN 'HEADER'
137253 WHEN 8 THEN 'HEADER'
137254 WHEN 9 THEN 'HEADER'
137255 WHEN 10 THEN 'HEADER'
137256 WHEN 11 THEN 'HEADER'
137257 WHEN 12 THEN 'HEADER'
137258 WHEN 13 THEN 'HEADER'
137259 WHEN 14 THEN 'HEADER'
137260 WHEN 15 THEN 'HEADER'
137261 WHEN 16 THEN 'HEADER'
137262 WHEN 17 THEN 'HEADER'
137263 WHEN 18 THEN 'HEADER'
137264 WHEN 19 THEN 'HEADER'
137265 WHEN 20 THEN 'HEADER'
137266 WHEN 21 THEN 'HEADER'
137267 WHEN 22 THEN 'HEADER'
137268 WHEN 23 THEN 'HEADER'
137269 WHEN 24 THEN 'HEADER'
137270 WHEN 25 THEN 'HEADER'
137271 WHEN 26 THEN 'HEADER'
137272 WHEN 27 THEN 'HEADER'
137273 WHEN 28 THEN 'HEADER'
137274 WHEN 29 THEN 'HEADER'
137275 WHEN 30 THEN 'HEADER'
137276 WHEN 31 THEN 'HEADER'
137277 WHEN 32 THEN 'HEADER'
137278 WHEN 33 THEN 'HEADER'
137279 WHEN 34 THEN 'HEADER'
137280 WHEN 35 THEN 'HEADER'
137281 WHEN 36 THEN 'HEADER'
137282 WHEN 37 THEN 'HEADER'
137283
137284 ELSE null
137285 END object_type_code
137286 , CASE r
137287 WHEN 1 THEN '200'
137288 WHEN 2 THEN '200'
137289 WHEN 3 THEN '200'
137290 WHEN 4 THEN '200'
137291 WHEN 5 THEN '200'
137292 WHEN 6 THEN '200'
137293 WHEN 7 THEN '200'
137294 WHEN 8 THEN '200'
137295 WHEN 9 THEN '200'
137296 WHEN 10 THEN '200'
137297 WHEN 11 THEN '200'
137298 WHEN 12 THEN '200'
137299 WHEN 13 THEN '200'
137300 WHEN 14 THEN '200'
137301 WHEN 15 THEN '200'
137302 WHEN 16 THEN '200'
137303 WHEN 17 THEN '200'
137304 WHEN 18 THEN '200'
137305 WHEN 19 THEN '200'
137306 WHEN 20 THEN '200'
137307 WHEN 21 THEN '200'
137308 WHEN 22 THEN '200'
137309 WHEN 23 THEN '200'
137310 WHEN 24 THEN '200'
137311 WHEN 25 THEN '200'
137312 WHEN 26 THEN '200'
137313 WHEN 27 THEN '200'
137314 WHEN 28 THEN '200'
137315 WHEN 29 THEN '200'
137316 WHEN 30 THEN '200'
137317 WHEN 31 THEN '200'
137318 WHEN 32 THEN '200'
137319 WHEN 33 THEN '200'
137320 WHEN 34 THEN '200'
137321 WHEN 35 THEN '200'
137322 WHEN 36 THEN '200'
137323 WHEN 37 THEN '200'
137324
137325 ELSE null
137326 END source_application_id
137327 , 'S' source_type_code
137328 , CASE r
137329 WHEN 1 THEN 'CGAC_AP_ASSET_CCID'
137330 WHEN 2 THEN 'FSP_DISC_TAKEN_CCID'
137331 WHEN 3 THEN 'ASP_DISCOUNT_DIST_METHOD'
137332 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
137333 WHEN 5 THEN 'ASP_RATE_VAR_GAIN_CCID'
137334 WHEN 6 THEN 'ASP_RATE_VAR_LOSS_CCID'
137335 WHEN 7 THEN 'ASP_INTEREST_CCID'
137339 WHEN 11 THEN 'CGAC_BANK_ERRORS_CCID'
137336 WHEN 8 THEN 'ASP_PRORATE_INT_ACROSS_DISTS'
137337 WHEN 9 THEN 'FSP_RETAINAGE_ACCOUNT'
137338 WHEN 10 THEN 'CGAC_BANK_CHARGES_CCID'
137340 WHEN 12 THEN 'ASP_DISC_TAKEN_CCID'
137341 WHEN 13 THEN 'ASP_AUTO_OFFSET_FLAG'
137342 WHEN 14 THEN 'CGAC_GAIN_CCID'
137343 WHEN 15 THEN 'ASP_GAIN_CCID'
137344 WHEN 16 THEN 'CGAC_LOSS_CCID'
137345 WHEN 17 THEN 'ASP_LOSS_CCID'
137346 WHEN 18 THEN 'ASP_ROUNDING_ERROR_CCID'
137347 WHEN 19 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
137348 WHEN 20 THEN 'AC_CURRENCY_CODE'
137349 WHEN 21 THEN 'AC_VENDOR_ID'
137350 WHEN 22 THEN 'AC_VENDOR_SITE_ID'
137351 WHEN 23 THEN 'THIRD_PARTY_TYPE'
137352 WHEN 24 THEN 'PAYMENT_TYPE'
137353 WHEN 25 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG'
137354 WHEN 26 THEN 'APH_BANK_CURRENCY_CODE'
137355 WHEN 27 THEN 'APH_BANK_TO_BASE_XRATE_DATE'
137356 WHEN 28 THEN 'APH_BANK_TO_BASE_XRATE'
137357 WHEN 29 THEN 'APH_BANK_TO_BASE_XRATE_TYPE'
137358 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
137359 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE'
137360 WHEN 32 THEN 'AC_EXCHANGE_DATE'
137361 WHEN 33 THEN 'AC_EXCHANGE_RATE'
137362 WHEN 34 THEN 'AC_EXCHANGE_RATE_TYPE'
137363 WHEN 35 THEN 'AC_DOC_CATEGORY_CODE'
137364 WHEN 36 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
137365 WHEN 37 THEN 'AC_DOC_SEQUENCE_VALUE'
137366
137367 ELSE null
137368 END source_code
137369 , CASE r
137370 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
137371 WHEN 2 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
137372 WHEN 3 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
137373 WHEN 4 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
137374 WHEN 5 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
137375 WHEN 6 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
137376 WHEN 7 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
137377 WHEN 8 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
137378 WHEN 9 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
137379 WHEN 10 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
137380 WHEN 11 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
137381 WHEN 12 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
137382 WHEN 13 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
137383 WHEN 14 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
137384 WHEN 15 THEN TO_CHAR(h4.ASP_GAIN_CCID)
137385 WHEN 16 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
137386 WHEN 17 THEN TO_CHAR(h4.ASP_LOSS_CCID)
137387 WHEN 18 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
137388 WHEN 19 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
137389 WHEN 20 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
137390 WHEN 21 THEN TO_CHAR(h2.AC_VENDOR_ID)
137391 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
137392 WHEN 23 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
137393 WHEN 24 THEN TO_CHAR(h2.PAYMENT_TYPE)
137394 WHEN 25 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
137395 WHEN 26 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
137396 WHEN 27 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
137397 WHEN 28 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
137398 WHEN 29 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
137399 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
137400 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
137401 WHEN 32 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
137402 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
137403 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
137404 WHEN 35 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
137405 WHEN 36 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
137406 WHEN 37 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
137407
137408 ELSE null
137409 END source_value
137410 , CASE r
137411 WHEN 3 THEN fvl3.meaning
137412 WHEN 4 THEN fvl4.meaning
137413 WHEN 13 THEN fvl30.meaning
137414 WHEN 24 THEN fvl60.meaning
137415 WHEN 25 THEN fvl102.meaning
137416 WHEN 30 THEN fvl110.meaning
137417
137418 ELSE null
137419 END source_meaning
137420 FROM xla_events_gt xet
137421 , AP_PAYMENT_EXTRACT_HEADER_V h2
137422 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
137423 , fnd_lookup_values fvl3
137424 , fnd_lookup_values fvl4
137425 , fnd_lookup_values fvl30
137426 , fnd_lookup_values fvl60
137427 , fnd_lookup_values fvl102
137428 , fnd_lookup_values fvl110
137429 ,(select rownum r from all_objects where rownum <= 37 and owner = p_apps_owner)
137430 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
137431 AND xet.event_class_code = C_EVENT_CLASS_CODE
137432 AND h2.event_id = xet.event_id
137433 AND h4.asp_org_id = h2.ac_org_id AND fvl3.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
137434 AND fvl3.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
137435 AND fvl3.view_application_id(+) = 200
137436 AND fvl3.language(+) = USERENV('LANG')
137437 AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
137438 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
137439 AND fvl4.view_application_id(+) = 200
137440 AND fvl4.language(+) = USERENV('LANG')
137441 AND fvl30.lookup_type(+) = 'YES_NO'
137445 AND fvl60.lookup_type(+) = 'PAYMENT TYPE'
137442 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
137443 AND fvl30.view_application_id(+) = 0
137444 AND fvl30.language(+) = USERENV('LANG')
137446 AND fvl60.lookup_code(+) = h2.PAYMENT_TYPE
137447 AND fvl60.view_application_id(+) = 200
137448 AND fvl60.language(+) = USERENV('LANG')
137449 AND fvl102.lookup_type(+) = 'YES_NO'
137450 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
137451 AND fvl102.view_application_id(+) = 0
137452 AND fvl102.language(+) = USERENV('LANG')
137453 AND fvl110.lookup_type(+) = 'YES_NO'
137454 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
137455 AND fvl110.view_application_id(+) = 0
137456 AND fvl110.language(+) = USERENV('LANG')
137457
137458 )
137459 ;
137460 --
137461 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137462
137463 trace
137464 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
137465 ,p_level => C_LEVEL_STATEMENT
137466 ,p_module => l_log_module);
137467
137468 END IF;
137469 --
137470
137471
137472
137473 --
137474 INSERT INTO xla_diag_sources --line2
137475 (
137476 event_id
137477 , ledger_id
137478 , sla_ledger_id
137479 , description_language
137480 , object_name
137481 , object_type_code
137482 , line_number
137483 , source_application_id
137484 , source_type_code
137485 , source_code
137486 , source_value
137487 , source_meaning
137488 , created_by
137489 , creation_date
137490 , last_update_date
137491 , last_updated_by
137492 , last_update_login
137493 , program_update_date
137494 , program_application_id
137495 , program_id
137496 , request_id
137497 )
137498 SELECT event_id
137499 , p_target_ledger_id
137500 , p_sla_ledger_id
137501 , p_language
137502 , object_name
137503 , object_type_code
137504 , line_number
137505 , source_application_id
137506 , source_type_code
137507 , source_code
137508 , SUBSTR(source_value,1,1996)
137509 , SUBSTR(source_meaning ,1,200)
137510 , xla_environment_pkg.g_Usr_Id
137511 , TRUNC(SYSDATE)
137512 , TRUNC(SYSDATE)
137513 , xla_environment_pkg.g_Usr_Id
137514 , xla_environment_pkg.g_Login_Id
137515 , TRUNC(SYSDATE)
137516 , xla_environment_pkg.g_Prog_Appl_Id
137517 , xla_environment_pkg.g_Prog_Id
137518 , xla_environment_pkg.g_Req_Id
137519 FROM (
137520 SELECT xet.event_id event_id
137521 , l1.line_number line_number
137522 , CASE r
137523 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137524 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137525 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137526 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137527 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137528 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137529 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137530 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137531 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137532 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137533 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137534 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137535 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137536 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137537 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137538 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137539 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137540 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137541 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137542 WHEN 20 THEN 'AP_PO_HEADERS_EXTRACT_V'
137543 WHEN 21 THEN 'AP_PO_HEADERS_EXTRACT_V'
137544 WHEN 22 THEN 'AP_PO_HEADERS_EXTRACT_V'
137545 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137546 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137547 WHEN 25 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
137548 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
137549 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137550 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137551 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137552 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137553 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137554 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137555 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137556 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137557 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137558 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137559 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137560 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137561 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137562 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137563 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137564 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137565 WHEN 43 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137566 WHEN 44 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137567 WHEN 45 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137568 WHEN 46 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
137569
137570 ELSE null
137571 END object_name
137572 , CASE r
137576 WHEN 4 THEN 'LINE'
137573 WHEN 1 THEN 'LINE'
137574 WHEN 2 THEN 'LINE'
137575 WHEN 3 THEN 'LINE'
137577 WHEN 5 THEN 'LINE'
137578 WHEN 6 THEN 'LINE'
137579 WHEN 7 THEN 'LINE'
137580 WHEN 8 THEN 'LINE'
137581 WHEN 9 THEN 'LINE'
137582 WHEN 10 THEN 'LINE'
137583 WHEN 11 THEN 'LINE'
137584 WHEN 12 THEN 'LINE'
137585 WHEN 13 THEN 'LINE'
137586 WHEN 14 THEN 'LINE'
137587 WHEN 15 THEN 'LINE'
137588 WHEN 16 THEN 'LINE'
137589 WHEN 17 THEN 'LINE'
137590 WHEN 18 THEN 'LINE'
137591 WHEN 19 THEN 'LINE'
137592 WHEN 20 THEN 'LINE'
137593 WHEN 21 THEN 'LINE'
137594 WHEN 22 THEN 'LINE'
137595 WHEN 23 THEN 'LINE'
137596 WHEN 24 THEN 'LINE'
137597 WHEN 25 THEN 'LINE'
137598 WHEN 26 THEN 'LINE'
137599 WHEN 27 THEN 'LINE'
137600 WHEN 28 THEN 'LINE'
137601 WHEN 29 THEN 'LINE'
137602 WHEN 30 THEN 'LINE'
137603 WHEN 31 THEN 'LINE'
137604 WHEN 32 THEN 'LINE'
137605 WHEN 33 THEN 'LINE'
137606 WHEN 34 THEN 'LINE'
137607 WHEN 35 THEN 'LINE'
137608 WHEN 36 THEN 'LINE'
137609 WHEN 37 THEN 'LINE'
137610 WHEN 38 THEN 'LINE'
137611 WHEN 39 THEN 'LINE'
137612 WHEN 40 THEN 'LINE'
137613 WHEN 41 THEN 'LINE'
137614 WHEN 42 THEN 'LINE'
137615 WHEN 43 THEN 'LINE'
137616 WHEN 44 THEN 'LINE'
137617 WHEN 45 THEN 'LINE'
137618 WHEN 46 THEN 'LINE'
137619
137620 ELSE null
137621 END object_type_code
137622 , CASE r
137623 WHEN 1 THEN '200'
137624 WHEN 2 THEN '200'
137625 WHEN 3 THEN '200'
137626 WHEN 4 THEN '200'
137627 WHEN 5 THEN '200'
137628 WHEN 6 THEN '200'
137629 WHEN 7 THEN '200'
137630 WHEN 8 THEN '200'
137631 WHEN 9 THEN '200'
137632 WHEN 10 THEN '200'
137633 WHEN 11 THEN '200'
137634 WHEN 12 THEN '200'
137635 WHEN 13 THEN '200'
137636 WHEN 14 THEN '200'
137637 WHEN 15 THEN '200'
137638 WHEN 16 THEN '200'
137639 WHEN 17 THEN '200'
137640 WHEN 18 THEN '200'
137641 WHEN 19 THEN '200'
137642 WHEN 20 THEN '200'
137643 WHEN 21 THEN '200'
137644 WHEN 22 THEN '200'
137645 WHEN 23 THEN '200'
137646 WHEN 24 THEN '200'
137647 WHEN 25 THEN '200'
137648 WHEN 26 THEN '200'
137649 WHEN 27 THEN '200'
137650 WHEN 28 THEN '200'
137651 WHEN 29 THEN '200'
137652 WHEN 30 THEN '200'
137653 WHEN 31 THEN '200'
137654 WHEN 32 THEN '200'
137655 WHEN 33 THEN '200'
137656 WHEN 34 THEN '200'
137657 WHEN 35 THEN '200'
137658 WHEN 36 THEN '200'
137659 WHEN 37 THEN '200'
137660 WHEN 38 THEN '200'
137661 WHEN 39 THEN '200'
137662 WHEN 40 THEN '200'
137663 WHEN 41 THEN '200'
137664 WHEN 42 THEN '200'
137665 WHEN 43 THEN '200'
137666 WHEN 44 THEN '200'
137667 WHEN 45 THEN '200'
137668 WHEN 46 THEN '200'
137669
137670 ELSE null
137671 END source_application_id
137672 , 'S' source_type_code
137673 , CASE r
137674 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE'
137675 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT'
137676 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT'
137677 WHEN 4 THEN 'AID_DIST_CCID'
137678 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
137679 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID'
137680 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT'
137681 WHEN 8 THEN 'POD_CCID'
137682 WHEN 9 THEN 'PO_VARIANCE_ACCOUNT'
137683 WHEN 10 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
137684 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
137685 WHEN 12 THEN 'APHD_AMOUNT'
137686 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID'
137687 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE'
137688 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE'
137689 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID'
137690 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID'
137691 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID'
137692 WHEN 19 THEN 'DISTRIBUTION_LINK_TYPE'
137693 WHEN 20 THEN 'POH_RATE_DATE'
137694 WHEN 21 THEN 'POH_RATE'
137695 WHEN 22 THEN 'POH_RATE_TYPE'
137696 WHEN 23 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
137697 WHEN 24 THEN 'APHD_REV_PAY_HIST_DIST_ID'
137698 WHEN 25 THEN 'TAX_LINE_ID'
137699 WHEN 26 THEN 'SUMMARY_TAX_LINE_ID'
137700 WHEN 27 THEN 'BUS_FLOW_INV_DIST_TYPE'
137701 WHEN 28 THEN 'BUS_FLOW_INV_ENTITY_CODE'
137702 WHEN 29 THEN 'BUS_FLOW_INV_DIST_ID'
137706 WHEN 33 THEN 'APHD_INV_BASE_AMT_VARIANCE'
137703 WHEN 30 THEN 'BUS_FLOW_INV_ID'
137704 WHEN 31 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
137705 WHEN 32 THEN 'AI_INVOICE_TYPE_PAID'
137707 WHEN 34 THEN 'AID_ENCUMBERED_FLAG'
137708 WHEN 35 THEN 'APHD_AMOUNT_VARIANCE'
137709 WHEN 36 THEN 'APHD_INVOICE_BASE_AMT'
137710 WHEN 37 THEN 'INV_CLR_BASE_AMT_DIFF'
137711 WHEN 38 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR'
137712 WHEN 39 THEN 'MAT_CLR_BASE_AMT_DIFF'
137713 WHEN 40 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR'
137714 WHEN 41 THEN 'PMT_CLR_BASE_AMT_DIFF'
137715 WHEN 42 THEN 'APHD_INV_BASE_QTY_VARIANCE'
137716 WHEN 43 THEN 'APHD_QUANTITY_VARIANCE'
137717 WHEN 44 THEN 'BF_RETAINED_INV_DIST_ID_CLR'
137718 WHEN 45 THEN 'BF_RETAINED_INV_ID_CLR'
137719 WHEN 46 THEN 'AWT_AT_PMT_TIME'
137720
137721 ELSE null
137722 END source_code
137723 , CASE r
137724 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
137725 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
137726 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
137727 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
137728 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
137729 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
137730 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
137731 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
137732 WHEN 9 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
137733 WHEN 10 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
137734 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
137735 WHEN 12 THEN TO_CHAR(l1.APHD_AMOUNT)
137736 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
137737 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
137738 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
137739 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
137740 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
137741 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
137742 WHEN 19 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
137743 WHEN 20 THEN TO_CHAR(l3.POH_RATE_DATE)
137744 WHEN 21 THEN TO_CHAR(l3.POH_RATE)
137745 WHEN 22 THEN TO_CHAR(l3.POH_RATE_TYPE)
137746 WHEN 23 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
137747 WHEN 24 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
137748 WHEN 25 THEN TO_CHAR(l5.TAX_LINE_ID)
137749 WHEN 26 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
137750 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
137751 WHEN 28 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
137752 WHEN 29 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
137753 WHEN 30 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
137754 WHEN 31 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
137755 WHEN 32 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
137756 WHEN 33 THEN TO_CHAR(l1.APHD_INV_BASE_AMT_VARIANCE)
137757 WHEN 34 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
137758 WHEN 35 THEN TO_CHAR(l1.APHD_AMOUNT_VARIANCE)
137759 WHEN 36 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
137760 WHEN 37 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
137761 WHEN 38 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
137762 WHEN 39 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
137763 WHEN 40 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
137764 WHEN 41 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
137765 WHEN 42 THEN TO_CHAR(l1.APHD_INV_BASE_QTY_VARIANCE)
137766 WHEN 43 THEN TO_CHAR(l1.APHD_QUANTITY_VARIANCE)
137767 WHEN 44 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_CLR)
137768 WHEN 45 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_CLR)
137769 WHEN 46 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
137770
137771 ELSE null
137772 END source_value
137773 , CASE r
137774 WHEN 1 THEN fvl7.meaning
137775 WHEN 5 THEN fvl20.meaning
137776 WHEN 10 THEN fvl39.meaning
137777 WHEN 23 THEN fvl53.meaning
137778 WHEN 31 THEN fvl100.meaning
137779 WHEN 32 THEN fvl101.meaning
137780 WHEN 34 THEN fvl104.meaning
137781 WHEN 46 THEN fvl151.meaning
137782
137783 ELSE null
137784 END source_meaning
137785 FROM xla_events_gt xet
137786 , AP_PAYMENT_EXTRACT_DETAILS_V l1
137787 , AP_PO_HEADERS_EXTRACT_V l3
137788 , ZX_AP_DEF_TAX_EXTRACT_V l5
137789 , fnd_lookup_values fvl7
137790 , fnd_lookup_values fvl20
137791 , fnd_lookup_values fvl39
137792 , fnd_lookup_values fvl53
137793 , fnd_lookup_values fvl100
137794 , fnd_lookup_values fvl101
137795 , fnd_lookup_values fvl104
137796 , fnd_lookup_values fvl151
137797 , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
137798 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
137799 AND xet.event_class_code = C_EVENT_CLASS_CODE
137800 AND l1.event_id = xet.event_id
137801 AND l1.pod_po_header_id = l3.po_header_id (+) AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
137802 AND fvl7.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
137803 AND fvl7.view_application_id(+) = 201
137804 AND fvl7.language(+) = USERENV('LANG')
137805 AND fvl20.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
137809 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
137806 AND fvl20.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
137807 AND fvl20.view_application_id(+) = 200
137808 AND fvl20.language(+) = USERENV('LANG')
137810 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
137811 AND fvl39.view_application_id(+) = 200
137812 AND fvl39.language(+) = USERENV('LANG')
137813 AND fvl53.lookup_type(+) = 'YES_NO'
137814 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
137815 AND fvl53.view_application_id(+) = 0
137816 AND fvl53.language(+) = USERENV('LANG')
137817 AND fvl100.lookup_type(+) = 'YES_NO'
137818 AND fvl100.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
137819 AND fvl100.view_application_id(+) = 0
137820 AND fvl100.language(+) = USERENV('LANG')
137821 AND fvl101.lookup_type(+) = 'INVOICE TYPE'
137822 AND fvl101.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
137823 AND fvl101.view_application_id(+) = 200
137824 AND fvl101.language(+) = USERENV('LANG')
137825 AND fvl104.lookup_type(+) = 'YES_NO'
137826 AND fvl104.lookup_code(+) = l1.AID_ENCUMBERED_FLAG
137827 AND fvl104.view_application_id(+) = 0
137828 AND fvl104.language(+) = USERENV('LANG')
137829 AND fvl151.lookup_type(+) = 'YES_NO'
137830 AND fvl151.lookup_code(+) = l1.AWT_AT_PMT_TIME
137831 AND fvl151.view_application_id(+) = 0
137832 AND fvl151.language(+) = USERENV('LANG')
137833
137834 )
137835 ;
137836 --
137837 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137838
137839 trace
137840 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
137841 ,p_level => C_LEVEL_STATEMENT
137842 ,p_module => l_log_module);
137843
137844 END IF;
137845
137846
137847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137848 trace
137849 (p_msg => 'END of insert_sources_214'
137850 ,p_level => C_LEVEL_PROCEDURE
137851 ,p_module => l_log_module);
137852 END IF;
137853 EXCEPTION
137854 WHEN xla_exceptions_pkg.application_exception THEN
137855 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
137856 trace
137857 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
137858 ,p_level => C_LEVEL_EXCEPTION
137859 ,p_module => l_log_module);
137860 END IF;
137861 RAISE;
137862 WHEN OTHERS THEN
137863 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
137864 trace
137865 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
137866 ,p_level => C_LEVEL_EXCEPTION
137867 ,p_module => l_log_module);
137868 END IF;
137869 xla_exceptions_pkg.raise_message
137870 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_214');
137871 END insert_sources_214;
137872 --
137873
137874 ---------------------------------------
137875 --
137876 -- PRIVATE FUNCTION
137877 -- EventClass_214
137878 --
137879 ----------------------------------------
137880 --
137881 FUNCTION EventClass_214
137882 (p_application_id IN NUMBER
137883 ,p_base_ledger_id IN NUMBER
137884 ,p_target_ledger_id IN NUMBER
137885 ,p_language IN VARCHAR2
137886 ,p_currency_code IN VARCHAR2
137887 ,p_sla_ledger_id IN NUMBER
137888 ,p_pad_start_date IN DATE
137889 ,p_pad_end_date IN DATE
137890 ,p_primary_ledger_id IN NUMBER)
137891 RETURN BOOLEAN IS
137892 --
137893 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS_ALL';
137894 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS';
137895
137896 l_calculate_acctd_flag VARCHAR2(1) :='N';
137897 l_calculate_g_l_flag VARCHAR2(1) :='N';
137898 --
137899 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137900 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137901 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137902 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137903 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137904 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137905 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137906 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137907 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137908 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137909 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137910 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137911 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137912 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137913 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137914 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137915 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137916 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137917 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137918 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137919 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137920 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137921 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
137922 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137923 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
137927 l_previous_event_id NUMBER;
137924 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
137925
137926 l_event_id NUMBER;
137928 l_first_event_id NUMBER;
137929 l_last_event_id NUMBER;
137930
137931 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
137932 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
137933 --
137934 --
137935 l_result BOOLEAN := TRUE;
137936 l_rows NUMBER := 1000;
137937 l_event_type_name VARCHAR2(80) := 'All';
137938 l_event_class_name VARCHAR2(80) := 'Reconciled Payments';
137939 l_description VARCHAR2(4000);
137940 l_transaction_reversal NUMBER;
137941 l_ae_header_id NUMBER;
137942 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
137943 l_log_module VARCHAR2(240);
137944 --
137945 l_acct_reversal_source VARCHAR2(30);
137946 l_trx_reversal_source VARCHAR2(30);
137947
137948 l_continue_with_lines BOOLEAN := TRUE;
137949 --
137950 l_acc_rev_gl_date_source DATE; -- 4262811
137951 --
137952 type t_array_event_id is table of number index by binary_integer;
137953
137954 l_rec_array_event t_rec_array_event;
137955 l_null_rec_array_event t_rec_array_event;
137956 l_array_ae_header_id xla_number_array_type;
137957 l_actual_flag VARCHAR2(1) := NULL;
137958 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
137959 l_balance_type_code VARCHAR2(1) :=NULL;
137960 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
137961
137962 --
137963 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
137964 --
137965
137966 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
137967 TYPE t_array_source_2 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
137968 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
137969 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
137970 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
137971 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
137972 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
137973 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
137974 TYPE t_array_source_22 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
137975 TYPE t_array_source_25 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
137976 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
137977 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
137978 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
137979 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
137980 TYPE t_array_source_33 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
137981 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
137982 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
137983 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
137984 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
137985 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
137986 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
137987 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
137988 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
137989 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
137990 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
137991 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
137992 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
137993 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
137994 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
137995 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
137996 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
137997 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
137998 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
137999 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
138000 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
138001 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
138002 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
138003
138007 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
138004 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
138005 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
138006 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
138008 TYPE t_array_source_20 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
138009 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
138010 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
138011 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
138012 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
138013 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
138014 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
138015 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
138016 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
138017 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
138018 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
138019 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138020 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
138021 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138022 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
138023 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
138024 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
138025 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
138026 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
138027 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138028 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
138029 TYPE t_array_source_59 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
138030 TYPE t_array_source_62 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
138031 TYPE t_array_source_63 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
138032 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138033 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
138034 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
138035 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
138036 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_AMT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138037 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
138038 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138039 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
138040 TYPE t_array_source_127 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
138041 TYPE t_array_source_129 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
138042 TYPE t_array_source_130 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
138043 TYPE t_array_source_131 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
138044 TYPE t_array_source_132 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
138045 TYPE t_array_source_142 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_QTY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138046 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138047 TYPE t_array_source_147 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
138048 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
138049 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
138050
138051 l_array_source_1 t_array_source_1;
138052 l_array_source_2 t_array_source_2;
138053 l_array_source_3 t_array_source_3;
138054 l_array_source_3_meaning t_array_lookup_meaning;
138055 l_array_source_4 t_array_source_4;
138056 l_array_source_4_meaning t_array_lookup_meaning;
138057 l_array_source_5 t_array_source_5;
138058 l_array_source_8 t_array_source_8;
138059 l_array_source_15 t_array_source_15;
138060 l_array_source_16 t_array_source_16;
138061 l_array_source_22 t_array_source_22;
138062 l_array_source_25 t_array_source_25;
138063 l_array_source_26 t_array_source_26;
138064 l_array_source_27 t_array_source_27;
138065 l_array_source_30 t_array_source_30;
138066 l_array_source_30_meaning t_array_lookup_meaning;
138067 l_array_source_32 t_array_source_32;
138068 l_array_source_33 t_array_source_33;
138072 l_array_source_38 t_array_source_38;
138069 l_array_source_34 t_array_source_34;
138070 l_array_source_35 t_array_source_35;
138071 l_array_source_37 t_array_source_37;
138073 l_array_source_49 t_array_source_49;
138074 l_array_source_54 t_array_source_54;
138075 l_array_source_55 t_array_source_55;
138076 l_array_source_56 t_array_source_56;
138077 l_array_source_60 t_array_source_60;
138078 l_array_source_60_meaning t_array_lookup_meaning;
138079 l_array_source_102 t_array_source_102;
138080 l_array_source_102_meaning t_array_lookup_meaning;
138081 l_array_source_106 t_array_source_106;
138082 l_array_source_107 t_array_source_107;
138083 l_array_source_108 t_array_source_108;
138084 l_array_source_109 t_array_source_109;
138085 l_array_source_110 t_array_source_110;
138086 l_array_source_110_meaning t_array_lookup_meaning;
138087 l_array_source_111 t_array_source_111;
138088 l_array_source_114 t_array_source_114;
138089 l_array_source_115 t_array_source_115;
138090 l_array_source_116 t_array_source_116;
138091 l_array_source_158 t_array_source_158;
138092 l_array_source_159 t_array_source_159;
138093 l_array_source_160 t_array_source_160;
138094
138095 l_array_source_7 t_array_source_7;
138096 l_array_source_7_meaning t_array_lookup_meaning;
138097 l_array_source_9 t_array_source_9;
138098 l_array_source_10 t_array_source_10;
138099 l_array_source_17 t_array_source_17;
138100 l_array_source_20 t_array_source_20;
138101 l_array_source_20_meaning t_array_lookup_meaning;
138102 l_array_source_23 t_array_source_23;
138103 l_array_source_24 t_array_source_24;
138104 l_array_source_28 t_array_source_28;
138105 l_array_source_29 t_array_source_29;
138106 l_array_source_39 t_array_source_39;
138107 l_array_source_39_meaning t_array_lookup_meaning;
138108 l_array_source_40 t_array_source_40;
138109 l_array_source_41 t_array_source_41;
138110 l_array_source_42 t_array_source_42;
138111 l_array_source_43 t_array_source_43;
138112 l_array_source_44 t_array_source_44;
138113 l_array_source_45 t_array_source_45;
138114 l_array_source_46 t_array_source_46;
138115 l_array_source_47 t_array_source_47;
138116 l_array_source_48 t_array_source_48;
138117 l_array_source_50 t_array_source_50;
138118 l_array_source_51 t_array_source_51;
138119 l_array_source_52 t_array_source_52;
138120 l_array_source_53 t_array_source_53;
138121 l_array_source_53_meaning t_array_lookup_meaning;
138122 l_array_source_57 t_array_source_57;
138123 l_array_source_58 t_array_source_58;
138124 l_array_source_59 t_array_source_59;
138125 l_array_source_62 t_array_source_62;
138126 l_array_source_63 t_array_source_63;
138127 l_array_source_64 t_array_source_64;
138128 l_array_source_65 t_array_source_65;
138129 l_array_source_100 t_array_source_100;
138130 l_array_source_100_meaning t_array_lookup_meaning;
138131 l_array_source_101 t_array_source_101;
138132 l_array_source_101_meaning t_array_lookup_meaning;
138133 l_array_source_103 t_array_source_103;
138134 l_array_source_104 t_array_source_104;
138135 l_array_source_104_meaning t_array_lookup_meaning;
138136 l_array_source_105 t_array_source_105;
138137 l_array_source_112 t_array_source_112;
138138 l_array_source_127 t_array_source_127;
138139 l_array_source_129 t_array_source_129;
138140 l_array_source_130 t_array_source_130;
138141 l_array_source_131 t_array_source_131;
138142 l_array_source_132 t_array_source_132;
138143 l_array_source_142 t_array_source_142;
138144 l_array_source_143 t_array_source_143;
138145 l_array_source_147 t_array_source_147;
138146 l_array_source_148 t_array_source_148;
138147 l_array_source_151 t_array_source_151;
138148 l_array_source_151_meaning t_array_lookup_meaning;
138149
138150 --
138151 CURSOR header_cur
138152 IS
138153 SELECT /*+ leading(xet) cardinality(xet,1) */
138154 -- Event Class Code: RECONCILED PAYMENTS
138155 xet.entity_id
138156 ,xet.legal_entity_id
138157 ,xet.entity_code
138158 ,xet.transaction_number
138159 ,xet.event_id
138160 ,xet.event_class_code
138161 ,xet.event_type_code
138162 ,xet.event_number
138163 ,xet.event_date
138164 ,xet.transaction_date
138165 ,xet.reference_num_1
138166 ,xet.reference_num_2
138167 ,xet.reference_num_3
138168 ,xet.reference_num_4
138169 ,xet.reference_char_1
138170 ,xet.reference_char_2
138171 ,xet.reference_char_3
138172 ,xet.reference_char_4
138173 ,xet.reference_date_1
138174 ,xet.reference_date_2
138175 ,xet.reference_date_3
138176 ,xet.reference_date_4
138177 ,xet.event_created_by
138178 ,xet.budgetary_control_flag
138179 , h2.CGAC_AP_ASSET_CCID source_1
138180 , h4.FSP_DISC_TAKEN_CCID source_2
138181 , h4.ASP_DISCOUNT_DIST_METHOD source_3
138182 , fvl3.meaning source_3_meaning
138183 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_4
138184 , fvl4.meaning source_4_meaning
138185 , h4.ASP_RATE_VAR_GAIN_CCID source_5
138186 , h4.ASP_RATE_VAR_LOSS_CCID source_8
138187 , h4.ASP_INTEREST_CCID source_15
138188 , h4.ASP_PRORATE_INT_ACROSS_DISTS source_16
138189 , h4.FSP_RETAINAGE_ACCOUNT source_22
138190 , h2.CGAC_BANK_CHARGES_CCID source_25
138191 , h2.CGAC_BANK_ERRORS_CCID source_26
138192 , h4.ASP_DISC_TAKEN_CCID source_27
138193 , h4.ASP_AUTO_OFFSET_FLAG source_30
138194 , fvl30.meaning source_30_meaning
138195 , h2.CGAC_GAIN_CCID source_32
138196 , h4.ASP_GAIN_CCID source_33
138197 , h2.CGAC_LOSS_CCID source_34
138198 , h4.ASP_LOSS_CCID source_35
138202 , h2.AC_VENDOR_ID source_54
138199 , h4.ASP_ROUNDING_ERROR_CCID source_37
138200 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_38
138201 , h2.AC_CURRENCY_CODE source_49
138203 , h2.AC_VENDOR_SITE_ID source_55
138204 , h2.THIRD_PARTY_TYPE source_56
138205 , h2.PAYMENT_TYPE source_60
138206 , fvl60.meaning source_60_meaning
138207 , h4.FSP_PURCH_ENCUMBRANCE_FLAG source_102
138208 , fvl102.meaning source_102_meaning
138209 , h2.APH_BANK_CURRENCY_CODE source_106
138210 , h2.APH_BANK_TO_BASE_XRATE_DATE source_107
138211 , h2.APH_BANK_TO_BASE_XRATE source_108
138212 , h2.APH_BANK_TO_BASE_XRATE_TYPE source_109
138213 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_110
138214 , fvl110.meaning source_110_meaning
138215 , h2.AC_FUTURE_PAY_DUE_DATE source_111
138216 , h2.AC_EXCHANGE_DATE source_114
138217 , h2.AC_EXCHANGE_RATE source_115
138218 , h2.AC_EXCHANGE_RATE_TYPE source_116
138219 , h2.AC_DOC_CATEGORY_CODE source_158
138220 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_159
138221 , h2.AC_DOC_SEQUENCE_VALUE source_160
138222 FROM xla_events_gt xet
138223 , AP_PAYMENT_EXTRACT_HEADER_V h2
138224 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
138225 , fnd_lookup_values fvl3
138226 , fnd_lookup_values fvl4
138227 , fnd_lookup_values fvl30
138228 , fnd_lookup_values fvl60
138229 , fnd_lookup_values fvl102
138230 , fnd_lookup_values fvl110
138231 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
138232 and xet.event_class_code = C_EVENT_CLASS_CODE
138233 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
138234 AND h4.asp_org_id = h2.ac_org_id AND fvl3.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
138235 AND fvl3.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
138236 AND fvl3.view_application_id(+) = 200
138237 AND fvl3.language(+) = USERENV('LANG')
138238 AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
138239 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
138240 AND fvl4.view_application_id(+) = 200
138241 AND fvl4.language(+) = USERENV('LANG')
138242 AND fvl30.lookup_type(+) = 'YES_NO'
138243 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
138244 AND fvl30.view_application_id(+) = 0
138245 AND fvl30.language(+) = USERENV('LANG')
138246 AND fvl60.lookup_type(+) = 'PAYMENT TYPE'
138247 AND fvl60.lookup_code(+) = h2.PAYMENT_TYPE
138248 AND fvl60.view_application_id(+) = 200
138249 AND fvl60.language(+) = USERENV('LANG')
138250 AND fvl102.lookup_type(+) = 'YES_NO'
138251 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
138252 AND fvl102.view_application_id(+) = 0
138253 AND fvl102.language(+) = USERENV('LANG')
138254 AND fvl110.lookup_type(+) = 'YES_NO'
138255 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
138256 AND fvl110.view_application_id(+) = 0
138257 AND fvl110.language(+) = USERENV('LANG')
138258
138259 ORDER BY event_id
138260 ;
138261
138262
138263 --
138264 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
138265 IS
138266 SELECT /*+ leading(xet) cardinality(xet,1) */
138267 -- Event Class Code: RECONCILED PAYMENTS
138268 xet.entity_id
138269 ,xet.legal_entity_id
138270 ,xet.entity_code
138271 ,xet.transaction_number
138272 ,xet.event_id
138273 ,xet.event_class_code
138274 ,xet.event_type_code
138275 ,xet.event_number
138276 ,xet.event_date
138277 ,xet.transaction_date
138278 ,xet.reference_num_1
138279 ,xet.reference_num_2
138280 ,xet.reference_num_3
138281 ,xet.reference_num_4
138282 ,xet.reference_char_1
138283 ,xet.reference_char_2
138284 ,xet.reference_char_3
138285 ,xet.reference_char_4
138286 ,xet.reference_date_1
138287 ,xet.reference_date_2
138288 ,xet.reference_date_3
138289 ,xet.reference_date_4
138290 ,xet.event_created_by
138291 ,xet.budgetary_control_flag
138292 , l1.LINE_NUMBER
138293 , l1.RELATED_INV_DIST_DEST_TYPE source_7
138294 , fvl7.meaning source_7_meaning
138295 , l1.APHD_PAYMENT_BASE_AMT source_9
138296 , l1.APHD_CLEARING_BASE_AMT source_10
138297 , l1.AID_DIST_CCID source_17
138298 , l1.AID_LINE_TYPE_LOOKUP_CODE source_20
138299 , fvl20.meaning source_20_meaning
138300 , l1.AID_RET_RELATED_DIST_CCID source_23
138301 , l1.AWT_RELATED_DIST_ACCOUNT source_24
138302 , l1.POD_CCID source_28
138303 , l1.PO_VARIANCE_ACCOUNT source_29
138304 , l1.APHD_PAY_DIST_LOOKUP_CODE source_39
138305 , fvl39.meaning source_39_meaning
138306 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
138307 , l1.APHD_AMOUNT source_41
138308 , l1.BUS_FLOW_AP_APP_ID source_42
138309 , l1.BUS_FLOW_PAYMENT_DIST_TYPE source_43
138310 , l1.BUS_FLOW_PAYMENT_ENTITY_CODE source_44
138311 , l1.BUS_FLOW_PAYMENT_DIST_ID source_45
138312 , l1.BUS_FLOW_PAYMENT_ID source_46
138313 , l1.APHD_PAYMENT_HIST_DIST_ID source_47
138314 , l1.DISTRIBUTION_LINK_TYPE source_48
138315 , l3.POH_RATE_DATE source_50
138316 , l3.POH_RATE source_51
138317 , l3.POH_RATE_TYPE source_52
138318 , l1.OVERRIDE_ACCTD_AMT_FLAG source_53
138319 , fvl53.meaning source_53_meaning
138320 , l1.APHD_REV_PAY_HIST_DIST_ID source_57
138321 , l5.TAX_LINE_ID source_58
138322 , l5.SUMMARY_TAX_LINE_ID source_59
138323 , l1.BUS_FLOW_INV_DIST_TYPE source_62
138324 , l1.BUS_FLOW_INV_ENTITY_CODE source_63
138325 , l1.BUS_FLOW_INV_DIST_ID source_64
138326 , l1.BUS_FLOW_INV_ID source_65
138327 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_100
138328 , fvl100.meaning source_100_meaning
138329 , l1.AI_INVOICE_TYPE_PAID source_101
138330 , fvl101.meaning source_101_meaning
138331 , l1.APHD_INV_BASE_AMT_VARIANCE source_103
138335 , l1.APHD_INVOICE_BASE_AMT source_112
138332 , l1.AID_ENCUMBERED_FLAG source_104
138333 , fvl104.meaning source_104_meaning
138334 , l1.APHD_AMOUNT_VARIANCE source_105
138336 , l1.INV_CLR_BASE_AMT_DIFF source_127
138337 , l1.MAT_CLR_GAIN_LOSS_INDICATOR source_129
138338 , l1.MAT_CLR_BASE_AMT_DIFF source_130
138339 , l1.PMT_CLR_GAIN_LOSS_INDICATOR source_131
138340 , l1.PMT_CLR_BASE_AMT_DIFF source_132
138341 , l1.APHD_INV_BASE_QTY_VARIANCE source_142
138342 , l1.APHD_QUANTITY_VARIANCE source_143
138343 , l1.BF_RETAINED_INV_DIST_ID_CLR source_147
138344 , l1.BF_RETAINED_INV_ID_CLR source_148
138345 , l1.AWT_AT_PMT_TIME source_151
138346 , fvl151.meaning source_151_meaning
138347 FROM xla_events_gt xet
138348 , AP_PAYMENT_EXTRACT_DETAILS_V l1
138349 , AP_PO_HEADERS_EXTRACT_V l3
138350 , ZX_AP_DEF_TAX_EXTRACT_V l5
138351 , fnd_lookup_values fvl7
138352 , fnd_lookup_values fvl20
138353 , fnd_lookup_values fvl39
138354 , fnd_lookup_values fvl53
138355 , fnd_lookup_values fvl100
138356 , fnd_lookup_values fvl101
138357 , fnd_lookup_values fvl104
138358 , fnd_lookup_values fvl151
138359 WHERE xet.event_id between x_first_event_id and x_last_event_id
138360 and xet.event_date between p_pad_start_date and p_pad_end_date
138361 and xet.event_class_code = C_EVENT_CLASS_CODE
138362 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
138363 AND l1.POD_PO_Header_Id = l3.PO_Header_Id (+) AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
138364 AND fvl7.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
138365 AND fvl7.view_application_id(+) = 201
138366 AND fvl7.language(+) = USERENV('LANG')
138367 AND fvl20.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
138368 AND fvl20.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
138369 AND fvl20.view_application_id(+) = 200
138370 AND fvl20.language(+) = USERENV('LANG')
138371 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
138372 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
138373 AND fvl39.view_application_id(+) = 200
138374 AND fvl39.language(+) = USERENV('LANG')
138375 AND fvl53.lookup_type(+) = 'YES_NO'
138376 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
138377 AND fvl53.view_application_id(+) = 0
138378 AND fvl53.language(+) = USERENV('LANG')
138379 AND fvl100.lookup_type(+) = 'YES_NO'
138380 AND fvl100.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
138381 AND fvl100.view_application_id(+) = 0
138382 AND fvl100.language(+) = USERENV('LANG')
138383 AND fvl101.lookup_type(+) = 'INVOICE TYPE'
138384 AND fvl101.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
138385 AND fvl101.view_application_id(+) = 200
138386 AND fvl101.language(+) = USERENV('LANG')
138387 AND fvl104.lookup_type(+) = 'YES_NO'
138388 AND fvl104.lookup_code(+) = l1.AID_ENCUMBERED_FLAG
138389 AND fvl104.view_application_id(+) = 0
138390 AND fvl104.language(+) = USERENV('LANG')
138391 AND fvl151.lookup_type(+) = 'YES_NO'
138392 AND fvl151.lookup_code(+) = l1.AWT_AT_PMT_TIME
138393 AND fvl151.view_application_id(+) = 0
138394 AND fvl151.language(+) = USERENV('LANG')
138395 ;
138396
138397 --
138398 BEGIN
138399 IF g_log_enabled THEN
138400 l_log_module := C_DEFAULT_MODULE||'.EventClass_214';
138401 END IF;
138402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138403 trace
138404 (p_msg => 'BEGIN of EventClass_214'
138405 ,p_level => C_LEVEL_PROCEDURE
138406 ,p_module => l_log_module);
138407 END IF;
138408
138409 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138410 trace
138411 (p_msg => 'p_application_id = '||p_application_id||
138412 ' - p_base_ledger_id = '||p_base_ledger_id||
138413 ' - p_target_ledger_id = '||p_target_ledger_id||
138414 ' - p_language = '||p_language||
138415 ' - p_currency_code = '||p_currency_code||
138416 ' - p_sla_ledger_id = '||p_sla_ledger_id
138417 ,p_level => C_LEVEL_STATEMENT
138418 ,p_module => l_log_module);
138419 END IF;
138420 --
138421 -- initialze arrays
138422 --
138423 g_array_event.DELETE;
138424 l_rec_array_event := l_null_rec_array_event;
138425 --
138426 --------------------------------------
138427 -- 4262811 Initialze MPA Line Number
138428 --------------------------------------
138429 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
138430
138431 --
138432
138433 --
138434 OPEN header_cur;
138435 --
138436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138437 trace
138438 (p_msg => 'SQL - FETCH header_cur'
138439 ,p_level => C_LEVEL_STATEMENT
138440 ,p_module => l_log_module);
138441 END IF;
138442 --
138443 LOOP
138444 FETCH header_cur BULK COLLECT INTO
138445 l_array_entity_id
138446 , l_array_legal_entity_id
138447 , l_array_entity_code
138448 , l_array_transaction_num
138449 , l_array_event_id
138450 , l_array_class_code
138451 , l_array_event_type
138452 , l_array_event_number
138453 , l_array_event_date
138454 , l_array_transaction_date
138455 , l_array_reference_num_1
138456 , l_array_reference_num_2
138457 , l_array_reference_num_3
138458 , l_array_reference_num_4
138459 , l_array_reference_char_1
138460 , l_array_reference_char_2
138461 , l_array_reference_char_3
138462 , l_array_reference_char_4
138463 , l_array_reference_date_1
138464 , l_array_reference_date_2
138465 , l_array_reference_date_3
138466 , l_array_reference_date_4
138467 , l_array_event_created_by
138471 , l_array_source_3
138468 , l_array_budgetary_control_flag
138469 , l_array_source_1
138470 , l_array_source_2
138472 , l_array_source_3_meaning
138473 , l_array_source_4
138474 , l_array_source_4_meaning
138475 , l_array_source_5
138476 , l_array_source_8
138477 , l_array_source_15
138478 , l_array_source_16
138479 , l_array_source_22
138480 , l_array_source_25
138481 , l_array_source_26
138482 , l_array_source_27
138483 , l_array_source_30
138484 , l_array_source_30_meaning
138485 , l_array_source_32
138486 , l_array_source_33
138487 , l_array_source_34
138488 , l_array_source_35
138489 , l_array_source_37
138490 , l_array_source_38
138491 , l_array_source_49
138492 , l_array_source_54
138493 , l_array_source_55
138494 , l_array_source_56
138495 , l_array_source_60
138496 , l_array_source_60_meaning
138497 , l_array_source_102
138498 , l_array_source_102_meaning
138499 , l_array_source_106
138500 , l_array_source_107
138501 , l_array_source_108
138502 , l_array_source_109
138503 , l_array_source_110
138504 , l_array_source_110_meaning
138505 , l_array_source_111
138506 , l_array_source_114
138507 , l_array_source_115
138508 , l_array_source_116
138509 , l_array_source_158
138510 , l_array_source_159
138511 , l_array_source_160
138512 LIMIT l_rows;
138513 --
138514 IF (C_LEVEL_EVENT >= g_log_level) THEN
138515 trace
138516 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
138517 ,p_level => C_LEVEL_EVENT
138518 ,p_module => l_log_module);
138519 END IF;
138520 --
138521 EXIT WHEN l_array_entity_id.COUNT = 0;
138522
138523 -- initialize arrays
138524 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
138525 XLA_AE_LINES_PKG.g_rec_lines := NULL;
138526
138527 --
138528 -- Bug 4458708
138529 --
138530 XLA_AE_LINES_PKG.g_LineNumber := 0;
138531
138532
138533 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
138534 g_last_hdr_idx := l_array_event_id.LAST;
138535 --
138536 -- loop for the headers. Each iteration is for each header extract row
138537 -- fetched in header cursor
138538 --
138539 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
138540
138541 --
138542 -- set event info as cache for other routines to refer event attributes
138543 --
138544 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
138545 (p_application_id => p_application_id
138546 ,p_primary_ledger_id => p_primary_ledger_id
138547 ,p_base_ledger_id => p_base_ledger_id
138548 ,p_target_ledger_id => p_target_ledger_id
138549 ,p_entity_id => l_array_entity_id(hdr_idx)
138550 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
138551 ,p_entity_code => l_array_entity_code(hdr_idx)
138552 ,p_transaction_num => l_array_transaction_num(hdr_idx)
138553 ,p_event_id => l_array_event_id(hdr_idx)
138554 ,p_event_class_code => l_array_class_code(hdr_idx)
138555 ,p_event_type_code => l_array_event_type(hdr_idx)
138556 ,p_event_number => l_array_event_number(hdr_idx)
138557 ,p_event_date => l_array_event_date(hdr_idx)
138558 ,p_transaction_date => l_array_transaction_date(hdr_idx)
138559 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
138560 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
138561 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
138562 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
138563 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
138564 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
138565 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
138566 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
138567 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
138568 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
138569 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
138570 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
138571 ,p_event_created_by => l_array_event_created_by(hdr_idx)
138572 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
138573
138574 --
138575 -- set the status of entry to C_VALID (0)
138576 --
138577 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
138578
138579 --
138580 -- initialize a row for ae header
138581 --
138582 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
138583
138584 l_event_id := l_array_event_id(hdr_idx);
138585
138586 --
138587 -- storing the hdr_idx for event. May be used by line cursor.
138588 --
138589 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
138590
138591 --
138592 -- store sources from header extract. This can be improved to
138593 -- store only those sources from header extract that may be used in lines
138594 --
138595
138596 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
138597 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
138598 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
138599 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
138600 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
138601 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
138602 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
138606 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
138603 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
138604 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
138605 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
138607 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
138608 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
138609 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
138610 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
138611 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
138612 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
138613 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
138614 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
138615 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
138616 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
138617 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
138618 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
138619 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
138620 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
138621 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
138622 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
138623 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
138624 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
138625 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
138626 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
138627 g_array_event(l_event_id).array_value_date('source_107') := l_array_source_107(hdr_idx);
138628 g_array_event(l_event_id).array_value_num('source_108') := l_array_source_108(hdr_idx);
138629 g_array_event(l_event_id).array_value_char('source_109') := l_array_source_109(hdr_idx);
138630 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
138631 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
138632 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
138633 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
138634 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
138635 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
138636 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
138637 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
138638 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
138639
138640 --
138641 -- initilaize the status of ae headers for diffrent balance types
138642 -- the status is initialised to C_NOT_CREATED (2)
138643 --
138644 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
138645 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
138646 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
138647
138648 --
138649 -- call api to validate and store accounting attributes for header
138650 --
138651
138652 ------------------------------------------------------------
138653 -- Accrual Reversal : to get date for Standard Source (NONE)
138654 ------------------------------------------------------------
138655 l_acc_rev_gl_date_source := NULL;
138656
138657 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
138658 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
138659 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
138660 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
138661 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
138662 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
138663 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
138664 l_rec_acct_attrs.array_date_value(4) :=
138665 xla_ae_sources_pkg.GetSystemSourceDate(
138666 p_source_code => 'XLA_EVENT_DATE'
138667 , p_source_type_code => 'Y'
138668 , p_source_application_id => 602
138669 );
138670
138671
138672 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
138673
138674 XLA_AE_HEADER_PKG.SetJeCategoryName;
138675
138676 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
138677 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
138678 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
138679 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
138680 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
138681
138682
138683 -- No header level analytical criteria
138684
138685 --
138686 --accounting attribute enhancement, bug 3612931
138687 --
138688 l_trx_reversal_source := SUBSTR(NULL, 1,30);
138689
138690 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
138691 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
138692
138693 xla_accounting_err_pkg.build_message
138694 (p_appli_s_name => 'XLA'
138695 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
138699 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
138696 ,p_token_1 => 'ACCT_ATTR_NAME'
138697 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
138698 ,p_token_2 => 'PRODUCT_NAME'
138700 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
138701 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
138702 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
138703
138704 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
138705 --
138706 -- following sets the accounting attributes needed to reverse
138707 -- accounting for a distributeion
138708 --
138709 xla_ae_lines_pkg.SetTrxReversalAttrs
138710 (p_event_id => l_event_id
138711 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
138712 ,p_trx_reversal_source => l_trx_reversal_source);
138713
138714 END IF;
138715
138716
138717 ----------------------------------------------------------------
138718 -- 4262811 - update the header statuses to invalid in need be
138719 ----------------------------------------------------------------
138720 --
138721 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
138722
138723
138724 -----------------------------------------------
138725 -- No accrual reversal for the event class/type
138726 -----------------------------------------------
138727 ----------------------------------------------------------------
138728
138729 --
138730 -- this ends the header loop iteration for one bulk fetch
138731 --
138732 END LOOP;
138733
138734 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
138735 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
138736
138737 --
138738 -- insert dummy rows into lines gt table that were created due to
138739 -- transaction reversals
138740 --
138741 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
138742 l_result := XLA_AE_LINES_PKG.InsertLines;
138743 END IF;
138744
138745 --
138746 -- reset the temp_line_num for each set of events fetched from header
138747 -- cursor rather than doing it for each new event in line cursor
138748 -- Bug 3939231
138749 --
138750 xla_ae_lines_pkg.g_temp_line_num := 0;
138751
138752
138753
138754 --
138755 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
138756 --
138757 --
138758 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138759
138760 trace
138761 (p_msg => 'SQL - FETCH line_cur'
138762 ,p_level => C_LEVEL_STATEMENT
138763 ,p_module => l_log_module);
138764
138765 END IF;
138766 --
138767 --
138768 LOOP
138769 --
138770 FETCH line_cur BULK COLLECT INTO
138771 l_array_entity_id
138772 , l_array_legal_entity_id
138773 , l_array_entity_code
138774 , l_array_transaction_num
138775 , l_array_event_id
138776 , l_array_class_code
138777 , l_array_event_type
138778 , l_array_event_number
138779 , l_array_event_date
138780 , l_array_transaction_date
138781 , l_array_reference_num_1
138782 , l_array_reference_num_2
138783 , l_array_reference_num_3
138784 , l_array_reference_num_4
138785 , l_array_reference_char_1
138786 , l_array_reference_char_2
138787 , l_array_reference_char_3
138788 , l_array_reference_char_4
138789 , l_array_reference_date_1
138790 , l_array_reference_date_2
138791 , l_array_reference_date_3
138792 , l_array_reference_date_4
138793 , l_array_event_created_by
138794 , l_array_budgetary_control_flag
138795 , l_array_extract_line_num
138796 , l_array_source_7
138797 , l_array_source_7_meaning
138798 , l_array_source_9
138799 , l_array_source_10
138800 , l_array_source_17
138801 , l_array_source_20
138802 , l_array_source_20_meaning
138803 , l_array_source_23
138804 , l_array_source_24
138805 , l_array_source_28
138806 , l_array_source_29
138807 , l_array_source_39
138808 , l_array_source_39_meaning
138809 , l_array_source_40
138810 , l_array_source_41
138811 , l_array_source_42
138812 , l_array_source_43
138813 , l_array_source_44
138814 , l_array_source_45
138815 , l_array_source_46
138816 , l_array_source_47
138817 , l_array_source_48
138818 , l_array_source_50
138819 , l_array_source_51
138820 , l_array_source_52
138821 , l_array_source_53
138822 , l_array_source_53_meaning
138823 , l_array_source_57
138824 , l_array_source_58
138825 , l_array_source_59
138826 , l_array_source_62
138827 , l_array_source_63
138828 , l_array_source_64
138829 , l_array_source_65
138830 , l_array_source_100
138831 , l_array_source_100_meaning
138832 , l_array_source_101
138833 , l_array_source_101_meaning
138834 , l_array_source_103
138835 , l_array_source_104
138836 , l_array_source_104_meaning
138837 , l_array_source_105
138838 , l_array_source_112
138839 , l_array_source_127
138840 , l_array_source_129
138841 , l_array_source_130
138842 , l_array_source_131
138843 , l_array_source_132
138844 , l_array_source_142
138845 , l_array_source_143
138846 , l_array_source_147
138847 , l_array_source_148
138848 , l_array_source_151
138849 , l_array_source_151_meaning
138850 LIMIT l_rows;
138851
138852 --
138853 IF (C_LEVEL_EVENT >= g_log_level) THEN
138857 ,p_module => l_log_module);
138854 trace
138855 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
138856 ,p_level => C_LEVEL_EVENT
138858 END IF;
138859 --
138860 EXIT WHEN l_array_entity_id.count = 0;
138861
138862 XLA_AE_LINES_PKG.g_rec_lines := null;
138863
138864 --
138865 -- Bug 4458708
138866 --
138867 XLA_AE_LINES_PKG.g_LineNumber := 0;
138868 --
138869 --
138870
138871 FOR Idx IN 1..l_array_event_id.count LOOP
138872 --
138873 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
138874 --
138875 l_event_id := l_array_event_id(idx); -- 5648433
138876
138877 --
138878 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
138879 --
138880
138881 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
138882 (g_array_event(l_event_id).array_value_num('header_index'))
138883 ,'N'
138884 ) <> 'Y'
138885 THEN
138886 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138887 trace
138888 (p_msg => 'Trancaction revesal option is not Y '
138889 ,p_level => C_LEVEL_STATEMENT
138890 ,p_module => l_log_module);
138891 END IF;
138892
138893 --
138894 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
138895 --
138896 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
138897 --
138898 -- set event info as cache for other routines to refer event attributes
138899 --
138900
138901 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
138902 l_previous_event_id := l_event_id;
138903
138904 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
138905 (p_application_id => p_application_id
138906 ,p_primary_ledger_id => p_primary_ledger_id
138907 ,p_base_ledger_id => p_base_ledger_id
138908 ,p_target_ledger_id => p_target_ledger_id
138909 ,p_entity_id => l_array_entity_id(Idx)
138910 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
138911 ,p_entity_code => l_array_entity_code(Idx)
138912 ,p_transaction_num => l_array_transaction_num(Idx)
138913 ,p_event_id => l_array_event_id(Idx)
138914 ,p_event_class_code => l_array_class_code(Idx)
138915 ,p_event_type_code => l_array_event_type(Idx)
138916 ,p_event_number => l_array_event_number(Idx)
138917 ,p_event_date => l_array_event_date(Idx)
138918 ,p_transaction_date => l_array_transaction_date(Idx)
138919 ,p_reference_num_1 => l_array_reference_num_1(Idx)
138920 ,p_reference_num_2 => l_array_reference_num_2(Idx)
138921 ,p_reference_num_3 => l_array_reference_num_3(Idx)
138922 ,p_reference_num_4 => l_array_reference_num_4(Idx)
138923 ,p_reference_char_1 => l_array_reference_char_1(Idx)
138924 ,p_reference_char_2 => l_array_reference_char_2(Idx)
138925 ,p_reference_char_3 => l_array_reference_char_3(Idx)
138926 ,p_reference_char_4 => l_array_reference_char_4(Idx)
138927 ,p_reference_date_1 => l_array_reference_date_1(Idx)
138928 ,p_reference_date_2 => l_array_reference_date_2(Idx)
138929 ,p_reference_date_3 => l_array_reference_date_3(Idx)
138930 ,p_reference_date_4 => l_array_reference_date_4(Idx)
138931 ,p_event_created_by => l_array_event_created_by(Idx)
138932 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
138933 --
138934 END IF;
138935
138936
138937
138938 --
138939 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
138940
138941 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
138942
138943 IF l_continue_with_lines THEN
138944 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
138945 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
138946
138947 xla_accounting_err_pkg.build_message
138948 (p_appli_s_name => 'XLA'
138949 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
138950 ,p_token_1 => 'LINE_NUMBER'
138951 ,p_value_1 => l_array_extract_line_num(Idx)
138952 ,p_token_2 => 'PRODUCT_NAME'
138953 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
138954 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
138955 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
138956 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
138957
138958 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
138959 --
138960 -- following sets the accounting attributes needed to reverse
138961 -- accounting for a distributeion
138962 --
138963
138964 --
138965 -- 5217187
138966 --
138967 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
138968 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
138969 g_array_event(l_event_id).array_value_num('header_index'));
138970 --
138971 --
138972
138973 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
138974 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
138975 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
138976 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_47(Idx);
138977 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
138978 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
138982 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_57(Idx);
138979 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
138980 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_56');
138981 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
138983 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
138984 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_48(Idx);
138985 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
138986 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_58(Idx);
138987 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
138988 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_58(Idx);
138989 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
138990 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_59(Idx);
138991
138992
138993 xla_ae_lines_pkg.SetAcctReversalAttrs
138994 (p_event_id => l_event_id
138995 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
138996 ,p_calculate_acctd_flag => l_calculate_acctd_flag
138997 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
138998 END IF;
138999
139000 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
139001 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
139002
139003 --
139004 AcctLineType_38 (
139005 p_application_id => p_application_id
139006 ,p_event_id => l_event_id
139007 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139008 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139009 ,p_actual_flag => l_actual_flag
139010 ,p_balance_type_code => l_balance_type_code
139011 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139012
139013 , p_source_10 => l_array_source_10(Idx)
139014 , p_source_20 => l_array_source_20(Idx)
139015 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139016 , p_source_28 => l_array_source_28(Idx)
139017 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139018 , p_source_39 => l_array_source_39(Idx)
139019 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139020 , p_source_40 => l_array_source_40(Idx)
139021 , p_source_41 => l_array_source_41(Idx)
139022 , p_source_42 => l_array_source_42(Idx)
139023 , p_source_43 => l_array_source_43(Idx)
139024 , p_source_44 => l_array_source_44(Idx)
139025 , p_source_45 => l_array_source_45(Idx)
139026 , p_source_46 => l_array_source_46(Idx)
139027 , p_source_47 => l_array_source_47(Idx)
139028 , p_source_48 => l_array_source_48(Idx)
139029 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139030 , p_source_50 => l_array_source_50(Idx)
139031 , p_source_51 => l_array_source_51(Idx)
139032 , p_source_52 => l_array_source_52(Idx)
139033 , p_source_53 => l_array_source_53(Idx)
139034 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139035 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139036 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139037 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139038 , p_source_57 => l_array_source_57(Idx)
139039 , p_source_58 => l_array_source_58(Idx)
139040 , p_source_59 => l_array_source_59(Idx)
139041 );
139042 If(l_balance_type_code = 'A') THEN
139043 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139044 END IF;
139045
139046 --
139047
139048
139049 --
139050 AcctLineType_43 (
139051 p_application_id => p_application_id
139052 ,p_event_id => l_event_id
139053 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139054 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139055 ,p_actual_flag => l_actual_flag
139056 ,p_balance_type_code => l_balance_type_code
139057 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139058
139059 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139060 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139061 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
139062 , p_source_7 => l_array_source_7(Idx)
139063 , p_source_7_meaning => l_array_source_7_meaning(Idx)
139064 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
139065 , p_source_9 => l_array_source_9(Idx)
139066 , p_source_10 => l_array_source_10(Idx)
139067 , p_source_17 => l_array_source_17(Idx)
139068 , p_source_20 => l_array_source_20(Idx)
139069 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139070 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139071 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139072 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139073 , p_source_39 => l_array_source_39(Idx)
139074 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139075 , p_source_40 => l_array_source_40(Idx)
139076 , p_source_41 => l_array_source_41(Idx)
139077 , p_source_42 => l_array_source_42(Idx)
139078 , p_source_43 => l_array_source_43(Idx)
139079 , p_source_44 => l_array_source_44(Idx)
139080 , p_source_45 => l_array_source_45(Idx)
139081 , p_source_46 => l_array_source_46(Idx)
139082 , p_source_47 => l_array_source_47(Idx)
139083 , p_source_48 => l_array_source_48(Idx)
139084 , p_source_53 => l_array_source_53(Idx)
139085 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139086 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139087 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139088 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139089 , p_source_57 => l_array_source_57(Idx)
139090 , p_source_58 => l_array_source_58(Idx)
139091 , p_source_59 => l_array_source_59(Idx)
139092 );
139093 If(l_balance_type_code = 'A') THEN
139094 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139095 END IF;
139096
139097 --
139098
139099
139100 --
139101 AcctLineType_47 (
139105 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139102 p_application_id => p_application_id
139103 ,p_event_id => l_event_id
139104 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139106 ,p_actual_flag => l_actual_flag
139107 ,p_balance_type_code => l_balance_type_code
139108 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139109
139110 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139111 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139112 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
139113 , p_source_7 => l_array_source_7(Idx)
139114 , p_source_7_meaning => l_array_source_7_meaning(Idx)
139115 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
139116 , p_source_9 => l_array_source_9(Idx)
139117 , p_source_10 => l_array_source_10(Idx)
139118 , p_source_17 => l_array_source_17(Idx)
139119 , p_source_20 => l_array_source_20(Idx)
139120 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139121 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139122 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139123 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139124 , p_source_39 => l_array_source_39(Idx)
139125 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139126 , p_source_40 => l_array_source_40(Idx)
139127 , p_source_41 => l_array_source_41(Idx)
139128 , p_source_42 => l_array_source_42(Idx)
139129 , p_source_43 => l_array_source_43(Idx)
139130 , p_source_44 => l_array_source_44(Idx)
139131 , p_source_45 => l_array_source_45(Idx)
139132 , p_source_46 => l_array_source_46(Idx)
139133 , p_source_47 => l_array_source_47(Idx)
139134 , p_source_48 => l_array_source_48(Idx)
139135 , p_source_53 => l_array_source_53(Idx)
139136 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139137 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139138 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139139 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139140 , p_source_57 => l_array_source_57(Idx)
139141 , p_source_58 => l_array_source_58(Idx)
139142 , p_source_59 => l_array_source_59(Idx)
139143 , p_source_100 => l_array_source_100(Idx)
139144 , p_source_100_meaning => l_array_source_100_meaning(Idx)
139145 );
139146 If(l_balance_type_code = 'A') THEN
139147 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139148 END IF;
139149
139150 --
139151
139152
139153 --
139154 AcctLineType_51 (
139155 p_application_id => p_application_id
139156 ,p_event_id => l_event_id
139157 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139158 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139159 ,p_actual_flag => l_actual_flag
139160 ,p_balance_type_code => l_balance_type_code
139161 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139162
139163 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139164 , p_source_39 => l_array_source_39(Idx)
139165 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139166 , p_source_40 => l_array_source_40(Idx)
139167 , p_source_41 => l_array_source_41(Idx)
139168 , p_source_42 => l_array_source_42(Idx)
139169 , p_source_47 => l_array_source_47(Idx)
139170 , p_source_48 => l_array_source_48(Idx)
139171 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139172 , p_source_53 => l_array_source_53(Idx)
139173 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139174 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139175 , p_source_57 => l_array_source_57(Idx)
139176 , p_source_58 => l_array_source_58(Idx)
139177 , p_source_59 => l_array_source_59(Idx)
139178 , p_source_62 => l_array_source_62(Idx)
139179 , p_source_63 => l_array_source_63(Idx)
139180 , p_source_64 => l_array_source_64(Idx)
139181 , p_source_65 => l_array_source_65(Idx)
139182 , p_source_100 => l_array_source_100(Idx)
139183 , p_source_100_meaning => l_array_source_100_meaning(Idx)
139184 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
139185 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
139186 , p_source_103 => l_array_source_103(Idx)
139187 , p_source_104 => l_array_source_104(Idx)
139188 , p_source_104_meaning => l_array_source_104_meaning(Idx)
139189 , p_source_105 => l_array_source_105(Idx)
139190 );
139191 If(l_balance_type_code = 'A') THEN
139192 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139193 END IF;
139194
139195 --
139196
139197
139198 --
139199 AcctLineType_53 (
139200 p_application_id => p_application_id
139201 ,p_event_id => l_event_id
139202 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139203 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139204 ,p_actual_flag => l_actual_flag
139205 ,p_balance_type_code => l_balance_type_code
139206 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139207
139208 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139209 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139210 , p_source_10 => l_array_source_10(Idx)
139211 , p_source_17 => l_array_source_17(Idx)
139212 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
139213 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139214 , p_source_39 => l_array_source_39(Idx)
139215 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139216 , p_source_40 => l_array_source_40(Idx)
139217 , p_source_41 => l_array_source_41(Idx)
139218 , p_source_42 => l_array_source_42(Idx)
139219 , p_source_43 => l_array_source_43(Idx)
139220 , p_source_44 => l_array_source_44(Idx)
139221 , p_source_45 => l_array_source_45(Idx)
139222 , p_source_46 => l_array_source_46(Idx)
139223 , p_source_47 => l_array_source_47(Idx)
139224 , p_source_48 => l_array_source_48(Idx)
139225 , p_source_53 => l_array_source_53(Idx)
139229 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139226 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139227 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139228 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139230 , p_source_57 => l_array_source_57(Idx)
139231 , p_source_58 => l_array_source_58(Idx)
139232 , p_source_59 => l_array_source_59(Idx)
139233 , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
139234 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139235 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139236 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139237 );
139238 If(l_balance_type_code = 'A') THEN
139239 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139240 END IF;
139241
139242 --
139243
139244
139245 --
139246 AcctLineType_54 (
139247 p_application_id => p_application_id
139248 ,p_event_id => l_event_id
139249 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139250 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139251 ,p_actual_flag => l_actual_flag
139252 ,p_balance_type_code => l_balance_type_code
139253 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139254
139255 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139256 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139257 , p_source_10 => l_array_source_10(Idx)
139258 , p_source_17 => l_array_source_17(Idx)
139259 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
139260 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139261 , p_source_39 => l_array_source_39(Idx)
139262 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139263 , p_source_40 => l_array_source_40(Idx)
139264 , p_source_41 => l_array_source_41(Idx)
139265 , p_source_42 => l_array_source_42(Idx)
139266 , p_source_43 => l_array_source_43(Idx)
139267 , p_source_44 => l_array_source_44(Idx)
139268 , p_source_45 => l_array_source_45(Idx)
139269 , p_source_46 => l_array_source_46(Idx)
139270 , p_source_47 => l_array_source_47(Idx)
139271 , p_source_48 => l_array_source_48(Idx)
139272 , p_source_53 => l_array_source_53(Idx)
139273 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139274 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139275 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139276 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139277 , p_source_57 => l_array_source_57(Idx)
139278 , p_source_58 => l_array_source_58(Idx)
139279 , p_source_59 => l_array_source_59(Idx)
139280 , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
139281 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139282 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139283 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139284 );
139285 If(l_balance_type_code = 'A') THEN
139286 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139287 END IF;
139288
139289 --
139290
139291
139292 --
139293 AcctLineType_55 (
139294 p_application_id => p_application_id
139295 ,p_event_id => l_event_id
139296 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139297 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139298 ,p_actual_flag => l_actual_flag
139299 ,p_balance_type_code => l_balance_type_code
139300 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139301
139302 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
139303 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139304 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139305 , p_source_10 => l_array_source_10(Idx)
139306 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139307 , p_source_39 => l_array_source_39(Idx)
139308 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139309 , p_source_40 => l_array_source_40(Idx)
139310 , p_source_41 => l_array_source_41(Idx)
139311 , p_source_42 => l_array_source_42(Idx)
139312 , p_source_43 => l_array_source_43(Idx)
139313 , p_source_44 => l_array_source_44(Idx)
139314 , p_source_45 => l_array_source_45(Idx)
139315 , p_source_46 => l_array_source_46(Idx)
139316 , p_source_47 => l_array_source_47(Idx)
139317 , p_source_48 => l_array_source_48(Idx)
139318 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139319 , p_source_53 => l_array_source_53(Idx)
139320 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139321 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139322 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139323 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139324 , p_source_57 => l_array_source_57(Idx)
139325 , p_source_58 => l_array_source_58(Idx)
139326 , p_source_59 => l_array_source_59(Idx)
139327 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139328 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139329 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139330 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
139331 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
139332 );
139333 If(l_balance_type_code = 'A') THEN
139334 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139335 END IF;
139336
139337 --
139338
139339
139340 --
139341 AcctLineType_56 (
139342 p_application_id => p_application_id
139343 ,p_event_id => l_event_id
139344 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139345 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139346 ,p_actual_flag => l_actual_flag
139347 ,p_balance_type_code => l_balance_type_code
139348 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139349
139353 , p_source_10 => l_array_source_10(Idx)
139350 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
139351 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139352 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139354 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139355 , p_source_39 => l_array_source_39(Idx)
139356 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139357 , p_source_40 => l_array_source_40(Idx)
139358 , p_source_41 => l_array_source_41(Idx)
139359 , p_source_42 => l_array_source_42(Idx)
139360 , p_source_43 => l_array_source_43(Idx)
139361 , p_source_44 => l_array_source_44(Idx)
139362 , p_source_45 => l_array_source_45(Idx)
139363 , p_source_46 => l_array_source_46(Idx)
139364 , p_source_47 => l_array_source_47(Idx)
139365 , p_source_48 => l_array_source_48(Idx)
139366 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139367 , p_source_53 => l_array_source_53(Idx)
139368 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139369 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139370 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139371 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139372 , p_source_57 => l_array_source_57(Idx)
139373 , p_source_58 => l_array_source_58(Idx)
139374 , p_source_59 => l_array_source_59(Idx)
139375 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139376 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139377 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139378 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
139379 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
139380 );
139381 If(l_balance_type_code = 'A') THEN
139382 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139383 END IF;
139384
139385 --
139386
139387
139388 --
139389 AcctLineType_57 (
139390 p_application_id => p_application_id
139391 ,p_event_id => l_event_id
139392 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139393 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139394 ,p_actual_flag => l_actual_flag
139395 ,p_balance_type_code => l_balance_type_code
139396 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139397
139398 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
139399 , p_source_10 => l_array_source_10(Idx)
139400 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139401 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139402 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139403 , p_source_39 => l_array_source_39(Idx)
139404 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139405 , p_source_40 => l_array_source_40(Idx)
139406 , p_source_41 => l_array_source_41(Idx)
139407 , p_source_42 => l_array_source_42(Idx)
139408 , p_source_43 => l_array_source_43(Idx)
139409 , p_source_44 => l_array_source_44(Idx)
139410 , p_source_45 => l_array_source_45(Idx)
139411 , p_source_46 => l_array_source_46(Idx)
139412 , p_source_47 => l_array_source_47(Idx)
139413 , p_source_48 => l_array_source_48(Idx)
139414 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139415 , p_source_53 => l_array_source_53(Idx)
139416 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139417 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139418 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139419 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139420 , p_source_57 => l_array_source_57(Idx)
139421 , p_source_58 => l_array_source_58(Idx)
139422 , p_source_59 => l_array_source_59(Idx)
139423 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139424 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139425 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139426 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
139427 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
139428 );
139429 If(l_balance_type_code = 'A') THEN
139430 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139431 END IF;
139432
139433 --
139434
139435
139436 --
139437 AcctLineType_58 (
139438 p_application_id => p_application_id
139439 ,p_event_id => l_event_id
139440 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139441 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139442 ,p_actual_flag => l_actual_flag
139443 ,p_balance_type_code => l_balance_type_code
139444 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139445
139446 , p_source_9 => l_array_source_9(Idx)
139447 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139448 , p_source_39 => l_array_source_39(Idx)
139449 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139450 , p_source_40 => l_array_source_40(Idx)
139451 , p_source_41 => l_array_source_41(Idx)
139452 , p_source_42 => l_array_source_42(Idx)
139453 , p_source_43 => l_array_source_43(Idx)
139454 , p_source_44 => l_array_source_44(Idx)
139455 , p_source_45 => l_array_source_45(Idx)
139456 , p_source_46 => l_array_source_46(Idx)
139457 , p_source_47 => l_array_source_47(Idx)
139458 , p_source_48 => l_array_source_48(Idx)
139459 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139460 , p_source_53 => l_array_source_53(Idx)
139461 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139462 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139463 , p_source_57 => l_array_source_57(Idx)
139464 , p_source_58 => l_array_source_58(Idx)
139465 , p_source_59 => l_array_source_59(Idx)
139466 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139467 );
139468 If(l_balance_type_code = 'A') THEN
139472 --
139469 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139470 END IF;
139471
139473
139474
139475 --
139476 AcctLineType_59 (
139477 p_application_id => p_application_id
139478 ,p_event_id => l_event_id
139479 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139480 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139481 ,p_actual_flag => l_actual_flag
139482 ,p_balance_type_code => l_balance_type_code
139483 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139484
139485 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139486 , p_source_39 => l_array_source_39(Idx)
139487 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139488 , p_source_40 => l_array_source_40(Idx)
139489 , p_source_41 => l_array_source_41(Idx)
139490 , p_source_42 => l_array_source_42(Idx)
139491 , p_source_43 => l_array_source_43(Idx)
139492 , p_source_44 => l_array_source_44(Idx)
139493 , p_source_45 => l_array_source_45(Idx)
139494 , p_source_46 => l_array_source_46(Idx)
139495 , p_source_47 => l_array_source_47(Idx)
139496 , p_source_48 => l_array_source_48(Idx)
139497 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139498 , p_source_53 => l_array_source_53(Idx)
139499 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139500 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139501 , p_source_57 => l_array_source_57(Idx)
139502 , p_source_58 => l_array_source_58(Idx)
139503 , p_source_59 => l_array_source_59(Idx)
139504 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139505 , p_source_112 => l_array_source_112(Idx)
139506 );
139507 If(l_balance_type_code = 'A') THEN
139508 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139509 END IF;
139510
139511 --
139512
139513
139514 --
139515 AcctLineType_78 (
139516 p_application_id => p_application_id
139517 ,p_event_id => l_event_id
139518 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139519 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139520 ,p_actual_flag => l_actual_flag
139521 ,p_balance_type_code => l_balance_type_code
139522 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139523
139524 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
139525 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
139526 , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
139527 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139528 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139529 , p_source_9 => l_array_source_9(Idx)
139530 , p_source_17 => l_array_source_17(Idx)
139531 , p_source_20 => l_array_source_20(Idx)
139532 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139533 , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
139534 , p_source_28 => l_array_source_28(Idx)
139535 , p_source_29 => l_array_source_29(Idx)
139536 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139537 , p_source_39 => l_array_source_39(Idx)
139538 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139539 , p_source_40 => l_array_source_40(Idx)
139540 , p_source_41 => l_array_source_41(Idx)
139541 , p_source_42 => l_array_source_42(Idx)
139542 , p_source_43 => l_array_source_43(Idx)
139543 , p_source_44 => l_array_source_44(Idx)
139544 , p_source_45 => l_array_source_45(Idx)
139545 , p_source_46 => l_array_source_46(Idx)
139546 , p_source_47 => l_array_source_47(Idx)
139547 , p_source_48 => l_array_source_48(Idx)
139548 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139549 , p_source_53 => l_array_source_53(Idx)
139550 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139551 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139552 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139553 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139554 , p_source_57 => l_array_source_57(Idx)
139555 , p_source_58 => l_array_source_58(Idx)
139556 , p_source_59 => l_array_source_59(Idx)
139557 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
139558 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
139559 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
139560 );
139561 If(l_balance_type_code = 'A') THEN
139562 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139563 END IF;
139564
139565 --
139566
139567
139568 --
139569 AcctLineType_81 (
139570 p_application_id => p_application_id
139571 ,p_event_id => l_event_id
139572 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139573 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139574 ,p_actual_flag => l_actual_flag
139575 ,p_balance_type_code => l_balance_type_code
139576 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139577
139578 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139579 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139580 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
139581 , p_source_7 => l_array_source_7(Idx)
139582 , p_source_7_meaning => l_array_source_7_meaning(Idx)
139583 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
139584 , p_source_9 => l_array_source_9(Idx)
139585 , p_source_10 => l_array_source_10(Idx)
139586 , p_source_17 => l_array_source_17(Idx)
139587 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139588 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139589 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139590 , p_source_39 => l_array_source_39(Idx)
139591 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139592 , p_source_40 => l_array_source_40(Idx)
139593 , p_source_41 => l_array_source_41(Idx)
139594 , p_source_42 => l_array_source_42(Idx)
139595 , p_source_43 => l_array_source_43(Idx)
139599 , p_source_47 => l_array_source_47(Idx)
139596 , p_source_44 => l_array_source_44(Idx)
139597 , p_source_45 => l_array_source_45(Idx)
139598 , p_source_46 => l_array_source_46(Idx)
139600 , p_source_48 => l_array_source_48(Idx)
139601 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139602 , p_source_53 => l_array_source_53(Idx)
139603 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139604 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139605 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139606 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139607 , p_source_57 => l_array_source_57(Idx)
139608 , p_source_58 => l_array_source_58(Idx)
139609 , p_source_59 => l_array_source_59(Idx)
139610 , p_source_100 => l_array_source_100(Idx)
139611 , p_source_100_meaning => l_array_source_100_meaning(Idx)
139612 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139613 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139614 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139615 );
139616 If(l_balance_type_code = 'A') THEN
139617 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139618 END IF;
139619
139620 --
139621
139622
139623 --
139624 AcctLineType_82 (
139625 p_application_id => p_application_id
139626 ,p_event_id => l_event_id
139627 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139628 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139629 ,p_actual_flag => l_actual_flag
139630 ,p_balance_type_code => l_balance_type_code
139631 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139632
139633 , p_source_9 => l_array_source_9(Idx)
139634 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139635 , p_source_39 => l_array_source_39(Idx)
139636 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139637 , p_source_40 => l_array_source_40(Idx)
139638 , p_source_41 => l_array_source_41(Idx)
139639 , p_source_42 => l_array_source_42(Idx)
139640 , p_source_47 => l_array_source_47(Idx)
139641 , p_source_48 => l_array_source_48(Idx)
139642 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139643 , p_source_53 => l_array_source_53(Idx)
139644 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139645 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139646 , p_source_57 => l_array_source_57(Idx)
139647 , p_source_58 => l_array_source_58(Idx)
139648 , p_source_59 => l_array_source_59(Idx)
139649 , p_source_62 => l_array_source_62(Idx)
139650 , p_source_63 => l_array_source_63(Idx)
139651 , p_source_64 => l_array_source_64(Idx)
139652 , p_source_65 => l_array_source_65(Idx)
139653 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
139654 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
139655 , p_source_104 => l_array_source_104(Idx)
139656 , p_source_104_meaning => l_array_source_104_meaning(Idx)
139657 );
139658 If(l_balance_type_code = 'A') THEN
139659 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139660 END IF;
139661
139662 --
139663
139664
139665 --
139666 AcctLineType_91 (
139667 p_application_id => p_application_id
139668 ,p_event_id => l_event_id
139669 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139670 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139671 ,p_actual_flag => l_actual_flag
139672 ,p_balance_type_code => l_balance_type_code
139673 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139674
139675 , p_source_10 => l_array_source_10(Idx)
139676 , p_source_17 => l_array_source_17(Idx)
139677 , p_source_20 => l_array_source_20(Idx)
139678 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139679 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139680 , p_source_39 => l_array_source_39(Idx)
139681 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139682 , p_source_40 => l_array_source_40(Idx)
139683 , p_source_41 => l_array_source_41(Idx)
139684 , p_source_42 => l_array_source_42(Idx)
139685 , p_source_43 => l_array_source_43(Idx)
139686 , p_source_44 => l_array_source_44(Idx)
139687 , p_source_45 => l_array_source_45(Idx)
139688 , p_source_46 => l_array_source_46(Idx)
139689 , p_source_47 => l_array_source_47(Idx)
139690 , p_source_48 => l_array_source_48(Idx)
139691 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139692 , p_source_53 => l_array_source_53(Idx)
139693 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139694 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139695 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139696 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139697 , p_source_57 => l_array_source_57(Idx)
139698 , p_source_58 => l_array_source_58(Idx)
139699 , p_source_59 => l_array_source_59(Idx)
139700 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139701 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139702 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139703 );
139704 If(l_balance_type_code = 'A') THEN
139705 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139706 END IF;
139707
139708 --
139709
139710
139711 --
139712 AcctLineType_92 (
139713 p_application_id => p_application_id
139714 ,p_event_id => l_event_id
139715 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139716 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139717 ,p_actual_flag => l_actual_flag
139718 ,p_balance_type_code => l_balance_type_code
139719 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139720
139721 , p_source_9 => l_array_source_9(Idx)
139722 , p_source_20 => l_array_source_20(Idx)
139723 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139724 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139728 , p_source_41 => l_array_source_41(Idx)
139725 , p_source_39 => l_array_source_39(Idx)
139726 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139727 , p_source_40 => l_array_source_40(Idx)
139729 , p_source_42 => l_array_source_42(Idx)
139730 , p_source_47 => l_array_source_47(Idx)
139731 , p_source_48 => l_array_source_48(Idx)
139732 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139733 , p_source_53 => l_array_source_53(Idx)
139734 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139735 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139736 , p_source_57 => l_array_source_57(Idx)
139737 , p_source_58 => l_array_source_58(Idx)
139738 , p_source_59 => l_array_source_59(Idx)
139739 , p_source_62 => l_array_source_62(Idx)
139740 , p_source_63 => l_array_source_63(Idx)
139741 , p_source_64 => l_array_source_64(Idx)
139742 , p_source_65 => l_array_source_65(Idx)
139743 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
139744 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
139745 , p_source_104 => l_array_source_104(Idx)
139746 , p_source_104_meaning => l_array_source_104_meaning(Idx)
139747 );
139748 If(l_balance_type_code = 'A') THEN
139749 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139750 END IF;
139751
139752 --
139753
139754
139755 --
139756 AcctLineType_102 (
139757 p_application_id => p_application_id
139758 ,p_event_id => l_event_id
139759 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139760 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139761 ,p_actual_flag => l_actual_flag
139762 ,p_balance_type_code => l_balance_type_code
139763 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139764
139765 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139766 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139767 , p_source_17 => l_array_source_17(Idx)
139768 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
139769 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
139770 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
139771 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
139772 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139773 , p_source_39 => l_array_source_39(Idx)
139774 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139775 , p_source_40 => l_array_source_40(Idx)
139776 , p_source_41 => l_array_source_41(Idx)
139777 , p_source_42 => l_array_source_42(Idx)
139778 , p_source_43 => l_array_source_43(Idx)
139779 , p_source_44 => l_array_source_44(Idx)
139780 , p_source_45 => l_array_source_45(Idx)
139781 , p_source_46 => l_array_source_46(Idx)
139782 , p_source_47 => l_array_source_47(Idx)
139783 , p_source_48 => l_array_source_48(Idx)
139784 , p_source_53 => l_array_source_53(Idx)
139785 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139786 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139787 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139788 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139789 , p_source_57 => l_array_source_57(Idx)
139790 , p_source_58 => l_array_source_58(Idx)
139791 , p_source_59 => l_array_source_59(Idx)
139792 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139793 , p_source_127 => l_array_source_127(Idx)
139794 );
139795 If(l_balance_type_code = 'A') THEN
139796 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139797 END IF;
139798
139799 --
139800
139801
139802 --
139803 AcctLineType_104 (
139804 p_application_id => p_application_id
139805 ,p_event_id => l_event_id
139806 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139807 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139808 ,p_actual_flag => l_actual_flag
139809 ,p_balance_type_code => l_balance_type_code
139810 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139811
139812 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139813 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139814 , p_source_17 => l_array_source_17(Idx)
139815 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
139816 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
139817 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139818 , p_source_39 => l_array_source_39(Idx)
139819 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139820 , p_source_40 => l_array_source_40(Idx)
139821 , p_source_41 => l_array_source_41(Idx)
139822 , p_source_42 => l_array_source_42(Idx)
139823 , p_source_43 => l_array_source_43(Idx)
139824 , p_source_44 => l_array_source_44(Idx)
139825 , p_source_45 => l_array_source_45(Idx)
139826 , p_source_46 => l_array_source_46(Idx)
139827 , p_source_47 => l_array_source_47(Idx)
139828 , p_source_48 => l_array_source_48(Idx)
139829 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139830 , p_source_53 => l_array_source_53(Idx)
139831 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139832 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139833 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139834 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139835 , p_source_57 => l_array_source_57(Idx)
139836 , p_source_58 => l_array_source_58(Idx)
139837 , p_source_59 => l_array_source_59(Idx)
139838 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139839 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139840 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139841 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139842 , p_source_129 => l_array_source_129(Idx)
139843 , p_source_130 => l_array_source_130(Idx)
139844 );
139845 If(l_balance_type_code = 'A') THEN
139849 --
139846 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139847 END IF;
139848
139850
139851
139852 --
139853 AcctLineType_105 (
139854 p_application_id => p_application_id
139855 ,p_event_id => l_event_id
139856 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139857 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139858 ,p_actual_flag => l_actual_flag
139859 ,p_balance_type_code => l_balance_type_code
139860 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139861
139862 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139863 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139864 , p_source_17 => l_array_source_17(Idx)
139865 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
139866 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
139867 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139868 , p_source_39 => l_array_source_39(Idx)
139869 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139870 , p_source_40 => l_array_source_40(Idx)
139871 , p_source_41 => l_array_source_41(Idx)
139872 , p_source_42 => l_array_source_42(Idx)
139873 , p_source_43 => l_array_source_43(Idx)
139874 , p_source_44 => l_array_source_44(Idx)
139875 , p_source_45 => l_array_source_45(Idx)
139876 , p_source_46 => l_array_source_46(Idx)
139877 , p_source_47 => l_array_source_47(Idx)
139878 , p_source_48 => l_array_source_48(Idx)
139879 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139880 , p_source_53 => l_array_source_53(Idx)
139881 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139882 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139883 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139884 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139885 , p_source_57 => l_array_source_57(Idx)
139886 , p_source_58 => l_array_source_58(Idx)
139887 , p_source_59 => l_array_source_59(Idx)
139888 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139889 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139890 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139891 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139892 , p_source_131 => l_array_source_131(Idx)
139893 , p_source_132 => l_array_source_132(Idx)
139894 );
139895 If(l_balance_type_code = 'A') THEN
139896 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139897 END IF;
139898
139899 --
139900
139901
139902 --
139903 AcctLineType_107 (
139904 p_application_id => p_application_id
139905 ,p_event_id => l_event_id
139906 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139907 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139908 ,p_actual_flag => l_actual_flag
139909 ,p_balance_type_code => l_balance_type_code
139910 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139911
139912 , p_source_10 => l_array_source_10(Idx)
139913 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
139914 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
139915 , p_source_17 => l_array_source_17(Idx)
139916 , p_source_20 => l_array_source_20(Idx)
139917 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139918 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139919 , p_source_39 => l_array_source_39(Idx)
139920 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139921 , p_source_40 => l_array_source_40(Idx)
139922 , p_source_41 => l_array_source_41(Idx)
139923 , p_source_42 => l_array_source_42(Idx)
139924 , p_source_43 => l_array_source_43(Idx)
139925 , p_source_44 => l_array_source_44(Idx)
139926 , p_source_45 => l_array_source_45(Idx)
139927 , p_source_46 => l_array_source_46(Idx)
139928 , p_source_47 => l_array_source_47(Idx)
139929 , p_source_48 => l_array_source_48(Idx)
139930 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139931 , p_source_53 => l_array_source_53(Idx)
139932 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139933 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139934 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139935 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139936 , p_source_57 => l_array_source_57(Idx)
139937 , p_source_58 => l_array_source_58(Idx)
139938 , p_source_59 => l_array_source_59(Idx)
139939 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
139940 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
139941 , p_source_101 => l_array_source_101(Idx)
139942 , p_source_101_meaning => l_array_source_101_meaning(Idx)
139943 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139944 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139945 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139946 );
139947 If(l_balance_type_code = 'A') THEN
139948 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139949 END IF;
139950
139951 --
139952
139953
139954 --
139955 AcctLineType_109 (
139956 p_application_id => p_application_id
139957 ,p_event_id => l_event_id
139958 ,p_calculate_acctd_flag => l_calculate_acctd_flag
139959 ,p_calculate_g_l_flag => l_calculate_g_l_flag
139960 ,p_actual_flag => l_actual_flag
139961 ,p_balance_type_code => l_balance_type_code
139962 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139963
139964 , p_source_10 => l_array_source_10(Idx)
139965 , p_source_17 => l_array_source_17(Idx)
139966 , p_source_20 => l_array_source_20(Idx)
139967 , p_source_20_meaning => l_array_source_20_meaning(Idx)
139968 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139969 , p_source_39 => l_array_source_39(Idx)
139970 , p_source_39_meaning => l_array_source_39_meaning(Idx)
139971 , p_source_40 => l_array_source_40(Idx)
139975 , p_source_44 => l_array_source_44(Idx)
139972 , p_source_41 => l_array_source_41(Idx)
139973 , p_source_42 => l_array_source_42(Idx)
139974 , p_source_43 => l_array_source_43(Idx)
139976 , p_source_45 => l_array_source_45(Idx)
139977 , p_source_46 => l_array_source_46(Idx)
139978 , p_source_47 => l_array_source_47(Idx)
139979 , p_source_48 => l_array_source_48(Idx)
139980 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139981 , p_source_53 => l_array_source_53(Idx)
139982 , p_source_53_meaning => l_array_source_53_meaning(Idx)
139983 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139984 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139985 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139986 , p_source_57 => l_array_source_57(Idx)
139987 , p_source_58 => l_array_source_58(Idx)
139988 , p_source_59 => l_array_source_59(Idx)
139989 , p_source_100 => l_array_source_100(Idx)
139990 , p_source_100_meaning => l_array_source_100_meaning(Idx)
139991 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139992 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139993 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139994 );
139995 If(l_balance_type_code = 'A') THEN
139996 l_actual_gain_loss_ref := l_gain_or_loss_ref;
139997 END IF;
139998
139999 --
140000
140001
140002 --
140003 AcctLineType_110 (
140004 p_application_id => p_application_id
140005 ,p_event_id => l_event_id
140006 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140007 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140008 ,p_actual_flag => l_actual_flag
140009 ,p_balance_type_code => l_balance_type_code
140010 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140011
140012 , p_source_9 => l_array_source_9(Idx)
140013 , p_source_20 => l_array_source_20(Idx)
140014 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140015 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140016 , p_source_39 => l_array_source_39(Idx)
140017 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140018 , p_source_40 => l_array_source_40(Idx)
140019 , p_source_41 => l_array_source_41(Idx)
140020 , p_source_42 => l_array_source_42(Idx)
140021 , p_source_47 => l_array_source_47(Idx)
140022 , p_source_48 => l_array_source_48(Idx)
140023 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140024 , p_source_53 => l_array_source_53(Idx)
140025 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140026 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140027 , p_source_57 => l_array_source_57(Idx)
140028 , p_source_58 => l_array_source_58(Idx)
140029 , p_source_59 => l_array_source_59(Idx)
140030 , p_source_62 => l_array_source_62(Idx)
140031 , p_source_63 => l_array_source_63(Idx)
140032 , p_source_64 => l_array_source_64(Idx)
140033 , p_source_65 => l_array_source_65(Idx)
140034 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140035 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140036 , p_source_104 => l_array_source_104(Idx)
140037 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140038 );
140039 If(l_balance_type_code = 'A') THEN
140040 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140041 END IF;
140042
140043 --
140044
140045
140046 --
140047 AcctLineType_117 (
140048 p_application_id => p_application_id
140049 ,p_event_id => l_event_id
140050 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140051 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140052 ,p_actual_flag => l_actual_flag
140053 ,p_balance_type_code => l_balance_type_code
140054 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140055
140056 , p_source_10 => l_array_source_10(Idx)
140057 , p_source_17 => l_array_source_17(Idx)
140058 , p_source_20 => l_array_source_20(Idx)
140059 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140060 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140061 , p_source_39 => l_array_source_39(Idx)
140062 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140063 , p_source_40 => l_array_source_40(Idx)
140064 , p_source_41 => l_array_source_41(Idx)
140065 , p_source_42 => l_array_source_42(Idx)
140066 , p_source_43 => l_array_source_43(Idx)
140067 , p_source_44 => l_array_source_44(Idx)
140068 , p_source_45 => l_array_source_45(Idx)
140069 , p_source_46 => l_array_source_46(Idx)
140070 , p_source_47 => l_array_source_47(Idx)
140071 , p_source_48 => l_array_source_48(Idx)
140072 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140073 , p_source_53 => l_array_source_53(Idx)
140074 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140075 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140076 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140077 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140078 , p_source_57 => l_array_source_57(Idx)
140079 , p_source_58 => l_array_source_58(Idx)
140080 , p_source_59 => l_array_source_59(Idx)
140081 , p_source_100 => l_array_source_100(Idx)
140082 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140083 , p_source_101 => l_array_source_101(Idx)
140084 , p_source_101_meaning => l_array_source_101_meaning(Idx)
140085 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140086 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140087 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140088 );
140089 If(l_balance_type_code = 'A') THEN
140090 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140091 END IF;
140092
140093 --
140094
140095
140096 --
140097 AcctLineType_118 (
140098 p_application_id => p_application_id
140099 ,p_event_id => l_event_id
140100 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140104 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140101 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140102 ,p_actual_flag => l_actual_flag
140103 ,p_balance_type_code => l_balance_type_code
140105
140106 , p_source_9 => l_array_source_9(Idx)
140107 , p_source_20 => l_array_source_20(Idx)
140108 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140109 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140110 , p_source_39 => l_array_source_39(Idx)
140111 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140112 , p_source_40 => l_array_source_40(Idx)
140113 , p_source_41 => l_array_source_41(Idx)
140114 , p_source_42 => l_array_source_42(Idx)
140115 , p_source_47 => l_array_source_47(Idx)
140116 , p_source_48 => l_array_source_48(Idx)
140117 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140118 , p_source_53 => l_array_source_53(Idx)
140119 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140120 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140121 , p_source_57 => l_array_source_57(Idx)
140122 , p_source_58 => l_array_source_58(Idx)
140123 , p_source_59 => l_array_source_59(Idx)
140124 , p_source_62 => l_array_source_62(Idx)
140125 , p_source_63 => l_array_source_63(Idx)
140126 , p_source_64 => l_array_source_64(Idx)
140127 , p_source_65 => l_array_source_65(Idx)
140128 , p_source_101 => l_array_source_101(Idx)
140129 , p_source_101_meaning => l_array_source_101_meaning(Idx)
140130 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140131 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140132 , p_source_104 => l_array_source_104(Idx)
140133 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140134 );
140135 If(l_balance_type_code = 'A') THEN
140136 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140137 END IF;
140138
140139 --
140140
140141
140142 --
140143 AcctLineType_125 (
140144 p_application_id => p_application_id
140145 ,p_event_id => l_event_id
140146 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140147 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140148 ,p_actual_flag => l_actual_flag
140149 ,p_balance_type_code => l_balance_type_code
140150 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140151
140152 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140153 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140154 , p_source_17 => l_array_source_17(Idx)
140155 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
140156 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
140157 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140158 , p_source_39 => l_array_source_39(Idx)
140159 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140160 , p_source_40 => l_array_source_40(Idx)
140161 , p_source_41 => l_array_source_41(Idx)
140162 , p_source_42 => l_array_source_42(Idx)
140163 , p_source_43 => l_array_source_43(Idx)
140164 , p_source_44 => l_array_source_44(Idx)
140165 , p_source_45 => l_array_source_45(Idx)
140166 , p_source_46 => l_array_source_46(Idx)
140167 , p_source_47 => l_array_source_47(Idx)
140168 , p_source_48 => l_array_source_48(Idx)
140169 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140170 , p_source_53 => l_array_source_53(Idx)
140171 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140172 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140173 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140174 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140175 , p_source_57 => l_array_source_57(Idx)
140176 , p_source_58 => l_array_source_58(Idx)
140177 , p_source_59 => l_array_source_59(Idx)
140178 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140179 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140180 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140181 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
140182 , p_source_129 => l_array_source_129(Idx)
140183 , p_source_130 => l_array_source_130(Idx)
140184 );
140185 If(l_balance_type_code = 'A') THEN
140186 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140187 END IF;
140188
140189 --
140190
140191
140192 --
140193 AcctLineType_126 (
140194 p_application_id => p_application_id
140195 ,p_event_id => l_event_id
140196 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140197 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140198 ,p_actual_flag => l_actual_flag
140199 ,p_balance_type_code => l_balance_type_code
140200 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140201
140202 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140203 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140204 , p_source_17 => l_array_source_17(Idx)
140205 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
140206 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
140207 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140208 , p_source_39 => l_array_source_39(Idx)
140209 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140210 , p_source_40 => l_array_source_40(Idx)
140211 , p_source_41 => l_array_source_41(Idx)
140212 , p_source_42 => l_array_source_42(Idx)
140213 , p_source_43 => l_array_source_43(Idx)
140214 , p_source_44 => l_array_source_44(Idx)
140215 , p_source_45 => l_array_source_45(Idx)
140216 , p_source_46 => l_array_source_46(Idx)
140217 , p_source_47 => l_array_source_47(Idx)
140218 , p_source_48 => l_array_source_48(Idx)
140219 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140220 , p_source_53 => l_array_source_53(Idx)
140221 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140222 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140226 , p_source_58 => l_array_source_58(Idx)
140223 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140224 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140225 , p_source_57 => l_array_source_57(Idx)
140227 , p_source_59 => l_array_source_59(Idx)
140228 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140229 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140230 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140231 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
140232 , p_source_131 => l_array_source_131(Idx)
140233 , p_source_132 => l_array_source_132(Idx)
140234 );
140235 If(l_balance_type_code = 'A') THEN
140236 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140237 END IF;
140238
140239 --
140240
140241
140242 --
140243 AcctLineType_128 (
140244 p_application_id => p_application_id
140245 ,p_event_id => l_event_id
140246 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140247 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140248 ,p_actual_flag => l_actual_flag
140249 ,p_balance_type_code => l_balance_type_code
140250 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140251
140252 , p_source_10 => l_array_source_10(Idx)
140253 , p_source_17 => l_array_source_17(Idx)
140254 , p_source_20 => l_array_source_20(Idx)
140255 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140256 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140257 , p_source_39 => l_array_source_39(Idx)
140258 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140259 , p_source_40 => l_array_source_40(Idx)
140260 , p_source_41 => l_array_source_41(Idx)
140261 , p_source_42 => l_array_source_42(Idx)
140262 , p_source_43 => l_array_source_43(Idx)
140263 , p_source_44 => l_array_source_44(Idx)
140264 , p_source_45 => l_array_source_45(Idx)
140265 , p_source_46 => l_array_source_46(Idx)
140266 , p_source_47 => l_array_source_47(Idx)
140267 , p_source_48 => l_array_source_48(Idx)
140268 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140269 , p_source_53 => l_array_source_53(Idx)
140270 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140271 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140272 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140273 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140274 , p_source_57 => l_array_source_57(Idx)
140275 , p_source_58 => l_array_source_58(Idx)
140276 , p_source_59 => l_array_source_59(Idx)
140277 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140278 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140279 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140280 );
140281 If(l_balance_type_code = 'A') THEN
140282 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140283 END IF;
140284
140285 --
140286
140287
140288 --
140289 AcctLineType_129 (
140290 p_application_id => p_application_id
140291 ,p_event_id => l_event_id
140292 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140293 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140294 ,p_actual_flag => l_actual_flag
140295 ,p_balance_type_code => l_balance_type_code
140296 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140297
140298 , p_source_9 => l_array_source_9(Idx)
140299 , p_source_20 => l_array_source_20(Idx)
140300 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140301 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140302 , p_source_39 => l_array_source_39(Idx)
140303 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140304 , p_source_40 => l_array_source_40(Idx)
140305 , p_source_41 => l_array_source_41(Idx)
140306 , p_source_42 => l_array_source_42(Idx)
140307 , p_source_47 => l_array_source_47(Idx)
140308 , p_source_48 => l_array_source_48(Idx)
140309 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140310 , p_source_53 => l_array_source_53(Idx)
140311 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140312 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140313 , p_source_57 => l_array_source_57(Idx)
140314 , p_source_58 => l_array_source_58(Idx)
140315 , p_source_59 => l_array_source_59(Idx)
140316 , p_source_62 => l_array_source_62(Idx)
140317 , p_source_63 => l_array_source_63(Idx)
140318 , p_source_64 => l_array_source_64(Idx)
140319 , p_source_65 => l_array_source_65(Idx)
140320 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140321 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140322 , p_source_104 => l_array_source_104(Idx)
140323 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140324 );
140325 If(l_balance_type_code = 'A') THEN
140326 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140327 END IF;
140328
140329 --
140330
140331
140332 --
140333 AcctLineType_136 (
140334 p_application_id => p_application_id
140335 ,p_event_id => l_event_id
140336 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140337 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140338 ,p_actual_flag => l_actual_flag
140339 ,p_balance_type_code => l_balance_type_code
140340 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140341
140342 , p_source_10 => l_array_source_10(Idx)
140343 , p_source_17 => l_array_source_17(Idx)
140344 , p_source_20 => l_array_source_20(Idx)
140345 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140346 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140347 , p_source_39 => l_array_source_39(Idx)
140348 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140349 , p_source_40 => l_array_source_40(Idx)
140350 , p_source_41 => l_array_source_41(Idx)
140351 , p_source_42 => l_array_source_42(Idx)
140352 , p_source_43 => l_array_source_43(Idx)
140356 , p_source_47 => l_array_source_47(Idx)
140353 , p_source_44 => l_array_source_44(Idx)
140354 , p_source_45 => l_array_source_45(Idx)
140355 , p_source_46 => l_array_source_46(Idx)
140357 , p_source_48 => l_array_source_48(Idx)
140358 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140359 , p_source_50 => l_array_source_50(Idx)
140360 , p_source_51 => l_array_source_51(Idx)
140361 , p_source_52 => l_array_source_52(Idx)
140362 , p_source_53 => l_array_source_53(Idx)
140363 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140364 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140365 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140366 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140367 , p_source_57 => l_array_source_57(Idx)
140368 , p_source_58 => l_array_source_58(Idx)
140369 , p_source_59 => l_array_source_59(Idx)
140370 , p_source_100 => l_array_source_100(Idx)
140371 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140372 );
140373 If(l_balance_type_code = 'A') THEN
140374 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140375 END IF;
140376
140377 --
140378
140379
140380 --
140381 AcctLineType_139 (
140382 p_application_id => p_application_id
140383 ,p_event_id => l_event_id
140384 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140385 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140386 ,p_actual_flag => l_actual_flag
140387 ,p_balance_type_code => l_balance_type_code
140388 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140389
140390 , p_source_10 => l_array_source_10(Idx)
140391 , p_source_17 => l_array_source_17(Idx)
140392 , p_source_20 => l_array_source_20(Idx)
140393 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140394 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140395 , p_source_39 => l_array_source_39(Idx)
140396 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140397 , p_source_40 => l_array_source_40(Idx)
140398 , p_source_41 => l_array_source_41(Idx)
140399 , p_source_42 => l_array_source_42(Idx)
140400 , p_source_43 => l_array_source_43(Idx)
140401 , p_source_44 => l_array_source_44(Idx)
140402 , p_source_45 => l_array_source_45(Idx)
140403 , p_source_46 => l_array_source_46(Idx)
140404 , p_source_47 => l_array_source_47(Idx)
140405 , p_source_48 => l_array_source_48(Idx)
140406 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140407 , p_source_53 => l_array_source_53(Idx)
140408 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140409 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140410 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140411 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140412 , p_source_57 => l_array_source_57(Idx)
140413 , p_source_58 => l_array_source_58(Idx)
140414 , p_source_59 => l_array_source_59(Idx)
140415 , p_source_100 => l_array_source_100(Idx)
140416 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140417 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140418 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140419 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140420 );
140421 If(l_balance_type_code = 'A') THEN
140422 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140423 END IF;
140424
140425 --
140426
140427
140428 --
140429 AcctLineType_140 (
140430 p_application_id => p_application_id
140431 ,p_event_id => l_event_id
140432 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140433 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140434 ,p_actual_flag => l_actual_flag
140435 ,p_balance_type_code => l_balance_type_code
140436 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140437
140438 , p_source_9 => l_array_source_9(Idx)
140439 , p_source_20 => l_array_source_20(Idx)
140440 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140441 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140442 , p_source_39 => l_array_source_39(Idx)
140443 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140444 , p_source_40 => l_array_source_40(Idx)
140445 , p_source_41 => l_array_source_41(Idx)
140446 , p_source_42 => l_array_source_42(Idx)
140447 , p_source_47 => l_array_source_47(Idx)
140448 , p_source_48 => l_array_source_48(Idx)
140449 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140450 , p_source_53 => l_array_source_53(Idx)
140451 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140452 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140453 , p_source_57 => l_array_source_57(Idx)
140454 , p_source_58 => l_array_source_58(Idx)
140455 , p_source_59 => l_array_source_59(Idx)
140456 , p_source_62 => l_array_source_62(Idx)
140457 , p_source_63 => l_array_source_63(Idx)
140458 , p_source_64 => l_array_source_64(Idx)
140459 , p_source_65 => l_array_source_65(Idx)
140460 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140461 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140462 , p_source_104 => l_array_source_104(Idx)
140463 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140464 );
140465 If(l_balance_type_code = 'A') THEN
140466 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140467 END IF;
140468
140469 --
140470
140471
140472 --
140473 AcctLineType_150 (
140474 p_application_id => p_application_id
140475 ,p_event_id => l_event_id
140476 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140477 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140478 ,p_actual_flag => l_actual_flag
140479 ,p_balance_type_code => l_balance_type_code
140480 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140481
140482 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140486 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
140483 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140484 , p_source_9 => l_array_source_9(Idx)
140485 , p_source_17 => l_array_source_17(Idx)
140487 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140488 , p_source_39 => l_array_source_39(Idx)
140489 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140490 , p_source_40 => l_array_source_40(Idx)
140491 , p_source_41 => l_array_source_41(Idx)
140492 , p_source_42 => l_array_source_42(Idx)
140493 , p_source_43 => l_array_source_43(Idx)
140494 , p_source_44 => l_array_source_44(Idx)
140495 , p_source_45 => l_array_source_45(Idx)
140496 , p_source_46 => l_array_source_46(Idx)
140497 , p_source_47 => l_array_source_47(Idx)
140498 , p_source_48 => l_array_source_48(Idx)
140499 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140500 , p_source_53 => l_array_source_53(Idx)
140501 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140502 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140503 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140504 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140505 , p_source_57 => l_array_source_57(Idx)
140506 , p_source_58 => l_array_source_58(Idx)
140507 , p_source_59 => l_array_source_59(Idx)
140508 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
140509 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
140510 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
140511 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
140512 );
140513 If(l_balance_type_code = 'A') THEN
140514 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140515 END IF;
140516
140517 --
140518
140519
140520 --
140521 AcctLineType_152 (
140522 p_application_id => p_application_id
140523 ,p_event_id => l_event_id
140524 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140525 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140526 ,p_actual_flag => l_actual_flag
140527 ,p_balance_type_code => l_balance_type_code
140528 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140529
140530 , p_source_10 => l_array_source_10(Idx)
140531 , p_source_17 => l_array_source_17(Idx)
140532 , p_source_20 => l_array_source_20(Idx)
140533 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140534 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140535 , p_source_39 => l_array_source_39(Idx)
140536 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140537 , p_source_40 => l_array_source_40(Idx)
140538 , p_source_41 => l_array_source_41(Idx)
140539 , p_source_42 => l_array_source_42(Idx)
140540 , p_source_43 => l_array_source_43(Idx)
140541 , p_source_44 => l_array_source_44(Idx)
140542 , p_source_45 => l_array_source_45(Idx)
140543 , p_source_46 => l_array_source_46(Idx)
140544 , p_source_47 => l_array_source_47(Idx)
140545 , p_source_48 => l_array_source_48(Idx)
140546 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140547 , p_source_53 => l_array_source_53(Idx)
140548 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140549 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140550 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140551 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140552 , p_source_57 => l_array_source_57(Idx)
140553 , p_source_58 => l_array_source_58(Idx)
140554 , p_source_59 => l_array_source_59(Idx)
140555 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
140556 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
140557 , p_source_101 => l_array_source_101(Idx)
140558 , p_source_101_meaning => l_array_source_101_meaning(Idx)
140559 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140560 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140561 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140562 );
140563 If(l_balance_type_code = 'A') THEN
140564 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140565 END IF;
140566
140567 --
140568
140569
140570 --
140571 AcctLineType_156 (
140572 p_application_id => p_application_id
140573 ,p_event_id => l_event_id
140574 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140575 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140576 ,p_actual_flag => l_actual_flag
140577 ,p_balance_type_code => l_balance_type_code
140578 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140579
140580 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140581 , p_source_39 => l_array_source_39(Idx)
140582 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140583 , p_source_40 => l_array_source_40(Idx)
140584 , p_source_41 => l_array_source_41(Idx)
140585 , p_source_42 => l_array_source_42(Idx)
140586 , p_source_47 => l_array_source_47(Idx)
140587 , p_source_48 => l_array_source_48(Idx)
140588 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140589 , p_source_53 => l_array_source_53(Idx)
140590 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140591 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140592 , p_source_57 => l_array_source_57(Idx)
140593 , p_source_58 => l_array_source_58(Idx)
140594 , p_source_59 => l_array_source_59(Idx)
140595 , p_source_62 => l_array_source_62(Idx)
140596 , p_source_63 => l_array_source_63(Idx)
140597 , p_source_64 => l_array_source_64(Idx)
140598 , p_source_65 => l_array_source_65(Idx)
140599 , p_source_100 => l_array_source_100(Idx)
140600 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140601 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140602 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140606 , p_source_143 => l_array_source_143(Idx)
140603 , p_source_104 => l_array_source_104(Idx)
140604 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140605 , p_source_142 => l_array_source_142(Idx)
140607 );
140608 If(l_balance_type_code = 'A') THEN
140609 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140610 END IF;
140611
140612 --
140613
140614
140615 --
140616 AcctLineType_161 (
140617 p_application_id => p_application_id
140618 ,p_event_id => l_event_id
140619 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140620 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140621 ,p_actual_flag => l_actual_flag
140622 ,p_balance_type_code => l_balance_type_code
140623 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140624
140625 , p_source_10 => l_array_source_10(Idx)
140626 , p_source_17 => l_array_source_17(Idx)
140627 , p_source_20 => l_array_source_20(Idx)
140628 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140629 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140630 , p_source_39 => l_array_source_39(Idx)
140631 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140632 , p_source_40 => l_array_source_40(Idx)
140633 , p_source_41 => l_array_source_41(Idx)
140634 , p_source_42 => l_array_source_42(Idx)
140635 , p_source_43 => l_array_source_43(Idx)
140636 , p_source_44 => l_array_source_44(Idx)
140637 , p_source_45 => l_array_source_45(Idx)
140638 , p_source_46 => l_array_source_46(Idx)
140639 , p_source_47 => l_array_source_47(Idx)
140640 , p_source_48 => l_array_source_48(Idx)
140641 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140642 , p_source_53 => l_array_source_53(Idx)
140643 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140644 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140645 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140646 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140647 , p_source_57 => l_array_source_57(Idx)
140648 , p_source_58 => l_array_source_58(Idx)
140649 , p_source_59 => l_array_source_59(Idx)
140650 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140651 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140652 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140653 );
140654 If(l_balance_type_code = 'A') THEN
140655 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140656 END IF;
140657
140658 --
140659
140660
140661 --
140662 AcctLineType_164 (
140663 p_application_id => p_application_id
140664 ,p_event_id => l_event_id
140665 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140666 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140667 ,p_actual_flag => l_actual_flag
140668 ,p_balance_type_code => l_balance_type_code
140669 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140670
140671 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140672 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140673 , p_source_10 => l_array_source_10(Idx)
140674 , p_source_17 => l_array_source_17(Idx)
140675 , p_source_20 => l_array_source_20(Idx)
140676 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140677 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
140678 , p_source_23 => l_array_source_23(Idx)
140679 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140680 , p_source_40 => l_array_source_40(Idx)
140681 , p_source_41 => l_array_source_41(Idx)
140682 , p_source_42 => l_array_source_42(Idx)
140683 , p_source_43 => l_array_source_43(Idx)
140684 , p_source_44 => l_array_source_44(Idx)
140685 , p_source_45 => l_array_source_45(Idx)
140686 , p_source_46 => l_array_source_46(Idx)
140687 , p_source_47 => l_array_source_47(Idx)
140688 , p_source_48 => l_array_source_48(Idx)
140689 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140690 , p_source_53 => l_array_source_53(Idx)
140691 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140692 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140693 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140694 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140695 , p_source_57 => l_array_source_57(Idx)
140696 , p_source_58 => l_array_source_58(Idx)
140697 , p_source_59 => l_array_source_59(Idx)
140698 , p_source_101 => l_array_source_101(Idx)
140699 , p_source_101_meaning => l_array_source_101_meaning(Idx)
140700 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140701 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140702 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140703 );
140704 If(l_balance_type_code = 'A') THEN
140705 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140706 END IF;
140707
140708 --
140709
140710
140711 --
140712 AcctLineType_170 (
140713 p_application_id => p_application_id
140714 ,p_event_id => l_event_id
140715 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140716 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140717 ,p_actual_flag => l_actual_flag
140718 ,p_balance_type_code => l_balance_type_code
140719 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140720
140721 , p_source_10 => l_array_source_10(Idx)
140722 , p_source_20 => l_array_source_20(Idx)
140723 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140724 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140725 , p_source_40 => l_array_source_40(Idx)
140726 , p_source_41 => l_array_source_41(Idx)
140727 , p_source_42 => l_array_source_42(Idx)
140728 , p_source_43 => l_array_source_43(Idx)
140729 , p_source_44 => l_array_source_44(Idx)
140730 , p_source_47 => l_array_source_47(Idx)
140731 , p_source_48 => l_array_source_48(Idx)
140732 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140736 , p_source_57 => l_array_source_57(Idx)
140733 , p_source_53 => l_array_source_53(Idx)
140734 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140735 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140737 , p_source_58 => l_array_source_58(Idx)
140738 , p_source_59 => l_array_source_59(Idx)
140739 , p_source_101 => l_array_source_101(Idx)
140740 , p_source_101_meaning => l_array_source_101_meaning(Idx)
140741 , p_source_147 => l_array_source_147(Idx)
140742 , p_source_148 => l_array_source_148(Idx)
140743 );
140744 If(l_balance_type_code = 'A') THEN
140745 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140746 END IF;
140747
140748 --
140749
140750
140751 --
140752 AcctLineType_172 (
140753 p_application_id => p_application_id
140754 ,p_event_id => l_event_id
140755 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140756 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140757 ,p_actual_flag => l_actual_flag
140758 ,p_balance_type_code => l_balance_type_code
140759 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140760
140761 , p_source_20 => l_array_source_20(Idx)
140762 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140763 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140764 , p_source_39 => l_array_source_39(Idx)
140765 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140766 , p_source_40 => l_array_source_40(Idx)
140767 , p_source_41 => l_array_source_41(Idx)
140768 , p_source_42 => l_array_source_42(Idx)
140769 , p_source_47 => l_array_source_47(Idx)
140770 , p_source_48 => l_array_source_48(Idx)
140771 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140772 , p_source_53 => l_array_source_53(Idx)
140773 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140774 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140775 , p_source_57 => l_array_source_57(Idx)
140776 , p_source_58 => l_array_source_58(Idx)
140777 , p_source_59 => l_array_source_59(Idx)
140778 , p_source_62 => l_array_source_62(Idx)
140779 , p_source_63 => l_array_source_63(Idx)
140780 , p_source_64 => l_array_source_64(Idx)
140781 , p_source_65 => l_array_source_65(Idx)
140782 , p_source_100 => l_array_source_100(Idx)
140783 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140784 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140785 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140786 , p_source_103 => l_array_source_103(Idx)
140787 , p_source_104 => l_array_source_104(Idx)
140788 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140789 , p_source_105 => l_array_source_105(Idx)
140790 );
140791 If(l_balance_type_code = 'A') THEN
140792 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140793 END IF;
140794
140795 --
140796
140797
140798 --
140799 AcctLineType_175 (
140800 p_application_id => p_application_id
140801 ,p_event_id => l_event_id
140802 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140803 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140804 ,p_actual_flag => l_actual_flag
140805 ,p_balance_type_code => l_balance_type_code
140806 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140807
140808 , p_source_9 => l_array_source_9(Idx)
140809 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140810 , p_source_39 => l_array_source_39(Idx)
140811 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140812 , p_source_40 => l_array_source_40(Idx)
140813 , p_source_41 => l_array_source_41(Idx)
140814 , p_source_42 => l_array_source_42(Idx)
140815 , p_source_47 => l_array_source_47(Idx)
140816 , p_source_48 => l_array_source_48(Idx)
140817 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140818 , p_source_53 => l_array_source_53(Idx)
140819 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140820 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140821 , p_source_57 => l_array_source_57(Idx)
140822 , p_source_58 => l_array_source_58(Idx)
140823 , p_source_59 => l_array_source_59(Idx)
140824 , p_source_62 => l_array_source_62(Idx)
140825 , p_source_63 => l_array_source_63(Idx)
140826 , p_source_64 => l_array_source_64(Idx)
140827 , p_source_65 => l_array_source_65(Idx)
140828 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140829 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140830 , p_source_104 => l_array_source_104(Idx)
140831 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140832 );
140833 If(l_balance_type_code = 'A') THEN
140834 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140835 END IF;
140836
140837 --
140838
140839
140840 --
140841 AcctLineType_178 (
140842 p_application_id => p_application_id
140843 ,p_event_id => l_event_id
140844 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140845 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140846 ,p_actual_flag => l_actual_flag
140847 ,p_balance_type_code => l_balance_type_code
140848 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140849
140850 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140851 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140852 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
140853 , p_source_7 => l_array_source_7(Idx)
140854 , p_source_7_meaning => l_array_source_7_meaning(Idx)
140855 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
140856 , p_source_9 => l_array_source_9(Idx)
140857 , p_source_10 => l_array_source_10(Idx)
140858 , p_source_17 => l_array_source_17(Idx)
140859 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
140860 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
140861 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140862 , p_source_39 => l_array_source_39(Idx)
140866 , p_source_42 => l_array_source_42(Idx)
140863 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140864 , p_source_40 => l_array_source_40(Idx)
140865 , p_source_41 => l_array_source_41(Idx)
140867 , p_source_43 => l_array_source_43(Idx)
140868 , p_source_44 => l_array_source_44(Idx)
140869 , p_source_45 => l_array_source_45(Idx)
140870 , p_source_46 => l_array_source_46(Idx)
140871 , p_source_47 => l_array_source_47(Idx)
140872 , p_source_48 => l_array_source_48(Idx)
140873 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140874 , p_source_53 => l_array_source_53(Idx)
140875 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140876 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140877 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140878 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140879 , p_source_57 => l_array_source_57(Idx)
140880 , p_source_58 => l_array_source_58(Idx)
140881 , p_source_59 => l_array_source_59(Idx)
140882 , p_source_100 => l_array_source_100(Idx)
140883 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140884 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140885 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140886 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140887 );
140888 If(l_balance_type_code = 'A') THEN
140889 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140890 END IF;
140891
140892 --
140893
140894
140895 --
140896 AcctLineType_181 (
140897 p_application_id => p_application_id
140898 ,p_event_id => l_event_id
140899 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140900 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140901 ,p_actual_flag => l_actual_flag
140902 ,p_balance_type_code => l_balance_type_code
140903 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140904
140905 , p_source_10 => l_array_source_10(Idx)
140906 , p_source_17 => l_array_source_17(Idx)
140907 , p_source_20 => l_array_source_20(Idx)
140908 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140909 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140910 , p_source_39 => l_array_source_39(Idx)
140911 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140912 , p_source_40 => l_array_source_40(Idx)
140913 , p_source_41 => l_array_source_41(Idx)
140914 , p_source_42 => l_array_source_42(Idx)
140915 , p_source_43 => l_array_source_43(Idx)
140916 , p_source_44 => l_array_source_44(Idx)
140917 , p_source_45 => l_array_source_45(Idx)
140918 , p_source_46 => l_array_source_46(Idx)
140919 , p_source_47 => l_array_source_47(Idx)
140920 , p_source_48 => l_array_source_48(Idx)
140921 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140922 , p_source_53 => l_array_source_53(Idx)
140923 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140924 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140925 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140926 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140927 , p_source_57 => l_array_source_57(Idx)
140928 , p_source_58 => l_array_source_58(Idx)
140929 , p_source_59 => l_array_source_59(Idx)
140930 , p_source_100 => l_array_source_100(Idx)
140931 , p_source_100_meaning => l_array_source_100_meaning(Idx)
140932 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140933 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140934 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140935 );
140936 If(l_balance_type_code = 'A') THEN
140937 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140938 END IF;
140939
140940 --
140941
140942
140943 --
140944 AcctLineType_182 (
140945 p_application_id => p_application_id
140946 ,p_event_id => l_event_id
140947 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140948 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140949 ,p_actual_flag => l_actual_flag
140950 ,p_balance_type_code => l_balance_type_code
140951 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140952
140953 , p_source_9 => l_array_source_9(Idx)
140954 , p_source_20 => l_array_source_20(Idx)
140955 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140956 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140957 , p_source_39 => l_array_source_39(Idx)
140958 , p_source_39_meaning => l_array_source_39_meaning(Idx)
140959 , p_source_40 => l_array_source_40(Idx)
140960 , p_source_41 => l_array_source_41(Idx)
140961 , p_source_42 => l_array_source_42(Idx)
140962 , p_source_47 => l_array_source_47(Idx)
140963 , p_source_48 => l_array_source_48(Idx)
140964 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140965 , p_source_53 => l_array_source_53(Idx)
140966 , p_source_53_meaning => l_array_source_53_meaning(Idx)
140967 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140968 , p_source_57 => l_array_source_57(Idx)
140969 , p_source_58 => l_array_source_58(Idx)
140970 , p_source_59 => l_array_source_59(Idx)
140971 , p_source_62 => l_array_source_62(Idx)
140972 , p_source_63 => l_array_source_63(Idx)
140973 , p_source_64 => l_array_source_64(Idx)
140974 , p_source_65 => l_array_source_65(Idx)
140975 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140976 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140977 , p_source_104 => l_array_source_104(Idx)
140978 , p_source_104_meaning => l_array_source_104_meaning(Idx)
140979 );
140980 If(l_balance_type_code = 'A') THEN
140981 l_actual_gain_loss_ref := l_gain_or_loss_ref;
140982 END IF;
140983
140984 --
140985
140986
140987 --
140988 AcctLineType_187 (
140989 p_application_id => p_application_id
140990 ,p_event_id => l_event_id
140991 ,p_calculate_acctd_flag => l_calculate_acctd_flag
140995 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140992 ,p_calculate_g_l_flag => l_calculate_g_l_flag
140993 ,p_actual_flag => l_actual_flag
140994 ,p_balance_type_code => l_balance_type_code
140996
140997 , p_source_20 => l_array_source_20(Idx)
140998 , p_source_20_meaning => l_array_source_20_meaning(Idx)
140999 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141000 , p_source_39 => l_array_source_39(Idx)
141001 , p_source_39_meaning => l_array_source_39_meaning(Idx)
141002 , p_source_40 => l_array_source_40(Idx)
141003 , p_source_41 => l_array_source_41(Idx)
141004 , p_source_42 => l_array_source_42(Idx)
141005 , p_source_47 => l_array_source_47(Idx)
141006 , p_source_48 => l_array_source_48(Idx)
141007 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
141008 , p_source_53 => l_array_source_53(Idx)
141009 , p_source_53_meaning => l_array_source_53_meaning(Idx)
141010 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141011 , p_source_57 => l_array_source_57(Idx)
141012 , p_source_58 => l_array_source_58(Idx)
141013 , p_source_59 => l_array_source_59(Idx)
141014 , p_source_62 => l_array_source_62(Idx)
141015 , p_source_63 => l_array_source_63(Idx)
141016 , p_source_64 => l_array_source_64(Idx)
141017 , p_source_65 => l_array_source_65(Idx)
141018 , p_source_100 => l_array_source_100(Idx)
141019 , p_source_100_meaning => l_array_source_100_meaning(Idx)
141020 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
141021 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
141022 , p_source_104 => l_array_source_104(Idx)
141023 , p_source_104_meaning => l_array_source_104_meaning(Idx)
141024 , p_source_142 => l_array_source_142(Idx)
141025 , p_source_143 => l_array_source_143(Idx)
141026 );
141027 If(l_balance_type_code = 'A') THEN
141028 l_actual_gain_loss_ref := l_gain_or_loss_ref;
141029 END IF;
141030
141031 --
141032
141033
141034 --
141035 AcctLineType_190 (
141036 p_application_id => p_application_id
141037 ,p_event_id => l_event_id
141038 ,p_calculate_acctd_flag => l_calculate_acctd_flag
141039 ,p_calculate_g_l_flag => l_calculate_g_l_flag
141040 ,p_actual_flag => l_actual_flag
141041 ,p_balance_type_code => l_balance_type_code
141042 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
141043
141044 , p_source_10 => l_array_source_10(Idx)
141045 , p_source_17 => l_array_source_17(Idx)
141046 , p_source_20 => l_array_source_20(Idx)
141047 , p_source_20_meaning => l_array_source_20_meaning(Idx)
141048 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141049 , p_source_39 => l_array_source_39(Idx)
141050 , p_source_39_meaning => l_array_source_39_meaning(Idx)
141051 , p_source_40 => l_array_source_40(Idx)
141052 , p_source_41 => l_array_source_41(Idx)
141053 , p_source_42 => l_array_source_42(Idx)
141054 , p_source_43 => l_array_source_43(Idx)
141055 , p_source_44 => l_array_source_44(Idx)
141056 , p_source_45 => l_array_source_45(Idx)
141057 , p_source_46 => l_array_source_46(Idx)
141058 , p_source_47 => l_array_source_47(Idx)
141059 , p_source_48 => l_array_source_48(Idx)
141060 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
141061 , p_source_53 => l_array_source_53(Idx)
141062 , p_source_53_meaning => l_array_source_53_meaning(Idx)
141063 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
141064 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
141065 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141066 , p_source_57 => l_array_source_57(Idx)
141067 , p_source_58 => l_array_source_58(Idx)
141068 , p_source_59 => l_array_source_59(Idx)
141069 , p_source_100 => l_array_source_100(Idx)
141070 , p_source_100_meaning => l_array_source_100_meaning(Idx)
141071 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
141072 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
141073 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
141074 );
141075 If(l_balance_type_code = 'A') THEN
141076 l_actual_gain_loss_ref := l_gain_or_loss_ref;
141077 END IF;
141078
141079 --
141080
141081
141082 --
141083 AcctLineType_191 (
141084 p_application_id => p_application_id
141085 ,p_event_id => l_event_id
141086 ,p_calculate_acctd_flag => l_calculate_acctd_flag
141087 ,p_calculate_g_l_flag => l_calculate_g_l_flag
141088 ,p_actual_flag => l_actual_flag
141089 ,p_balance_type_code => l_balance_type_code
141090 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
141091
141092 , p_source_9 => l_array_source_9(Idx)
141093 , p_source_20 => l_array_source_20(Idx)
141094 , p_source_20_meaning => l_array_source_20_meaning(Idx)
141095 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141096 , p_source_39 => l_array_source_39(Idx)
141097 , p_source_39_meaning => l_array_source_39_meaning(Idx)
141098 , p_source_40 => l_array_source_40(Idx)
141099 , p_source_41 => l_array_source_41(Idx)
141100 , p_source_42 => l_array_source_42(Idx)
141101 , p_source_47 => l_array_source_47(Idx)
141102 , p_source_48 => l_array_source_48(Idx)
141103 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
141104 , p_source_53 => l_array_source_53(Idx)
141105 , p_source_53_meaning => l_array_source_53_meaning(Idx)
141106 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141107 , p_source_57 => l_array_source_57(Idx)
141108 , p_source_58 => l_array_source_58(Idx)
141109 , p_source_59 => l_array_source_59(Idx)
141110 , p_source_62 => l_array_source_62(Idx)
141111 , p_source_63 => l_array_source_63(Idx)
141112 , p_source_64 => l_array_source_64(Idx)
141113 , p_source_65 => l_array_source_65(Idx)
141114 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
141115 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
141116 , p_source_104 => l_array_source_104(Idx)
141120 l_actual_gain_loss_ref := l_gain_or_loss_ref;
141117 , p_source_104_meaning => l_array_source_104_meaning(Idx)
141118 );
141119 If(l_balance_type_code = 'A') THEN
141121 END IF;
141122
141123 --
141124
141125
141126 --
141127 AcctLineType_202 (
141128 p_application_id => p_application_id
141129 ,p_event_id => l_event_id
141130 ,p_calculate_acctd_flag => l_calculate_acctd_flag
141131 ,p_calculate_g_l_flag => l_calculate_g_l_flag
141132 ,p_actual_flag => l_actual_flag
141133 ,p_balance_type_code => l_balance_type_code
141134 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
141135
141136 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
141137 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
141138 , p_source_10 => l_array_source_10(Idx)
141139 , p_source_17 => l_array_source_17(Idx)
141140 , p_source_24 => l_array_source_24(Idx)
141141 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141142 , p_source_39 => l_array_source_39(Idx)
141143 , p_source_39_meaning => l_array_source_39_meaning(Idx)
141144 , p_source_40 => l_array_source_40(Idx)
141145 , p_source_41 => l_array_source_41(Idx)
141146 , p_source_42 => l_array_source_42(Idx)
141147 , p_source_43 => l_array_source_43(Idx)
141148 , p_source_44 => l_array_source_44(Idx)
141149 , p_source_45 => l_array_source_45(Idx)
141150 , p_source_46 => l_array_source_46(Idx)
141151 , p_source_47 => l_array_source_47(Idx)
141152 , p_source_48 => l_array_source_48(Idx)
141153 , p_source_53 => l_array_source_53(Idx)
141154 , p_source_53_meaning => l_array_source_53_meaning(Idx)
141155 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
141156 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
141157 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141158 , p_source_57 => l_array_source_57(Idx)
141159 , p_source_58 => l_array_source_58(Idx)
141160 , p_source_59 => l_array_source_59(Idx)
141161 , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
141162 , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
141163 , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
141164 , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
141165 , p_source_151 => l_array_source_151(Idx)
141166 , p_source_151_meaning => l_array_source_151_meaning(Idx)
141167 );
141168 If(l_balance_type_code = 'A') THEN
141169 l_actual_gain_loss_ref := l_gain_or_loss_ref;
141170 END IF;
141171
141172 --
141173
141174 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
141175 -- or secondary ledger that has different currency with primary
141176 -- or alc that is calculated by sla
141177 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
141178 (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'))
141179
141180 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
141181 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
141182 AND (l_actual_flag = 'A')) THEN
141183 XLA_AE_LINES_PKG.CreateGainOrLossLines(
141184 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
141185 ,p_application_id => p_application_id
141186 ,p_amb_context_code => 'DEFAULT'
141187 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
141188 ,p_event_class_code => C_EVENT_CLASS_CODE
141189 ,p_event_type_code => C_EVENT_TYPE_CODE
141190
141191 ,p_gain_ccid => -1
141192 ,p_loss_ccid => -1
141193
141194 ,p_actual_flag => l_actual_flag
141195 ,p_enc_flag => null
141196 ,p_actual_g_l_ref => l_actual_gain_loss_ref
141197 ,p_enc_g_l_ref => null
141198 );
141199 END IF;
141200 END IF;
141201 END IF;
141202
141203 ELSE
141204 --
141205 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
141206 --
141207 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141208 trace
141209 (p_msg => 'Trancaction revesal option is Y'
141210 ,p_level => C_LEVEL_STATEMENT
141211 ,p_module => l_log_module);
141212 END IF;
141213 END IF;
141214
141215 END LOOP;
141216 l_result := XLA_AE_LINES_PKG.InsertLines ;
141217 end loop;
141218 close line_cur;
141219
141220
141221 --
141222 -- insert headers into xla_ae_headers_gt table
141223 --
141224 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
141225
141226 -- insert into errors table here.
141227
141228 END LOOP;
141229
141230 --
141231 -- 4865292
141232 --
141233 -- Compare g_hdr_extract_count with event count in
141234 -- CreateHeadersAndLines.
141235 --
141236 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
141237
141238 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141239 trace (p_msg => '# rows extracted from header extract objects '
141240 || ' (running total): '
141241 || g_hdr_extract_count
141242 ,p_level => C_LEVEL_STATEMENT
141243 ,p_module => l_log_module);
141244 END IF;
141245
141246 CLOSE header_cur;
141247 --
141248
141249 --
141250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141251 trace
141252 (p_msg => 'END of EventClass_214'
141253 ,p_level => C_LEVEL_PROCEDURE
141254 ,p_module => l_log_module);
141255 END IF;
141256 --
141257 RETURN l_result;
141258 EXCEPTION
141259 WHEN xla_exceptions_pkg.application_exception THEN
141260
141264 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
141261 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
141262
141263
141265
141266 RAISE;
141267
141268 WHEN NO_DATA_FOUND THEN
141269
141270 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
141271 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
141272
141273 FOR header_record IN header_cur
141274 LOOP
141275 l_array_header_events(header_record.event_id) := header_record.event_id;
141276 END LOOP;
141277
141278 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
141279 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
141280
141281 fnd_file.put_line(fnd_file.LOG, ' ');
141282 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
141283 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
141284 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
141285
141286 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
141287 LOOP
141288 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
141289 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
141290 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
141291 END IF;
141292 END LOOP;
141293
141294 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
141295 fnd_file.put_line(fnd_file.LOG, ' ');
141296
141297
141298 xla_exceptions_pkg.raise_message
141299 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_214');
141300
141301
141302 WHEN OTHERS THEN
141303 xla_exceptions_pkg.raise_message
141304 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_214');
141305 END EventClass_214;
141306 --
141307
141308 ---------------------------------------
141309 --
141310 -- PRIVATE PROCEDURE
141311 -- insert_sources_215
141312 --
141313 ----------------------------------------
141314 --
141315 PROCEDURE insert_sources_215(
141316 p_target_ledger_id IN NUMBER
141317 , p_language IN VARCHAR2
141318 , p_sla_ledger_id IN NUMBER
141319 , p_pad_start_date IN DATE
141320 , p_pad_end_date IN DATE
141321 )
141322 IS
141323
141324 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REFUNDS_ALL';
141325 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REFUNDS';
141326 p_apps_owner VARCHAR2(30);
141327 l_log_module VARCHAR2(240);
141328 BEGIN
141329 IF g_log_enabled THEN
141330 l_log_module := C_DEFAULT_MODULE||'.insert_sources_215';
141331 END IF;
141332 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141333
141334 trace
141335 (p_msg => 'BEGIN of insert_sources_215'
141336 ,p_level => C_LEVEL_PROCEDURE
141337 ,p_module => l_log_module);
141338
141339 END IF;
141340
141341 -- select APPS owner
141342 SELECT oracle_username
141343 INTO p_apps_owner
141344 FROM fnd_oracle_userid
141345 WHERE read_only_flag = 'U'
141346 ;
141347
141348 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141349 trace
141350 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
141351 ' - p_language = '||p_language||
141352 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
141353 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
141354 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
141355 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
141356 ,p_level => C_LEVEL_STATEMENT
141357 ,p_module => l_log_module);
141358 END IF;
141359
141360
141361 --
141362 INSERT INTO xla_diag_sources --hdr2
141363 (
141364 event_id
141365 , ledger_id
141366 , sla_ledger_id
141367 , description_language
141368 , object_name
141369 , object_type_code
141370 , line_number
141371 , source_application_id
141372 , source_type_code
141373 , source_code
141374 , source_value
141375 , source_meaning
141376 , created_by
141377 , creation_date
141378 , last_update_date
141379 , last_updated_by
141380 , last_update_login
141381 , program_update_date
141382 , program_application_id
141383 , program_id
141384 , request_id
141385 )
141386 SELECT
141387 event_id
141388 , p_target_ledger_id
141389 , p_sla_ledger_id
141390 , p_language
141391 , object_name
141392 , object_type_code
141393 , line_number
141394 , source_application_id
141395 , source_type_code
141396 , source_code
141397 , SUBSTR(source_value ,1,1996)
141398 , SUBSTR(source_meaning ,1,200)
141399 , xla_environment_pkg.g_Usr_Id
141400 , TRUNC(SYSDATE)
141401 , TRUNC(SYSDATE)
141402 , xla_environment_pkg.g_Usr_Id
141403 , xla_environment_pkg.g_Login_Id
141404 , TRUNC(SYSDATE)
141405 , xla_environment_pkg.g_Prog_Appl_Id
141406 , xla_environment_pkg.g_Prog_Id
141407 , xla_environment_pkg.g_Req_Id
141408 FROM (
141409 SELECT xet.event_id event_id
141410 , 0 line_number
141411 , CASE r
141412 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141413 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141417 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141414 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141415 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141416 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141418 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141419 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141420 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141421 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141422 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141423 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141424 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141425 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141426 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141427 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
141428 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141429 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141430 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141431 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141432 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141433 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141434 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141435 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141436 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
141437
141438 ELSE null
141439 END object_name
141440 , CASE r
141441 WHEN 1 THEN 'HEADER'
141442 WHEN 2 THEN 'HEADER'
141443 WHEN 3 THEN 'HEADER'
141444 WHEN 4 THEN 'HEADER'
141445 WHEN 5 THEN 'HEADER'
141446 WHEN 6 THEN 'HEADER'
141447 WHEN 7 THEN 'HEADER'
141448 WHEN 8 THEN 'HEADER'
141449 WHEN 9 THEN 'HEADER'
141450 WHEN 10 THEN 'HEADER'
141451 WHEN 11 THEN 'HEADER'
141452 WHEN 12 THEN 'HEADER'
141453 WHEN 13 THEN 'HEADER'
141454 WHEN 14 THEN 'HEADER'
141455 WHEN 15 THEN 'HEADER'
141456 WHEN 16 THEN 'HEADER'
141457 WHEN 17 THEN 'HEADER'
141458 WHEN 18 THEN 'HEADER'
141459 WHEN 19 THEN 'HEADER'
141460 WHEN 20 THEN 'HEADER'
141461 WHEN 21 THEN 'HEADER'
141462 WHEN 22 THEN 'HEADER'
141463 WHEN 23 THEN 'HEADER'
141464 WHEN 24 THEN 'HEADER'
141465 WHEN 25 THEN 'HEADER'
141466
141467 ELSE null
141468 END object_type_code
141469 , CASE r
141470 WHEN 1 THEN '200'
141471 WHEN 2 THEN '200'
141472 WHEN 3 THEN '200'
141473 WHEN 4 THEN '200'
141474 WHEN 5 THEN '200'
141475 WHEN 6 THEN '200'
141476 WHEN 7 THEN '200'
141477 WHEN 8 THEN '200'
141478 WHEN 9 THEN '200'
141479 WHEN 10 THEN '200'
141480 WHEN 11 THEN '200'
141481 WHEN 12 THEN '200'
141482 WHEN 13 THEN '200'
141483 WHEN 14 THEN '200'
141484 WHEN 15 THEN '200'
141485 WHEN 16 THEN '200'
141486 WHEN 17 THEN '200'
141487 WHEN 18 THEN '200'
141488 WHEN 19 THEN '200'
141489 WHEN 20 THEN '200'
141490 WHEN 21 THEN '200'
141491 WHEN 22 THEN '200'
141492 WHEN 23 THEN '200'
141493 WHEN 24 THEN '200'
141494 WHEN 25 THEN '200'
141495
141496 ELSE null
141497 END source_application_id
141498 , 'S' source_type_code
141499 , CASE r
141500 WHEN 1 THEN 'CGAC_AP_ASSET_CCID'
141501 WHEN 2 THEN 'FSP_DISC_TAKEN_CCID'
141502 WHEN 3 THEN 'ASP_DISCOUNT_DIST_METHOD'
141503 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
141504 WHEN 5 THEN 'ASP_RATE_VAR_GAIN_CCID'
141505 WHEN 6 THEN 'ASP_RATE_VAR_LOSS_CCID'
141506 WHEN 7 THEN 'CGAC_CASH_CLEARING_CCID'
141507 WHEN 8 THEN 'ASP_DISC_TAKEN_CCID'
141508 WHEN 9 THEN 'ASP_AUTO_OFFSET_FLAG'
141509 WHEN 10 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
141510 WHEN 11 THEN 'AC_CURRENCY_CODE'
141511 WHEN 12 THEN 'AC_VENDOR_ID'
141512 WHEN 13 THEN 'AC_VENDOR_SITE_ID'
141513 WHEN 14 THEN 'THIRD_PARTY_TYPE'
141514 WHEN 15 THEN 'PAYMENT_TYPE'
141515 WHEN 16 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG'
141516 WHEN 17 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
141517 WHEN 18 THEN 'AC_FUTURE_PAY_DUE_DATE'
141518 WHEN 19 THEN 'AC_EXCHANGE_DATE'
141519 WHEN 20 THEN 'AC_EXCHANGE_RATE'
141520 WHEN 21 THEN 'AC_EXCHANGE_RATE_TYPE'
141521 WHEN 22 THEN 'AC_DOC_CATEGORY_CODE'
141522 WHEN 23 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
141523 WHEN 24 THEN 'AC_DOC_SEQUENCE_VALUE'
141524 WHEN 25 THEN 'TRANSAC_REVERSAL_FLAG'
141525
141526 ELSE null
141527 END source_code
141528 , CASE r
141529 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
141530 WHEN 2 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
141531 WHEN 3 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
141532 WHEN 4 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
141536 WHEN 8 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
141533 WHEN 5 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
141534 WHEN 6 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
141535 WHEN 7 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
141537 WHEN 9 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
141538 WHEN 10 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
141539 WHEN 11 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
141540 WHEN 12 THEN TO_CHAR(h2.AC_VENDOR_ID)
141541 WHEN 13 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
141542 WHEN 14 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
141543 WHEN 15 THEN TO_CHAR(h2.PAYMENT_TYPE)
141544 WHEN 16 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
141545 WHEN 17 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
141546 WHEN 18 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
141547 WHEN 19 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
141548 WHEN 20 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
141549 WHEN 21 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
141550 WHEN 22 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
141551 WHEN 23 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
141552 WHEN 24 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
141553 WHEN 25 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
141554
141555 ELSE null
141556 END source_value
141557 , CASE r
141558 WHEN 3 THEN fvl3.meaning
141559 WHEN 4 THEN fvl4.meaning
141560 WHEN 9 THEN fvl30.meaning
141561 WHEN 15 THEN fvl60.meaning
141562 WHEN 16 THEN fvl102.meaning
141563 WHEN 17 THEN fvl110.meaning
141564 WHEN 25 THEN fvl175.meaning
141565
141566 ELSE null
141567 END source_meaning
141568 FROM xla_events_gt xet
141569 , AP_PAYMENT_EXTRACT_HEADER_V h2
141570 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
141571 , fnd_lookup_values fvl3
141572 , fnd_lookup_values fvl4
141573 , fnd_lookup_values fvl30
141574 , fnd_lookup_values fvl60
141575 , fnd_lookup_values fvl102
141576 , fnd_lookup_values fvl110
141577 , fnd_lookup_values fvl175
141578 ,(select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
141579 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
141580 AND xet.event_class_code = C_EVENT_CLASS_CODE
141581 AND h2.event_id = xet.event_id
141582 AND h4.asp_org_id = h2.ac_org_id AND fvl3.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
141583 AND fvl3.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
141584 AND fvl3.view_application_id(+) = 200
141585 AND fvl3.language(+) = USERENV('LANG')
141586 AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
141587 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
141588 AND fvl4.view_application_id(+) = 200
141589 AND fvl4.language(+) = USERENV('LANG')
141590 AND fvl30.lookup_type(+) = 'YES_NO'
141591 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
141592 AND fvl30.view_application_id(+) = 0
141593 AND fvl30.language(+) = USERENV('LANG')
141594 AND fvl60.lookup_type(+) = 'PAYMENT TYPE'
141595 AND fvl60.lookup_code(+) = h2.PAYMENT_TYPE
141596 AND fvl60.view_application_id(+) = 200
141597 AND fvl60.language(+) = USERENV('LANG')
141598 AND fvl102.lookup_type(+) = 'YES_NO'
141599 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
141600 AND fvl102.view_application_id(+) = 0
141601 AND fvl102.language(+) = USERENV('LANG')
141602 AND fvl110.lookup_type(+) = 'YES_NO'
141603 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
141604 AND fvl110.view_application_id(+) = 0
141605 AND fvl110.language(+) = USERENV('LANG')
141606 AND fvl175.lookup_type(+) = 'YES_NO'
141607 AND fvl175.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
141608 AND fvl175.view_application_id(+) = 0
141609 AND fvl175.language(+) = USERENV('LANG')
141610
141611 )
141612 ;
141613 --
141614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141615
141616 trace
141617 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
141618 ,p_level => C_LEVEL_STATEMENT
141619 ,p_module => l_log_module);
141620
141621 END IF;
141622 --
141623
141624
141625
141626 --
141627 INSERT INTO xla_diag_sources --line2
141628 (
141629 event_id
141630 , ledger_id
141631 , sla_ledger_id
141632 , description_language
141633 , object_name
141634 , object_type_code
141635 , line_number
141636 , source_application_id
141637 , source_type_code
141638 , source_code
141639 , source_value
141640 , source_meaning
141641 , created_by
141642 , creation_date
141643 , last_update_date
141644 , last_updated_by
141645 , last_update_login
141646 , program_update_date
141647 , program_application_id
141648 , program_id
141649 , request_id
141650 )
141651 SELECT event_id
141652 , p_target_ledger_id
141653 , p_sla_ledger_id
141654 , p_language
141655 , object_name
141656 , object_type_code
141657 , line_number
141658 , source_application_id
141659 , source_type_code
141660 , source_code
141661 , SUBSTR(source_value,1,1996)
141662 , SUBSTR(source_meaning ,1,200)
141663 , xla_environment_pkg.g_Usr_Id
141664 , TRUNC(SYSDATE)
141665 , TRUNC(SYSDATE)
141666 , xla_environment_pkg.g_Usr_Id
141670 , xla_environment_pkg.g_Prog_Id
141667 , xla_environment_pkg.g_Login_Id
141668 , TRUNC(SYSDATE)
141669 , xla_environment_pkg.g_Prog_Appl_Id
141671 , xla_environment_pkg.g_Req_Id
141672 FROM (
141673 SELECT xet.event_id event_id
141674 , l1.line_number line_number
141675 , CASE r
141676 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141677 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141678 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141679 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141680 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141681 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141682 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141683 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141684 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141685 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141686 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141687 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141688 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141689 WHEN 14 THEN 'AP_PO_HEADERS_EXTRACT_V'
141690 WHEN 15 THEN 'AP_PO_HEADERS_EXTRACT_V'
141691 WHEN 16 THEN 'AP_PO_HEADERS_EXTRACT_V'
141692 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141693 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141694 WHEN 19 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
141695 WHEN 20 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
141696 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141697 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141698 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141699 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141700 WHEN 25 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
141701 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141702 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141703 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
141704
141705 ELSE null
141706 END object_name
141707 , CASE r
141708 WHEN 1 THEN 'LINE'
141709 WHEN 2 THEN 'LINE'
141710 WHEN 3 THEN 'LINE'
141711 WHEN 4 THEN 'LINE'
141712 WHEN 5 THEN 'LINE'
141713 WHEN 6 THEN 'LINE'
141714 WHEN 7 THEN 'LINE'
141715 WHEN 8 THEN 'LINE'
141716 WHEN 9 THEN 'LINE'
141717 WHEN 10 THEN 'LINE'
141718 WHEN 11 THEN 'LINE'
141719 WHEN 12 THEN 'LINE'
141720 WHEN 13 THEN 'LINE'
141721 WHEN 14 THEN 'LINE'
141722 WHEN 15 THEN 'LINE'
141723 WHEN 16 THEN 'LINE'
141724 WHEN 17 THEN 'LINE'
141725 WHEN 18 THEN 'LINE'
141726 WHEN 19 THEN 'LINE'
141727 WHEN 20 THEN 'LINE'
141728 WHEN 21 THEN 'LINE'
141729 WHEN 22 THEN 'LINE'
141730 WHEN 23 THEN 'LINE'
141731 WHEN 24 THEN 'LINE'
141732 WHEN 25 THEN 'LINE'
141733 WHEN 26 THEN 'LINE'
141734 WHEN 27 THEN 'LINE'
141735 WHEN 28 THEN 'LINE'
141736
141737 ELSE null
141738 END object_type_code
141739 , CASE r
141740 WHEN 1 THEN '200'
141741 WHEN 2 THEN '200'
141742 WHEN 3 THEN '200'
141743 WHEN 4 THEN '200'
141744 WHEN 5 THEN '200'
141745 WHEN 6 THEN '200'
141746 WHEN 7 THEN '200'
141747 WHEN 8 THEN '200'
141748 WHEN 9 THEN '200'
141749 WHEN 10 THEN '200'
141750 WHEN 11 THEN '200'
141751 WHEN 12 THEN '200'
141752 WHEN 13 THEN '200'
141753 WHEN 14 THEN '200'
141754 WHEN 15 THEN '200'
141755 WHEN 16 THEN '200'
141756 WHEN 17 THEN '200'
141757 WHEN 18 THEN '200'
141758 WHEN 19 THEN '200'
141759 WHEN 20 THEN '200'
141760 WHEN 21 THEN '200'
141761 WHEN 22 THEN '200'
141762 WHEN 23 THEN '200'
141763 WHEN 24 THEN '200'
141764 WHEN 25 THEN '200'
141765 WHEN 26 THEN '200'
141766 WHEN 27 THEN '200'
141767 WHEN 28 THEN '200'
141768
141769 ELSE null
141770 END source_application_id
141771 , 'S' source_type_code
141772 , CASE r
141773 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE'
141774 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT'
141775 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT'
141776 WHEN 4 THEN 'AID_DIST_CCID'
141777 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
141778 WHEN 6 THEN 'POD_CCID'
141779 WHEN 7 THEN 'PO_VARIANCE_ACCOUNT'
141780 WHEN 8 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
141781 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
141782 WHEN 10 THEN 'APHD_AMOUNT'
141783 WHEN 11 THEN 'BUS_FLOW_AP_APP_ID'
141784 WHEN 12 THEN 'APHD_PAYMENT_HIST_DIST_ID'
141785 WHEN 13 THEN 'DISTRIBUTION_LINK_TYPE'
141786 WHEN 14 THEN 'POH_RATE_DATE'
141787 WHEN 15 THEN 'POH_RATE'
141788 WHEN 16 THEN 'POH_RATE_TYPE'
141789 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
141793 WHEN 21 THEN 'BUS_FLOW_INV_DIST_TYPE'
141790 WHEN 18 THEN 'APHD_REV_PAY_HIST_DIST_ID'
141791 WHEN 19 THEN 'TAX_LINE_ID'
141792 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID'
141794 WHEN 22 THEN 'BUS_FLOW_INV_ENTITY_CODE'
141795 WHEN 23 THEN 'BUS_FLOW_INV_DIST_ID'
141796 WHEN 24 THEN 'BUS_FLOW_INV_ID'
141797 WHEN 25 THEN 'REC_NREC_TAX_DIST_ID'
141798 WHEN 26 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
141799 WHEN 27 THEN 'AI_INVOICE_TYPE_PAID'
141800 WHEN 28 THEN 'AID_ENCUMBERED_FLAG'
141801
141802 ELSE null
141803 END source_code
141804 , CASE r
141805 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
141806 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
141807 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
141808 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
141809 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
141810 WHEN 6 THEN TO_CHAR(l1.POD_CCID)
141811 WHEN 7 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
141812 WHEN 8 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
141813 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
141814 WHEN 10 THEN TO_CHAR(l1.APHD_AMOUNT)
141815 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
141816 WHEN 12 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
141817 WHEN 13 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
141818 WHEN 14 THEN TO_CHAR(l3.POH_RATE_DATE)
141819 WHEN 15 THEN TO_CHAR(l3.POH_RATE)
141820 WHEN 16 THEN TO_CHAR(l3.POH_RATE_TYPE)
141821 WHEN 17 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
141822 WHEN 18 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
141823 WHEN 19 THEN TO_CHAR(l5.TAX_LINE_ID)
141824 WHEN 20 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
141825 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
141826 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
141827 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
141828 WHEN 24 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
141829 WHEN 25 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
141830 WHEN 26 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
141831 WHEN 27 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
141832 WHEN 28 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
141833
141834 ELSE null
141835 END source_value
141836 , CASE r
141837 WHEN 1 THEN fvl7.meaning
141838 WHEN 5 THEN fvl20.meaning
141839 WHEN 8 THEN fvl39.meaning
141840 WHEN 17 THEN fvl53.meaning
141841 WHEN 26 THEN fvl100.meaning
141842 WHEN 27 THEN fvl101.meaning
141843 WHEN 28 THEN fvl104.meaning
141844
141845 ELSE null
141846 END source_meaning
141847 FROM xla_events_gt xet
141848 , AP_PAYMENT_EXTRACT_DETAILS_V l1
141849 , AP_PO_HEADERS_EXTRACT_V l3
141850 , ZX_AP_DEF_TAX_EXTRACT_V l5
141851 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
141852 , fnd_lookup_values fvl7
141853 , fnd_lookup_values fvl20
141854 , fnd_lookup_values fvl39
141855 , fnd_lookup_values fvl53
141856 , fnd_lookup_values fvl100
141857 , fnd_lookup_values fvl101
141858 , fnd_lookup_values fvl104
141859 , (select rownum r from all_objects where rownum <= 28 and owner = p_apps_owner)
141860 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
141861 AND xet.event_class_code = C_EVENT_CLASS_CODE
141862 AND l1.event_id = xet.event_id
141863 AND l1.pod_po_header_id = l3.po_header_id (+) AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
141864 AND fvl7.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
141865 AND fvl7.view_application_id(+) = 201
141866 AND fvl7.language(+) = USERENV('LANG')
141867 AND fvl20.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
141868 AND fvl20.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
141869 AND fvl20.view_application_id(+) = 200
141870 AND fvl20.language(+) = USERENV('LANG')
141871 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
141872 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
141873 AND fvl39.view_application_id(+) = 200
141874 AND fvl39.language(+) = USERENV('LANG')
141875 AND fvl53.lookup_type(+) = 'YES_NO'
141876 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
141877 AND fvl53.view_application_id(+) = 0
141878 AND fvl53.language(+) = USERENV('LANG')
141879 AND fvl100.lookup_type(+) = 'YES_NO'
141880 AND fvl100.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
141881 AND fvl100.view_application_id(+) = 0
141882 AND fvl100.language(+) = USERENV('LANG')
141883 AND fvl101.lookup_type(+) = 'INVOICE TYPE'
141884 AND fvl101.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
141885 AND fvl101.view_application_id(+) = 200
141886 AND fvl101.language(+) = USERENV('LANG')
141887 AND fvl104.lookup_type(+) = 'YES_NO'
141888 AND fvl104.lookup_code(+) = l1.AID_ENCUMBERED_FLAG
141889 AND fvl104.view_application_id(+) = 0
141890 AND fvl104.language(+) = USERENV('LANG')
141891
141892 )
141893 ;
141894 --
141895 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141896
141897 trace
141898 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
141899 ,p_level => C_LEVEL_STATEMENT
141900 ,p_module => l_log_module);
141904
141901
141902 END IF;
141903
141905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141906 trace
141907 (p_msg => 'END of insert_sources_215'
141908 ,p_level => C_LEVEL_PROCEDURE
141909 ,p_module => l_log_module);
141910 END IF;
141911 EXCEPTION
141912 WHEN xla_exceptions_pkg.application_exception THEN
141913 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
141914 trace
141915 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
141916 ,p_level => C_LEVEL_EXCEPTION
141917 ,p_module => l_log_module);
141918 END IF;
141919 RAISE;
141920 WHEN OTHERS THEN
141921 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
141922 trace
141923 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
141924 ,p_level => C_LEVEL_EXCEPTION
141925 ,p_module => l_log_module);
141926 END IF;
141927 xla_exceptions_pkg.raise_message
141928 (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_215');
141929 END insert_sources_215;
141930 --
141931
141932 ---------------------------------------
141933 --
141934 -- PRIVATE FUNCTION
141935 -- EventClass_215
141936 --
141937 ----------------------------------------
141938 --
141939 FUNCTION EventClass_215
141940 (p_application_id IN NUMBER
141941 ,p_base_ledger_id IN NUMBER
141942 ,p_target_ledger_id IN NUMBER
141943 ,p_language IN VARCHAR2
141944 ,p_currency_code IN VARCHAR2
141945 ,p_sla_ledger_id IN NUMBER
141946 ,p_pad_start_date IN DATE
141947 ,p_pad_end_date IN DATE
141948 ,p_primary_ledger_id IN NUMBER)
141949 RETURN BOOLEAN IS
141950 --
141951 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REFUNDS_ALL';
141952 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REFUNDS';
141953
141954 l_calculate_acctd_flag VARCHAR2(1) :='N';
141955 l_calculate_g_l_flag VARCHAR2(1) :='N';
141956 --
141957 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141958 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141959 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141960 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141961 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141962 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141963 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141964 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141965 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141966 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141967 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141968 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141969 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141970 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141971 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141972 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141973 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141974 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141975 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141976 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141977 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141978 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141979 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
141980 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141981 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
141982 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
141983
141984 l_event_id NUMBER;
141985 l_previous_event_id NUMBER;
141986 l_first_event_id NUMBER;
141987 l_last_event_id NUMBER;
141988
141989 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
141990 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
141991 --
141992 --
141993 l_result BOOLEAN := TRUE;
141994 l_rows NUMBER := 1000;
141995 l_event_type_name VARCHAR2(80) := 'All';
141996 l_event_class_name VARCHAR2(80) := 'Refunds';
141997 l_description VARCHAR2(4000);
141998 l_transaction_reversal NUMBER;
141999 l_ae_header_id NUMBER;
142000 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
142001 l_log_module VARCHAR2(240);
142002 --
142003 l_acct_reversal_source VARCHAR2(30);
142004 l_trx_reversal_source VARCHAR2(30);
142005
142006 l_continue_with_lines BOOLEAN := TRUE;
142007 --
142008 l_acc_rev_gl_date_source DATE; -- 4262811
142009 --
142010 type t_array_event_id is table of number index by binary_integer;
142011
142012 l_rec_array_event t_rec_array_event;
142013 l_null_rec_array_event t_rec_array_event;
142014 l_array_ae_header_id xla_number_array_type;
142015 l_actual_flag VARCHAR2(1) := NULL;
142016 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
142017 l_balance_type_code VARCHAR2(1) :=NULL;
142018 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
142019
142020 --
142021 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
142022 --
142023
142027 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
142024 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
142025 TYPE t_array_source_2 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
142026 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
142028 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
142029 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
142030 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
142031 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
142032 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
142033 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
142034 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
142035 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
142036 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
142037 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
142038 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
142039 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
142040 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
142041 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
142042 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
142043 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
142044 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
142045 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
142046 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
142047 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
142048 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
142049
142050 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
142051 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
142052 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
142053 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
142054 TYPE t_array_source_20 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
142055 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
142056 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
142057 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
142058 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
142059 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
142060 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
142061 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142062 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
142063 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
142064 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
142065 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
142066 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
142067 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142068 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
142069 TYPE t_array_source_59 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
142070 TYPE t_array_source_62 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
142071 TYPE t_array_source_63 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
142072 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142073 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
142074 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142075 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
142076 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
142077 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
142078
142079 l_array_source_1 t_array_source_1;
142080 l_array_source_2 t_array_source_2;
142081 l_array_source_3 t_array_source_3;
142082 l_array_source_3_meaning t_array_lookup_meaning;
142083 l_array_source_4 t_array_source_4;
142087 l_array_source_21 t_array_source_21;
142084 l_array_source_4_meaning t_array_lookup_meaning;
142085 l_array_source_5 t_array_source_5;
142086 l_array_source_8 t_array_source_8;
142088 l_array_source_27 t_array_source_27;
142089 l_array_source_30 t_array_source_30;
142090 l_array_source_30_meaning t_array_lookup_meaning;
142091 l_array_source_38 t_array_source_38;
142092 l_array_source_49 t_array_source_49;
142093 l_array_source_54 t_array_source_54;
142094 l_array_source_55 t_array_source_55;
142095 l_array_source_56 t_array_source_56;
142096 l_array_source_60 t_array_source_60;
142097 l_array_source_60_meaning t_array_lookup_meaning;
142098 l_array_source_102 t_array_source_102;
142099 l_array_source_102_meaning t_array_lookup_meaning;
142100 l_array_source_110 t_array_source_110;
142101 l_array_source_110_meaning t_array_lookup_meaning;
142102 l_array_source_111 t_array_source_111;
142103 l_array_source_114 t_array_source_114;
142104 l_array_source_115 t_array_source_115;
142105 l_array_source_116 t_array_source_116;
142106 l_array_source_158 t_array_source_158;
142107 l_array_source_159 t_array_source_159;
142108 l_array_source_160 t_array_source_160;
142109 l_array_source_175 t_array_source_175;
142110 l_array_source_175_meaning t_array_lookup_meaning;
142111
142112 l_array_source_7 t_array_source_7;
142113 l_array_source_7_meaning t_array_lookup_meaning;
142114 l_array_source_9 t_array_source_9;
142115 l_array_source_10 t_array_source_10;
142116 l_array_source_17 t_array_source_17;
142117 l_array_source_20 t_array_source_20;
142118 l_array_source_20_meaning t_array_lookup_meaning;
142119 l_array_source_28 t_array_source_28;
142120 l_array_source_29 t_array_source_29;
142121 l_array_source_39 t_array_source_39;
142122 l_array_source_39_meaning t_array_lookup_meaning;
142123 l_array_source_40 t_array_source_40;
142124 l_array_source_41 t_array_source_41;
142125 l_array_source_42 t_array_source_42;
142126 l_array_source_47 t_array_source_47;
142127 l_array_source_48 t_array_source_48;
142128 l_array_source_50 t_array_source_50;
142129 l_array_source_51 t_array_source_51;
142130 l_array_source_52 t_array_source_52;
142131 l_array_source_53 t_array_source_53;
142132 l_array_source_53_meaning t_array_lookup_meaning;
142133 l_array_source_57 t_array_source_57;
142134 l_array_source_58 t_array_source_58;
142135 l_array_source_59 t_array_source_59;
142136 l_array_source_62 t_array_source_62;
142137 l_array_source_63 t_array_source_63;
142138 l_array_source_64 t_array_source_64;
142139 l_array_source_65 t_array_source_65;
142140 l_array_source_66 t_array_source_66;
142141 l_array_source_100 t_array_source_100;
142142 l_array_source_100_meaning t_array_lookup_meaning;
142143 l_array_source_101 t_array_source_101;
142144 l_array_source_101_meaning t_array_lookup_meaning;
142145 l_array_source_104 t_array_source_104;
142146 l_array_source_104_meaning t_array_lookup_meaning;
142147
142148 --
142149 CURSOR header_cur
142150 IS
142151 SELECT /*+ leading(xet) cardinality(xet,1) */
142152 -- Event Class Code: REFUNDS
142153 xet.entity_id
142154 ,xet.legal_entity_id
142155 ,xet.entity_code
142156 ,xet.transaction_number
142157 ,xet.event_id
142158 ,xet.event_class_code
142159 ,xet.event_type_code
142160 ,xet.event_number
142161 ,xet.event_date
142162 ,xet.transaction_date
142163 ,xet.reference_num_1
142164 ,xet.reference_num_2
142165 ,xet.reference_num_3
142166 ,xet.reference_num_4
142167 ,xet.reference_char_1
142168 ,xet.reference_char_2
142169 ,xet.reference_char_3
142170 ,xet.reference_char_4
142171 ,xet.reference_date_1
142172 ,xet.reference_date_2
142173 ,xet.reference_date_3
142174 ,xet.reference_date_4
142175 ,xet.event_created_by
142176 ,xet.budgetary_control_flag
142177 , h2.CGAC_AP_ASSET_CCID source_1
142178 , h4.FSP_DISC_TAKEN_CCID source_2
142179 , h4.ASP_DISCOUNT_DIST_METHOD source_3
142180 , fvl3.meaning source_3_meaning
142181 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_4
142182 , fvl4.meaning source_4_meaning
142183 , h4.ASP_RATE_VAR_GAIN_CCID source_5
142184 , h4.ASP_RATE_VAR_LOSS_CCID source_8
142185 , h2.CGAC_CASH_CLEARING_CCID source_21
142186 , h4.ASP_DISC_TAKEN_CCID source_27
142187 , h4.ASP_AUTO_OFFSET_FLAG source_30
142188 , fvl30.meaning source_30_meaning
142189 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_38
142190 , h2.AC_CURRENCY_CODE source_49
142191 , h2.AC_VENDOR_ID source_54
142192 , h2.AC_VENDOR_SITE_ID source_55
142193 , h2.THIRD_PARTY_TYPE source_56
142194 , h2.PAYMENT_TYPE source_60
142195 , fvl60.meaning source_60_meaning
142196 , h4.FSP_PURCH_ENCUMBRANCE_FLAG source_102
142197 , fvl102.meaning source_102_meaning
142198 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_110
142199 , fvl110.meaning source_110_meaning
142200 , h2.AC_FUTURE_PAY_DUE_DATE source_111
142201 , h2.AC_EXCHANGE_DATE source_114
142202 , h2.AC_EXCHANGE_RATE source_115
142203 , h2.AC_EXCHANGE_RATE_TYPE source_116
142204 , h2.AC_DOC_CATEGORY_CODE source_158
142205 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_159
142206 , h2.AC_DOC_SEQUENCE_VALUE source_160
142207 , h2.TRANSAC_REVERSAL_FLAG source_175
142208 , fvl175.meaning source_175_meaning
142209 FROM xla_events_gt xet
142210 , AP_PAYMENT_EXTRACT_HEADER_V h2
142211 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
142212 , fnd_lookup_values fvl3
142213 , fnd_lookup_values fvl4
142214 , fnd_lookup_values fvl30
142215 , fnd_lookup_values fvl60
142219 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
142216 , fnd_lookup_values fvl102
142217 , fnd_lookup_values fvl110
142218 , fnd_lookup_values fvl175
142220 and xet.event_class_code = C_EVENT_CLASS_CODE
142221 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
142222 AND h4.asp_org_id = h2.ac_org_id AND fvl3.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
142223 AND fvl3.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
142224 AND fvl3.view_application_id(+) = 200
142225 AND fvl3.language(+) = USERENV('LANG')
142226 AND fvl4.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
142227 AND fvl4.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
142228 AND fvl4.view_application_id(+) = 200
142229 AND fvl4.language(+) = USERENV('LANG')
142230 AND fvl30.lookup_type(+) = 'YES_NO'
142231 AND fvl30.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
142232 AND fvl30.view_application_id(+) = 0
142233 AND fvl30.language(+) = USERENV('LANG')
142234 AND fvl60.lookup_type(+) = 'PAYMENT TYPE'
142235 AND fvl60.lookup_code(+) = h2.PAYMENT_TYPE
142236 AND fvl60.view_application_id(+) = 200
142237 AND fvl60.language(+) = USERENV('LANG')
142238 AND fvl102.lookup_type(+) = 'YES_NO'
142239 AND fvl102.lookup_code(+) = h4.FSP_PURCH_ENCUMBRANCE_FLAG
142240 AND fvl102.view_application_id(+) = 0
142241 AND fvl102.language(+) = USERENV('LANG')
142242 AND fvl110.lookup_type(+) = 'YES_NO'
142243 AND fvl110.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
142244 AND fvl110.view_application_id(+) = 0
142245 AND fvl110.language(+) = USERENV('LANG')
142246 AND fvl175.lookup_type(+) = 'YES_NO'
142247 AND fvl175.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
142248 AND fvl175.view_application_id(+) = 0
142249 AND fvl175.language(+) = USERENV('LANG')
142250
142251 ORDER BY event_id
142252 ;
142253
142254
142255 --
142256 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
142257 IS
142258 SELECT /*+ leading(xet) cardinality(xet,1) */
142259 -- Event Class Code: REFUNDS
142260 xet.entity_id
142261 ,xet.legal_entity_id
142262 ,xet.entity_code
142263 ,xet.transaction_number
142264 ,xet.event_id
142265 ,xet.event_class_code
142266 ,xet.event_type_code
142267 ,xet.event_number
142268 ,xet.event_date
142269 ,xet.transaction_date
142270 ,xet.reference_num_1
142271 ,xet.reference_num_2
142272 ,xet.reference_num_3
142273 ,xet.reference_num_4
142274 ,xet.reference_char_1
142275 ,xet.reference_char_2
142276 ,xet.reference_char_3
142277 ,xet.reference_char_4
142278 ,xet.reference_date_1
142279 ,xet.reference_date_2
142280 ,xet.reference_date_3
142281 ,xet.reference_date_4
142282 ,xet.event_created_by
142283 ,xet.budgetary_control_flag
142284 , l1.LINE_NUMBER
142285 , l1.RELATED_INV_DIST_DEST_TYPE source_7
142286 , fvl7.meaning source_7_meaning
142287 , l1.APHD_PAYMENT_BASE_AMT source_9
142288 , l1.APHD_CLEARING_BASE_AMT source_10
142289 , l1.AID_DIST_CCID source_17
142290 , l1.AID_LINE_TYPE_LOOKUP_CODE source_20
142291 , fvl20.meaning source_20_meaning
142292 , l1.POD_CCID source_28
142293 , l1.PO_VARIANCE_ACCOUNT source_29
142294 , l1.APHD_PAY_DIST_LOOKUP_CODE source_39
142295 , fvl39.meaning source_39_meaning
142296 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_40
142297 , l1.APHD_AMOUNT source_41
142298 , l1.BUS_FLOW_AP_APP_ID source_42
142299 , l1.APHD_PAYMENT_HIST_DIST_ID source_47
142300 , l1.DISTRIBUTION_LINK_TYPE source_48
142301 , l3.POH_RATE_DATE source_50
142302 , l3.POH_RATE source_51
142303 , l3.POH_RATE_TYPE source_52
142304 , l1.OVERRIDE_ACCTD_AMT_FLAG source_53
142305 , fvl53.meaning source_53_meaning
142306 , l1.APHD_REV_PAY_HIST_DIST_ID source_57
142307 , l5.TAX_LINE_ID source_58
142308 , l5.SUMMARY_TAX_LINE_ID source_59
142309 , l1.BUS_FLOW_INV_DIST_TYPE source_62
142310 , l1.BUS_FLOW_INV_ENTITY_CODE source_63
142311 , l1.BUS_FLOW_INV_DIST_ID source_64
142312 , l1.BUS_FLOW_INV_ID source_65
142313 , l6.REC_NREC_TAX_DIST_ID source_66
142314 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_100
142315 , fvl100.meaning source_100_meaning
142316 , l1.AI_INVOICE_TYPE_PAID source_101
142317 , fvl101.meaning source_101_meaning
142318 , l1.AID_ENCUMBERED_FLAG source_104
142319 , fvl104.meaning source_104_meaning
142320 FROM xla_events_gt xet
142321 , AP_PAYMENT_EXTRACT_DETAILS_V l1
142322 , AP_PO_HEADERS_EXTRACT_V l3
142323 , ZX_AP_DEF_TAX_EXTRACT_V l5
142324 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
142325 , fnd_lookup_values fvl7
142326 , fnd_lookup_values fvl20
142327 , fnd_lookup_values fvl39
142328 , fnd_lookup_values fvl53
142329 , fnd_lookup_values fvl100
142330 , fnd_lookup_values fvl101
142331 , fnd_lookup_values fvl104
142332 WHERE xet.event_id between x_first_event_id and x_last_event_id
142333 and xet.event_date between p_pad_start_date and p_pad_end_date
142334 and xet.event_class_code = C_EVENT_CLASS_CODE
142335 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
142336 AND l1.POD_PO_Header_Id = l3.PO_Header_Id (+) AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+) AND fvl7.lookup_type(+) = 'DESTINATION TYPE'
142337 AND fvl7.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
142338 AND fvl7.view_application_id(+) = 201
142339 AND fvl7.language(+) = USERENV('LANG')
142340 AND fvl20.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
142341 AND fvl20.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
142342 AND fvl20.view_application_id(+) = 200
142343 AND fvl20.language(+) = USERENV('LANG')
142347 AND fvl39.language(+) = USERENV('LANG')
142344 AND fvl39.lookup_type(+) = 'PAY_DIST_TYPES'
142345 AND fvl39.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
142346 AND fvl39.view_application_id(+) = 200
142348 AND fvl53.lookup_type(+) = 'YES_NO'
142349 AND fvl53.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
142350 AND fvl53.view_application_id(+) = 0
142351 AND fvl53.language(+) = USERENV('LANG')
142352 AND fvl100.lookup_type(+) = 'YES_NO'
142353 AND fvl100.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
142354 AND fvl100.view_application_id(+) = 0
142355 AND fvl100.language(+) = USERENV('LANG')
142356 AND fvl101.lookup_type(+) = 'INVOICE TYPE'
142357 AND fvl101.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
142358 AND fvl101.view_application_id(+) = 200
142359 AND fvl101.language(+) = USERENV('LANG')
142360 AND fvl104.lookup_type(+) = 'YES_NO'
142361 AND fvl104.lookup_code(+) = l1.AID_ENCUMBERED_FLAG
142362 AND fvl104.view_application_id(+) = 0
142363 AND fvl104.language(+) = USERENV('LANG')
142364 ;
142365
142366 --
142367 BEGIN
142368 IF g_log_enabled THEN
142369 l_log_module := C_DEFAULT_MODULE||'.EventClass_215';
142370 END IF;
142371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142372 trace
142373 (p_msg => 'BEGIN of EventClass_215'
142374 ,p_level => C_LEVEL_PROCEDURE
142375 ,p_module => l_log_module);
142376 END IF;
142377
142378 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142379 trace
142380 (p_msg => 'p_application_id = '||p_application_id||
142381 ' - p_base_ledger_id = '||p_base_ledger_id||
142382 ' - p_target_ledger_id = '||p_target_ledger_id||
142383 ' - p_language = '||p_language||
142384 ' - p_currency_code = '||p_currency_code||
142385 ' - p_sla_ledger_id = '||p_sla_ledger_id
142386 ,p_level => C_LEVEL_STATEMENT
142387 ,p_module => l_log_module);
142388 END IF;
142389 --
142390 -- initialze arrays
142391 --
142392 g_array_event.DELETE;
142393 l_rec_array_event := l_null_rec_array_event;
142394 --
142395 --------------------------------------
142396 -- 4262811 Initialze MPA Line Number
142397 --------------------------------------
142398 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
142399
142400 --
142401
142402 --
142403 OPEN header_cur;
142404 --
142405 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142406 trace
142407 (p_msg => 'SQL - FETCH header_cur'
142408 ,p_level => C_LEVEL_STATEMENT
142409 ,p_module => l_log_module);
142410 END IF;
142411 --
142412 LOOP
142413 FETCH header_cur BULK COLLECT INTO
142414 l_array_entity_id
142415 , l_array_legal_entity_id
142416 , l_array_entity_code
142417 , l_array_transaction_num
142418 , l_array_event_id
142419 , l_array_class_code
142420 , l_array_event_type
142421 , l_array_event_number
142422 , l_array_event_date
142423 , l_array_transaction_date
142424 , l_array_reference_num_1
142425 , l_array_reference_num_2
142426 , l_array_reference_num_3
142427 , l_array_reference_num_4
142428 , l_array_reference_char_1
142429 , l_array_reference_char_2
142430 , l_array_reference_char_3
142431 , l_array_reference_char_4
142432 , l_array_reference_date_1
142433 , l_array_reference_date_2
142434 , l_array_reference_date_3
142435 , l_array_reference_date_4
142436 , l_array_event_created_by
142437 , l_array_budgetary_control_flag
142438 , l_array_source_1
142439 , l_array_source_2
142440 , l_array_source_3
142441 , l_array_source_3_meaning
142442 , l_array_source_4
142443 , l_array_source_4_meaning
142444 , l_array_source_5
142445 , l_array_source_8
142446 , l_array_source_21
142447 , l_array_source_27
142448 , l_array_source_30
142449 , l_array_source_30_meaning
142450 , l_array_source_38
142451 , l_array_source_49
142452 , l_array_source_54
142453 , l_array_source_55
142454 , l_array_source_56
142455 , l_array_source_60
142456 , l_array_source_60_meaning
142457 , l_array_source_102
142458 , l_array_source_102_meaning
142459 , l_array_source_110
142460 , l_array_source_110_meaning
142461 , l_array_source_111
142462 , l_array_source_114
142463 , l_array_source_115
142464 , l_array_source_116
142465 , l_array_source_158
142466 , l_array_source_159
142467 , l_array_source_160
142468 , l_array_source_175
142469 , l_array_source_175_meaning
142470 LIMIT l_rows;
142471 --
142472 IF (C_LEVEL_EVENT >= g_log_level) THEN
142473 trace
142474 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
142475 ,p_level => C_LEVEL_EVENT
142476 ,p_module => l_log_module);
142477 END IF;
142478 --
142479 EXIT WHEN l_array_entity_id.COUNT = 0;
142480
142481 -- initialize arrays
142482 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
142483 XLA_AE_LINES_PKG.g_rec_lines := NULL;
142484
142485 --
142486 -- Bug 4458708
142487 --
142488 XLA_AE_LINES_PKG.g_LineNumber := 0;
142489
142490
142491 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
142492 g_last_hdr_idx := l_array_event_id.LAST;
142493 --
142494 -- loop for the headers. Each iteration is for each header extract row
142495 -- fetched in header cursor
142496 --
142497 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
142498
142499 --
142503 (p_application_id => p_application_id
142500 -- set event info as cache for other routines to refer event attributes
142501 --
142502 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
142504 ,p_primary_ledger_id => p_primary_ledger_id
142505 ,p_base_ledger_id => p_base_ledger_id
142506 ,p_target_ledger_id => p_target_ledger_id
142507 ,p_entity_id => l_array_entity_id(hdr_idx)
142508 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
142509 ,p_entity_code => l_array_entity_code(hdr_idx)
142510 ,p_transaction_num => l_array_transaction_num(hdr_idx)
142511 ,p_event_id => l_array_event_id(hdr_idx)
142512 ,p_event_class_code => l_array_class_code(hdr_idx)
142513 ,p_event_type_code => l_array_event_type(hdr_idx)
142514 ,p_event_number => l_array_event_number(hdr_idx)
142515 ,p_event_date => l_array_event_date(hdr_idx)
142516 ,p_transaction_date => l_array_transaction_date(hdr_idx)
142517 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
142518 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
142519 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
142520 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
142521 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
142522 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
142523 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
142524 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
142525 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
142526 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
142527 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
142528 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
142529 ,p_event_created_by => l_array_event_created_by(hdr_idx)
142530 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
142531
142532 --
142533 -- set the status of entry to C_VALID (0)
142534 --
142535 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
142536
142537 --
142538 -- initialize a row for ae header
142539 --
142540 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
142541
142542 l_event_id := l_array_event_id(hdr_idx);
142543
142544 --
142545 -- storing the hdr_idx for event. May be used by line cursor.
142546 --
142547 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
142548
142549 --
142550 -- store sources from header extract. This can be improved to
142551 -- store only those sources from header extract that may be used in lines
142552 --
142553
142554 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
142555 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
142556 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
142557 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
142558 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
142559 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
142560 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
142561 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
142562 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
142563 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
142564 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
142565 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
142566 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
142567 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
142568 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
142569 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
142570 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
142571 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
142572 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
142573 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
142574 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
142575 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
142576 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
142577 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
142578 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
142579 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
142580 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
142581 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
142582 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
142583 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
142584 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
142585 g_array_event(l_event_id).array_value_char('source_175_meaning') := l_array_source_175_meaning(hdr_idx);
142586
142587 --
142588 -- initilaize the status of ae headers for diffrent balance types
142589 -- the status is initialised to C_NOT_CREATED (2)
142590 --
142591 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
142592 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
142596 -- call api to validate and store accounting attributes for header
142593 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
142594
142595 --
142597 --
142598
142599 ------------------------------------------------------------
142600 -- Accrual Reversal : to get date for Standard Source (NONE)
142601 ------------------------------------------------------------
142602 l_acc_rev_gl_date_source := NULL;
142603
142604 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
142605 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
142606 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
142607 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
142608 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
142609 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
142610 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
142611 l_rec_acct_attrs.array_date_value(4) :=
142612 xla_ae_sources_pkg.GetSystemSourceDate(
142613 p_source_code => 'XLA_EVENT_DATE'
142614 , p_source_type_code => 'Y'
142615 , p_source_application_id => 602
142616 );
142617 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
142618 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_175');
142619
142620
142621 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
142622
142623 XLA_AE_HEADER_PKG.SetJeCategoryName;
142624
142625 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
142626 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
142627 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
142628 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
142629 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
142630
142631
142632 -- No header level analytical criteria
142633
142634 --
142635 --accounting attribute enhancement, bug 3612931
142636 --
142637 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_175'), 1,30);
142638
142639 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
142640 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
142641
142642 xla_accounting_err_pkg.build_message
142643 (p_appli_s_name => 'XLA'
142644 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
142645 ,p_token_1 => 'ACCT_ATTR_NAME'
142646 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
142647 ,p_token_2 => 'PRODUCT_NAME'
142648 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
142649 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
142650 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
142651 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
142652
142653 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
142654 --
142655 -- following sets the accounting attributes needed to reverse
142656 -- accounting for a distributeion
142657 --
142658 xla_ae_lines_pkg.SetTrxReversalAttrs
142659 (p_event_id => l_event_id
142660 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
142661 ,p_trx_reversal_source => l_trx_reversal_source);
142662
142663 END IF;
142664
142665
142666 ----------------------------------------------------------------
142667 -- 4262811 - update the header statuses to invalid in need be
142668 ----------------------------------------------------------------
142669 --
142670 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
142671
142672
142673 -----------------------------------------------
142674 -- No accrual reversal for the event class/type
142675 -----------------------------------------------
142676 ----------------------------------------------------------------
142677
142678 --
142679 -- this ends the header loop iteration for one bulk fetch
142680 --
142681 END LOOP;
142682
142683 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
142684 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
142685
142686 --
142687 -- insert dummy rows into lines gt table that were created due to
142688 -- transaction reversals
142689 --
142690 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
142691 l_result := XLA_AE_LINES_PKG.InsertLines;
142692 END IF;
142693
142694 --
142695 -- reset the temp_line_num for each set of events fetched from header
142696 -- cursor rather than doing it for each new event in line cursor
142697 -- Bug 3939231
142698 --
142699 xla_ae_lines_pkg.g_temp_line_num := 0;
142700
142701
142702
142703 --
142704 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
142705 --
142706 --
142707 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142708
142709 trace
142710 (p_msg => 'SQL - FETCH line_cur'
142711 ,p_level => C_LEVEL_STATEMENT
142712 ,p_module => l_log_module);
142713
142714 END IF;
142715 --
142716 --
142717 LOOP
142718 --
142719 FETCH line_cur BULK COLLECT INTO
142720 l_array_entity_id
142721 , l_array_legal_entity_id
142722 , l_array_entity_code
142723 , l_array_transaction_num
142724 , l_array_event_id
142725 , l_array_class_code
142726 , l_array_event_type
142727 , l_array_event_number
142731 , l_array_reference_num_2
142728 , l_array_event_date
142729 , l_array_transaction_date
142730 , l_array_reference_num_1
142732 , l_array_reference_num_3
142733 , l_array_reference_num_4
142734 , l_array_reference_char_1
142735 , l_array_reference_char_2
142736 , l_array_reference_char_3
142737 , l_array_reference_char_4
142738 , l_array_reference_date_1
142739 , l_array_reference_date_2
142740 , l_array_reference_date_3
142741 , l_array_reference_date_4
142742 , l_array_event_created_by
142743 , l_array_budgetary_control_flag
142744 , l_array_extract_line_num
142745 , l_array_source_7
142746 , l_array_source_7_meaning
142747 , l_array_source_9
142748 , l_array_source_10
142749 , l_array_source_17
142750 , l_array_source_20
142751 , l_array_source_20_meaning
142752 , l_array_source_28
142753 , l_array_source_29
142754 , l_array_source_39
142755 , l_array_source_39_meaning
142756 , l_array_source_40
142757 , l_array_source_41
142758 , l_array_source_42
142759 , l_array_source_47
142760 , l_array_source_48
142761 , l_array_source_50
142762 , l_array_source_51
142763 , l_array_source_52
142764 , l_array_source_53
142765 , l_array_source_53_meaning
142766 , l_array_source_57
142767 , l_array_source_58
142768 , l_array_source_59
142769 , l_array_source_62
142770 , l_array_source_63
142771 , l_array_source_64
142772 , l_array_source_65
142773 , l_array_source_66
142774 , l_array_source_100
142775 , l_array_source_100_meaning
142776 , l_array_source_101
142777 , l_array_source_101_meaning
142778 , l_array_source_104
142779 , l_array_source_104_meaning
142780 LIMIT l_rows;
142781
142782 --
142783 IF (C_LEVEL_EVENT >= g_log_level) THEN
142784 trace
142785 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
142786 ,p_level => C_LEVEL_EVENT
142787 ,p_module => l_log_module);
142788 END IF;
142789 --
142790 EXIT WHEN l_array_entity_id.count = 0;
142791
142792 XLA_AE_LINES_PKG.g_rec_lines := null;
142793
142794 --
142795 -- Bug 4458708
142796 --
142797 XLA_AE_LINES_PKG.g_LineNumber := 0;
142798 --
142799 --
142800
142801 FOR Idx IN 1..l_array_event_id.count LOOP
142802 --
142803 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
142804 --
142805 l_event_id := l_array_event_id(idx); -- 5648433
142806
142807 --
142808 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
142809 --
142810
142811 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
142812 (g_array_event(l_event_id).array_value_num('header_index'))
142813 ,'N'
142814 ) <> 'Y'
142815 THEN
142816 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142817 trace
142818 (p_msg => 'Trancaction revesal option is not Y '
142819 ,p_level => C_LEVEL_STATEMENT
142820 ,p_module => l_log_module);
142821 END IF;
142822
142823 --
142824 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
142825 --
142826 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
142827 --
142828 -- set event info as cache for other routines to refer event attributes
142829 --
142830
142831 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
142832 l_previous_event_id := l_event_id;
142833
142834 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
142835 (p_application_id => p_application_id
142836 ,p_primary_ledger_id => p_primary_ledger_id
142837 ,p_base_ledger_id => p_base_ledger_id
142838 ,p_target_ledger_id => p_target_ledger_id
142839 ,p_entity_id => l_array_entity_id(Idx)
142840 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
142841 ,p_entity_code => l_array_entity_code(Idx)
142842 ,p_transaction_num => l_array_transaction_num(Idx)
142843 ,p_event_id => l_array_event_id(Idx)
142844 ,p_event_class_code => l_array_class_code(Idx)
142845 ,p_event_type_code => l_array_event_type(Idx)
142846 ,p_event_number => l_array_event_number(Idx)
142847 ,p_event_date => l_array_event_date(Idx)
142848 ,p_transaction_date => l_array_transaction_date(Idx)
142849 ,p_reference_num_1 => l_array_reference_num_1(Idx)
142850 ,p_reference_num_2 => l_array_reference_num_2(Idx)
142851 ,p_reference_num_3 => l_array_reference_num_3(Idx)
142852 ,p_reference_num_4 => l_array_reference_num_4(Idx)
142853 ,p_reference_char_1 => l_array_reference_char_1(Idx)
142854 ,p_reference_char_2 => l_array_reference_char_2(Idx)
142855 ,p_reference_char_3 => l_array_reference_char_3(Idx)
142856 ,p_reference_char_4 => l_array_reference_char_4(Idx)
142857 ,p_reference_date_1 => l_array_reference_date_1(Idx)
142858 ,p_reference_date_2 => l_array_reference_date_2(Idx)
142859 ,p_reference_date_3 => l_array_reference_date_3(Idx)
142860 ,p_reference_date_4 => l_array_reference_date_4(Idx)
142861 ,p_event_created_by => l_array_event_created_by(Idx)
142862 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
142863 --
142864 END IF;
142865
142866
142867
142868 --
142869 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
142870
142874 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
142871 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
142872
142873 IF l_continue_with_lines THEN
142875 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
142876
142877 xla_accounting_err_pkg.build_message
142878 (p_appli_s_name => 'XLA'
142879 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
142880 ,p_token_1 => 'LINE_NUMBER'
142881 ,p_value_1 => l_array_extract_line_num(Idx)
142882 ,p_token_2 => 'PRODUCT_NAME'
142883 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
142884 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
142885 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
142886 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
142887
142888 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
142889 --
142890 -- following sets the accounting attributes needed to reverse
142891 -- accounting for a distributeion
142892 --
142893
142894 --
142895 -- 5217187
142896 --
142897 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
142898 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
142899 g_array_event(l_event_id).array_value_num('header_index'));
142900 --
142901 --
142902
142903 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
142904 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_40(Idx);
142905 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
142906 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_47(Idx);
142907 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
142908 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_48(Idx);
142909 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
142910 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_56');
142911 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
142912 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_57(Idx);
142913 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
142914 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_48(Idx);
142915 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
142916 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_58(Idx);
142917 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
142918 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_66(Idx);
142919 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
142920 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_59(Idx);
142921
142922
142923 xla_ae_lines_pkg.SetAcctReversalAttrs
142924 (p_event_id => l_event_id
142925 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
142926 ,p_calculate_acctd_flag => l_calculate_acctd_flag
142927 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
142928 END IF;
142929
142930 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
142931 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
142932
142933 --
142934 AcctLineType_40 (
142935 p_application_id => p_application_id
142936 ,p_event_id => l_event_id
142937 ,p_calculate_acctd_flag => l_calculate_acctd_flag
142938 ,p_calculate_g_l_flag => l_calculate_g_l_flag
142939 ,p_actual_flag => l_actual_flag
142940 ,p_balance_type_code => l_balance_type_code
142941 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
142942
142943 , p_source_9 => l_array_source_9(Idx)
142944 , p_source_20 => l_array_source_20(Idx)
142945 , p_source_20_meaning => l_array_source_20_meaning(Idx)
142946 , p_source_28 => l_array_source_28(Idx)
142947 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
142948 , p_source_39 => l_array_source_39(Idx)
142949 , p_source_39_meaning => l_array_source_39_meaning(Idx)
142950 , p_source_40 => l_array_source_40(Idx)
142951 , p_source_41 => l_array_source_41(Idx)
142952 , p_source_42 => l_array_source_42(Idx)
142953 , p_source_47 => l_array_source_47(Idx)
142954 , p_source_48 => l_array_source_48(Idx)
142955 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
142956 , p_source_50 => l_array_source_50(Idx)
142957 , p_source_51 => l_array_source_51(Idx)
142958 , p_source_52 => l_array_source_52(Idx)
142959 , p_source_53 => l_array_source_53(Idx)
142960 , p_source_53_meaning => l_array_source_53_meaning(Idx)
142961 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
142962 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
142963 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
142964 , p_source_57 => l_array_source_57(Idx)
142965 , p_source_58 => l_array_source_58(Idx)
142966 , p_source_59 => l_array_source_59(Idx)
142967 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
142968 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
142969 , p_source_62 => l_array_source_62(Idx)
142970 , p_source_63 => l_array_source_63(Idx)
142971 , p_source_64 => l_array_source_64(Idx)
142972 , p_source_65 => l_array_source_65(Idx)
142973 , p_source_66 => l_array_source_66(Idx)
142974 );
142975 If(l_balance_type_code = 'A') THEN
142976 l_actual_gain_loss_ref := l_gain_or_loss_ref;
142977 END IF;
142978
142979 --
142980
142981
142982 --
142983 AcctLineType_46 (
142984 p_application_id => p_application_id
142985 ,p_event_id => l_event_id
142986 ,p_calculate_acctd_flag => l_calculate_acctd_flag
142990 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
142987 ,p_calculate_g_l_flag => l_calculate_g_l_flag
142988 ,p_actual_flag => l_actual_flag
142989 ,p_balance_type_code => l_balance_type_code
142991
142992 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
142993 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
142994 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
142995 , p_source_7 => l_array_source_7(Idx)
142996 , p_source_7_meaning => l_array_source_7_meaning(Idx)
142997 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
142998 , p_source_9 => l_array_source_9(Idx)
142999 , p_source_10 => l_array_source_10(Idx)
143000 , p_source_17 => l_array_source_17(Idx)
143001 , p_source_20 => l_array_source_20(Idx)
143002 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143003 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143004 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143005 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143006 , p_source_40 => l_array_source_40(Idx)
143007 , p_source_42 => l_array_source_42(Idx)
143008 , p_source_47 => l_array_source_47(Idx)
143009 , p_source_48 => l_array_source_48(Idx)
143010 , p_source_53 => l_array_source_53(Idx)
143011 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143012 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143013 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143014 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143015 , p_source_57 => l_array_source_57(Idx)
143016 , p_source_58 => l_array_source_58(Idx)
143017 , p_source_59 => l_array_source_59(Idx)
143018 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143019 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143020 , p_source_62 => l_array_source_62(Idx)
143021 , p_source_63 => l_array_source_63(Idx)
143022 , p_source_64 => l_array_source_64(Idx)
143023 , p_source_65 => l_array_source_65(Idx)
143024 , p_source_66 => l_array_source_66(Idx)
143025 );
143026 If(l_balance_type_code = 'A') THEN
143027 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143028 END IF;
143029
143030 --
143031
143032
143033 --
143034 AcctLineType_49 (
143035 p_application_id => p_application_id
143036 ,p_event_id => l_event_id
143037 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143038 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143039 ,p_actual_flag => l_actual_flag
143040 ,p_balance_type_code => l_balance_type_code
143041 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143042
143043 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143044 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143045 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
143046 , p_source_7 => l_array_source_7(Idx)
143047 , p_source_7_meaning => l_array_source_7_meaning(Idx)
143048 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
143049 , p_source_9 => l_array_source_9(Idx)
143050 , p_source_10 => l_array_source_10(Idx)
143051 , p_source_17 => l_array_source_17(Idx)
143052 , p_source_20 => l_array_source_20(Idx)
143053 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143054 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143055 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143056 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143057 , p_source_39 => l_array_source_39(Idx)
143058 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143059 , p_source_40 => l_array_source_40(Idx)
143060 , p_source_42 => l_array_source_42(Idx)
143061 , p_source_47 => l_array_source_47(Idx)
143062 , p_source_48 => l_array_source_48(Idx)
143063 , p_source_53 => l_array_source_53(Idx)
143064 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143065 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143066 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143067 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143068 , p_source_57 => l_array_source_57(Idx)
143069 , p_source_58 => l_array_source_58(Idx)
143070 , p_source_59 => l_array_source_59(Idx)
143071 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143072 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143073 , p_source_62 => l_array_source_62(Idx)
143074 , p_source_63 => l_array_source_63(Idx)
143075 , p_source_64 => l_array_source_64(Idx)
143076 , p_source_65 => l_array_source_65(Idx)
143077 , p_source_66 => l_array_source_66(Idx)
143078 , p_source_100 => l_array_source_100(Idx)
143079 , p_source_100_meaning => l_array_source_100_meaning(Idx)
143080 );
143081 If(l_balance_type_code = 'A') THEN
143082 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143083 END IF;
143084
143085 --
143086
143087
143088 --
143089 AcctLineType_66 (
143090 p_application_id => p_application_id
143091 ,p_event_id => l_event_id
143092 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143093 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143094 ,p_actual_flag => l_actual_flag
143095 ,p_balance_type_code => l_balance_type_code
143096 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143097
143098 , p_source_9 => l_array_source_9(Idx)
143099 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
143100 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143101 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143102 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143103 , p_source_39 => l_array_source_39(Idx)
143104 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143105 , p_source_40 => l_array_source_40(Idx)
143109 , p_source_48 => l_array_source_48(Idx)
143106 , p_source_41 => l_array_source_41(Idx)
143107 , p_source_42 => l_array_source_42(Idx)
143108 , p_source_47 => l_array_source_47(Idx)
143110 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143111 , p_source_53 => l_array_source_53(Idx)
143112 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143113 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143114 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143115 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143116 , p_source_57 => l_array_source_57(Idx)
143117 , p_source_58 => l_array_source_58(Idx)
143118 , p_source_59 => l_array_source_59(Idx)
143119 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143120 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143121 , p_source_62 => l_array_source_62(Idx)
143122 , p_source_63 => l_array_source_63(Idx)
143123 , p_source_64 => l_array_source_64(Idx)
143124 , p_source_65 => l_array_source_65(Idx)
143125 , p_source_66 => l_array_source_66(Idx)
143126 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143127 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143128 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143129 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143130 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143131 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143132 );
143133 If(l_balance_type_code = 'A') THEN
143134 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143135 END IF;
143136
143137 --
143138
143139
143140 --
143141 AcctLineType_67 (
143142 p_application_id => p_application_id
143143 ,p_event_id => l_event_id
143144 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143145 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143146 ,p_actual_flag => l_actual_flag
143147 ,p_balance_type_code => l_balance_type_code
143148 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143149
143150 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143151 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143152 , p_source_9 => l_array_source_9(Idx)
143153 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
143154 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143155 , p_source_39 => l_array_source_39(Idx)
143156 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143157 , p_source_40 => l_array_source_40(Idx)
143158 , p_source_41 => l_array_source_41(Idx)
143159 , p_source_42 => l_array_source_42(Idx)
143160 , p_source_47 => l_array_source_47(Idx)
143161 , p_source_48 => l_array_source_48(Idx)
143162 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143163 , p_source_53 => l_array_source_53(Idx)
143164 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143165 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143166 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143167 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143168 , p_source_57 => l_array_source_57(Idx)
143169 , p_source_58 => l_array_source_58(Idx)
143170 , p_source_59 => l_array_source_59(Idx)
143171 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143172 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143173 , p_source_62 => l_array_source_62(Idx)
143174 , p_source_63 => l_array_source_63(Idx)
143175 , p_source_64 => l_array_source_64(Idx)
143176 , p_source_65 => l_array_source_65(Idx)
143177 , p_source_66 => l_array_source_66(Idx)
143178 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143179 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143180 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143181 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143182 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143183 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143184 );
143185 If(l_balance_type_code = 'A') THEN
143186 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143187 END IF;
143188
143189 --
143190
143191
143192 --
143193 AcctLineType_68 (
143194 p_application_id => p_application_id
143195 ,p_event_id => l_event_id
143196 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143197 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143198 ,p_actual_flag => l_actual_flag
143199 ,p_balance_type_code => l_balance_type_code
143200 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143201
143202 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143203 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143204 , p_source_9 => l_array_source_9(Idx)
143205 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
143206 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143207 , p_source_39 => l_array_source_39(Idx)
143208 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143209 , p_source_40 => l_array_source_40(Idx)
143210 , p_source_41 => l_array_source_41(Idx)
143211 , p_source_42 => l_array_source_42(Idx)
143212 , p_source_47 => l_array_source_47(Idx)
143213 , p_source_48 => l_array_source_48(Idx)
143214 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143215 , p_source_53 => l_array_source_53(Idx)
143216 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143217 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143218 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143219 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143220 , p_source_57 => l_array_source_57(Idx)
143224 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143221 , p_source_58 => l_array_source_58(Idx)
143222 , p_source_59 => l_array_source_59(Idx)
143223 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143225 , p_source_62 => l_array_source_62(Idx)
143226 , p_source_63 => l_array_source_63(Idx)
143227 , p_source_64 => l_array_source_64(Idx)
143228 , p_source_65 => l_array_source_65(Idx)
143229 , p_source_66 => l_array_source_66(Idx)
143230 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143231 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143232 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143233 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143234 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143235 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143236 );
143237 If(l_balance_type_code = 'A') THEN
143238 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143239 END IF;
143240
143241 --
143242
143243
143244 --
143245 AcctLineType_75 (
143246 p_application_id => p_application_id
143247 ,p_event_id => l_event_id
143248 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143249 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143250 ,p_actual_flag => l_actual_flag
143251 ,p_balance_type_code => l_balance_type_code
143252 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143253
143254 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
143255 , p_source_9 => l_array_source_9(Idx)
143256 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143257 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143258 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143259 , p_source_39 => l_array_source_39(Idx)
143260 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143261 , p_source_40 => l_array_source_40(Idx)
143262 , p_source_41 => l_array_source_41(Idx)
143263 , p_source_42 => l_array_source_42(Idx)
143264 , p_source_47 => l_array_source_47(Idx)
143265 , p_source_48 => l_array_source_48(Idx)
143266 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143267 , p_source_53 => l_array_source_53(Idx)
143268 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143269 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143270 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143271 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143272 , p_source_57 => l_array_source_57(Idx)
143273 , p_source_58 => l_array_source_58(Idx)
143274 , p_source_59 => l_array_source_59(Idx)
143275 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143276 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143277 , p_source_62 => l_array_source_62(Idx)
143278 , p_source_63 => l_array_source_63(Idx)
143279 , p_source_64 => l_array_source_64(Idx)
143280 , p_source_65 => l_array_source_65(Idx)
143281 , p_source_66 => l_array_source_66(Idx)
143282 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143283 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143284 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143285 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143286 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143287 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143288 );
143289 If(l_balance_type_code = 'A') THEN
143290 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143291 END IF;
143292
143293 --
143294
143295
143296 --
143297 AcctLineType_76 (
143298 p_application_id => p_application_id
143299 ,p_event_id => l_event_id
143300 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143301 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143302 ,p_actual_flag => l_actual_flag
143303 ,p_balance_type_code => l_balance_type_code
143304 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143305
143306 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
143307 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143308 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143309 , p_source_9 => l_array_source_9(Idx)
143310 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143311 , p_source_39 => l_array_source_39(Idx)
143312 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143313 , p_source_40 => l_array_source_40(Idx)
143314 , p_source_41 => l_array_source_41(Idx)
143315 , p_source_42 => l_array_source_42(Idx)
143316 , p_source_47 => l_array_source_47(Idx)
143317 , p_source_48 => l_array_source_48(Idx)
143318 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143319 , p_source_53 => l_array_source_53(Idx)
143320 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143321 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143322 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143323 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143324 , p_source_57 => l_array_source_57(Idx)
143325 , p_source_58 => l_array_source_58(Idx)
143326 , p_source_59 => l_array_source_59(Idx)
143327 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143328 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143329 , p_source_62 => l_array_source_62(Idx)
143330 , p_source_63 => l_array_source_63(Idx)
143331 , p_source_64 => l_array_source_64(Idx)
143332 , p_source_65 => l_array_source_65(Idx)
143333 , p_source_66 => l_array_source_66(Idx)
143334 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143335 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143339 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143336 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143337 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143338 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143340 );
143341 If(l_balance_type_code = 'A') THEN
143342 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143343 END IF;
143344
143345 --
143346
143347
143348 --
143349 AcctLineType_77 (
143350 p_application_id => p_application_id
143351 ,p_event_id => l_event_id
143352 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143353 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143354 ,p_actual_flag => l_actual_flag
143355 ,p_balance_type_code => l_balance_type_code
143356 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143357
143358 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
143359 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143360 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143361 , p_source_9 => l_array_source_9(Idx)
143362 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143363 , p_source_39 => l_array_source_39(Idx)
143364 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143365 , p_source_40 => l_array_source_40(Idx)
143366 , p_source_41 => l_array_source_41(Idx)
143367 , p_source_42 => l_array_source_42(Idx)
143368 , p_source_47 => l_array_source_47(Idx)
143369 , p_source_48 => l_array_source_48(Idx)
143370 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143371 , p_source_53 => l_array_source_53(Idx)
143372 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143373 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143374 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143375 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143376 , p_source_57 => l_array_source_57(Idx)
143377 , p_source_58 => l_array_source_58(Idx)
143378 , p_source_59 => l_array_source_59(Idx)
143379 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143380 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143381 , p_source_62 => l_array_source_62(Idx)
143382 , p_source_63 => l_array_source_63(Idx)
143383 , p_source_64 => l_array_source_64(Idx)
143384 , p_source_65 => l_array_source_65(Idx)
143385 , p_source_66 => l_array_source_66(Idx)
143386 , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143387 , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143388 , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143389 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143390 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143391 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143392 );
143393 If(l_balance_type_code = 'A') THEN
143394 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143395 END IF;
143396
143397 --
143398
143399
143400 --
143401 AcctLineType_80 (
143402 p_application_id => p_application_id
143403 ,p_event_id => l_event_id
143404 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143405 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143406 ,p_actual_flag => l_actual_flag
143407 ,p_balance_type_code => l_balance_type_code
143408 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143409
143410 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
143411 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
143412 , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
143413 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143414 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143415 , p_source_9 => l_array_source_9(Idx)
143416 , p_source_17 => l_array_source_17(Idx)
143417 , p_source_20 => l_array_source_20(Idx)
143418 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143419 , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
143420 , p_source_28 => l_array_source_28(Idx)
143421 , p_source_29 => l_array_source_29(Idx)
143422 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143423 , p_source_39 => l_array_source_39(Idx)
143424 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143425 , p_source_40 => l_array_source_40(Idx)
143426 , p_source_41 => l_array_source_41(Idx)
143427 , p_source_42 => l_array_source_42(Idx)
143428 , p_source_47 => l_array_source_47(Idx)
143429 , p_source_48 => l_array_source_48(Idx)
143430 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143431 , p_source_53 => l_array_source_53(Idx)
143432 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143433 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143434 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143435 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143436 , p_source_57 => l_array_source_57(Idx)
143437 , p_source_58 => l_array_source_58(Idx)
143438 , p_source_59 => l_array_source_59(Idx)
143439 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143440 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143441 , p_source_62 => l_array_source_62(Idx)
143442 , p_source_63 => l_array_source_63(Idx)
143443 , p_source_64 => l_array_source_64(Idx)
143444 , p_source_65 => l_array_source_65(Idx)
143445 , p_source_66 => l_array_source_66(Idx)
143446 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143447 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143448 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143449 );
143450 If(l_balance_type_code = 'A') THEN
143451 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143455
143452 END IF;
143453
143454 --
143456
143457 --
143458 AcctLineType_87 (
143459 p_application_id => p_application_id
143460 ,p_event_id => l_event_id
143461 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143462 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143463 ,p_actual_flag => l_actual_flag
143464 ,p_balance_type_code => l_balance_type_code
143465 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143466
143467 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143468 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143469 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
143470 , p_source_7 => l_array_source_7(Idx)
143471 , p_source_7_meaning => l_array_source_7_meaning(Idx)
143472 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
143473 , p_source_9 => l_array_source_9(Idx)
143474 , p_source_10 => l_array_source_10(Idx)
143475 , p_source_17 => l_array_source_17(Idx)
143476 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143477 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143478 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143479 , p_source_39 => l_array_source_39(Idx)
143480 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143481 , p_source_40 => l_array_source_40(Idx)
143482 , p_source_41 => l_array_source_41(Idx)
143483 , p_source_42 => l_array_source_42(Idx)
143484 , p_source_47 => l_array_source_47(Idx)
143485 , p_source_48 => l_array_source_48(Idx)
143486 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143487 , p_source_53 => l_array_source_53(Idx)
143488 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143489 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143490 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143491 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143492 , p_source_57 => l_array_source_57(Idx)
143493 , p_source_58 => l_array_source_58(Idx)
143494 , p_source_59 => l_array_source_59(Idx)
143495 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143496 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143497 , p_source_62 => l_array_source_62(Idx)
143498 , p_source_63 => l_array_source_63(Idx)
143499 , p_source_64 => l_array_source_64(Idx)
143500 , p_source_65 => l_array_source_65(Idx)
143501 , p_source_66 => l_array_source_66(Idx)
143502 , p_source_100 => l_array_source_100(Idx)
143503 , p_source_100_meaning => l_array_source_100_meaning(Idx)
143504 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143505 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143506 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143507 );
143508 If(l_balance_type_code = 'A') THEN
143509 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143510 END IF;
143511
143512 --
143513
143514
143515 --
143516 AcctLineType_88 (
143517 p_application_id => p_application_id
143518 ,p_event_id => l_event_id
143519 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143520 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143521 ,p_actual_flag => l_actual_flag
143522 ,p_balance_type_code => l_balance_type_code
143523 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143524
143525 , p_source_9 => l_array_source_9(Idx)
143526 , p_source_20 => l_array_source_20(Idx)
143527 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143528 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143529 , p_source_39 => l_array_source_39(Idx)
143530 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143531 , p_source_40 => l_array_source_40(Idx)
143532 , p_source_41 => l_array_source_41(Idx)
143533 , p_source_42 => l_array_source_42(Idx)
143534 , p_source_47 => l_array_source_47(Idx)
143535 , p_source_48 => l_array_source_48(Idx)
143536 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143537 , p_source_53 => l_array_source_53(Idx)
143538 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143539 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143540 , p_source_57 => l_array_source_57(Idx)
143541 , p_source_58 => l_array_source_58(Idx)
143542 , p_source_59 => l_array_source_59(Idx)
143543 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143544 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143545 , p_source_62 => l_array_source_62(Idx)
143546 , p_source_63 => l_array_source_63(Idx)
143547 , p_source_64 => l_array_source_64(Idx)
143548 , p_source_65 => l_array_source_65(Idx)
143549 , p_source_66 => l_array_source_66(Idx)
143550 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143551 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143552 , p_source_104 => l_array_source_104(Idx)
143553 , p_source_104_meaning => l_array_source_104_meaning(Idx)
143554 );
143555 If(l_balance_type_code = 'A') THEN
143556 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143557 END IF;
143558
143559 --
143560
143561
143562 --
143563 AcctLineType_95 (
143564 p_application_id => p_application_id
143565 ,p_event_id => l_event_id
143566 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143567 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143568 ,p_actual_flag => l_actual_flag
143569 ,p_balance_type_code => l_balance_type_code
143570 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143571
143572 , p_source_9 => l_array_source_9(Idx)
143573 , p_source_17 => l_array_source_17(Idx)
143574 , p_source_20 => l_array_source_20(Idx)
143575 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143576 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143577 , p_source_39 => l_array_source_39(Idx)
143581 , p_source_42 => l_array_source_42(Idx)
143578 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143579 , p_source_40 => l_array_source_40(Idx)
143580 , p_source_41 => l_array_source_41(Idx)
143582 , p_source_47 => l_array_source_47(Idx)
143583 , p_source_48 => l_array_source_48(Idx)
143584 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143585 , p_source_53 => l_array_source_53(Idx)
143586 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143587 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143588 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143589 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143590 , p_source_57 => l_array_source_57(Idx)
143591 , p_source_58 => l_array_source_58(Idx)
143592 , p_source_59 => l_array_source_59(Idx)
143593 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143594 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143595 , p_source_62 => l_array_source_62(Idx)
143596 , p_source_63 => l_array_source_63(Idx)
143597 , p_source_64 => l_array_source_64(Idx)
143598 , p_source_65 => l_array_source_65(Idx)
143599 , p_source_66 => l_array_source_66(Idx)
143600 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143601 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143602 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143603 );
143604 If(l_balance_type_code = 'A') THEN
143605 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143606 END IF;
143607
143608 --
143609
143610
143611 --
143612 AcctLineType_96 (
143613 p_application_id => p_application_id
143614 ,p_event_id => l_event_id
143615 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143616 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143617 ,p_actual_flag => l_actual_flag
143618 ,p_balance_type_code => l_balance_type_code
143619 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143620
143621 , p_source_9 => l_array_source_9(Idx)
143622 , p_source_20 => l_array_source_20(Idx)
143623 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143624 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143625 , p_source_39 => l_array_source_39(Idx)
143626 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143627 , p_source_40 => l_array_source_40(Idx)
143628 , p_source_41 => l_array_source_41(Idx)
143629 , p_source_42 => l_array_source_42(Idx)
143630 , p_source_47 => l_array_source_47(Idx)
143631 , p_source_48 => l_array_source_48(Idx)
143632 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143633 , p_source_53 => l_array_source_53(Idx)
143634 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143635 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143636 , p_source_57 => l_array_source_57(Idx)
143637 , p_source_58 => l_array_source_58(Idx)
143638 , p_source_59 => l_array_source_59(Idx)
143639 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143640 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143641 , p_source_62 => l_array_source_62(Idx)
143642 , p_source_63 => l_array_source_63(Idx)
143643 , p_source_64 => l_array_source_64(Idx)
143644 , p_source_65 => l_array_source_65(Idx)
143645 , p_source_66 => l_array_source_66(Idx)
143646 , p_source_101 => l_array_source_101(Idx)
143647 , p_source_101_meaning => l_array_source_101_meaning(Idx)
143648 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143649 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143650 , p_source_104 => l_array_source_104(Idx)
143651 , p_source_104_meaning => l_array_source_104_meaning(Idx)
143652 );
143653 If(l_balance_type_code = 'A') THEN
143654 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143655 END IF;
143656
143657 --
143658
143659
143660 --
143661 AcctLineType_113 (
143662 p_application_id => p_application_id
143663 ,p_event_id => l_event_id
143664 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143665 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143666 ,p_actual_flag => l_actual_flag
143667 ,p_balance_type_code => l_balance_type_code
143668 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143669
143670 , p_source_9 => l_array_source_9(Idx)
143671 , p_source_17 => l_array_source_17(Idx)
143672 , p_source_20 => l_array_source_20(Idx)
143673 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143674 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143675 , p_source_39 => l_array_source_39(Idx)
143676 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143677 , p_source_40 => l_array_source_40(Idx)
143678 , p_source_41 => l_array_source_41(Idx)
143679 , p_source_42 => l_array_source_42(Idx)
143680 , p_source_47 => l_array_source_47(Idx)
143681 , p_source_48 => l_array_source_48(Idx)
143682 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143683 , p_source_53 => l_array_source_53(Idx)
143684 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143685 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143686 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143687 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143688 , p_source_57 => l_array_source_57(Idx)
143689 , p_source_58 => l_array_source_58(Idx)
143690 , p_source_59 => l_array_source_59(Idx)
143691 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143692 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143693 , p_source_62 => l_array_source_62(Idx)
143694 , p_source_63 => l_array_source_63(Idx)
143695 , p_source_64 => l_array_source_64(Idx)
143696 , p_source_65 => l_array_source_65(Idx)
143697 , p_source_66 => l_array_source_66(Idx)
143698 , p_source_100 => l_array_source_100(Idx)
143702 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143699 , p_source_100_meaning => l_array_source_100_meaning(Idx)
143700 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143701 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143703 );
143704 If(l_balance_type_code = 'A') THEN
143705 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143706 END IF;
143707
143708 --
143709
143710
143711 --
143712 AcctLineType_114 (
143713 p_application_id => p_application_id
143714 ,p_event_id => l_event_id
143715 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143716 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143717 ,p_actual_flag => l_actual_flag
143718 ,p_balance_type_code => l_balance_type_code
143719 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143720
143721 , p_source_9 => l_array_source_9(Idx)
143722 , p_source_20 => l_array_source_20(Idx)
143723 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143724 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143725 , p_source_39 => l_array_source_39(Idx)
143726 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143727 , p_source_40 => l_array_source_40(Idx)
143728 , p_source_41 => l_array_source_41(Idx)
143729 , p_source_42 => l_array_source_42(Idx)
143730 , p_source_47 => l_array_source_47(Idx)
143731 , p_source_48 => l_array_source_48(Idx)
143732 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143733 , p_source_53 => l_array_source_53(Idx)
143734 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143735 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143736 , p_source_57 => l_array_source_57(Idx)
143737 , p_source_58 => l_array_source_58(Idx)
143738 , p_source_59 => l_array_source_59(Idx)
143739 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143740 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143741 , p_source_62 => l_array_source_62(Idx)
143742 , p_source_63 => l_array_source_63(Idx)
143743 , p_source_64 => l_array_source_64(Idx)
143744 , p_source_65 => l_array_source_65(Idx)
143745 , p_source_66 => l_array_source_66(Idx)
143746 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143747 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143748 , p_source_104 => l_array_source_104(Idx)
143749 , p_source_104_meaning => l_array_source_104_meaning(Idx)
143750 );
143751 If(l_balance_type_code = 'A') THEN
143752 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143753 END IF;
143754
143755 --
143756
143757
143758 --
143759 AcctLineType_121 (
143760 p_application_id => p_application_id
143761 ,p_event_id => l_event_id
143762 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143763 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143764 ,p_actual_flag => l_actual_flag
143765 ,p_balance_type_code => l_balance_type_code
143766 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143767
143768 , p_source_9 => l_array_source_9(Idx)
143769 , p_source_17 => l_array_source_17(Idx)
143770 , p_source_20 => l_array_source_20(Idx)
143771 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143772 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143773 , p_source_39 => l_array_source_39(Idx)
143774 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143775 , p_source_40 => l_array_source_40(Idx)
143776 , p_source_41 => l_array_source_41(Idx)
143777 , p_source_42 => l_array_source_42(Idx)
143778 , p_source_47 => l_array_source_47(Idx)
143779 , p_source_48 => l_array_source_48(Idx)
143780 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143781 , p_source_53 => l_array_source_53(Idx)
143782 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143783 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143784 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143785 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143786 , p_source_57 => l_array_source_57(Idx)
143787 , p_source_58 => l_array_source_58(Idx)
143788 , p_source_59 => l_array_source_59(Idx)
143789 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143790 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143791 , p_source_62 => l_array_source_62(Idx)
143792 , p_source_63 => l_array_source_63(Idx)
143793 , p_source_64 => l_array_source_64(Idx)
143794 , p_source_65 => l_array_source_65(Idx)
143795 , p_source_66 => l_array_source_66(Idx)
143796 , p_source_100 => l_array_source_100(Idx)
143797 , p_source_100_meaning => l_array_source_100_meaning(Idx)
143798 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143799 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143800 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143801 );
143802 If(l_balance_type_code = 'A') THEN
143803 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143804 END IF;
143805
143806 --
143807
143808
143809 --
143810 AcctLineType_122 (
143811 p_application_id => p_application_id
143812 ,p_event_id => l_event_id
143813 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143814 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143815 ,p_actual_flag => l_actual_flag
143816 ,p_balance_type_code => l_balance_type_code
143817 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143818
143819 , p_source_9 => l_array_source_9(Idx)
143820 , p_source_20 => l_array_source_20(Idx)
143821 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143822 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143823 , p_source_39 => l_array_source_39(Idx)
143824 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143825 , p_source_40 => l_array_source_40(Idx)
143826 , p_source_41 => l_array_source_41(Idx)
143830 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143827 , p_source_42 => l_array_source_42(Idx)
143828 , p_source_47 => l_array_source_47(Idx)
143829 , p_source_48 => l_array_source_48(Idx)
143831 , p_source_53 => l_array_source_53(Idx)
143832 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143833 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143834 , p_source_57 => l_array_source_57(Idx)
143835 , p_source_58 => l_array_source_58(Idx)
143836 , p_source_59 => l_array_source_59(Idx)
143837 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143838 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143839 , p_source_62 => l_array_source_62(Idx)
143840 , p_source_63 => l_array_source_63(Idx)
143841 , p_source_64 => l_array_source_64(Idx)
143842 , p_source_65 => l_array_source_65(Idx)
143843 , p_source_66 => l_array_source_66(Idx)
143844 , p_source_101 => l_array_source_101(Idx)
143845 , p_source_101_meaning => l_array_source_101_meaning(Idx)
143846 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143847 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143848 , p_source_104 => l_array_source_104(Idx)
143849 , p_source_104_meaning => l_array_source_104_meaning(Idx)
143850 );
143851 If(l_balance_type_code = 'A') THEN
143852 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143853 END IF;
143854
143855 --
143856
143857
143858 --
143859 AcctLineType_132 (
143860 p_application_id => p_application_id
143861 ,p_event_id => l_event_id
143862 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143863 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143864 ,p_actual_flag => l_actual_flag
143865 ,p_balance_type_code => l_balance_type_code
143866 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143867
143868 , p_source_9 => l_array_source_9(Idx)
143869 , p_source_17 => l_array_source_17(Idx)
143870 , p_source_20 => l_array_source_20(Idx)
143871 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143872 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143873 , p_source_39 => l_array_source_39(Idx)
143874 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143875 , p_source_40 => l_array_source_40(Idx)
143876 , p_source_41 => l_array_source_41(Idx)
143877 , p_source_42 => l_array_source_42(Idx)
143878 , p_source_47 => l_array_source_47(Idx)
143879 , p_source_48 => l_array_source_48(Idx)
143880 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143881 , p_source_53 => l_array_source_53(Idx)
143882 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143883 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143884 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143885 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143886 , p_source_57 => l_array_source_57(Idx)
143887 , p_source_58 => l_array_source_58(Idx)
143888 , p_source_59 => l_array_source_59(Idx)
143889 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143890 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143891 , p_source_62 => l_array_source_62(Idx)
143892 , p_source_63 => l_array_source_63(Idx)
143893 , p_source_64 => l_array_source_64(Idx)
143894 , p_source_65 => l_array_source_65(Idx)
143895 , p_source_66 => l_array_source_66(Idx)
143896 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143897 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143898 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143899 );
143900 If(l_balance_type_code = 'A') THEN
143901 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143902 END IF;
143903
143904 --
143905
143906
143907 --
143908 AcctLineType_133 (
143909 p_application_id => p_application_id
143910 ,p_event_id => l_event_id
143911 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143912 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143913 ,p_actual_flag => l_actual_flag
143914 ,p_balance_type_code => l_balance_type_code
143915 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143916
143917 , p_source_9 => l_array_source_9(Idx)
143918 , p_source_20 => l_array_source_20(Idx)
143919 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143920 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143921 , p_source_39 => l_array_source_39(Idx)
143922 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143923 , p_source_40 => l_array_source_40(Idx)
143924 , p_source_41 => l_array_source_41(Idx)
143925 , p_source_42 => l_array_source_42(Idx)
143926 , p_source_47 => l_array_source_47(Idx)
143927 , p_source_48 => l_array_source_48(Idx)
143928 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143929 , p_source_53 => l_array_source_53(Idx)
143930 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143931 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143932 , p_source_57 => l_array_source_57(Idx)
143933 , p_source_58 => l_array_source_58(Idx)
143934 , p_source_59 => l_array_source_59(Idx)
143935 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143936 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143937 , p_source_62 => l_array_source_62(Idx)
143938 , p_source_63 => l_array_source_63(Idx)
143939 , p_source_64 => l_array_source_64(Idx)
143940 , p_source_65 => l_array_source_65(Idx)
143941 , p_source_66 => l_array_source_66(Idx)
143942 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143943 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143944 , p_source_104 => l_array_source_104(Idx)
143945 , p_source_104_meaning => l_array_source_104_meaning(Idx)
143946 );
143947 If(l_balance_type_code = 'A') THEN
143948 l_actual_gain_loss_ref := l_gain_or_loss_ref;
143952
143949 END IF;
143950
143951 --
143953
143954 --
143955 AcctLineType_138 (
143956 p_application_id => p_application_id
143957 ,p_event_id => l_event_id
143958 ,p_calculate_acctd_flag => l_calculate_acctd_flag
143959 ,p_calculate_g_l_flag => l_calculate_g_l_flag
143960 ,p_actual_flag => l_actual_flag
143961 ,p_balance_type_code => l_balance_type_code
143962 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143963
143964 , p_source_9 => l_array_source_9(Idx)
143965 , p_source_17 => l_array_source_17(Idx)
143966 , p_source_20 => l_array_source_20(Idx)
143967 , p_source_20_meaning => l_array_source_20_meaning(Idx)
143968 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143969 , p_source_39 => l_array_source_39(Idx)
143970 , p_source_39_meaning => l_array_source_39_meaning(Idx)
143971 , p_source_40 => l_array_source_40(Idx)
143972 , p_source_41 => l_array_source_41(Idx)
143973 , p_source_42 => l_array_source_42(Idx)
143974 , p_source_47 => l_array_source_47(Idx)
143975 , p_source_48 => l_array_source_48(Idx)
143976 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143977 , p_source_50 => l_array_source_50(Idx)
143978 , p_source_51 => l_array_source_51(Idx)
143979 , p_source_52 => l_array_source_52(Idx)
143980 , p_source_53 => l_array_source_53(Idx)
143981 , p_source_53_meaning => l_array_source_53_meaning(Idx)
143982 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143983 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143984 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143985 , p_source_57 => l_array_source_57(Idx)
143986 , p_source_58 => l_array_source_58(Idx)
143987 , p_source_59 => l_array_source_59(Idx)
143988 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143989 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143990 , p_source_62 => l_array_source_62(Idx)
143991 , p_source_63 => l_array_source_63(Idx)
143992 , p_source_64 => l_array_source_64(Idx)
143993 , p_source_65 => l_array_source_65(Idx)
143994 , p_source_66 => l_array_source_66(Idx)
143995 , p_source_100 => l_array_source_100(Idx)
143996 , p_source_100_meaning => l_array_source_100_meaning(Idx)
143997 );
143998 If(l_balance_type_code = 'A') THEN
143999 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144000 END IF;
144001
144002 --
144003
144004
144005 --
144006 AcctLineType_143 (
144007 p_application_id => p_application_id
144008 ,p_event_id => l_event_id
144009 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144010 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144011 ,p_actual_flag => l_actual_flag
144012 ,p_balance_type_code => l_balance_type_code
144013 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144014
144015 , p_source_9 => l_array_source_9(Idx)
144016 , p_source_17 => l_array_source_17(Idx)
144017 , p_source_20 => l_array_source_20(Idx)
144018 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144019 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144020 , p_source_39 => l_array_source_39(Idx)
144021 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144022 , p_source_40 => l_array_source_40(Idx)
144023 , p_source_41 => l_array_source_41(Idx)
144024 , p_source_42 => l_array_source_42(Idx)
144025 , p_source_47 => l_array_source_47(Idx)
144026 , p_source_48 => l_array_source_48(Idx)
144027 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144028 , p_source_53 => l_array_source_53(Idx)
144029 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144030 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144031 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144032 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144033 , p_source_57 => l_array_source_57(Idx)
144034 , p_source_58 => l_array_source_58(Idx)
144035 , p_source_59 => l_array_source_59(Idx)
144036 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144037 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144038 , p_source_62 => l_array_source_62(Idx)
144039 , p_source_63 => l_array_source_63(Idx)
144040 , p_source_64 => l_array_source_64(Idx)
144041 , p_source_65 => l_array_source_65(Idx)
144042 , p_source_66 => l_array_source_66(Idx)
144043 , p_source_100 => l_array_source_100(Idx)
144044 , p_source_100_meaning => l_array_source_100_meaning(Idx)
144045 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144046 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144047 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144048 );
144049 If(l_balance_type_code = 'A') THEN
144050 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144051 END IF;
144052
144053 --
144054
144055
144056 --
144057 AcctLineType_144 (
144058 p_application_id => p_application_id
144059 ,p_event_id => l_event_id
144060 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144061 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144062 ,p_actual_flag => l_actual_flag
144063 ,p_balance_type_code => l_balance_type_code
144064 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144065
144066 , p_source_9 => l_array_source_9(Idx)
144067 , p_source_20 => l_array_source_20(Idx)
144068 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144069 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144070 , p_source_39 => l_array_source_39(Idx)
144071 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144072 , p_source_40 => l_array_source_40(Idx)
144073 , p_source_41 => l_array_source_41(Idx)
144074 , p_source_42 => l_array_source_42(Idx)
144075 , p_source_47 => l_array_source_47(Idx)
144076 , p_source_48 => l_array_source_48(Idx)
144077 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144078 , p_source_53 => l_array_source_53(Idx)
144082 , p_source_58 => l_array_source_58(Idx)
144079 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144080 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144081 , p_source_57 => l_array_source_57(Idx)
144083 , p_source_59 => l_array_source_59(Idx)
144084 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144085 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144086 , p_source_62 => l_array_source_62(Idx)
144087 , p_source_63 => l_array_source_63(Idx)
144088 , p_source_64 => l_array_source_64(Idx)
144089 , p_source_65 => l_array_source_65(Idx)
144090 , p_source_66 => l_array_source_66(Idx)
144091 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144092 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144093 , p_source_104 => l_array_source_104(Idx)
144094 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144095 );
144096 If(l_balance_type_code = 'A') THEN
144097 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144098 END IF;
144099
144100 --
144101
144102
144103 --
144104 AcctLineType_158 (
144105 p_application_id => p_application_id
144106 ,p_event_id => l_event_id
144107 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144108 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144109 ,p_actual_flag => l_actual_flag
144110 ,p_balance_type_code => l_balance_type_code
144111 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144112
144113 , p_source_9 => l_array_source_9(Idx)
144114 , p_source_20 => l_array_source_20(Idx)
144115 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144116 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144117 , p_source_39 => l_array_source_39(Idx)
144118 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144119 , p_source_40 => l_array_source_40(Idx)
144120 , p_source_41 => l_array_source_41(Idx)
144121 , p_source_42 => l_array_source_42(Idx)
144122 , p_source_47 => l_array_source_47(Idx)
144123 , p_source_48 => l_array_source_48(Idx)
144124 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144125 , p_source_53 => l_array_source_53(Idx)
144126 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144127 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144128 , p_source_57 => l_array_source_57(Idx)
144129 , p_source_58 => l_array_source_58(Idx)
144130 , p_source_59 => l_array_source_59(Idx)
144131 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144132 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144133 , p_source_62 => l_array_source_62(Idx)
144134 , p_source_63 => l_array_source_63(Idx)
144135 , p_source_64 => l_array_source_64(Idx)
144136 , p_source_65 => l_array_source_65(Idx)
144137 , p_source_66 => l_array_source_66(Idx)
144138 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144139 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144140 , p_source_104 => l_array_source_104(Idx)
144141 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144142 );
144143 If(l_balance_type_code = 'A') THEN
144144 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144145 END IF;
144146
144147 --
144148
144149
144150 --
144151 AcctLineType_163 (
144152 p_application_id => p_application_id
144153 ,p_event_id => l_event_id
144154 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144155 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144156 ,p_actual_flag => l_actual_flag
144157 ,p_balance_type_code => l_balance_type_code
144158 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144159
144160 , p_source_9 => l_array_source_9(Idx)
144161 , p_source_17 => l_array_source_17(Idx)
144162 , p_source_20 => l_array_source_20(Idx)
144163 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144164 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144165 , p_source_39 => l_array_source_39(Idx)
144166 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144167 , p_source_40 => l_array_source_40(Idx)
144168 , p_source_41 => l_array_source_41(Idx)
144169 , p_source_42 => l_array_source_42(Idx)
144170 , p_source_47 => l_array_source_47(Idx)
144171 , p_source_48 => l_array_source_48(Idx)
144172 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144173 , p_source_53 => l_array_source_53(Idx)
144174 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144175 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144176 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144177 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144178 , p_source_57 => l_array_source_57(Idx)
144179 , p_source_58 => l_array_source_58(Idx)
144180 , p_source_59 => l_array_source_59(Idx)
144181 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144182 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144183 , p_source_62 => l_array_source_62(Idx)
144184 , p_source_63 => l_array_source_63(Idx)
144185 , p_source_64 => l_array_source_64(Idx)
144186 , p_source_65 => l_array_source_65(Idx)
144187 , p_source_66 => l_array_source_66(Idx)
144188 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144189 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144190 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144191 );
144192 If(l_balance_type_code = 'A') THEN
144193 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144194 END IF;
144195
144196 --
144197
144198
144199 --
144200 AcctLineType_174 (
144201 p_application_id => p_application_id
144202 ,p_event_id => l_event_id
144203 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144204 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144205 ,p_actual_flag => l_actual_flag
144209 , p_source_9 => l_array_source_9(Idx)
144206 ,p_balance_type_code => l_balance_type_code
144207 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144208
144210 , p_source_20 => l_array_source_20(Idx)
144211 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144212 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144213 , p_source_39 => l_array_source_39(Idx)
144214 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144215 , p_source_40 => l_array_source_40(Idx)
144216 , p_source_41 => l_array_source_41(Idx)
144217 , p_source_42 => l_array_source_42(Idx)
144218 , p_source_47 => l_array_source_47(Idx)
144219 , p_source_48 => l_array_source_48(Idx)
144220 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144221 , p_source_53 => l_array_source_53(Idx)
144222 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144223 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144224 , p_source_57 => l_array_source_57(Idx)
144225 , p_source_58 => l_array_source_58(Idx)
144226 , p_source_59 => l_array_source_59(Idx)
144227 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144228 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144229 , p_source_62 => l_array_source_62(Idx)
144230 , p_source_63 => l_array_source_63(Idx)
144231 , p_source_64 => l_array_source_64(Idx)
144232 , p_source_65 => l_array_source_65(Idx)
144233 , p_source_66 => l_array_source_66(Idx)
144234 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144235 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144236 , p_source_104 => l_array_source_104(Idx)
144237 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144238 );
144239 If(l_balance_type_code = 'A') THEN
144240 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144241 END IF;
144242
144243 --
144244
144245
144246 --
144247 AcctLineType_177 (
144248 p_application_id => p_application_id
144249 ,p_event_id => l_event_id
144250 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144251 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144252 ,p_actual_flag => l_actual_flag
144253 ,p_balance_type_code => l_balance_type_code
144254 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144255
144256 , p_source_9 => l_array_source_9(Idx)
144257 , p_source_20 => l_array_source_20(Idx)
144258 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144259 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144260 , p_source_39 => l_array_source_39(Idx)
144261 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144262 , p_source_40 => l_array_source_40(Idx)
144263 , p_source_41 => l_array_source_41(Idx)
144264 , p_source_42 => l_array_source_42(Idx)
144265 , p_source_47 => l_array_source_47(Idx)
144266 , p_source_48 => l_array_source_48(Idx)
144267 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144268 , p_source_53 => l_array_source_53(Idx)
144269 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144270 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144271 , p_source_57 => l_array_source_57(Idx)
144272 , p_source_58 => l_array_source_58(Idx)
144273 , p_source_59 => l_array_source_59(Idx)
144274 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144275 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144276 , p_source_62 => l_array_source_62(Idx)
144277 , p_source_63 => l_array_source_63(Idx)
144278 , p_source_64 => l_array_source_64(Idx)
144279 , p_source_65 => l_array_source_65(Idx)
144280 , p_source_66 => l_array_source_66(Idx)
144281 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144282 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144283 , p_source_104 => l_array_source_104(Idx)
144284 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144285 );
144286 If(l_balance_type_code = 'A') THEN
144287 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144288 END IF;
144289
144290 --
144291
144292
144293 --
144294 AcctLineType_180 (
144295 p_application_id => p_application_id
144296 ,p_event_id => l_event_id
144297 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144298 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144299 ,p_actual_flag => l_actual_flag
144300 ,p_balance_type_code => l_balance_type_code
144301 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144302
144303 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
144304 , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
144305 , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
144306 , p_source_7 => l_array_source_7(Idx)
144307 , p_source_7_meaning => l_array_source_7_meaning(Idx)
144308 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
144309 , p_source_9 => l_array_source_9(Idx)
144310 , p_source_10 => l_array_source_10(Idx)
144311 , p_source_17 => l_array_source_17(Idx)
144312 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
144313 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
144314 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144315 , p_source_39 => l_array_source_39(Idx)
144316 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144317 , p_source_40 => l_array_source_40(Idx)
144318 , p_source_41 => l_array_source_41(Idx)
144319 , p_source_42 => l_array_source_42(Idx)
144320 , p_source_47 => l_array_source_47(Idx)
144321 , p_source_48 => l_array_source_48(Idx)
144322 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144323 , p_source_53 => l_array_source_53(Idx)
144324 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144325 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144326 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144330 , p_source_59 => l_array_source_59(Idx)
144327 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144328 , p_source_57 => l_array_source_57(Idx)
144329 , p_source_58 => l_array_source_58(Idx)
144331 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144332 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144333 , p_source_62 => l_array_source_62(Idx)
144334 , p_source_63 => l_array_source_63(Idx)
144335 , p_source_64 => l_array_source_64(Idx)
144336 , p_source_65 => l_array_source_65(Idx)
144337 , p_source_66 => l_array_source_66(Idx)
144338 , p_source_100 => l_array_source_100(Idx)
144339 , p_source_100_meaning => l_array_source_100_meaning(Idx)
144340 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144341 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144342 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144343 );
144344 If(l_balance_type_code = 'A') THEN
144345 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144346 END IF;
144347
144348 --
144349
144350
144351 --
144352 AcctLineType_185 (
144353 p_application_id => p_application_id
144354 ,p_event_id => l_event_id
144355 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144356 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144357 ,p_actual_flag => l_actual_flag
144358 ,p_balance_type_code => l_balance_type_code
144359 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144360
144361 , p_source_9 => l_array_source_9(Idx)
144362 , p_source_17 => l_array_source_17(Idx)
144363 , p_source_20 => l_array_source_20(Idx)
144364 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144365 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144366 , p_source_39 => l_array_source_39(Idx)
144367 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144368 , p_source_40 => l_array_source_40(Idx)
144369 , p_source_41 => l_array_source_41(Idx)
144370 , p_source_42 => l_array_source_42(Idx)
144371 , p_source_47 => l_array_source_47(Idx)
144372 , p_source_48 => l_array_source_48(Idx)
144373 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144374 , p_source_53 => l_array_source_53(Idx)
144375 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144376 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144377 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144378 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144379 , p_source_57 => l_array_source_57(Idx)
144380 , p_source_58 => l_array_source_58(Idx)
144381 , p_source_59 => l_array_source_59(Idx)
144382 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144383 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144384 , p_source_62 => l_array_source_62(Idx)
144385 , p_source_63 => l_array_source_63(Idx)
144386 , p_source_64 => l_array_source_64(Idx)
144387 , p_source_65 => l_array_source_65(Idx)
144388 , p_source_66 => l_array_source_66(Idx)
144389 , p_source_100 => l_array_source_100(Idx)
144390 , p_source_100_meaning => l_array_source_100_meaning(Idx)
144391 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144392 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144393 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144394 );
144395 If(l_balance_type_code = 'A') THEN
144396 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144397 END IF;
144398
144399 --
144400
144401
144402 --
144403 AcctLineType_186 (
144404 p_application_id => p_application_id
144405 ,p_event_id => l_event_id
144406 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144407 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144408 ,p_actual_flag => l_actual_flag
144409 ,p_balance_type_code => l_balance_type_code
144410 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144411
144412 , p_source_9 => l_array_source_9(Idx)
144413 , p_source_20 => l_array_source_20(Idx)
144414 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144415 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144416 , p_source_39 => l_array_source_39(Idx)
144417 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144418 , p_source_40 => l_array_source_40(Idx)
144419 , p_source_41 => l_array_source_41(Idx)
144420 , p_source_42 => l_array_source_42(Idx)
144421 , p_source_47 => l_array_source_47(Idx)
144422 , p_source_48 => l_array_source_48(Idx)
144423 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144424 , p_source_53 => l_array_source_53(Idx)
144425 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144426 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144427 , p_source_57 => l_array_source_57(Idx)
144428 , p_source_58 => l_array_source_58(Idx)
144429 , p_source_59 => l_array_source_59(Idx)
144430 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144431 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144432 , p_source_62 => l_array_source_62(Idx)
144433 , p_source_63 => l_array_source_63(Idx)
144434 , p_source_64 => l_array_source_64(Idx)
144435 , p_source_65 => l_array_source_65(Idx)
144436 , p_source_66 => l_array_source_66(Idx)
144437 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144438 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144439 , p_source_104 => l_array_source_104(Idx)
144440 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144441 );
144442 If(l_balance_type_code = 'A') THEN
144443 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144444 END IF;
144445
144446 --
144447
144448
144449 --
144450 AcctLineType_189 (
144451 p_application_id => p_application_id
144452 ,p_event_id => l_event_id
144453 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144457 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144454 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144455 ,p_actual_flag => l_actual_flag
144456 ,p_balance_type_code => l_balance_type_code
144458
144459 , p_source_9 => l_array_source_9(Idx)
144460 , p_source_20 => l_array_source_20(Idx)
144461 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144462 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144463 , p_source_39 => l_array_source_39(Idx)
144464 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144465 , p_source_40 => l_array_source_40(Idx)
144466 , p_source_41 => l_array_source_41(Idx)
144467 , p_source_42 => l_array_source_42(Idx)
144468 , p_source_47 => l_array_source_47(Idx)
144469 , p_source_48 => l_array_source_48(Idx)
144470 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144471 , p_source_53 => l_array_source_53(Idx)
144472 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144473 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144474 , p_source_57 => l_array_source_57(Idx)
144475 , p_source_58 => l_array_source_58(Idx)
144476 , p_source_59 => l_array_source_59(Idx)
144477 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144478 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144479 , p_source_62 => l_array_source_62(Idx)
144480 , p_source_63 => l_array_source_63(Idx)
144481 , p_source_64 => l_array_source_64(Idx)
144482 , p_source_65 => l_array_source_65(Idx)
144483 , p_source_66 => l_array_source_66(Idx)
144484 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144485 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144486 , p_source_104 => l_array_source_104(Idx)
144487 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144488 );
144489 If(l_balance_type_code = 'A') THEN
144490 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144491 END IF;
144492
144493 --
144494
144495
144496 --
144497 AcctLineType_194 (
144498 p_application_id => p_application_id
144499 ,p_event_id => l_event_id
144500 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144501 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144502 ,p_actual_flag => l_actual_flag
144503 ,p_balance_type_code => l_balance_type_code
144504 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144505
144506 , p_source_9 => l_array_source_9(Idx)
144507 , p_source_17 => l_array_source_17(Idx)
144508 , p_source_20 => l_array_source_20(Idx)
144509 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144510 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144511 , p_source_39 => l_array_source_39(Idx)
144512 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144513 , p_source_40 => l_array_source_40(Idx)
144514 , p_source_41 => l_array_source_41(Idx)
144515 , p_source_42 => l_array_source_42(Idx)
144516 , p_source_47 => l_array_source_47(Idx)
144517 , p_source_48 => l_array_source_48(Idx)
144518 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144519 , p_source_53 => l_array_source_53(Idx)
144520 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144521 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144522 , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144523 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144524 , p_source_57 => l_array_source_57(Idx)
144525 , p_source_58 => l_array_source_58(Idx)
144526 , p_source_59 => l_array_source_59(Idx)
144527 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144528 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144529 , p_source_62 => l_array_source_62(Idx)
144530 , p_source_63 => l_array_source_63(Idx)
144531 , p_source_64 => l_array_source_64(Idx)
144532 , p_source_65 => l_array_source_65(Idx)
144533 , p_source_66 => l_array_source_66(Idx)
144534 , p_source_100 => l_array_source_100(Idx)
144535 , p_source_100_meaning => l_array_source_100_meaning(Idx)
144536 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144537 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144538 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144539 );
144540 If(l_balance_type_code = 'A') THEN
144541 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144542 END IF;
144543
144544 --
144545
144546
144547 --
144548 AcctLineType_195 (
144549 p_application_id => p_application_id
144550 ,p_event_id => l_event_id
144551 ,p_calculate_acctd_flag => l_calculate_acctd_flag
144552 ,p_calculate_g_l_flag => l_calculate_g_l_flag
144553 ,p_actual_flag => l_actual_flag
144554 ,p_balance_type_code => l_balance_type_code
144555 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144556
144557 , p_source_9 => l_array_source_9(Idx)
144558 , p_source_20 => l_array_source_20(Idx)
144559 , p_source_20_meaning => l_array_source_20_meaning(Idx)
144560 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144561 , p_source_39 => l_array_source_39(Idx)
144562 , p_source_39_meaning => l_array_source_39_meaning(Idx)
144563 , p_source_40 => l_array_source_40(Idx)
144564 , p_source_41 => l_array_source_41(Idx)
144565 , p_source_42 => l_array_source_42(Idx)
144566 , p_source_47 => l_array_source_47(Idx)
144567 , p_source_48 => l_array_source_48(Idx)
144568 , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144569 , p_source_53 => l_array_source_53(Idx)
144570 , p_source_53_meaning => l_array_source_53_meaning(Idx)
144571 , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144572 , p_source_57 => l_array_source_57(Idx)
144573 , p_source_58 => l_array_source_58(Idx)
144574 , p_source_59 => l_array_source_59(Idx)
144575 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144579 , p_source_64 => l_array_source_64(Idx)
144576 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144577 , p_source_62 => l_array_source_62(Idx)
144578 , p_source_63 => l_array_source_63(Idx)
144580 , p_source_65 => l_array_source_65(Idx)
144581 , p_source_66 => l_array_source_66(Idx)
144582 , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144583 , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144584 , p_source_104 => l_array_source_104(Idx)
144585 , p_source_104_meaning => l_array_source_104_meaning(Idx)
144586 );
144587 If(l_balance_type_code = 'A') THEN
144588 l_actual_gain_loss_ref := l_gain_or_loss_ref;
144589 END IF;
144590
144591 --
144592
144593 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
144594 -- or secondary ledger that has different currency with primary
144595 -- or alc that is calculated by sla
144596 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
144597 (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'))
144598
144599 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
144600 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
144601 AND (l_actual_flag = 'A')) THEN
144602 XLA_AE_LINES_PKG.CreateGainOrLossLines(
144603 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
144604 ,p_application_id => p_application_id
144605 ,p_amb_context_code => 'DEFAULT'
144606 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
144607 ,p_event_class_code => C_EVENT_CLASS_CODE
144608 ,p_event_type_code => C_EVENT_TYPE_CODE
144609
144610 ,p_gain_ccid => -1
144611 ,p_loss_ccid => -1
144612
144613 ,p_actual_flag => l_actual_flag
144614 ,p_enc_flag => null
144615 ,p_actual_g_l_ref => l_actual_gain_loss_ref
144616 ,p_enc_g_l_ref => null
144617 );
144618 END IF;
144619 END IF;
144620 END IF;
144621
144622 ELSE
144623 --
144624 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
144625 --
144626 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144627 trace
144628 (p_msg => 'Trancaction revesal option is Y'
144629 ,p_level => C_LEVEL_STATEMENT
144630 ,p_module => l_log_module);
144631 END IF;
144632 END IF;
144633
144634 END LOOP;
144635 l_result := XLA_AE_LINES_PKG.InsertLines ;
144636 end loop;
144637 close line_cur;
144638
144639
144640 --
144641 -- insert headers into xla_ae_headers_gt table
144642 --
144643 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
144644
144645 -- insert into errors table here.
144646
144647 END LOOP;
144648
144649 --
144650 -- 4865292
144651 --
144652 -- Compare g_hdr_extract_count with event count in
144653 -- CreateHeadersAndLines.
144654 --
144655 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
144656
144657 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144658 trace (p_msg => '# rows extracted from header extract objects '
144659 || ' (running total): '
144660 || g_hdr_extract_count
144661 ,p_level => C_LEVEL_STATEMENT
144662 ,p_module => l_log_module);
144663 END IF;
144664
144665 CLOSE header_cur;
144666 --
144667
144668 --
144669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144670 trace
144671 (p_msg => 'END of EventClass_215'
144672 ,p_level => C_LEVEL_PROCEDURE
144673 ,p_module => l_log_module);
144674 END IF;
144675 --
144676 RETURN l_result;
144677 EXCEPTION
144678 WHEN xla_exceptions_pkg.application_exception THEN
144679
144680 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
144681
144682
144683 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
144684
144685 RAISE;
144686
144687 WHEN NO_DATA_FOUND THEN
144688
144689 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
144690 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
144691
144692 FOR header_record IN header_cur
144693 LOOP
144694 l_array_header_events(header_record.event_id) := header_record.event_id;
144695 END LOOP;
144696
144697 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
144698 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
144699
144700 fnd_file.put_line(fnd_file.LOG, ' ');
144701 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
144702 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
144703 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
144704
144705 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
144706 LOOP
144707 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
144708 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
144709 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
144710 END IF;
144711 END LOOP;
144712
144713 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
144714 fnd_file.put_line(fnd_file.LOG, ' ');
144715
144716
144717 xla_exceptions_pkg.raise_message
144718 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_215');
144719
144720
144721 WHEN OTHERS THEN
144725 --
144722 xla_exceptions_pkg.raise_message
144723 (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_215');
144724 END EventClass_215;
144726
144727 --
144728 --+============================================+
144729 --| |
144730 --| PRIVATE FUNCTION |
144731 --| |
144732 --+============================================+
144733 --
144734 FUNCTION CreateHeadersAndLines
144735 (p_application_id IN NUMBER
144736 ,p_base_ledger_id IN NUMBER
144737 ,p_target_ledger_id IN NUMBER
144738 ,p_pad_start_date IN DATE
144739 ,p_pad_end_date IN DATE
144740 ,p_primary_ledger_id IN NUMBER)
144741 RETURN BOOLEAN IS
144742 l_created BOOLEAN:=FALSE;
144743 l_event_id NUMBER;
144744 l_event_date DATE;
144745 l_language VARCHAR2(30);
144746 l_currency_code VARCHAR2(30);
144747 l_sla_ledger_id NUMBER;
144748 l_log_module VARCHAR2(240);
144749
144750 BEGIN
144751 --
144752 IF g_log_enabled THEN
144753 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
144754 END IF;
144755 --
144756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144757 trace
144758 (p_msg => 'BEGIN of CreateHeadersAndLines'
144759 ,p_level => C_LEVEL_PROCEDURE
144760 ,p_module => l_log_module);
144761 END IF;
144762
144763 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
144764 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
144765 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
144766
144767 --
144768 -- initialize array of lines with NULL
144769 --
144770 xla_ae_lines_pkg.SetNullLine;
144771
144772 --
144773 -- initialize header extract count -- Bug 4865292
144774 --
144775 g_hdr_extract_count:= 0;
144776
144777
144778 l_created := EventClass_204(
144779 p_application_id => p_application_id
144780 , p_base_ledger_id => p_base_ledger_id
144781 , p_target_ledger_id => p_target_ledger_id
144782 , p_language => l_language
144783 , p_currency_code => l_currency_code
144784 , p_sla_ledger_id => l_sla_ledger_id
144785 , p_pad_start_date => p_pad_start_date
144786 , p_pad_end_date => p_pad_end_date
144787 , p_primary_ledger_id => p_primary_ledger_id
144788 );
144789
144790
144791
144792 IF ( g_diagnostics_mode ='Y' ) THEN
144793
144794 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144795 trace
144796 (p_msg => 'CALL Transaction Objects Diagnostics'
144797 ,p_level => C_LEVEL_STATEMENT
144798 ,p_module => l_log_module);
144799
144800 END IF;
144801
144802 insert_sources_204(
144803 p_target_ledger_id => p_target_ledger_id
144804 , p_language => l_language
144805 , p_sla_ledger_id => l_sla_ledger_id
144806 , p_pad_start_date => p_pad_start_date
144807 , p_pad_end_date => p_pad_end_date
144808 );
144809
144810 END IF;
144811
144812 l_created := EventClass_205(
144813 p_application_id => p_application_id
144814 , p_base_ledger_id => p_base_ledger_id
144815 , p_target_ledger_id => p_target_ledger_id
144816 , p_language => l_language
144817 , p_currency_code => l_currency_code
144818 , p_sla_ledger_id => l_sla_ledger_id
144819 , p_pad_start_date => p_pad_start_date
144820 , p_pad_end_date => p_pad_end_date
144821 , p_primary_ledger_id => p_primary_ledger_id
144822 );
144823
144824
144825
144826 IF ( g_diagnostics_mode ='Y' ) THEN
144827
144828 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144829 trace
144830 (p_msg => 'CALL Transaction Objects Diagnostics'
144831 ,p_level => C_LEVEL_STATEMENT
144832 ,p_module => l_log_module);
144833
144834 END IF;
144835
144836 insert_sources_205(
144837 p_target_ledger_id => p_target_ledger_id
144838 , p_language => l_language
144839 , p_sla_ledger_id => l_sla_ledger_id
144840 , p_pad_start_date => p_pad_start_date
144841 , p_pad_end_date => p_pad_end_date
144842 );
144843
144844 END IF;
144845
144846 l_created := EventClass_206(
144847 p_application_id => p_application_id
144848 , p_base_ledger_id => p_base_ledger_id
144849 , p_target_ledger_id => p_target_ledger_id
144850 , p_language => l_language
144851 , p_currency_code => l_currency_code
144852 , p_sla_ledger_id => l_sla_ledger_id
144853 , p_pad_start_date => p_pad_start_date
144854 , p_pad_end_date => p_pad_end_date
144855 , p_primary_ledger_id => p_primary_ledger_id
144856 );
144857
144858
144859
144860 IF ( g_diagnostics_mode ='Y' ) THEN
144861
144862 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144863 trace
144864 (p_msg => 'CALL Transaction Objects Diagnostics'
144865 ,p_level => C_LEVEL_STATEMENT
144866 ,p_module => l_log_module);
144867
144868 END IF;
144869
144870 insert_sources_206(
144871 p_target_ledger_id => p_target_ledger_id
144872 , p_language => l_language
144876 );
144873 , p_sla_ledger_id => l_sla_ledger_id
144874 , p_pad_start_date => p_pad_start_date
144875 , p_pad_end_date => p_pad_end_date
144877
144878 END IF;
144879
144880 l_created := EventClass_207(
144881 p_application_id => p_application_id
144882 , p_base_ledger_id => p_base_ledger_id
144883 , p_target_ledger_id => p_target_ledger_id
144884 , p_language => l_language
144885 , p_currency_code => l_currency_code
144886 , p_sla_ledger_id => l_sla_ledger_id
144887 , p_pad_start_date => p_pad_start_date
144888 , p_pad_end_date => p_pad_end_date
144889 , p_primary_ledger_id => p_primary_ledger_id
144890 );
144891
144892
144893
144894 IF ( g_diagnostics_mode ='Y' ) THEN
144895
144896 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144897 trace
144898 (p_msg => 'CALL Transaction Objects Diagnostics'
144899 ,p_level => C_LEVEL_STATEMENT
144900 ,p_module => l_log_module);
144901
144902 END IF;
144903
144904 insert_sources_207(
144905 p_target_ledger_id => p_target_ledger_id
144906 , p_language => l_language
144907 , p_sla_ledger_id => l_sla_ledger_id
144908 , p_pad_start_date => p_pad_start_date
144909 , p_pad_end_date => p_pad_end_date
144910 );
144911
144912 END IF;
144913
144914 l_created := EventClass_208(
144915 p_application_id => p_application_id
144916 , p_base_ledger_id => p_base_ledger_id
144917 , p_target_ledger_id => p_target_ledger_id
144918 , p_language => l_language
144919 , p_currency_code => l_currency_code
144920 , p_sla_ledger_id => l_sla_ledger_id
144921 , p_pad_start_date => p_pad_start_date
144922 , p_pad_end_date => p_pad_end_date
144923 , p_primary_ledger_id => p_primary_ledger_id
144924 );
144925
144926
144927
144928 IF ( g_diagnostics_mode ='Y' ) THEN
144929
144930 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144931 trace
144932 (p_msg => 'CALL Transaction Objects Diagnostics'
144933 ,p_level => C_LEVEL_STATEMENT
144934 ,p_module => l_log_module);
144935
144936 END IF;
144937
144938 insert_sources_208(
144939 p_target_ledger_id => p_target_ledger_id
144940 , p_language => l_language
144941 , p_sla_ledger_id => l_sla_ledger_id
144942 , p_pad_start_date => p_pad_start_date
144943 , p_pad_end_date => p_pad_end_date
144944 );
144945
144946 END IF;
144947
144948 l_created := EventClass_209(
144949 p_application_id => p_application_id
144950 , p_base_ledger_id => p_base_ledger_id
144951 , p_target_ledger_id => p_target_ledger_id
144952 , p_language => l_language
144953 , p_currency_code => l_currency_code
144954 , p_sla_ledger_id => l_sla_ledger_id
144955 , p_pad_start_date => p_pad_start_date
144956 , p_pad_end_date => p_pad_end_date
144957 , p_primary_ledger_id => p_primary_ledger_id
144958 );
144959
144960
144961
144962 IF ( g_diagnostics_mode ='Y' ) THEN
144963
144964 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144965 trace
144966 (p_msg => 'CALL Transaction Objects Diagnostics'
144967 ,p_level => C_LEVEL_STATEMENT
144968 ,p_module => l_log_module);
144969
144970 END IF;
144971
144972 insert_sources_209(
144973 p_target_ledger_id => p_target_ledger_id
144974 , p_language => l_language
144975 , p_sla_ledger_id => l_sla_ledger_id
144976 , p_pad_start_date => p_pad_start_date
144977 , p_pad_end_date => p_pad_end_date
144978 );
144979
144980 END IF;
144981
144982 l_created := EventClass_210(
144983 p_application_id => p_application_id
144984 , p_base_ledger_id => p_base_ledger_id
144985 , p_target_ledger_id => p_target_ledger_id
144986 , p_language => l_language
144987 , p_currency_code => l_currency_code
144988 , p_sla_ledger_id => l_sla_ledger_id
144989 , p_pad_start_date => p_pad_start_date
144990 , p_pad_end_date => p_pad_end_date
144991 , p_primary_ledger_id => p_primary_ledger_id
144992 );
144993
144994
144995
144996 IF ( g_diagnostics_mode ='Y' ) THEN
144997
144998 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144999 trace
145000 (p_msg => 'CALL Transaction Objects Diagnostics'
145001 ,p_level => C_LEVEL_STATEMENT
145002 ,p_module => l_log_module);
145003
145004 END IF;
145005
145006 insert_sources_210(
145007 p_target_ledger_id => p_target_ledger_id
145008 , p_language => l_language
145009 , p_sla_ledger_id => l_sla_ledger_id
145010 , p_pad_start_date => p_pad_start_date
145011 , p_pad_end_date => p_pad_end_date
145012 );
145013
145014 END IF;
145015
145016 l_created := EventClass_211(
145017 p_application_id => p_application_id
145018 , p_base_ledger_id => p_base_ledger_id
145022 , p_sla_ledger_id => l_sla_ledger_id
145019 , p_target_ledger_id => p_target_ledger_id
145020 , p_language => l_language
145021 , p_currency_code => l_currency_code
145023 , p_pad_start_date => p_pad_start_date
145024 , p_pad_end_date => p_pad_end_date
145025 , p_primary_ledger_id => p_primary_ledger_id
145026 );
145027
145028
145029
145030 IF ( g_diagnostics_mode ='Y' ) THEN
145031
145032 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145033 trace
145034 (p_msg => 'CALL Transaction Objects Diagnostics'
145035 ,p_level => C_LEVEL_STATEMENT
145036 ,p_module => l_log_module);
145037
145038 END IF;
145039
145040 insert_sources_211(
145041 p_target_ledger_id => p_target_ledger_id
145042 , p_language => l_language
145043 , p_sla_ledger_id => l_sla_ledger_id
145044 , p_pad_start_date => p_pad_start_date
145045 , p_pad_end_date => p_pad_end_date
145046 );
145047
145048 END IF;
145049
145050 l_created := EventClass_212(
145051 p_application_id => p_application_id
145052 , p_base_ledger_id => p_base_ledger_id
145053 , p_target_ledger_id => p_target_ledger_id
145054 , p_language => l_language
145055 , p_currency_code => l_currency_code
145056 , p_sla_ledger_id => l_sla_ledger_id
145057 , p_pad_start_date => p_pad_start_date
145058 , p_pad_end_date => p_pad_end_date
145059 , p_primary_ledger_id => p_primary_ledger_id
145060 );
145061
145062
145063
145064 IF ( g_diagnostics_mode ='Y' ) THEN
145065
145066 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145067 trace
145068 (p_msg => 'CALL Transaction Objects Diagnostics'
145069 ,p_level => C_LEVEL_STATEMENT
145070 ,p_module => l_log_module);
145071
145072 END IF;
145073
145074 insert_sources_212(
145075 p_target_ledger_id => p_target_ledger_id
145076 , p_language => l_language
145077 , p_sla_ledger_id => l_sla_ledger_id
145078 , p_pad_start_date => p_pad_start_date
145079 , p_pad_end_date => p_pad_end_date
145080 );
145081
145082 END IF;
145083
145084 l_created := EventClass_213(
145085 p_application_id => p_application_id
145086 , p_base_ledger_id => p_base_ledger_id
145087 , p_target_ledger_id => p_target_ledger_id
145088 , p_language => l_language
145089 , p_currency_code => l_currency_code
145090 , p_sla_ledger_id => l_sla_ledger_id
145091 , p_pad_start_date => p_pad_start_date
145092 , p_pad_end_date => p_pad_end_date
145093 , p_primary_ledger_id => p_primary_ledger_id
145094 );
145095
145096
145097
145098 IF ( g_diagnostics_mode ='Y' ) THEN
145099
145100 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145101 trace
145102 (p_msg => 'CALL Transaction Objects Diagnostics'
145103 ,p_level => C_LEVEL_STATEMENT
145104 ,p_module => l_log_module);
145105
145106 END IF;
145107
145108 insert_sources_213(
145109 p_target_ledger_id => p_target_ledger_id
145110 , p_language => l_language
145111 , p_sla_ledger_id => l_sla_ledger_id
145112 , p_pad_start_date => p_pad_start_date
145113 , p_pad_end_date => p_pad_end_date
145114 );
145115
145116 END IF;
145117
145118 l_created := EventClass_214(
145119 p_application_id => p_application_id
145120 , p_base_ledger_id => p_base_ledger_id
145121 , p_target_ledger_id => p_target_ledger_id
145122 , p_language => l_language
145123 , p_currency_code => l_currency_code
145124 , p_sla_ledger_id => l_sla_ledger_id
145125 , p_pad_start_date => p_pad_start_date
145126 , p_pad_end_date => p_pad_end_date
145127 , p_primary_ledger_id => p_primary_ledger_id
145128 );
145129
145130
145131
145132 IF ( g_diagnostics_mode ='Y' ) THEN
145133
145134 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145135 trace
145136 (p_msg => 'CALL Transaction Objects Diagnostics'
145137 ,p_level => C_LEVEL_STATEMENT
145138 ,p_module => l_log_module);
145139
145140 END IF;
145141
145142 insert_sources_214(
145143 p_target_ledger_id => p_target_ledger_id
145144 , p_language => l_language
145145 , p_sla_ledger_id => l_sla_ledger_id
145146 , p_pad_start_date => p_pad_start_date
145147 , p_pad_end_date => p_pad_end_date
145148 );
145149
145150 END IF;
145151
145152 l_created := EventClass_215(
145153 p_application_id => p_application_id
145154 , p_base_ledger_id => p_base_ledger_id
145155 , p_target_ledger_id => p_target_ledger_id
145156 , p_language => l_language
145157 , p_currency_code => l_currency_code
145158 , p_sla_ledger_id => l_sla_ledger_id
145159 , p_pad_start_date => p_pad_start_date
145160 , p_pad_end_date => p_pad_end_date
145161 , p_primary_ledger_id => p_primary_ledger_id
145162 );
145163
145164
145165
145169 trace
145166 IF ( g_diagnostics_mode ='Y' ) THEN
145167
145168 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145170 (p_msg => 'CALL Transaction Objects Diagnostics'
145171 ,p_level => C_LEVEL_STATEMENT
145172 ,p_module => l_log_module);
145173
145174 END IF;
145175
145176 insert_sources_215(
145177 p_target_ledger_id => p_target_ledger_id
145178 , p_language => l_language
145179 , p_sla_ledger_id => l_sla_ledger_id
145180 , p_pad_start_date => p_pad_start_date
145181 , p_pad_end_date => p_pad_end_date
145182 );
145183
145184 END IF;
145185
145186
145187 --
145188 -- Bug 4865292
145189 -- When the number of events and that of header extract do not match,
145190 -- set the no header extract flag to indicate there are some issues
145191 -- in header extract.
145192 --
145193 -- Event count context is set in xla_accounting_pkg.unit_processor.
145194 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
145195 -- to report it as a general error.
145196 --
145197 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
145198 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
145199
145200 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145201 trace
145202 (p_msg => '# of extracted headers and events does not match'
145203 ,p_level => C_LEVEL_STATEMENT
145204 ,p_module => l_log_module);
145205
145206 trace
145207 (p_msg => '# of extracted headers: '
145208 ||g_hdr_extract_count
145209 ,p_level => C_LEVEL_STATEMENT
145210 ,p_module => l_log_module);
145211
145212 trace
145213 (p_msg => '# of events in xla_events_gt: '
145214 ||xla_context_pkg.get_event_count_context
145215 ,p_level => C_LEVEL_STATEMENT
145216 ,p_module => l_log_module);
145217
145218 trace
145219 (p_msg => 'Event No Header Extract Context: '
145220 ||xla_context_pkg.get_event_nohdr_context
145221 ,p_level => C_LEVEL_STATEMENT
145222 ,p_module => l_log_module);
145223
145224 END IF;
145225
145226
145227 xla_context_pkg.set_event_nohdr_context
145228 (p_nohdr_extract_flag => 'Y'
145229 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
145230
145231 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145232 trace
145233 (p_msg => 'No Header Extract Flag is set to Y'
145234 ,p_level => C_LEVEL_STATEMENT
145235 ,p_module => l_log_module);
145236 END IF;
145237
145238 END IF;
145239
145240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145241 trace
145242 (p_msg => 'END of CreateHeadersAndLines'
145243 ,p_level => C_LEVEL_PROCEDURE
145244 ,p_module => l_log_module);
145245 END IF;
145246
145247 RETURN l_created;
145248 EXCEPTION
145249 WHEN xla_exceptions_pkg.application_exception THEN
145250 RAISE;
145251 WHEN OTHERS THEN
145252 xla_exceptions_pkg.raise_message
145253 (p_location => 'XLA_00200_AAD_S_000010_PKG.CreateHeadersAndLines');
145254 END CreateHeadersAndLines;
145255 --
145256 --
145257
145258 --
145259 --+============================================+
145260 --| |
145261 --| PUBLIC FUNCTION |
145262 --| |
145263 --+============================================+
145264 --
145265 FUNCTION CreateJournalEntries
145266 (p_application_id IN NUMBER
145267 ,p_base_ledger_id IN NUMBER
145268 ,p_pad_start_date IN DATE
145269 ,p_pad_end_date IN DATE
145270 ,p_primary_ledger_id IN NUMBER)
145271 RETURN NUMBER IS
145272 l_log_module VARCHAR2(240);
145273 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
145274 l_temp_result BOOLEAN;
145275 l_result NUMBER;
145276 BEGIN
145277 --
145278 IF g_log_enabled THEN
145279 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
145280 END IF;
145281 --
145282 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145283 trace
145284 (p_msg => 'BEGIN of CreateJournalEntries'||
145285 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
145286 ,p_level => C_LEVEL_PROCEDURE
145287 ,p_module => l_log_module);
145288
145289 END IF;
145290
145291 --
145292 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
145293
145294 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145295 trace
145296 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
145297 ,p_level => C_LEVEL_STATEMENT
145298 ,p_module => l_log_module);
145299 END IF;
145300 --
145301 xla_ae_journal_entry_pkg.SetProductAcctDefinition
145302 (p_product_rule_code => 'AP_ENC_CASH'
145303 ,p_product_rule_type_code => 'S'
145304 ,p_product_rule_version => ''
145305 ,p_product_rule_name => 'Encumbrance Cash'
145306 ,p_amb_context_code => 'DEFAULT'
145307 );
145308
145309 l_array_ledgers :=
145310 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
145311 (p_base_ledger_id => p_base_ledger_id);
145312
145313 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
145314 l_temp_result :=
145315 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
145316 (p_application_id => p_application_id
145317 ,p_base_ledger_id => p_base_ledger_id
145318 ,p_target_ledger_id => l_array_ledgers(Idx)
145319 ,p_primary_ledger_id => p_primary_ledger_id
145320 ,p_pad_start_date => p_pad_start_date
145321 ,p_pad_end_date => p_pad_end_date);
145322
145323 l_temp_result :=
145324 l_temp_result AND
145325 CreateHeadersAndLines
145326 (p_application_id => p_application_id
145327 ,p_base_ledger_id => p_base_ledger_id
145328 ,p_target_ledger_id => l_array_ledgers(Idx)
145329 ,p_pad_start_date => p_pad_start_date
145330 ,p_pad_end_date => p_pad_end_date
145331 ,p_primary_ledger_id => p_primary_ledger_id
145332 );
145333 END LOOP;
145334
145335
145336 IF (g_diagnostics_mode = 'Y' AND
145337 C_LEVEL_UNEXPECTED >= g_log_level AND
145338 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
145339
145340 xla_accounting_dump_pkg.acctg_event_extract_log(
145341 p_application_id => p_application_id
145342 ,p_request_id => xla_environment_pkg.g_Req_Id
145343 );
145344
145345 END IF;
145346
145347 CASE l_temp_result
145348 WHEN TRUE THEN l_result := 0;
145349 ELSE l_result := 2;
145350 END CASE;
145351
145352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145353 trace
145354 (p_msg => 'return value. = '||TO_CHAR(l_result)
145355 ,p_level => C_LEVEL_PROCEDURE
145356 ,p_module => l_log_module);
145357 trace
145358 (p_msg => 'END of CreateJournalEntries '
145359 ,p_level => C_LEVEL_PROCEDURE
145360 ,p_module => l_log_module);
145361 END IF;
145362
145363 RETURN l_result;
145364 EXCEPTION
145365 WHEN xla_exceptions_pkg.application_exception THEN
145366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145367 trace
145368 (p_msg => 'ERROR. = '||sqlerrm
145369 ,p_level => C_LEVEL_PROCEDURE
145370 ,p_module => l_log_module);
145371 END IF;
145372 RAISE;
145373 WHEN OTHERS THEN
145374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145375 trace
145376 (p_msg => 'ERROR. = '||sqlerrm
145377 ,p_level => C_LEVEL_PROCEDURE
145378 ,p_module => l_log_module);
145379 END IF;
145380 xla_exceptions_pkg.raise_message
145381 (p_location => 'XLA_00200_AAD_S_000010_PKG.CreateJournalEntries');
145382 END CreateJournalEntries;
145383 --
145384 --=============================================================================
145385 --
145386 --
145387 --
145388 --
145389 --
145390 --
145391 --
145392 --
145393 --
145394 --
145395 --
145396 --
145397 --
145398 --
145399 --
145400 --
145401 --
145402 --
145403 --
145404 --
145405 --
145406 --
145407 --=============================================================================
145408 --=============================================================================
145409 -- *********** Initialization routine **********
145410 --=============================================================================
145411
145412 BEGIN
145413 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
145414 g_log_enabled := fnd_log.test
145415 (log_level => g_log_level
145416 ,module => C_DEFAULT_MODULE);
145417
145418 IF NOT g_log_enabled THEN
145419 g_log_level := C_LEVEL_LOG_DISABLED;
145420 END IF;
145421 --
145422 END XLA_00200_AAD_S_000010_PKG;
145423 --